Repository: grz0zrg/fbg Branch: master Commit: a10c238a9717 Files: 252 Total size: 5.4 MB Directory structure: gitextract_lm9es7fn/ ├── .gitignore ├── LICENSE ├── README.md ├── custom_backend/ │ ├── Makefile │ ├── README.md │ ├── advanced.frag │ ├── advanced.vert │ ├── advanced_3d.frag │ ├── advanced_3d.vert │ ├── bad_skull.obj │ ├── cwobj/ │ │ └── cwobj.h │ ├── dispmanx/ │ │ ├── fbg_dispmanx.c │ │ └── fbg_dispmanx.h │ ├── dispmanx_example.c │ ├── dispmanx_parallel.c │ ├── dispmanx_pure_parallel.c │ ├── fbdev/ │ │ ├── fbg_fbdev.c │ │ └── fbg_fbdev.h │ ├── gba/ │ │ ├── fbg_gba.c │ │ └── fbg_gba.h │ ├── gba_example.c │ ├── glfw/ │ │ ├── fbg_glfw.c │ │ ├── fbg_glfw.h │ │ └── glew/ │ │ ├── glew.c │ │ ├── glewinfo.c │ │ └── visualinfo.c │ ├── glfw_example.c │ ├── glfw_example_advanced.c │ ├── glfw_lua.c │ ├── glfw_parallel.c │ ├── opengl_es2/ │ │ ├── fbg_opengl_es2.c │ │ └── fbg_opengl_es2.h │ ├── opengl_es2_example.c │ ├── opengl_es2_parallel.c │ └── sketch.lua ├── docs/ │ ├── README_8md.html │ ├── README_8md_source.html │ ├── annotated.html │ ├── annotated_dup.js │ ├── classes.html │ ├── dir_2665f63191f4afb0d340db1cd0753229.html │ ├── dir_306cfb62d1d3531b68bf1f0f292c4744.html │ ├── dir_30a16d91d70e9988af00af0764afdb22.html │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── dir_cd6eaa540ed8d7f18047d0dfe0a4f94a.html │ ├── dir_ef37642b6b64fd185f53d45d9625a884.html │ ├── dir_f87af8b164f0cd63cd64846525e0544b.html │ ├── doxygen.css │ ├── dynsections.js │ ├── fbg__dispmanx_8h.html │ ├── fbg__dispmanx_8h.js │ ├── fbg__dispmanx_8h_source.html │ ├── fbg__fbdev_8h.html │ ├── fbg__fbdev_8h.js │ ├── fbg__fbdev_8h_source.html │ ├── fbg__fbdev_8h_struct__fbg__fbdev__context.js │ ├── fbg__gba_8h.html │ ├── fbg__gba_8h.js │ ├── fbg__gba_8h_source.html │ ├── fbg__gba_8h_struct__fbg__gba__context.js │ ├── fbg__glfw_8h.html │ ├── fbg__glfw_8h.js │ ├── fbg__glfw_8h_source.html │ ├── fbg__glfw_8h_struct__fbg__glfw__context.js │ ├── fbg__opengl__es2_8h.html │ ├── fbg__opengl__es2_8h.js │ ├── fbg__opengl__es2_8h_source.html │ ├── fbg__opengl__es2_8h_struct__fbg__gles2__context.js │ ├── fbg__opengl__es2_8h_struct__fbg__vbo__data.js │ ├── fbgraphics_8h.html │ ├── fbgraphics_8h.js │ ├── fbgraphics_8h_source.html │ ├── fbgraphics_8h_struct__fbg__font.js │ ├── fbgraphics_8h_struct__fbg__hsl.js │ ├── fbgraphics_8h_struct__fbg__img.js │ ├── fbgraphics_8h_struct__fbg__rgb.js │ ├── files.html │ ├── files.js │ ├── functions.html │ ├── functions_vars.html │ ├── globals.html │ ├── globals_defs.html │ ├── globals_func.html │ ├── globals_vars.html │ ├── graph_legend.html │ ├── graph_legend.md5 │ ├── index.html │ ├── jquery.js │ ├── menu.js │ ├── menudata.js │ ├── navtree.css │ ├── navtree.js │ ├── navtreedata.js │ ├── navtreeindex0.js │ ├── resize.js │ ├── search/ │ │ ├── all_0.html │ │ ├── all_0.js │ │ ├── all_1.html │ │ ├── all_1.js │ │ ├── all_10.html │ │ ├── all_10.js │ │ ├── all_11.html │ │ ├── all_11.js │ │ ├── all_12.html │ │ ├── all_12.js │ │ ├── all_13.html │ │ ├── all_13.js │ │ ├── all_14.html │ │ ├── all_14.js │ │ ├── all_2.html │ │ ├── all_2.js │ │ ├── all_3.html │ │ ├── all_3.js │ │ ├── all_4.html │ │ ├── all_4.js │ │ ├── all_5.html │ │ ├── all_5.js │ │ ├── all_6.html │ │ ├── all_6.js │ │ ├── all_7.html │ │ ├── all_7.js │ │ ├── all_8.html │ │ ├── all_8.js │ │ ├── all_9.html │ │ ├── all_9.js │ │ ├── all_a.html │ │ ├── all_a.js │ │ ├── all_b.html │ │ ├── all_b.js │ │ ├── all_c.html │ │ ├── all_c.js │ │ ├── all_d.html │ │ ├── all_d.js │ │ ├── all_e.html │ │ ├── all_e.js │ │ ├── all_f.html │ │ ├── all_f.js │ │ ├── classes_0.html │ │ ├── classes_0.js │ │ ├── defines_0.html │ │ ├── defines_0.js │ │ ├── defines_1.html │ │ ├── defines_1.js │ │ ├── files_0.html │ │ ├── files_0.js │ │ ├── files_1.html │ │ ├── files_1.js │ │ ├── functions_0.html │ │ ├── functions_0.js │ │ ├── functions_1.html │ │ ├── functions_1.js │ │ ├── nomatches.html │ │ ├── pages_0.html │ │ ├── pages_0.js │ │ ├── search.css │ │ ├── search.js │ │ ├── searchdata.js │ │ ├── variables_0.html │ │ ├── variables_0.js │ │ ├── variables_1.html │ │ ├── variables_1.js │ │ ├── variables_10.html │ │ ├── variables_10.js │ │ ├── variables_11.html │ │ ├── variables_11.js │ │ ├── variables_12.html │ │ ├── variables_12.js │ │ ├── variables_13.html │ │ ├── variables_13.js │ │ ├── variables_2.html │ │ ├── variables_2.js │ │ ├── variables_3.html │ │ ├── variables_3.js │ │ ├── variables_4.html │ │ ├── variables_4.js │ │ ├── variables_5.html │ │ ├── variables_5.js │ │ ├── variables_6.html │ │ ├── variables_6.js │ │ ├── variables_7.html │ │ ├── variables_7.js │ │ ├── variables_8.html │ │ ├── variables_8.js │ │ ├── variables_9.html │ │ ├── variables_9.js │ │ ├── variables_a.html │ │ ├── variables_a.js │ │ ├── variables_b.html │ │ ├── variables_b.js │ │ ├── variables_c.html │ │ ├── variables_c.js │ │ ├── variables_d.html │ │ ├── variables_d.js │ │ ├── variables_e.html │ │ ├── variables_e.js │ │ ├── variables_f.html │ │ └── variables_f.js │ ├── struct__fbg.html │ ├── struct__fbg.js │ ├── struct__fbg__dispmanx__context.html │ ├── struct__fbg__dispmanx__context.js │ └── tabs.css ├── documentation/ │ ├── Doxyfile │ ├── html/ │ │ ├── doxygen.css │ │ ├── dynsections.js │ │ └── menu.js │ └── latex/ │ ├── Makefile │ ├── README_8md.tex │ ├── annotated.tex │ ├── dir_2665f63191f4afb0d340db1cd0753229.tex │ ├── dir_306cfb62d1d3531b68bf1f0f292c4744.tex │ ├── dir_30a16d91d70e9988af00af0764afdb22.tex │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.tex │ ├── dir_cd6eaa540ed8d7f18047d0dfe0a4f94a.tex │ ├── dir_ef37642b6b64fd185f53d45d9625a884.tex │ ├── dir_f87af8b164f0cd63cd64846525e0544b.tex │ ├── doxygen.sty │ ├── fbg__dispmanx_8h.tex │ ├── fbg__fbdev_8h.tex │ ├── fbg__gba_8h.tex │ ├── fbg__glfw_8h.tex │ ├── fbg__opengl__es2_8h.tex │ ├── fbgraphics_8h.tex │ ├── files.tex │ ├── index.tex │ ├── refman.tex │ ├── struct__fbg.tex │ └── struct__fbg__dispmanx__context.tex ├── examples/ │ ├── Makefile │ ├── compositing.c │ ├── earth.c │ ├── flags.c │ ├── full_example.c │ ├── perlin.c │ ├── perlin.h │ ├── quickstart.c │ ├── run_compositing.sh │ ├── run_earth.sh │ ├── run_flags.sh │ ├── run_full_example.sh │ ├── run_quickstart.sh │ ├── run_simple_parallel_example.sh │ ├── run_tunnel.sh │ ├── simple_parallel_example.c │ ├── tiny.c │ └── tunnel.c └── src/ ├── fbgraphics.c ├── fbgraphics.h ├── lodepng/ │ ├── lodepng.c │ └── lodepng.h ├── nanojpeg/ │ └── nanojpeg.c └── stb/ └── stb_image.h ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ tunnel simple_parallel_example quickstart full_example flags earth compositing libfbg.* glfw_example ================================================ FILE: LICENSE ================================================ BSD 3-Clause License Copyright (c) 2018, Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: README.md ================================================ FBGraphics : Lightweight C 2D graphics API agnostic library with parallelism support ===== FBGraphics (FBG) is a simple C 24, 32 bpp (internal format) graphics library with parallelism and custom rendering backend support (graphics API agnostic). The library is only two .c files on most use cases, the renderer agnostic library `fbgraphics.c` and one of the rendering backend found in `custom_backend` directory. The library come with five backend (see `custom_backend` folder) : * a Linux framebuffer rendering backend (with 16 bpp support through 24/32 bpp conversion) * OpenGL backend which use the [GLFW](http://www.glfw.org/) library * OpenGL ES 2.0 backend for fbdev or Raspberry PI * fast dispmanx backend (Video Core IV; Raspberry PI) * GBA backend (slow due to 24/32 bpp -> 16 bpp support, mostly done as a proof of concept for portability on low memory hardware) Features : * Easy to write / use custom rendering backend support flexible enough to target low memory hardware! * Cross-platform with the GLFW backend (some examples may need to be adapted to the target OS) * Linux framebuffer (fbdev) rendering backend support * Double buffering (with optional page flipping mechanism) * 16, 24 (BGR/RGB), 32 bpp support * GBA rendering backend * OpenGL rendering backend through GLFW * OpenGL ES 2.0 rendering backend for Raspberry PI or through fbdev (tested on Nano PI Fire 3 board) * dispmanx rendering backend (Video Core IV; Raspberry PI) * Optional : Full parallelism, execute graphics code on multiple CPU cores **with a single function** * Image loading (provided by [LodePNG](https://lodev.org/lodepng/), [NanoJPEG](http://keyj.emphy.de/nanojpeg/), and [stb_image](https://github.com/nothings/stb/blob/master/stb_image.h)) * Bitmap fonts for drawing texts * Bare-metal graphics primitive (pixels, rectangles, lines, polygon) * Easy to do fading, clipping and screen-clearing related effects (motion blur etc.) * Drawing calls can be used to render into a specified target buffer such as fbg_image etc. * Framerate tracking & display for all cores * Lightweight enough to be hackable; adapt to all kinds of needs (and still support parallelism easily) The library is generic, most functions (including parallel ones) only manipulate buffers and you can build a custom rendering backend pretty easily with few functions call, see the `custom_backend` folder. Doxygen documentation : https://grz0zrg.github.io/fbg/ Table of Contents ================= * FBGraphics * [About](#about) * [Quickstart](#quickstart) * [Parallelism](#parallelism) * [Technical implementation](#technical-implementation) * [Benchmark](#benchmark) * [Documentation](#documentation) * [Building](#building) * [Rendering backend](#Rendering-backend) * [GLFW backend](#GLFW-backend) * [OpenGL ES 2.0 backend](#OpenGL-ES-2-backend) * [Screenshots](#screenshots) * [License](#license) ## About FBGraphics was built to produce fullscreen pixels effects easily (think of Processing-like creative coding etc.) with non-accelerated framebuffer by leveraging multi-core processors, it is a bit like a software GPU but much less complex and featured, the initial target platform was a Raspberry PI 3B / NanoPI. FBGraphics was extended to support any numbers of custom rendering backend; all graphics calls manipulate internal buffers and a simple interface allow to draw the result the way you want to. FBGraphics can support low memory hardware such as GBA. It should be noted that all internal buffers are manipulated in 24/32 bpp so it has to convert to 16bpp on GBA. An OpenGL rendering backend which use the [GLFW library](http://www.glfw.org/) was created to demonstrate the custom backend feature, it allow to draw the non-accelerated FB Graphics buffer into an OpenGL context through a texture and thus allow to interwine 3D or 2D graphics produced with standard OpenGL calls with CPU-only graphics produced by FBGraphics draw calls. An OpenGL ES 2.0 backend is also available with similar features, it target platforms with support for OpenGL ES 2.0 through fbdev (tested on Nano PI Fire 3 SBC) or Raspberry PI dispmanx and similar platforms, it wouldn't be hard to extend this for more OpenGL ES 2.0 platforms... There is also a dispmanx backend targeting Raspberry PI, it have better performances than the OpenGL ES 2 backend on this platform and is recommended if you don't need 3D stuff. FBGraphics was built so that it is possible to create any number of rendering context using different backend running at the same time while exploiting multi-core processors... the content of any rendering context can be transfered into other context through images when calling `fbg_drawInto` FBGraphics framebuffer settings support 16, 24 (BGR/RGB), 32 bpp, 16 bpp mode is handled by converting from 24 bpp to 16 bpp upon drawing, page flipping mechanism is disabled in 16 bpp mode, **24 bpp is the fastest mode**. FBGraphics is lightweight and does not intend to be a fully featured graphics library, it provide a limited set of graphics primitive and a small set of useful functions to start doing computer graphics anywhere right away with or without multi-core support. If you want to use the parallelism features with advanced graphics primitives, take a look at great libraries such as [libgd](http://libgd.github.io/), [Adafruit GFX library](https://github.com/adafruit/Adafruit-GFX-Library) or even [ImageMagick](https://imagemagick.org) which should be easy to integrate. FBGraphics is fast but should be used with caution, display bounds checking is not implemented on most primitives, this allow raw performances at the cost of crashs if not careful. Multi-core support is optional and is only enabled when `FBG_PARALLEL` C definition is present. FBGraphics framebuffer backend support a mechanism known as page flipping, it allow fast double buffering by doubling the framebuffer virtual area, it is disabled by default because it is actually slower on some devices. You can enable it with a `fbg_fbdevSetup` call. VSync is automatically enabled if supported. **Note** : FBGraphics framebuffer backend does not let you setup the framebuffer, it expect the framebuffer to be configured prior launch with a command such as : ``` fbset -fb /dev/fb0 -g 512 240 512 240 24 -vsync high setterm -cursor off > /dev/tty0 ``` `fbset` should be available in your package manager. ### Framebuffer Quickstart The simplest example (no parallelism, without texts and images) : ```c #include #include #include "fbg_fbdev.h" #include "fbgraphics.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } int main(int argc, char* argv[]) { signal(SIGINT, int_handler); struct _fbg *fbg = fbg_fbdevSetup("/dev/fb0", 0); // you can also directly use fbg_fbdevInit(); for "/dev/fb0", last argument mean that will not use page flipping mechanism for double buffering (it is actually slower on some devices!) do { fbg_clear(fbg, 0); // can also be replaced by fbg_fill(fbg, 0, 0, 0); fbg_draw(fbg); fbg_rect(fbg, fbg->width / 2 - 32, fbg->height / 2 - 32, 16, 16, 0, 255, 0); fbg_pixel(fbg, fbg->width / 2, fbg->height / 2, 255, 0, 0); fbg_flip(fbg); } while (keep_running); fbg_close(fbg); return 0; } ``` A simple quickstart example with most features (but no parallelism, see below) : ```c #include #include #include "fbg_fbdev.h" #include "fbgraphics.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } int main(int argc, char* argv[]) { signal(SIGINT, int_handler); struct _fbg *fbg = fbg_fbdevInit(); struct _fbg_img *texture = fbg_loadImage(fbg, "texture.png"); struct _fbg_img *bb_font_img = fbg_loadImage(fbg, "bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); do { fbg_clear(fbg, 0); fbg_draw(fbg); // you can also use fbg_image(fbg, texture, 0, 0) // but you must be sure that your image size fit on the display fbg_imageClip(fbg, texture, 0, 0, 0, 0, fbg->width, fbg->height); fbg_write(fbg, "Quickstart example\nFPS:", 4, 2); fbg_write(fbg, fbg->fps_char, 32 + 8, 2 + 8); fbg_rect(fbg, fbg->width / 2 - 32, fbg->height / 2 - 32, 16, 16, 0, 255, 0); fbg_pixel(fbg, fbg->width / 2, fbg->height / 2, 255, 0, 0); fbg_flip(fbg); } while (keep_running); fbg_freeImage(texture); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); return 0; } ``` **Note** : Functions like `fbg_clear` or `fbg_fpixel` are fast functions, there is slower equivalent (but more parametrable) such as `fbg_background` or `fbg_pixel`, some functions variant also support transparency such as ``fbg_pixela` or `fbg_recta`. **Note** : You can generate monospace bitmap fonts to be used with `fbg_createFont` function by using my [monoBitmapFontCreator](https://github.com/grz0zrg/monoBitmapFontCreator) tool available [here](https://fbg-bitmap-font-creator.netlify.com/) ### Parallelism Exploiting multiple cores with FBGraphics is really easy, first you have to prepare 3 functions (of which two are optional if you don't have any allocations to do) of the following definition : ```c // optional function void *fragmentStart(struct _fbg *fbg) { // typically used to allocate your per-thread data // see full_example.c for more informations return NULL; // return your user data here } ``` ```c void fragment(struct _fbg *fbg, struct _fragment_user_data *user_data) { // this function will be executed by each threads // you are free to call any FBG graphics primitive here fbg_clear(fbg, 0); // you are also free to fill each threads back buffer the way you want to // fbg->task_id : thread identifier (starting at 1, 0 is reserved for the main thread) // each threads will draw an horizontal line, the shade of the blue color will change based on the thread it is drawn from int x = 0, y = 0; for (y = fbg->task_id; y < fbg->height; y += 4) { for (x = 0; x < fbg->width; x += 1) { int i = (x + y * fbg->width) * 3; fbg->back_buffer[i] = fbg->task_id * 85; // note : BGR format fbg->back_buffer[i + 1] = 0; fbg->back_buffer[i + 2] = 0; } } // simple graphics primitive (4 blue rectangle which will be handled by different threads in parallel) fbg_rect(fbg, fbg->task_id * 32, 0, 32, 32, 0, 0, 255); } ``` ```c // optional function void fragmentStop(struct _fbg *fbg, struct _fragment_user_data *data) { // typically used to free your per-thread data // see full_example.c for more informations } ``` Then you have to create a 'Fragment' which is a FBG multi-core task : ```c fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 3); ``` Where : * `fbg` is the main library data structure returned by `fbg_customSetup` and any backend `fbg_backendnameSetup` calls (see available backends in `custom_backend` directory) * `fragmentStart`is a C function which will be executed when the thread start (can be NULL) * `fragment`is a C function which will be executed indefinitly for each threads and where all the draw code will happen * `fragmentStop` is a C function which will be executed when the thread end (can be NULL) * `3`is the number of parallel tasks (this will launch 3 threads) And finally you just have to make a call to your fragment function in your drawing loop and call `fbg_draw`! ```c fragment(fbg, NULL); fbg_draw(fbg, NULL); ``` `fbg_draw` will wait until all the data are received from all the threads then draw to screen **Note** : This example will use 4 threads (including your app one) for drawing things on the screen but calling the fragment function in your drawing loop is totally optional, you could for example make use of threads for intensive drawing tasks and just use the main thread to draw the GUI or the inverse etc. it is up to you! And that is all you have to do! See `simple_parallel_example.c` and `full_example.c` for more informations. **Note** : By default, the resulting buffer of each tasks are additively mixed into the main back buffer, you can override this behavior by specifying a mixing function as the last argument of `fbg_draw` such as : ```c // function called for each tasks in the fbg_draw function void selectiveMixing(struct _fbg *fbg, unsigned char *buffer, int task_id) { // fbg is the main fbg structure returned by fbg_customSetup calls and any backend setup calls // buffer is the current task buffer // task_id is the current task id int j = 0; for (j = 0; j < fbg->size; j += 1) { fbg->back_buffer[j] = (fbg->back_buffer[j] > buffer[j]) ? fbg->back_buffer[j] : buffer[j]; } } ``` Then you just have to specify it to the `fbg_draw` function : ```c fbg_draw(fbg, additiveMixing); ``` By using the mixing function, you can have different layers handled by different cores with different compositing rule, see `compositing.c` for an example of alpha blending compositing 2 layers running on their own cores. **Note** : You can only create one Fragment per fbg instance, another call to `fbg_createFragment` will stop all tasks for the passed fbg context and will create a new set of tasks. **Note** : On low performances platforms you may encounter performance issues at high resolution and with a high number of fragments, this is because all the threads buffer need to be mixed back onto the main thread before being displayed and at high resolution / threads count that is alot of pixels to process! You can see an alternative implementation using pure pthread in the `custom_backend` folder and `dispmanx_pure_parallel.c` but it doesn't have compositing. If your platform support some sort of SIMD instructions you could also do all the compositing using SIMD which should result in a 5x or more speed increase! ### Technical implementation FBGraphics threads come with their own fbg context data which is essentialy a copy of the actual fbg context, they make use of C atomic types. Initially parallelism was implemented using [liblfds](http://liblfds.org/) library for its Ringbuffer and Freelist data structure. Now parallelism has two implementation, liblfds and a custom synchronization mechanism which has the advantage to not require additional libraries and thus execute on more platforms. You can still use the liblfds implementation using the `FBG_LFDS` define, it may be faster. #### With liblfds Each threads begin by fetching a pre-allocated buffer from a freelist, then the fragment function is called to fill that buffer, the thread then place the buffer into a ringbuffer data structure which will be fetched upon calling `fbg_draw`, the buffers are then mixed into the main back buffer and put back into the freelist. #### Without liblfds Each threads fragment function is called to fill the local buffer, each threads then wait till that buffer is consumed by the main thread upon calling `fbg_draw`, the buffers are then mixed into the main back buffer and `fbg_draw` wake up all threads. ## Benchmark (framebuffer) A simple unoptimized per pixels screen clearing with 4 cores on a Raspberry PI 3B : 30 FPS @ 1280x768 and 370 FPS @ 320x240 Note : Using the dispmanx backend a screen clearing + rectangle moving on a Raspberry PI 3B : 60 FPS @ 1920x1080 ### Full example Fullscreen per pixels perlin noise with texture mapping and scrolling (unoptimized) **Device** : Raspberry PI 3B ( Quad Core 1.2GHz ) **Settings** : 320x240 | Cores used to draw graphics | FPS | | :-------------------------- | :------ | | 1 | 42 FPS | | 2 | 81 FPS | | 3 | 120 FPS | See screenshots below. ### Tunnel example Fullscreen texture-mapped and animated tunnel made of 40800 2px rectangles with motion blur (unoptimized) **Device** : Raspberry PI 3B ( Quad Core 1.2GHz ) **Settings** : 320x240 | Cores used to draw graphics | FPS | | :-------------------------- | :------ | | 1 | 36 FPS | | 2 | 69 FPS | | 3 | 99 FPS | | 4 | 66 FPS | Note : The framerate drop with 4 cores is due to the main thread being too busy which make all the other threads follow due to the synchronization. See screenshots below. ## Documentation All usable functions and structures are documented in the `fbgraphics.h` file with [Doxygen](http://www.stack.nl/~dimitri/doxygen/) The HTML documentation can be found in the `docs` directory, it is also hosted on GitHub [here](https://grz0zrg.github.io/fbg/) Examples demonstrating all features are available in the `examples` directory. Some effects come from [my Open Processing sketches](https://www.openprocessing.org/user/130883#sketches) ## Building C11 standard should be supported by the C compiler. All examples found in `examples` directory make use of the framebuffer device `/dev/fb0` and can be built by typing `make` into the examples directory then run them by typing `./run_quickstart` for example (this handle the framebuffer setup prior launch), you will need to compile liblfds for the parallelism features. (see below) All examples were tested on a Raspberry PI 3B with framebuffer settings : 320x240 24 bpp For the default build (no parallelism), FBGraphics come with a header file `fbgraphics.h` and a C file `fbgraphics.c` to be included / compiled / linked with your program plus one of the rendering backend found in `custom_backend` directory, you will also need to compile the `lodepng.c` library and `nanojpeg.c` library, see the examples directory for examples of Makefile. For parallelism support, `FBG_PARALLEL` need to be defined. If you need to use the slightly different parallelism implementation (see technical implementation section) you will need the [liblfds](http://liblfds.org/) library : * Get latest liblfds 7.1.1 package on the official website * uncompress, go into the directory `liblfds711` * go into the directory `build/gcc_gnumake` * type `make` in a terminal * `liblfds711.a` can now be found in the `bin` directory, you need to link against it when compiling (see examples) To compile liblfds parallel examples, just copy `liblfds711.a` / `liblfds711.h` file and `liblfds711` directory into the `examples` directory then type `make lfds711`. **Note** : FBGraphics with liblfds work on ARM64 platforms but you will need liblfds720 which is not yet released. ### Executable size optimization This library may be used for size optimized executable for things like [demos](https://en.wikipedia.org/wiki/Demoscene) Image support can be disabled with the following defines: - `WITHOUT_JPEG` - `WITHOUT_PNG` - `WITHOUT_STB_IMAGE` See `tiny` makefile rule inside the `custom_backend` or `examples` folder for some compiler optimizations related to executable size. Under Linux [sstrip](https://github.com/BR903/ELFkickers/tree/master/sstrip) and [UPX](https://upx.github.io/) can be used to bring the size down even futher. ## Rendering backend See `README` into `custom_backend` folder ## GLFW backend See `README` into `custom_backend` folder The GLFW backend was made to demonstrate how to write a backend but it is complete enough to be used by default. The GLFW backend has a cool lightweight Lua example which setup a Processing-like environment making use of the parallelism feature of the library, allowing the user to prototype multithreaded graphical stuff without C code compilation through the Lua language. ## OpenGL ES 2 backend See `README` into `custom_backend` folder ## GBA backend See `README` into `custom_backend` folder ## Screenshots ![Full example screenshot with three threads](/screenshot1.png?raw=true "Full example screenshot with three threads") ![Tunnel with four threads](/screenshot2.png?raw=true "Tunnel with four threads") ![Earth with four threads](/screenshot3.png?raw=true "Earth with four threads") ![Flags of the world with four threads](/screenshot4.png?raw=true "Flags of the world with four threads") ![Compositing with three threads](/screenshot5.png?raw=true "Compositing with three threads") ## License BSD, see LICENSE file ================================================ FILE: custom_backend/Makefile ================================================ CC=gcc STANDARD_FLAGS=-Werror -std=c11 -pedantic -D_GNU_SOURCE -D_POSIX_SOURCE DEBUG_FLAGS=-DDEBUG -g -Wall RELEASE_FLAGS=-O2 -Wall DEFP=-DFBG_PARALLEL SRC_LIBS=../src/lodepng/lodepng.c ../src/nanojpeg/nanojpeg.c ../src/fbgraphics.c SRC_LIB1=../src/fbgraphics.c SRC_GLFW=glfw/fbg_glfw.c SRC1=$(SRC_LIBS) $(SRC_GLFW) glfw_example.c SRC2=$(SRC_LIBS) $(SRC_GLFW) glfw_example_advanced.c SRC3=$(SRC_LIBS) $(SRC_GLFW) glfw_parallel.c SRC4=$(SRC_LIBS) $(SRC_GLFW) glfw_lua.c OUT1=glfw_example OUT2=glfw_example_advanced OUT3=glfw_parallel OUT4=glfw_lua LIBS1=-lm -lpthread `pkg-config --static --libs glfw3` `pkg-config --libs glu` `pkg-config --libs glew` LIBS2= -lm -lpthread `pkg-config --static --libs glfw3` `pkg-config --libs glu` `pkg-config --libs glew` LIBS3=-lm -lpthread `pkg-config --static --libs glfw3` `pkg-config --libs glu` `pkg-config --libs glew` LIBS_LFDS_711=../examples/liblfds711.a LIBS_LFDS_720=../examples/liblfds720.a INCS=-I ../src/ -I. -Iluajit `pkg-config --cflags glfw3 glu` INCS2=-I ../src/ -I. -IIluajit `pkg-config --cflags glfw3 glu` INCS_LFDS_711=-Iliblfds711 INCS_LFDS_720=-Iliblfds720 #tiny: # $(CC) $(SRC_LIB1) $(INCS) $(STANDARD_FLAGS) -O1 -fPIC -shared -o libfbg.so # $(CC) ../src/fbgraphics.c glfw/fbg_glfw.c glfw_example.c $(INCS) $(STANDARD_FLAGS) -fdata-sections -ffunction-sections -flto -DWITHOUT_PNG -DWITHOUT_JPEG -Os -lpthread `pkg-config --static --libs glfw3` `pkg-config --libs glew` -o $(OUT1) -Wl,--gc-sections,-flto # $(CC) ../src/fbgraphics.c glfw/fbg_glfw.c glfw_parallel.c $(INCS) $(STANDARD_FLAGS) -fdata-sections -ffunction-sections -flto -DWITHOUT_JPEG -Os -lpthread `pkg-config --static --libs glfw3` `pkg-config --libs glew` $(DEFP) -o $(OUT3) -Wl,--gc-sections,-flto all: $(CC) $(SRC_LIB1) $(INCS) $(STANDARD_FLAGS) $(RELEASE_FLAGS) -fPIC -shared -o libfbg.so $(CC) $(SRC1) $(INCS) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS1) -o $(OUT1) $(CC) $(SRC2) $(INCS) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS1) -o $(OUT2) $(CC) $(SRC3) $(INCS) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS2) $(DEFP) -o $(OUT3) $(CC) $(SRC4) $(INCS) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS2) libluajit.a -ldl $(DEFP) -o $(OUT4) debug: $(CC) $(SRC1) $(INCS) $(STANDARD_FLAGS) $(DEBUG_FLAGS) $(LIBS1) -o $(OUT1) $(CC) $(SRC2) $(INCS) $(STANDARD_FLAGS) $(DEBUG_FLAGS) $(LIBS1) -o $(OUT2) $(CC) $(SRC3) $(INCS) $(STANDARD_FLAGS) $(DEBUG_FLAGS) $(LIBS2) $(DEFP) -o $(OUT3) $(CC) $(SRC4) $(INCS) $(STANDARD_FLAGS) $(DEBUG_FLAGS) $(LIBS2) libluajit.a -ldl $(DEFP) -o $(OUT4) lfds711: $(CC) $(SRC1) $(INCS2) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS1) -DFBG_LFDS -DLFDS711 -o $(OUT1) $(CC) $(SRC2) $(INCS2) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS1) -DFBG_LFDS -DLFDS711 -o $(OUT2) $(CC) $(SRC3) $(INCS2) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS3) -DFBG_LFDS -DLFDS711 $(DEFP) -o $(OUT3) $(CC) $(SRC4) $(INCS2) $(STANDARD_FLAGS) $(RELEASE_FLAGS) $(LIBS3) libluajit.a -ldl -DFBG_LFDS -DLFDS711 $(DEFP) -o $(OUT4) fbdeves2: $(CC) $(SRC_LIBS) opengl_es2/fbg_opengl_es2.c opengl_es2_example.c -I ../src/ $(STANDARD_FLAGS) -DFBG_FBDEV -lEGL -lm -lpthread -o opengl_es2_example $(CC) $(SRC_LIBS) opengl_es2/fbg_opengl_es2.c opengl_es2_parallel.c -I ../src/ $(STANDARD_FLAGS) -DFBG_FBDEV -I. -Iliblfds720 -DFBG_LFDS $(DEFP) ~/liblfds7.2.0/src/liblfds720/bin/liblfds720.a -lEGL -lm -lpthread -o opengl_es2_parallel rpies2: $(CC) $(SRC_LIBS) opengl_es2/fbg_opengl_es2.c opengl_es2_example.c -I ../src/ $(STANDARD_FLAGS) -DFBG_RPI -I/opt/vc/include/ -L/opt/vc/lib/ -lbrcmGLESv2 -lbrcmEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -lm -o opengl_es2_example $(CC) $(SRC_LIBS) opengl_es2/fbg_opengl_es2.c opengl_es2_parallel.c -I ../src/ $(STANDARD_FLAGS) -DFBG_RPI -I/opt/vc/include/ -I. $(DEFP) -L/opt/vc/lib/ -lbrcmGLESv2 -lbrcmEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -lm -o opengl_es2_parallel dispman: $(CC) $(SRC_LIBS) dispmanx/fbg_dispmanx.c dispmanx_example.c -I ../src/ $(STANDARD_FLAGS) -I/opt/vc/include/ -L/opt/vc/lib/ -lbrcmGLESv2 -lbrcmEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -lm -o dispmanx_example $(CC) $(SRC_LIBS) dispmanx/fbg_dispmanx.c dispmanx_pure_parallel.c -I ../src/ $(STANDARD_FLAGS) -o2 -I/opt/vc/include/ -L/opt/vc/lib/ -lbrcmGLESv2 -lbrcmEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -lm -o dispmanx_pure_parallel $(CC) $(SRC_LIBS) dispmanx/fbg_dispmanx.c dispmanx_parallel.c -I ../src/ $(STANDARD_FLAGS) $(DEFP) -DFBG_LFDS -I. -Iliblfds720 -I/opt/vc/include/ -L/opt/vc/lib/ ~/liblfds7.2.0/src/liblfds720/bin/liblfds720.a -lbrcmGLESv2 -lbrcmEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -lm -o dispmanx_parallel clean: rm -f *.o $(OUT1) $(OUT2) $(OUT3) $(OUT4) ================================================ FILE: custom_backend/README.md ================================================ FBGraphics : Custom rendering backend ===== ## OpenGL ES 2.0 FBG OpenGL ES 2.0 rendering backend with GL utilities, similar to the GLFW backend. Support rendering through fbdev (tested on Nano PI Fire 3 board) and / or dispmanx on Raspberry PI. On Nano PI Fire 3 with fbdev we get 20 fps @ 720p without paralellism and 28 fps @ 720p with 7 threads (and the main thread doing nothing but SIMD buffers copy / blitting), compared to 24 fps @ 720p with paralellism but without OpenGL ES 2, main bottleneck with OpenGL ES 2 is due to CPU -> GPU buffer transfer (through `glTexSubImage2D`), ### Compiling See examples `makefile` `rpies2` / `fbdeves2` rule to compile On Raspberry PI you must define `FBG_RPI` when compiling, this will enable the use of dispmanx which has some advantages over fbdev. ### Examples See `opengl_es2_example.c` See `opengl_es2_parallel.c` ## dispmanx FBG dispmanx double buffering rendering backend, allow fast blitting of the software buffers by using Video Core IV GPU (as used in Raspberry PI) Note : All drawing is still done in software, dispmanx is just used for fast CPU -> GPU buffer transfer aka blitting... the single core example run at full fps at 1920x1080. Good FBG Parallelism performances is tricky because FBG mix the fragments buffer on the main CPU and at 1080p with 3 threads there is alot of pixels to mix so you get 2 fps at 1080p... the parallel example use another approach by using dispmanx compositing and output at 8 fps at 1920x1080 (and 30 fps at 720p) with 3 threads by doing all the compositing with dispmanx layers, this has some disadvantages since you are more restricted in compositing operations. Another way to optimize this without doing dispmanx compositing is to simply integrate a simple SIMD / Neon library like [this one](http://ermig1979.github.io/Simd/index.html) and let it mix the buffers, i have achieved 15 fps @ 1080p (instead of 2 fps when doing the compositing on CPU without Neon!!!) for the parallel example (with LFDS and 12 fps without) by replacing the mixing function body by one line of code : ```c void fbg_mixing(struct _fbg *fbg, unsigned char *buffer, int task_id) { SimdOperationBinary8u(buffer, fbg->width * fbg->components, fbg->back_buffer, fbg->width * fbg->components, fbg->width, fbg->height, fbg->components, fbg->back_buffer, fbg->width * fbg->components, SimdOperationBinary8uSaturatedAddition); } ``` Another way and probably the fastest way (with SIMD compositing) to do efficient paralellim is to use MMAL / OpenMax so that FBG do zero copy transfer to GPU, you just have to define `FBG_MMAL` when compiling, it only use dispmanx to get the display resolution, the only disadvantage of that method is that *screen tearing may happen because there is no true VSYNC yet*. There is also a pure pthread parallelism example, see `dispmanx_pure_parallel.c`, each threads are tasked to push specific pixels, it doesn't need to mix buffers, it only use a pthread barrier to keep everything in sync. It run at 20 fps @ 1080p doing a fullscreen color clear, 50 fps @ 1080p without barrier and 60 fps @ 720p. (720p is probably the best compromise resolution / efficiency on RPI) Note : Examples may have some room for more optimizations, especially in respect to RPI CPU caches. ### Compiling See examples `makefile` `dispman` rule to compile ### Examples See `dispmanx_example.c` See `dispmanx_pure_parallel.c` See `dispmanx_parallel.c` ## GBA Very simple Game Boy Advance backend written as a proof of concept to target low memory hardware. It is slow due to 24/32 bpp -> 16 bpp conversion upon fbg_draw() calls. ### Compiling There is no makefile provided to compile this example but this can be used as a base (devkitpro / devkitarm) : [GBA_VSCode_Basic](https://github.com/JamieDStewart/GBA_VSCode_Basic) Note : May need to define `-DWITHOUT_PNG -DWITHOUT_JPEG` when compiling, `-lm` should also be linked. ### Examples see `gba_example.c` ### Documentation See the FB Graphics documentation. ## GLFW FBG OpenGL 3.x+ rendering backend with GL utilities, multi-platform, use the [GLFW](https://www.glfw.org/) and [GLEW](http://glew.sourceforge.net/) library. **How it work** : An OpenGL texture is updated in real-time with a FB Graphics context content, as such all FB Graphics draw calls work but are handled by the CPU and the resulting frame buffer is handled by the GPU, you are free to call any OpenGL calls and mix software rendered graphics with accelerated graphics. It is also possible to modify the way the FBG display buffer is rendered through a shader, see the advanced example where the software rendered background is actually the FBG buffer with a fragment shader applied to it. `fbg_glfwSetup` accept a [SSAA](https://en.wikipedia.org/wiki/Supersampling) parameter (last one) which will increase the FB Graphics context resolution by the specified factor (anti-aliasing amount) and downscale the context upon rendering, this is a cheap solution (albeit slow) to [anti-aliasing](https://en.wikipedia.org/wiki/Anti-aliasing) and removing jaggies. When using the SSAA parameter `fbg->width` and `fbg->height` refer to the internal upscaled FBG context, not the window size. To get the window size you must then use: ```c struct _fbg_glfw_context *glfw_context = fbg->user_context; // use glfw_context->width or glfw_context->height to get display size ``` Note: The SSAA parameter only increase the FBG context resolution, as such the anti-aliasing will be applied on the FBG context, not the OpenGL context. ### Lua example The Lua example is an advanced sample which use the [Lua](https://www.lua.org/) scripting language (through [LuaJIT](http://luajit.org/)) to provide a sort of multithreaded Processing-like (much much less featured) environment with JIT to build FB Graphics graphical sketches from a Lua script without the need to compile any C code. This use 8 cores, all threads (FBG fragments) have their own Lua state and call the Lua draw() function at each frames. See `sketch.lua` and `glfw_lua.c` It require the LuaJIT library. ### Basic usage Just call `fbg_glfwSetup` then any FB Graphics calls can be used. `fbg_glfwClear` can also be useful (a wrapper to glClear) `fbg_glfwShouldClose` can be used to know when the window is closed. ### Advanced usage This backend has a lightweight OpenGL library which ease some of the most cumbersome things when starting OpenGL projects such as VBO/VAO/FBO creations, shaders loading (from files or strings), textures creation from FBG images, etc. It also has built-in OpenGL debugging when `DEBUG` is defined. The `glfw_example_advanced.c` demonstrate nearly all features and mix 2D graphics (FBG) with 3D graphics. ![Spooky](spooky.png "Advanced demonstration") ### Simple example Draw a red rectangle (handled by CPU) bouncing off the screen borders, see `glfw_example` and its `makefile`: ```c #include #include #include #include #include "glfw/fbg_glfw.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } int main(int argc, char* argv[]) { struct _fbg *fbg = fbg_glfwSetup(800, 600, 3, "glfw example", 0, 0); if (fbg == NULL) { return 0; } float x = 0, y = 0, velx = 3.4, vely = 3.425; signal(SIGINT, int_handler); do { fbg_glfwClear(); fbg_clear(fbg, 0); fbg_rect(fbg, x, y, 40, 40, 255, 0, 0); fbg_draw(fbg); fbg_flip(fbg); x += velx; y += vely; if (x <= 0 || x > fbg->width - 40) { velx = -velx; } if (y <= 0 || y > fbg->height - 40) { vely = -vely; } } while (keep_running && !fbg_glfwShouldClose(fbg)); fbg_close(fbg); } ``` ================================================ FILE: custom_backend/advanced.frag ================================================ #version 330 uniform vec2 iResolution; uniform float iTime; uniform vec4 iMouse; in vec2 uv; out vec4 final_color; uniform sampler2D t0; void main() { // normalized coordinates (-1 to 1 vertically) vec2 p = (-iResolution.xy + 2.0*gl_FragCoord.xy)/iResolution.y; // angle of each pixel to the center of the screen float a = atan(p.y, p.x); float e = iMouse.x / iResolution.x * 4; float r = pow( pow(p.x*p.x,e) + pow(p.y*p.y,e), 1.0/(2.*e) ); // index texture by (animated inverse) radious and angle vec2 uv = vec2( 0.3/r + 0.4*iTime, a/3.1415927 ); // fetch color with correct texture gradients, to prevent discontinutity vec2 uv2 = vec2( uv.x, atan(p.y,abs(p.x))/3.1415927 ); vec3 col = textureGrad( t0, uv, dFdx(uv2), dFdy(uv2) ).xyz; // do some weird effect based on distance col = col*( (0.5 - abs(0.75 - r)) * 2) * 16.; final_color = vec4(col, 1.0); } ================================================ FILE: custom_backend/advanced.vert ================================================ #version 330 layout(location = 0) in vec3 vp; layout(location = 1) in vec2 vu; out vec2 uv; void main() { uv = vu; gl_Position = vec4(vp, 1.0); } ================================================ FILE: custom_backend/advanced_3d.frag ================================================ #version 330 in vec2 uv; in vec3 normal; in vec3 fpos; in vec3 lpos; out vec4 final_color; uniform sampler2D t0; uniform sampler2D t1; vec3 viewPos = vec3(0.0f, 0.0f, 12.0f); vec3 lightCol = vec3(1., 1., 1.); void main() { float ambient_strength = 0.005; vec3 ambient = ambient_strength * lightCol; vec3 lightDir = normalize(lpos - fpos); vec3 norm = normalize(normal); float diffuse = max(dot(norm, lightDir), 0.); vec3 viewDir = normalize(-fpos); //vec3 reflectDir = reflect(-lightDir, norm); float specularStrength = 0.75; int specularShininess = 8; vec3 halfwayDir = normalize(lightDir + viewDir); float spec = pow(max(dot(normal, halfwayDir), 0.0), specularShininess); vec3 specular = specularStrength * spec * lightCol; vec3 shade_result = ambient + diffuse + specular; vec4 texture1 = texture(t0, uv * 4.); vec4 c = (texture1 * 12. + ((1. - texture1 / 8.) - texture(t1, uv * 4.)) * 0.05) * vec4(shade_result * 8., 1.); float gamma = 2.2; final_color.rgb = pow(c.rgb, vec3(1.0 / gamma)); final_color.a = 1.; } ================================================ FILE: custom_backend/advanced_3d.vert ================================================ #version 330 layout(location = 0) in vec3 vp; layout(location = 1) in vec2 vu; layout(location = 2) in vec3 vn; out vec2 uv; out vec3 normal; out vec3 fpos; out vec3 lpos; vec3 lightPos = vec3(0., 0., 0.5); uniform mat4 m, v, p; uniform mat4 vp_mat; void main() { uv = vu; normal = mat3(transpose(inverse(v * m))) * vn; fpos = vec3(v * m * vec4(vp, 1.0)); lpos = vec3(v * vec4(lightPos, 1.0)); gl_Position = (p * v * m) * vec4(vp, 1.0); } ================================================ FILE: custom_backend/bad_skull.obj ================================================ # Blender v2.79 (sub 0) OBJ File: '' # www.blender.org mtllib bad_skull.mtl o dents_sup�rieur001 v 0.001277 -0.343559 0.357319 v 0.000735 -0.347295 0.361536 v 0.000312 -0.346001 0.363288 v 0.000735 -0.347804 0.360254 v 0.000735 -0.348199 0.360368 v 0.001757 -0.363588 0.359951 v -0.000367 -0.343559 0.357319 v 0.000598 -0.346001 0.363288 v 0.000175 -0.347295 0.361536 v 0.000175 -0.347804 0.360254 v 0.000175 -0.348199 0.360368 v -0.000847 -0.363588 0.359951 v 0.092415 -0.215548 0.309867 v 0.088795 -0.245396 0.302110 v 0.103839 -0.216047 0.314431 v 0.123927 -0.250658 0.315010 v 0.103965 -0.225752 0.325334 v 0.087096 -0.213261 0.320138 v 0.083907 -0.223150 0.315923 v 0.085791 -0.261245 0.321838 v 0.081574 -0.272295 0.312929 v 0.115351 -0.362559 0.309239 v 0.123049 -0.360804 0.300925 v 0.122721 -0.333620 0.292886 v 0.130972 -0.331534 0.291924 v 0.122412 -0.320180 0.335383 v 0.119221 -0.348764 0.327071 v 0.132339 -0.330183 0.327058 v 0.087669 -0.313953 0.312152 v 0.101909 -0.339526 0.324197 v 0.108733 -0.353303 0.320323 v 0.099714 -0.289204 0.291390 v 0.112641 -0.307647 0.289746 v 0.119385 -0.309361 0.290348 v 0.104539 -0.258204 0.333145 v 0.102905 -0.339700 0.314827 v 0.141612 -0.333830 0.311637 v 0.144843 -0.311917 0.309600 v 0.128919 -0.358424 0.309208 v 0.141025 -0.337904 0.301708 v 0.090954 -0.313264 0.320188 v 0.123294 -0.298015 0.335158 v 0.095863 -0.225212 0.327243 v 0.138001 -0.297804 0.304015 v 0.121260 -0.254732 0.306998 v 0.105835 -0.309048 0.290236 v 0.140814 -0.295092 0.312594 v 0.112105 -0.305951 0.335057 v 0.104366 -0.260580 0.296274 v 0.097746 -0.313253 0.327620 v 0.127498 -0.267070 0.323826 v 0.130133 -0.296117 0.330722 v 0.090267 -0.308660 0.300330 v 0.084425 -0.279094 0.301460 v 0.142146 -0.314804 0.300232 v 0.113222 -0.331250 0.334316 v 0.137876 -0.293883 0.321356 v 0.093090 -0.210404 0.321710 v 0.095446 -0.208264 0.315928 v 0.124091 -0.211251 0.272345 v 0.119981 -0.244821 0.267507 v 0.141385 -0.207707 0.277170 v 0.138254 -0.202977 0.277893 v 0.138062 -0.206259 0.283562 v 0.118312 -0.220389 0.285214 v 0.129959 -0.217842 0.291057 v 0.106043 -0.341656 0.278889 v 0.121996 -0.346526 0.267485 v 0.111140 -0.344972 0.261674 v 0.123600 -0.337064 0.291695 v 0.131358 -0.334994 0.249683 v 0.146458 -0.331716 0.255293 v 0.121761 -0.315325 0.252076 v 0.152518 -0.298755 0.294802 v 0.147421 -0.338646 0.300639 v 0.156418 -0.341065 0.298110 v 0.104281 -0.316752 0.283586 v 0.113063 -0.285964 0.260776 v 0.112456 -0.339296 0.286936 v 0.105330 -0.271881 0.281399 v 0.139114 -0.225725 0.293064 v 0.139840 -0.245711 0.297427 v 0.120374 -0.210633 0.281802 v 0.121071 -0.338961 0.251619 v 0.159673 -0.299914 0.273093 v 0.161642 -0.297941 0.278928 v 0.171751 -0.339114 0.273627 v 0.170105 -0.335395 0.267353 v 0.111483 -0.267901 0.265336 v 0.153671 -0.253998 0.279354 v 0.128219 -0.213953 0.270498 v 0.152110 -0.263868 0.295769 v 0.152533 -0.344872 0.287233 v 0.167425 -0.344212 0.286574 v 0.132403 -0.337548 0.291384 v 0.133139 -0.204148 0.286154 v 0.144613 -0.301089 0.297849 v 0.147421 -0.280753 0.298983 v 0.121185 -0.300221 0.257768 v 0.108006 -0.301689 0.283211 v 0.105909 -0.299115 0.275386 v 0.156221 -0.344778 0.277413 v 0.161611 -0.283273 0.282217 v 0.153523 -0.332116 0.257912 v 0.101992 -0.315766 0.276521 v 0.117911 -0.321398 0.292836 v 0.143334 -0.300053 0.262496 v 0.112587 -0.312967 0.256260 v 0.163095 -0.311382 0.286966 v 0.124572 -0.301165 0.295213 v 0.156907 -0.256369 0.285123 v 0.136194 -0.337386 0.282530 v 0.124326 -0.205522 0.278797 v 0.105376 -0.271525 0.274958 v 0.138019 -0.256698 0.269796 v 0.158228 -0.294337 0.285369 v 0.125355 -0.306007 0.296076 v 0.106055 -0.313014 0.263549 v 0.120756 -0.249485 0.292814 v 0.114266 -0.239505 0.277487 v 0.127444 -0.205886 0.273293 v 0.135205 -0.336794 0.270739 v 0.111879 -0.295255 0.264556 v 0.132422 -0.204599 0.227829 v 0.125422 -0.239485 0.225875 v 0.148331 -0.200533 0.232783 v 0.145215 -0.196134 0.236855 v 0.127055 -0.216313 0.245263 v 0.113585 -0.343477 0.232622 v 0.135764 -0.333952 0.208216 v 0.117684 -0.311616 0.214811 v 0.128429 -0.318448 0.210153 v 0.156925 -0.298180 0.255554 v 0.164345 -0.295878 0.251527 v 0.163943 -0.337803 0.257985 v 0.111347 -0.316658 0.244447 v 0.120426 -0.299668 0.247926 v 0.117320 -0.282480 0.220266 v 0.126235 -0.298312 0.216654 v 0.127186 -0.335688 0.209118 v 0.112497 -0.268444 0.242231 v 0.142927 -0.204162 0.246490 v 0.151126 -0.240856 0.254542 v 0.131362 -0.200893 0.230533 v 0.126772 -0.208553 0.241324 v 0.143214 -0.334809 0.218017 v 0.170141 -0.296748 0.230792 v 0.116346 -0.339242 0.245691 v 0.180692 -0.335923 0.225796 v 0.162496 -0.251040 0.234305 v 0.163728 -0.256645 0.251230 v 0.170133 -0.344258 0.244704 v 0.137128 -0.335466 0.253166 v 0.157508 -0.336497 0.259188 v 0.163684 -0.297720 0.225683 v 0.142376 -0.196840 0.240874 v 0.163705 -0.344772 0.236310 v 0.159609 -0.277014 0.256015 v 0.119132 -0.296203 0.220209 v 0.114093 -0.298605 0.241605 v 0.112346 -0.296831 0.236504 v 0.122538 -0.346467 0.224908 v 0.179974 -0.343212 0.239177 v 0.174663 -0.341098 0.249826 v 0.171568 -0.280048 0.237263 v 0.152844 -0.330710 0.212523 v 0.115752 -0.343685 0.221093 v 0.108519 -0.314569 0.237985 v 0.175377 -0.332940 0.219641 v 0.130393 -0.244886 0.251927 v 0.170109 -0.292089 0.238247 v 0.160375 -0.335200 0.222913 v 0.145567 -0.334863 0.232990 v 0.148858 -0.298052 0.219121 v 0.166311 -0.249683 0.240447 v 0.131799 -0.199023 0.236679 v 0.111465 -0.268217 0.235583 v 0.115596 -0.264939 0.225829 v 0.144553 -0.252784 0.226434 v 0.173536 -0.308120 0.243251 v 0.111103 -0.310754 0.223694 v 0.151569 -0.338762 0.246550 v 0.120902 -0.234859 0.236575 v 0.130949 -0.314593 0.255039 v 0.135313 -0.299441 0.254929 v 0.130454 -0.344826 0.228253 v 0.134615 -0.338122 0.240683 v 0.115759 -0.292563 0.227452 v -0.091505 -0.215547 0.309867 v -0.087884 -0.245392 0.302112 v -0.101677 -0.214548 0.314574 v -0.122599 -0.249833 0.314834 v -0.103052 -0.225753 0.325336 v -0.086186 -0.213261 0.320139 v -0.082997 -0.223148 0.315923 v -0.084879 -0.261221 0.321837 v -0.114441 -0.362559 0.309239 v -0.122140 -0.360803 0.300925 v -0.121811 -0.333620 0.292885 v -0.130062 -0.331534 0.291924 v -0.121504 -0.320176 0.335383 v -0.131430 -0.330179 0.327058 v -0.118310 -0.348764 0.327072 v -0.086759 -0.313951 0.312153 v -0.100998 -0.339525 0.324196 v -0.107822 -0.353301 0.320325 v -0.098803 -0.289207 0.291390 v -0.111733 -0.307647 0.289746 v -0.118475 -0.309361 0.290347 v -0.080663 -0.272302 0.312927 v -0.103625 -0.258191 0.333143 v -0.101994 -0.339699 0.314829 v -0.140703 -0.333829 0.311636 v -0.143932 -0.311912 0.309602 v -0.128009 -0.358424 0.309208 v -0.140115 -0.337903 0.301709 v -0.090046 -0.313266 0.320190 v -0.122384 -0.298015 0.335158 v -0.094954 -0.225217 0.327244 v -0.137091 -0.297805 0.304015 v -0.120344 -0.254718 0.307000 v -0.104925 -0.309047 0.290236 v -0.139904 -0.295091 0.312595 v -0.111195 -0.305950 0.335056 v -0.103454 -0.260574 0.296276 v -0.096837 -0.313254 0.327621 v -0.126584 -0.267064 0.323827 v -0.129224 -0.296116 0.330721 v -0.089356 -0.308663 0.300332 v -0.083515 -0.279103 0.301460 v -0.141236 -0.314807 0.300231 v -0.112311 -0.331248 0.334316 v -0.136964 -0.293883 0.321359 v -0.092180 -0.210404 0.321710 v -0.094535 -0.208264 0.315928 v -0.126666 -0.212610 0.270526 v -0.124752 -0.207567 0.272461 v -0.119071 -0.244822 0.267507 v -0.137682 -0.203198 0.277632 v -0.140704 -0.207954 0.277280 v -0.137152 -0.206259 0.283562 v -0.117401 -0.220392 0.285214 v -0.129049 -0.217840 0.291056 v -0.105133 -0.341656 0.278889 v -0.121087 -0.346526 0.267485 v -0.110230 -0.344972 0.261676 v -0.122690 -0.337064 0.291695 v -0.130449 -0.334994 0.249683 v -0.145548 -0.331716 0.255293 v -0.120851 -0.315325 0.252076 v -0.151608 -0.298755 0.294803 v -0.146510 -0.338646 0.300639 v -0.155506 -0.341064 0.298111 v -0.103371 -0.316752 0.283587 v -0.112154 -0.285960 0.260776 v -0.111546 -0.339296 0.286936 v -0.104420 -0.271883 0.281398 v -0.138203 -0.225723 0.293064 v -0.138931 -0.245709 0.297427 v -0.119464 -0.210632 0.281801 v -0.120160 -0.338961 0.251620 v -0.158763 -0.299914 0.273093 v -0.160732 -0.297941 0.278929 v -0.170842 -0.339115 0.273628 v -0.169195 -0.335395 0.267353 v -0.110571 -0.267909 0.265335 v -0.152766 -0.255259 0.279087 v -0.155999 -0.256374 0.285123 v -0.151201 -0.263870 0.295768 v -0.151622 -0.344872 0.287232 v -0.166515 -0.344212 0.286574 v -0.131493 -0.337548 0.291385 v -0.132229 -0.204148 0.286155 v -0.143702 -0.301089 0.297849 v -0.146514 -0.280757 0.298983 v -0.120275 -0.300221 0.257768 v -0.107096 -0.301689 0.283212 v -0.105000 -0.299114 0.275387 v -0.155311 -0.344778 0.277414 v -0.160702 -0.283275 0.282216 v -0.152612 -0.332116 0.257912 v -0.101083 -0.315766 0.276518 v -0.117001 -0.321404 0.292836 v -0.142427 -0.300052 0.262498 v -0.111678 -0.312971 0.256260 v -0.162185 -0.311381 0.286966 v -0.123662 -0.301165 0.295213 v -0.123840 -0.205128 0.278227 v -0.135283 -0.337386 0.282529 v -0.119845 -0.249483 0.292814 v -0.104467 -0.271524 0.274957 v -0.137112 -0.256697 0.269796 v -0.157319 -0.294336 0.285368 v -0.124445 -0.306007 0.296076 v -0.113355 -0.239507 0.277488 v -0.105148 -0.313014 0.263545 v -0.134294 -0.336795 0.270738 v -0.110968 -0.295254 0.264557 v -0.131513 -0.204597 0.227829 v -0.124513 -0.239483 0.225875 v -0.147421 -0.200533 0.232782 v -0.144306 -0.196134 0.236854 v -0.126146 -0.216306 0.245262 v -0.121629 -0.346467 0.224909 v -0.112676 -0.343478 0.232620 v -0.134855 -0.333952 0.208216 v -0.116774 -0.311615 0.214811 v -0.127518 -0.318446 0.210154 v -0.156015 -0.298180 0.255554 v -0.163436 -0.295877 0.251526 v -0.163035 -0.337804 0.257984 v -0.119514 -0.299668 0.247925 v -0.110439 -0.316659 0.244448 v -0.116410 -0.282487 0.220265 v -0.125324 -0.298311 0.216654 v -0.126275 -0.335688 0.209119 v -0.111587 -0.268444 0.242231 v -0.142017 -0.204162 0.246490 v -0.150216 -0.240856 0.254542 v -0.130452 -0.200893 0.230533 v -0.125862 -0.208554 0.241324 v -0.142304 -0.334809 0.218017 v -0.169146 -0.296736 0.230617 v -0.115435 -0.339243 0.245690 v -0.161583 -0.251030 0.234305 v -0.165402 -0.249690 0.240448 v -0.162818 -0.256647 0.251231 v -0.169224 -0.344258 0.244704 v -0.136218 -0.335466 0.253166 v -0.156596 -0.336497 0.259188 v -0.162775 -0.297720 0.225683 v -0.159466 -0.335200 0.222912 v -0.162795 -0.344772 0.236310 v -0.158699 -0.277019 0.256015 v -0.118222 -0.296203 0.220209 v -0.113183 -0.298605 0.241605 v -0.111436 -0.296831 0.236503 v -0.173755 -0.341098 0.249824 v -0.177554 -0.343869 0.238569 v -0.170658 -0.280054 0.237260 v -0.151935 -0.330710 0.212523 v -0.114841 -0.343686 0.221094 v -0.107609 -0.314567 0.237988 v -0.176319 -0.333601 0.220663 v -0.134403 -0.299442 0.254929 v -0.169200 -0.292088 0.238247 v -0.144658 -0.334863 0.232989 v -0.147949 -0.298052 0.219122 v -0.130888 -0.199024 0.236679 v -0.141466 -0.196840 0.240874 v -0.129480 -0.244874 0.251926 v -0.110555 -0.268217 0.235582 v -0.114686 -0.264942 0.225828 v -0.143645 -0.252791 0.226434 v -0.172626 -0.308124 0.243252 v -0.119992 -0.234857 0.236575 v -0.110193 -0.310753 0.223693 v -0.150659 -0.338762 0.246550 v -0.130040 -0.314592 0.255039 v -0.129545 -0.344826 0.228253 v -0.133704 -0.338122 0.240683 v -0.114848 -0.292563 0.227455 v -0.180881 -0.338756 0.233587 v 0.171530 -0.266654 0.047894 v 0.167953 -0.268958 0.052736 v 0.170596 -0.244497 0.054276 v 0.167338 -0.276284 0.080707 v 0.170035 -0.251145 0.085968 v 0.207992 -0.256058 0.050196 v 0.213826 -0.266590 0.060268 v 0.208855 -0.251999 0.087003 v 0.210044 -0.273525 0.085168 v 0.169665 -0.306593 0.085444 v 0.164743 -0.305115 0.072638 v 0.164866 -0.298465 0.062927 v 0.182099 -0.301673 0.087751 v 0.166617 -0.298614 0.046496 v 0.168885 -0.293711 0.039022 v 0.175897 -0.296563 0.042439 v 0.184004 -0.287248 0.037718 v 0.169291 -0.255943 0.068161 v 0.206005 -0.238365 0.051098 v 0.189309 -0.257706 0.046903 v 0.168749 -0.281873 0.041633 v 0.166066 -0.295767 0.085909 v 0.170901 -0.277095 0.085839 v 0.211330 -0.278436 0.046094 v 0.210092 -0.286789 0.085661 v 0.203532 -0.306990 0.080253 v 0.197552 -0.306373 0.086872 v 0.183693 -0.293650 0.047615 v 0.200828 -0.294891 0.040515 v 0.203851 -0.299398 0.050472 v 0.207431 -0.298603 0.064363 v 0.177739 -0.238820 0.048962 v 0.205977 -0.302585 0.085316 v 0.165093 -0.303635 0.082876 v 0.205916 -0.291323 0.040997 v 0.210399 -0.263970 0.049975 v 0.197972 -0.300451 0.063709 v 0.171463 -0.249977 0.063344 v 0.162893 -0.291373 0.075510 v 0.208283 -0.302906 0.078169 v 0.207278 -0.242808 0.086509 v 0.170944 -0.252354 0.075642 v 0.209985 -0.250045 0.064003 v 0.202550 -0.223567 0.059111 v 0.197293 -0.237075 0.091572 v 0.210031 -0.254235 0.070039 v 0.177594 -0.226560 0.086247 v 0.180829 -0.217954 0.059211 v 0.181762 -0.216973 0.053469 v 0.197557 -0.216354 0.054082 v 0.200802 -0.265939 0.045864 v 0.193924 -0.216493 0.084883 v 0.196419 -0.218977 0.086726 v 0.173034 -0.306590 0.076103 v 0.213120 -0.269898 0.074581 v 0.213982 -0.277202 0.079013 v 0.164334 -0.282480 0.051016 v 0.196360 -0.305914 0.076253 v 0.178842 -0.252476 0.068088 v 0.209503 -0.295112 0.050089 v 0.181097 -0.293955 0.064188 v 0.164313 -0.295725 0.049682 v 0.203019 -0.249013 0.066838 v 0.182778 -0.300833 0.077089 v 0.197293 -0.286544 0.037434 v 0.200681 -0.227367 0.082154 v 0.198897 -0.232592 0.049867 v 0.185378 -0.211699 0.057063 v 0.179034 -0.250493 0.092088 v 0.202750 -0.250996 0.092334 v 0.196729 -0.299120 0.049319 v 0.207639 -0.250759 0.075229 v 0.194594 -0.211727 0.057082 v 0.208884 -0.238226 0.055513 v 0.182529 -0.225719 0.088845 v 0.176600 -0.300121 0.089779 v 0.166251 -0.271434 0.067318 v 0.214413 -0.280797 0.054598 v 0.198155 -0.251915 0.069673 v 0.179376 -0.245320 0.074682 v 0.176346 -0.252293 0.070846 v 0.179272 -0.267190 0.045144 v 0.200511 -0.296224 0.089929 v 0.201245 -0.274664 0.088792 v 0.193825 -0.218567 0.082193 v 0.178532 -0.286905 0.036575 v 0.212517 -0.291948 0.078983 v 0.179306 -0.245512 0.065066 v 0.178183 -0.276376 0.088103 v 0.171543 -0.297907 0.063326 v 0.174305 -0.299317 0.047556 v 0.195725 -0.216908 0.060124 v 0.198909 -0.247589 0.074095 v 0.184605 -0.216593 0.085326 v 0.182883 -0.217818 0.082515 v 0.162328 -0.276793 0.097020 v 0.156229 -0.279178 0.101677 v 0.162800 -0.241103 0.100961 v 0.156723 -0.253332 0.105006 v 0.148597 -0.270734 0.129712 v 0.153297 -0.253984 0.143485 v 0.149337 -0.254842 0.136596 v 0.148636 -0.283851 0.129478 v 0.212640 -0.260785 0.107940 v 0.218884 -0.271561 0.113251 v 0.217002 -0.265120 0.122263 v 0.204634 -0.252237 0.148329 v 0.205784 -0.277564 0.147627 v 0.164885 -0.254719 0.147738 v 0.148096 -0.319476 0.134372 v 0.155534 -0.321224 0.136936 v 0.147173 -0.319905 0.125506 v 0.150820 -0.320044 0.121505 v 0.160812 -0.321206 0.128663 v 0.151304 -0.314010 0.112443 v 0.170262 -0.313966 0.141768 v 0.168806 -0.312454 0.144478 v 0.155271 -0.315638 0.097793 v 0.167824 -0.309039 0.085801 v 0.172066 -0.313577 0.092404 v 0.183951 -0.302329 0.088984 v 0.162055 -0.308181 0.087079 v 0.161864 -0.295446 0.089815 v 0.153319 -0.261209 0.119192 v 0.187221 -0.264634 0.099927 v 0.153153 -0.299473 0.096248 v 0.146287 -0.303198 0.135523 v 0.150307 -0.284561 0.135903 v 0.219891 -0.288347 0.104537 v 0.215043 -0.270502 0.107049 v 0.210095 -0.276835 0.144836 v 0.208621 -0.293482 0.147606 v 0.205437 -0.317476 0.136397 v 0.194647 -0.319555 0.143694 v 0.181487 -0.308757 0.099801 v 0.203866 -0.306973 0.092639 v 0.212699 -0.312971 0.107295 v 0.211168 -0.310770 0.123811 v 0.203733 -0.314180 0.146006 v 0.199974 -0.306378 0.149505 v 0.160272 -0.314521 0.091417 v 0.212809 -0.307681 0.097169 v 0.197987 -0.313895 0.120900 v 0.146219 -0.296677 0.123143 v 0.211270 -0.310495 0.138331 v 0.201445 -0.240096 0.147315 v 0.153480 -0.255756 0.127176 v 0.162145 -0.253443 0.124880 v 0.211454 -0.251600 0.123354 v 0.167640 -0.217390 0.108143 v 0.210261 -0.255867 0.130053 v 0.158017 -0.223109 0.140026 v 0.157243 -0.255216 0.114594 v 0.171276 -0.215528 0.111940 v 0.193449 -0.214842 0.107921 v 0.204172 -0.273952 0.101543 v 0.181114 -0.209222 0.142753 v 0.184430 -0.217313 0.146848 v 0.173480 -0.313521 0.131376 v 0.214946 -0.273670 0.134626 v 0.215114 -0.282382 0.141024 v 0.192491 -0.212873 0.115604 v 0.192908 -0.318993 0.134338 v 0.193753 -0.253297 0.125541 v 0.201915 -0.250877 0.125047 v 0.166192 -0.252979 0.118335 v 0.204827 -0.296490 0.093403 v 0.155757 -0.310956 0.143415 v 0.191020 -0.219135 0.142434 v 0.196452 -0.253248 0.129023 v 0.162469 -0.236647 0.146309 v 0.196908 -0.248294 0.152207 v 0.173675 -0.214438 0.104961 v 0.173766 -0.240717 0.099903 v 0.165438 -0.214127 0.136239 v 0.199806 -0.314259 0.104763 v 0.197540 -0.214924 0.111731 v 0.197784 -0.243677 0.134574 v 0.187189 -0.206604 0.111394 v 0.190599 -0.312008 0.149319 v 0.211918 -0.240969 0.112917 v 0.175367 -0.207642 0.109329 v 0.153596 -0.317762 0.140902 v 0.205807 -0.239926 0.106336 v 0.220295 -0.302018 0.108856 v 0.165619 -0.245789 0.128258 v 0.174089 -0.277164 0.095777 v 0.187678 -0.252712 0.151979 v 0.206823 -0.253087 0.134140 v 0.208828 -0.235659 0.117186 v 0.194432 -0.278948 0.148884 v 0.180723 -0.210329 0.139560 v 0.176651 -0.298806 0.087579 v 0.214080 -0.300386 0.140822 v 0.159730 -0.283389 0.142165 v 0.160709 -0.312765 0.114349 v 0.168771 -0.316359 0.097617 v 0.221822 -0.280339 0.116006 v 0.185582 -0.232936 0.150554 v 0.153087 -0.279507 0.109188 v 0.167668 -0.209597 0.140101 v 0.163193 -0.214901 0.141528 v 0.173878 -0.307115 0.117338 v 0.168202 -0.256190 0.121967 v 0.146224 -0.273381 0.155043 v 0.138981 -0.287894 0.158161 v 0.142162 -0.250355 0.158545 v 0.133194 -0.281049 0.168397 v 0.128036 -0.294270 0.197672 v 0.129367 -0.258326 0.208013 v 0.127016 -0.258975 0.201622 v 0.197144 -0.266141 0.166984 v 0.202711 -0.274168 0.179560 v 0.194260 -0.255084 0.185723 v 0.189501 -0.257350 0.202017 v 0.187124 -0.286531 0.214762 v 0.137003 -0.258005 0.213332 v 0.128012 -0.338448 0.195186 v 0.135985 -0.339133 0.201685 v 0.127803 -0.336583 0.185577 v 0.135036 -0.339217 0.186522 v 0.138535 -0.329812 0.173588 v 0.153173 -0.330552 0.208927 v 0.147775 -0.332868 0.204230 v 0.138101 -0.332365 0.161517 v 0.144728 -0.333047 0.150997 v 0.146982 -0.328385 0.143838 v 0.153719 -0.325168 0.141088 v 0.168477 -0.319624 0.147707 v 0.171582 -0.312513 0.143712 v 0.133330 -0.266316 0.179080 v 0.135589 -0.260310 0.171963 v 0.191888 -0.241655 0.166888 v 0.184223 -0.269275 0.160973 v 0.137084 -0.261841 0.184523 v 0.145040 -0.285327 0.153556 v 0.143759 -0.317403 0.143441 v 0.130210 -0.294466 0.202431 v 0.205899 -0.299611 0.162897 v 0.199991 -0.277883 0.165875 v 0.186500 -0.313566 0.216296 v 0.159390 -0.271813 0.155498 v 0.185830 -0.336265 0.202646 v 0.175524 -0.337107 0.209704 v 0.167292 -0.332695 0.213832 v 0.190249 -0.324421 0.150871 v 0.194623 -0.329375 0.159406 v 0.192610 -0.330853 0.171981 v 0.193553 -0.327582 0.185641 v 0.184997 -0.331559 0.213158 v 0.125298 -0.322970 0.201096 v 0.201105 -0.319885 0.154825 v 0.149278 -0.327543 0.211672 v 0.181592 -0.330221 0.182678 v 0.125013 -0.307409 0.191420 v 0.203115 -0.316455 0.181256 v 0.131553 -0.261619 0.189377 v 0.137401 -0.251492 0.190758 v 0.169860 -0.215625 0.208345 v 0.143318 -0.227706 0.166230 v 0.145192 -0.253905 0.178199 v 0.160696 -0.205020 0.208683 v 0.133580 -0.230748 0.207554 v 0.181344 -0.232303 0.163534 v 0.195504 -0.242130 0.172963 v 0.155286 -0.202740 0.208332 v 0.195270 -0.288547 0.209876 v 0.167271 -0.201606 0.168415 v 0.142675 -0.338102 0.190616 v 0.168791 -0.200593 0.171530 v 0.176042 -0.207595 0.174820 v 0.175305 -0.336575 0.198765 v 0.156914 -0.321819 0.178733 v 0.138065 -0.216049 0.201412 v 0.192170 -0.316161 0.148472 v 0.189293 -0.282272 0.159325 v 0.129942 -0.325693 0.206221 v 0.143916 -0.322384 0.212049 v 0.171193 -0.207718 0.175926 v 0.156014 -0.201438 0.168586 v 0.157827 -0.209340 0.163666 v 0.182048 -0.253942 0.195906 v 0.160844 -0.207481 0.204564 v 0.181824 -0.330181 0.165633 v 0.175332 -0.249813 0.220516 v 0.163593 -0.217943 0.215266 v 0.146036 -0.206026 0.202111 v 0.181429 -0.258481 0.190941 v 0.174725 -0.288512 0.216333 v 0.133701 -0.311560 0.157667 v 0.131394 -0.328484 0.172609 v 0.135310 -0.287385 0.164761 v 0.132764 -0.334830 0.206664 v 0.182384 -0.251359 0.186671 v 0.139694 -0.236716 0.213081 v 0.149639 -0.260867 0.183925 v 0.196792 -0.281324 0.201955 v 0.145405 -0.252630 0.189833 v 0.154608 -0.330262 0.196349 v 0.179696 -0.210773 0.169970 v 0.197075 -0.311212 0.207025 v 0.157619 -0.285555 0.152342 v 0.164317 -0.253336 0.220045 v 0.171953 -0.327684 0.216933 v 0.152948 -0.314266 0.141747 v 0.191627 -0.235588 0.178154 v 0.207053 -0.304393 0.174547 v 0.182380 -0.245202 0.215508 v 0.164219 -0.324125 0.162275 v 0.193229 -0.285382 0.209519 v 0.136444 -0.293902 0.207552 v 0.153810 -0.240932 0.157026 v 0.192767 -0.330667 0.202129 v 0.155296 -0.332089 0.155200 v 0.206044 -0.286893 0.177204 v 0.202889 -0.324544 0.167016 v 0.151662 -0.211003 0.171744 v 0.130316 -0.290438 0.179681 v 0.175945 -0.244400 0.198567 v 0.193251 -0.261255 0.193407 v 0.203704 -0.279157 0.173270 v 0.144827 -0.204328 0.205842 v 0.140383 -0.210371 0.207347 v 0.150328 -0.211482 0.164221 v 0.139123 -0.328936 0.150919 v -0.170621 -0.266653 0.047894 v -0.169870 -0.243965 0.054037 v -0.169125 -0.251145 0.085969 v -0.212916 -0.266590 0.060265 v -0.207431 -0.248416 0.087640 v -0.209418 -0.273371 0.084922 v -0.165011 -0.306244 0.082012 v -0.163565 -0.305222 0.073053 v -0.169599 -0.306215 0.086119 v -0.163956 -0.298465 0.062927 v -0.181189 -0.301673 0.087752 v -0.165708 -0.298614 0.046496 v -0.167976 -0.293710 0.039021 v -0.174986 -0.296564 0.042440 v -0.183094 -0.287248 0.037718 v -0.169607 -0.250621 0.062969 v -0.168382 -0.255943 0.068161 v -0.202968 -0.256606 0.048345 v -0.167839 -0.281877 0.041632 v -0.166174 -0.295761 0.086544 v -0.169992 -0.277095 0.085840 v -0.210400 -0.278531 0.046068 v -0.210165 -0.264079 0.051018 v -0.202622 -0.306990 0.080254 v -0.196640 -0.306372 0.086873 v -0.182783 -0.293650 0.047615 v -0.199918 -0.294892 0.040516 v -0.198796 -0.300028 0.050018 v -0.206522 -0.298603 0.064364 v -0.176830 -0.238819 0.048963 v -0.205066 -0.302587 0.085315 v -0.208037 -0.296150 0.050191 v -0.205007 -0.291322 0.040997 v -0.197064 -0.300451 0.063710 v -0.178665 -0.264260 0.046268 v -0.201642 -0.265379 0.046183 v -0.162058 -0.291178 0.076280 v -0.207373 -0.302905 0.078169 v -0.170035 -0.252353 0.075643 v -0.209075 -0.250047 0.064005 v -0.179870 -0.215957 0.057117 v -0.196380 -0.237075 0.091572 v -0.178321 -0.251240 0.092169 v -0.178467 -0.245320 0.074682 v -0.209121 -0.254235 0.070039 v -0.181476 -0.218399 0.059802 v -0.180853 -0.216974 0.053468 v -0.193010 -0.216639 0.085377 v -0.195608 -0.223799 0.088491 v -0.199258 -0.224707 0.083626 v -0.172124 -0.306590 0.076103 v -0.212247 -0.269878 0.074495 v -0.199079 -0.218995 0.058858 v -0.176684 -0.226561 0.086247 v -0.163424 -0.282487 0.051012 v -0.202108 -0.249013 0.066838 v -0.195450 -0.305914 0.076253 v -0.177932 -0.252476 0.068088 v -0.180187 -0.293955 0.064188 v -0.163403 -0.295725 0.049684 v -0.181869 -0.300833 0.077090 v -0.196383 -0.286544 0.037434 v -0.176962 -0.277013 0.088100 v -0.184908 -0.211571 0.057086 v -0.201841 -0.250998 0.092334 v -0.183695 -0.216592 0.085325 v -0.197381 -0.216999 0.053945 v -0.206730 -0.250760 0.075228 v -0.192490 -0.211393 0.056983 v -0.207918 -0.236683 0.056772 v -0.181619 -0.225715 0.088844 v -0.175436 -0.300357 0.089707 v -0.202092 -0.235182 0.049985 v -0.165341 -0.271431 0.067309 v -0.213503 -0.280794 0.054598 v -0.197246 -0.251915 0.069674 v -0.175437 -0.252293 0.070846 v -0.199352 -0.296527 0.089985 v -0.200337 -0.274665 0.088792 v -0.192235 -0.217282 0.082612 v -0.177624 -0.286903 0.036575 v -0.212046 -0.280857 0.083281 v -0.211606 -0.291949 0.078986 v -0.178394 -0.245516 0.065067 v -0.166428 -0.276284 0.080708 v -0.167043 -0.268958 0.052737 v -0.170633 -0.297907 0.063326 v -0.173395 -0.299317 0.047556 v -0.194817 -0.216911 0.060125 v -0.197998 -0.247589 0.074095 v -0.181962 -0.217832 0.082513 v -0.161417 -0.276792 0.097021 v -0.158441 -0.246065 0.102830 v -0.154209 -0.255540 0.109085 v -0.147687 -0.270737 0.129712 v -0.148429 -0.254839 0.136598 v -0.147726 -0.283851 0.129478 v -0.211791 -0.261200 0.107913 v -0.216093 -0.265119 0.122258 v -0.203724 -0.252232 0.148329 v -0.204874 -0.277564 0.147627 v -0.154623 -0.321224 0.136936 v -0.146263 -0.319905 0.125509 v -0.159903 -0.321206 0.128664 v -0.149911 -0.320043 0.121505 v -0.150418 -0.313967 0.112346 v -0.169352 -0.313966 0.141768 v -0.167893 -0.312455 0.144477 v -0.154474 -0.315479 0.097363 v -0.166912 -0.309040 0.085801 v -0.171158 -0.313577 0.092405 v -0.183042 -0.302329 0.088984 v -0.161145 -0.308182 0.087080 v -0.160954 -0.295439 0.089818 v -0.152516 -0.261083 0.118601 v -0.207246 -0.240615 0.107865 v -0.186321 -0.264630 0.099929 v -0.164173 -0.254331 0.147831 v -0.152242 -0.299474 0.096249 v -0.145378 -0.303196 0.135524 v -0.149398 -0.284561 0.135903 v -0.218981 -0.288348 0.104538 v -0.215101 -0.270654 0.107760 v -0.209185 -0.276835 0.144836 v -0.207710 -0.293483 0.147607 v -0.204529 -0.317475 0.136398 v -0.193738 -0.319555 0.143695 v -0.180578 -0.308757 0.099801 v -0.202956 -0.306973 0.092639 v -0.211789 -0.312971 0.107295 v -0.210258 -0.310770 0.123811 v -0.165354 -0.243712 0.099642 v -0.202826 -0.314178 0.146006 v -0.199064 -0.306376 0.149506 v -0.159364 -0.314521 0.091417 v -0.147186 -0.319476 0.134371 v -0.211900 -0.307681 0.097170 v -0.197077 -0.313895 0.120901 v -0.158983 -0.253712 0.115583 v -0.203268 -0.273945 0.101547 v -0.145309 -0.296676 0.123146 v -0.210363 -0.310490 0.138330 v -0.198616 -0.234298 0.146132 v -0.152571 -0.255757 0.127175 v -0.210545 -0.251601 0.123354 v -0.166731 -0.217387 0.108144 v -0.184181 -0.230981 0.150238 v -0.164285 -0.246597 0.127973 v -0.209351 -0.255867 0.130053 v -0.155557 -0.231701 0.141683 v -0.152385 -0.253986 0.143485 v -0.170367 -0.215526 0.111940 v -0.192540 -0.214842 0.107921 v -0.178512 -0.208630 0.140976 v -0.181761 -0.212732 0.145235 v -0.172571 -0.313521 0.131375 v -0.214037 -0.273669 0.134621 v -0.218184 -0.271696 0.116076 v -0.214204 -0.282378 0.141024 v -0.191581 -0.212872 0.115604 v -0.159406 -0.220130 0.136638 v -0.199919 -0.250486 0.124906 v -0.191998 -0.318993 0.134337 v -0.165282 -0.252979 0.118335 v -0.203915 -0.296493 0.093402 v -0.154848 -0.310954 0.143415 v -0.184130 -0.212611 0.140052 v -0.161558 -0.236641 0.146308 v -0.196000 -0.248294 0.152207 v -0.171157 -0.215394 0.104638 v -0.166096 -0.213694 0.136369 v -0.166758 -0.209598 0.140101 v -0.198896 -0.314259 0.104762 v -0.196628 -0.214921 0.111730 v -0.199569 -0.245064 0.135644 v -0.186278 -0.206604 0.111393 v -0.189692 -0.312008 0.149320 v -0.211008 -0.240967 0.112917 v -0.152686 -0.317763 0.140902 v -0.190891 -0.237805 0.102894 v -0.219384 -0.302022 0.108858 v -0.192371 -0.253932 0.126844 v -0.173180 -0.277167 0.095776 v -0.186760 -0.252712 0.151978 v -0.205913 -0.253086 0.134140 v -0.207915 -0.235652 0.117184 v -0.193551 -0.278926 0.148885 v -0.174458 -0.207641 0.109329 v -0.175740 -0.298805 0.087579 v -0.213170 -0.300387 0.140823 v -0.155320 -0.279177 0.101676 v -0.159798 -0.312765 0.114349 v -0.161345 -0.255327 0.123523 v -0.167860 -0.316359 0.097618 v -0.158969 -0.283145 0.142186 v -0.221032 -0.285239 0.114725 v -0.192160 -0.248031 0.131878 v -0.152177 -0.279508 0.109191 v -0.162280 -0.214908 0.141529 v -0.172969 -0.307115 0.117338 v -0.167295 -0.256189 0.121968 v -0.145317 -0.273378 0.155043 v -0.138070 -0.287894 0.158162 v -0.141253 -0.250352 0.158545 v -0.132285 -0.281030 0.168399 v -0.127127 -0.294270 0.197674 v -0.126106 -0.258971 0.201623 v -0.196307 -0.266615 0.166952 v -0.201803 -0.274173 0.179557 v -0.193352 -0.255086 0.185723 v -0.188821 -0.257987 0.202435 v -0.186213 -0.286531 0.214763 v -0.136092 -0.258007 0.213331 v -0.127102 -0.338447 0.195188 v -0.135075 -0.339133 0.201685 v -0.134124 -0.339217 0.186521 v -0.126893 -0.336583 0.185578 v -0.131817 -0.329955 0.172967 v -0.152263 -0.330552 0.208927 v -0.146865 -0.332868 0.204232 v -0.139752 -0.333364 0.155205 v -0.144305 -0.327140 0.143203 v -0.153470 -0.327029 0.143194 v -0.167567 -0.319624 0.147707 v -0.171415 -0.312699 0.144010 v -0.132420 -0.266316 0.179080 v -0.134681 -0.260308 0.171964 v -0.190978 -0.241652 0.166888 v -0.183312 -0.269272 0.160973 v -0.136173 -0.261843 0.184522 v -0.144131 -0.285327 0.153556 v -0.143742 -0.307618 0.145340 v -0.129300 -0.294466 0.202431 v -0.204990 -0.299610 0.162899 v -0.200047 -0.278074 0.166686 v -0.185591 -0.313563 0.216296 v -0.158487 -0.271818 0.155499 v -0.188017 -0.334195 0.198860 v -0.171198 -0.336378 0.210620 v -0.189340 -0.324422 0.150873 v -0.193713 -0.329375 0.159406 v -0.191700 -0.330853 0.171982 v -0.192642 -0.327583 0.185640 v -0.152900 -0.240932 0.157026 v -0.182931 -0.331466 0.213808 v -0.124389 -0.322970 0.201097 v -0.200194 -0.319887 0.154825 v -0.184445 -0.335546 0.208360 v -0.148369 -0.327543 0.211673 v -0.192319 -0.285382 0.209519 v -0.135535 -0.293901 0.207552 v -0.180682 -0.330221 0.182678 v -0.124102 -0.307408 0.191426 v -0.156708 -0.285556 0.152342 v -0.202206 -0.316457 0.181250 v -0.130644 -0.261621 0.189375 v -0.136489 -0.251494 0.190758 v -0.168952 -0.215628 0.208345 v -0.142409 -0.227704 0.166229 v -0.163405 -0.253334 0.220045 v -0.159786 -0.205020 0.208684 v -0.132670 -0.230748 0.207553 v -0.128457 -0.258331 0.208014 v -0.180434 -0.232302 0.163534 v -0.194591 -0.242120 0.172962 v -0.154375 -0.202740 0.208331 v -0.194359 -0.288546 0.209877 v -0.166365 -0.201606 0.168416 v -0.141765 -0.338102 0.190616 v -0.175130 -0.207593 0.174819 v -0.174395 -0.336575 0.198765 v -0.141903 -0.328193 0.174961 v -0.156004 -0.321819 0.178734 v -0.137155 -0.216050 0.201411 v -0.191263 -0.316162 0.148473 v -0.188381 -0.282268 0.159326 v -0.143005 -0.322383 0.212049 v -0.129033 -0.325696 0.206222 v -0.170285 -0.207720 0.175927 v -0.156917 -0.209343 0.163665 v -0.182449 -0.252888 0.198004 v -0.159936 -0.207481 0.204564 v -0.180912 -0.330180 0.165634 v -0.144284 -0.253905 0.178200 v -0.162682 -0.217942 0.215265 v -0.145127 -0.206026 0.202111 v -0.143917 -0.204328 0.205842 v -0.180520 -0.258481 0.190941 v -0.155105 -0.201437 0.168586 v -0.173816 -0.288512 0.216334 v -0.150325 -0.331255 0.161543 v -0.151232 -0.322321 0.140294 v -0.134400 -0.287384 0.164762 v -0.174423 -0.249811 0.220516 v -0.131856 -0.334831 0.206665 v -0.181473 -0.251358 0.186671 v -0.138783 -0.236708 0.213080 v -0.148727 -0.260867 0.183925 v -0.195884 -0.281323 0.201951 v -0.167881 -0.200593 0.171531 v -0.144495 -0.252630 0.189833 v -0.178783 -0.210768 0.169971 v -0.196165 -0.311217 0.207024 v -0.170250 -0.328226 0.216789 v -0.175861 -0.250839 0.196465 v -0.159567 -0.308488 0.143615 v -0.190715 -0.235586 0.178156 v -0.206143 -0.304389 0.174552 v -0.181471 -0.245204 0.215509 v -0.129403 -0.290439 0.179692 v -0.132791 -0.311556 0.157668 v -0.163309 -0.324125 0.162275 v -0.153698 -0.330262 0.196350 v -0.193399 -0.326539 0.203498 v -0.153658 -0.332011 0.152131 v -0.205133 -0.286889 0.177206 v -0.202615 -0.279464 0.175592 v -0.201979 -0.324545 0.167017 v -0.150753 -0.211001 0.171744 v -0.192341 -0.261255 0.193408 v -0.139474 -0.210368 0.207347 v -0.149420 -0.211478 0.164221 v -0.137633 -0.329184 0.151745 v 0.071198 -0.361778 0.342849 v 0.067181 -0.344429 0.341762 v 0.062217 -0.342313 0.346685 v 0.059274 -0.328592 0.337255 v 0.069440 -0.353824 0.354414 v 0.080857 -0.355033 0.353849 v 0.077036 -0.341535 0.360262 v 0.111312 -0.355673 0.334639 v 0.079064 -0.320335 0.359461 v 0.073221 -0.363291 0.348448 v 0.067773 -0.359648 0.348800 v 0.107021 -0.358302 0.321887 v 0.107501 -0.338950 0.319834 v 0.112689 -0.358932 0.323024 v 0.100962 -0.329335 0.317572 v 0.114644 -0.312936 0.339228 v 0.116595 -0.349775 0.332086 v 0.091875 -0.232932 0.333687 v 0.087201 -0.242776 0.327611 v 0.081585 -0.229249 0.336494 v 0.095648 -0.229373 0.341705 v 0.080191 -0.229850 0.340222 v 0.065000 -0.279400 0.338709 v 0.080997 -0.274786 0.357025 v 0.060570 -0.321700 0.334767 v 0.113323 -0.312034 0.335859 v 0.108421 -0.270333 0.343081 v 0.097475 -0.312615 0.319125 v 0.090567 -0.286259 0.318985 v 0.118612 -0.335737 0.334099 v 0.086909 -0.232418 0.347957 v 0.089217 -0.224470 0.342962 v 0.098363 -0.236350 0.341151 v 0.083116 -0.304185 0.320308 v 0.068077 -0.275521 0.330024 v 0.077115 -0.261117 0.326059 v 0.070266 -0.308545 0.325797 v 0.070184 -0.258506 0.333022 v 0.115758 -0.342980 0.323317 v 0.060450 -0.328562 0.343855 v 0.070468 -0.289091 0.351013 v 0.068129 -0.328338 0.354923 v 0.107401 -0.362617 0.324696 v 0.089792 -0.309495 0.357062 v 0.107071 -0.305291 0.347117 v 0.084738 -0.342345 0.329906 v 0.073617 -0.320401 0.319914 v 0.081645 -0.312416 0.317643 v 0.112998 -0.321740 0.324258 v 0.084183 -0.276035 0.320423 v 0.086435 -0.223439 0.338666 v 0.087782 -0.338317 0.358652 v 0.080657 -0.365698 0.342020 v 0.108150 -0.316427 0.324687 v 0.105818 -0.267374 0.349326 v 0.089299 -0.271197 0.358306 v 0.114567 -0.333895 0.343394 v 0.058121 -0.350427 0.345687 v 0.060006 -0.366614 0.348824 v 0.049484 -0.371904 0.348443 v 0.058483 -0.367709 0.358724 v 0.051389 -0.360444 0.366305 v 0.015659 -0.367396 0.367661 v 0.055967 -0.325413 0.372112 v 0.060227 -0.370370 0.352190 v 0.005416 -0.350571 0.354903 v 0.004533 -0.339628 0.351060 v 0.011228 -0.347432 0.376111 v 0.006241 -0.368942 0.363884 v 0.018313 -0.229500 0.365641 v 0.019855 -0.238289 0.356519 v 0.026585 -0.229192 0.359794 v 0.021379 -0.231008 0.372896 v 0.032336 -0.233305 0.360891 v 0.043463 -0.278473 0.345333 v 0.055964 -0.331989 0.340165 v 0.013851 -0.320167 0.376601 v 0.016646 -0.275855 0.378601 v 0.005068 -0.323661 0.356192 v 0.008222 -0.297433 0.350286 v 0.054312 -0.334658 0.338842 v 0.064823 -0.353280 0.361933 v 0.001144 -0.331677 0.357399 v 0.027865 -0.351880 0.349203 v 0.032868 -0.230270 0.369511 v 0.030059 -0.229646 0.371799 v 0.013693 -0.256438 0.353217 v 0.048789 -0.276857 0.374995 v 0.062033 -0.330659 0.364234 v 0.052863 -0.284352 0.368328 v 0.027822 -0.309763 0.339894 v 0.015504 -0.243475 0.367393 v 0.026312 -0.328894 0.336486 v 0.026685 -0.270064 0.344158 v 0.021223 -0.344448 0.377885 v 0.041513 -0.271408 0.379122 v 0.046618 -0.323239 0.337650 v 0.063017 -0.333915 0.353196 v 0.064957 -0.352745 0.350802 v 0.052638 -0.289993 0.354266 v 0.021954 -0.319779 0.336926 v 0.007266 -0.372403 0.355588 v 0.007600 -0.373811 0.357989 v 0.049179 -0.315304 0.373869 v 0.010896 -0.320526 0.344133 v 0.012132 -0.313631 0.346606 v 0.022405 -0.224063 0.365670 v 0.027530 -0.223805 0.366262 v 0.023045 -0.271400 0.381981 v 0.029413 -0.319813 0.335445 v 0.001584 -0.330911 0.363801 v 0.014365 -0.283373 0.345331 v 0.058032 -0.345050 0.371146 v 0.043031 -0.374904 0.353377 v 0.025150 -0.312882 0.378235 v 0.005420 -0.323907 0.364529 v 0.033904 -0.255231 0.348905 v -0.070288 -0.361777 0.342849 v -0.066273 -0.344429 0.341761 v -0.061307 -0.342309 0.346684 v -0.058364 -0.328591 0.337255 v -0.068530 -0.353823 0.354414 v -0.079948 -0.355030 0.353851 v -0.076126 -0.341535 0.360262 v -0.110403 -0.355673 0.334639 v -0.078153 -0.320335 0.359461 v -0.066863 -0.359647 0.348800 v -0.072310 -0.363290 0.348449 v -0.106112 -0.358303 0.321887 v -0.106590 -0.338948 0.319834 v -0.111779 -0.358932 0.323024 v -0.100053 -0.329337 0.317572 v -0.113734 -0.312934 0.339230 v -0.115686 -0.349770 0.332091 v -0.090963 -0.232933 0.333685 v -0.086290 -0.242772 0.327613 v -0.086041 -0.222844 0.339624 v -0.080728 -0.228917 0.336694 v -0.091049 -0.226260 0.343210 v -0.095212 -0.230947 0.340363 v -0.079282 -0.229847 0.340222 v -0.064090 -0.279400 0.338709 v -0.059660 -0.321701 0.334766 v -0.112412 -0.312033 0.335860 v -0.107511 -0.270328 0.343082 v -0.096566 -0.312617 0.319124 v -0.089657 -0.286256 0.318985 v -0.059541 -0.328560 0.343856 v -0.085999 -0.232420 0.347958 v -0.080088 -0.274786 0.357026 v -0.117703 -0.335735 0.334100 v -0.113656 -0.333895 0.343394 v -0.082205 -0.304185 0.320308 v -0.072707 -0.320400 0.319914 v -0.067168 -0.275523 0.330023 v -0.076206 -0.261119 0.326059 v -0.069356 -0.308545 0.325797 v -0.069273 -0.258511 0.333021 v -0.114848 -0.342983 0.323317 v -0.069558 -0.289095 0.351014 v -0.106491 -0.362617 0.324697 v -0.088884 -0.309493 0.357061 v -0.067219 -0.328336 0.354922 v -0.106159 -0.305290 0.347118 v -0.083829 -0.342345 0.329905 v -0.080736 -0.312415 0.317644 v -0.112087 -0.321738 0.324258 v -0.083273 -0.276034 0.320423 v -0.086874 -0.338316 0.358652 v -0.079747 -0.365697 0.342020 v -0.107240 -0.316426 0.324687 v -0.104908 -0.267376 0.349325 v -0.088388 -0.271199 0.358307 v -0.057211 -0.350429 0.345687 v -0.059096 -0.366615 0.348824 v -0.048573 -0.371905 0.348443 v -0.057573 -0.367709 0.358723 v -0.050480 -0.360443 0.366305 v -0.014750 -0.367396 0.367661 v -0.059317 -0.370370 0.352190 v -0.004505 -0.350570 0.354904 v -0.003622 -0.339628 0.351060 v -0.010317 -0.347433 0.376110 v -0.005330 -0.368942 0.363883 v -0.017404 -0.229499 0.365641 v -0.018945 -0.238292 0.356518 v -0.025675 -0.229192 0.359794 v -0.020469 -0.231009 0.372896 v -0.031466 -0.234008 0.360303 v -0.042553 -0.278474 0.345333 v -0.031452 -0.229767 0.370765 v -0.055055 -0.331990 0.340165 v -0.012941 -0.320168 0.376601 v -0.015737 -0.275855 0.378602 v -0.004157 -0.323664 0.356194 v -0.008738 -0.291332 0.348029 v -0.053402 -0.334658 0.338843 v -0.063912 -0.353280 0.361934 v -0.000234 -0.331674 0.357401 v -0.012783 -0.256435 0.353217 v -0.047878 -0.276854 0.374996 v -0.058496 -0.327112 0.368232 v -0.051955 -0.284356 0.368328 v -0.026911 -0.309763 0.339894 v -0.014595 -0.243471 0.367394 v -0.025402 -0.328894 0.336486 v -0.017479 -0.272858 0.345486 v -0.020314 -0.344448 0.377885 v -0.031586 -0.251611 0.350006 v -0.045708 -0.323239 0.337650 v -0.064048 -0.352747 0.350803 v -0.062551 -0.334838 0.353118 v -0.062293 -0.332592 0.360680 v -0.051727 -0.289995 0.354263 v -0.021043 -0.319779 0.336926 v -0.006356 -0.372403 0.355588 v -0.006689 -0.373811 0.357990 v -0.048518 -0.316503 0.373944 v -0.024240 -0.312882 0.378235 v -0.009984 -0.320525 0.344135 v -0.011224 -0.313630 0.346605 v -0.021495 -0.224063 0.365670 v -0.022136 -0.271400 0.381981 v -0.026958 -0.351880 0.349203 v -0.028503 -0.319813 0.335445 v -0.000674 -0.330910 0.363801 v -0.057122 -0.345051 0.371145 v -0.040605 -0.271409 0.379122 v -0.042122 -0.374904 0.353377 v -0.004510 -0.323905 0.364527 v -0.027359 -0.224028 0.366708 v -0.032390 -0.275289 0.343134 v -0.174951 -0.491836 0.251258 v -0.138796 -0.513461 0.279709 v -0.136600 -0.455992 0.288860 v -0.165021 -0.426836 0.262679 v -0.117584 -0.483212 0.294978 v -0.094010 -0.530470 0.300493 v -0.081092 -0.480625 0.315203 v -0.061090 -0.509008 0.313152 v -0.052798 -0.535018 0.310334 v -0.054212 -0.483767 0.322137 v 0.019146 -0.532052 0.312825 v -0.000460 -0.486866 0.319279 v -0.176841 -0.524196 0.234745 v -0.147293 -0.536958 0.270473 v -0.116869 -0.571080 0.291313 v -0.046451 -0.579090 0.313890 v 0.012966 -0.567856 0.316391 v -0.220341 -0.462740 0.202456 v -0.174922 -0.413610 0.247181 v -0.203430 -0.421817 0.203328 v -0.199774 -0.375918 0.165293 v -0.238999 -0.407728 0.136855 v -0.246888 -0.379338 0.117002 v -0.227016 -0.367877 0.137177 v -0.267429 -0.382639 0.079916 v -0.265873 -0.338033 0.103981 v -0.314329 -0.357022 0.006469 v -0.294414 -0.290705 0.079217 v -0.346534 -0.256834 0.016654 v -0.304736 -0.248752 0.079438 v -0.332854 -0.206807 0.054626 v -0.339573 -0.142222 0.056034 v -0.319571 -0.111477 0.086369 v -0.338413 -0.021804 0.090111 v -0.354102 -0.057848 0.051214 v -0.325662 -0.043085 0.103977 v -0.329572 -0.019128 0.102796 v -0.321951 -0.023710 0.111608 v -0.351705 -0.015909 0.052311 v -0.351486 -0.014932 0.056986 v -0.215336 -0.497056 0.205915 v -0.246764 -0.516203 0.142111 v -0.251706 -0.439085 0.118344 v -0.277159 -0.428470 0.049262 v -0.363199 -0.233345 -0.006004 v -0.356860 -0.150850 0.019632 v -0.362525 -0.075973 0.022642 v -0.058823 -0.607594 0.308004 v 0.024221 -0.602687 0.312467 v -0.089543 -0.600351 0.302553 v -0.120291 -0.599493 0.284696 v -0.151517 -0.603537 0.248958 v -0.185346 -0.580905 0.196750 v -0.194535 -0.558644 0.191422 v -0.235470 -0.525174 0.165714 v -0.274802 -0.488333 0.037033 v -0.283691 -0.466735 0.015898 v -0.358660 -0.283245 -0.034537 v -0.338559 -0.342037 -0.045147 v -0.375505 -0.202040 -0.034772 v -0.374546 -0.246173 -0.058299 v -0.376683 -0.125480 -0.044014 v -0.385141 -0.175695 -0.069521 v -0.324892 -0.399052 -0.061833 v -0.279136 -0.490075 0.010169 v -0.388715 -0.175614 -0.096706 v -0.372845 -0.246101 -0.108007 v -0.387781 -0.124387 -0.073791 v -0.400436 -0.117545 -0.097211 v -0.399595 -0.120586 -0.119789 v -0.381327 -0.176579 -0.130841 v -0.360814 -0.261135 -0.124510 v -0.337273 -0.356534 -0.106695 v -0.315856 -0.418917 -0.108307 v -0.203015 -0.366417 0.149521 v -0.191671 -0.399403 0.207353 v -0.118665 -0.430797 0.329056 v -0.110041 -0.460056 0.313510 v -0.102681 -0.434999 0.345308 v -0.090714 -0.441077 0.347501 v -0.063746 -0.445576 0.352110 v -0.074555 -0.432864 0.353481 v -0.027499 -0.440051 0.353948 v -0.048020 -0.426753 0.352734 v -0.058994 -0.425347 0.351532 v -0.071898 -0.422446 0.347666 v -0.081675 -0.416912 0.347144 v -0.088496 -0.421878 0.343735 v -0.036983 -0.427680 0.355529 v -0.037453 -0.420690 0.350077 v -0.130503 -0.407389 0.311283 v -0.115422 -0.403305 0.316948 v -0.111889 -0.426932 0.339526 v -0.138832 -0.407863 0.305473 v -0.142930 -0.400174 0.295630 v -0.150717 -0.396135 0.282618 v -0.164464 -0.396590 0.268835 v -0.181756 -0.386692 0.225036 v -0.187974 -0.389453 0.214406 v -0.170845 -0.386880 0.247921 v -0.176173 -0.389800 0.242079 v -0.188889 -0.375836 0.192510 v -0.192720 -0.366506 0.169224 v -0.198004 -0.360856 0.141060 v -0.200709 -0.350909 0.121902 v -0.227280 -0.346493 0.122047 v -0.247530 -0.338635 0.112976 v -0.243092 -0.327284 0.101784 v -0.235000 -0.319584 0.081347 v -0.253887 -0.304926 0.081533 v -0.269034 -0.312569 0.097389 v -0.294485 -0.270301 0.084005 v -0.291043 -0.257623 0.082909 v -0.281108 -0.262193 0.076252 v -0.268864 -0.266869 0.063579 v -0.230963 -0.307776 0.041698 v -0.253514 -0.277363 0.048943 v -0.295343 -0.219487 0.078187 v -0.307375 -0.130515 0.087585 v -0.284717 -0.485150 -0.011882 v -0.265437 -0.509201 0.045670 v -0.252291 -0.532081 0.093104 v -0.252023 -0.529092 0.118204 v -0.209295 -0.566563 0.140208 v -0.212137 -0.561098 0.158993 v -0.186700 -0.590569 0.177394 v -0.161231 -0.615406 0.220832 v -0.132895 -0.626187 0.254568 v -0.085572 -0.637491 0.277364 v -0.098498 -0.621312 0.287820 v -0.052640 -0.624770 0.299491 v -0.000460 -0.636816 0.289369 v 0.020568 -0.627193 0.300205 v -0.335544 -0.013081 0.071764 v -0.321454 -0.016855 0.086806 v -0.330235 -0.086374 0.034641 v -0.353809 -0.078272 0.012641 v -0.305487 -0.119391 0.063337 v -0.302656 -0.155224 0.042187 v -0.341005 -0.114683 -0.005213 v -0.292611 -0.198847 0.015243 v -0.338129 -0.151865 -0.023745 v -0.265625 -0.260797 0.007547 v -0.254609 -0.302357 -0.021267 v -0.232421 -0.311552 0.008822 v -0.221932 -0.340770 -0.009653 v -0.190770 -0.351619 0.040054 v -0.204911 -0.371044 -0.002990 v -0.212411 -0.320606 0.030531 v -0.183178 -0.387099 0.035922 v -0.164272 -0.367573 0.125387 v -0.159190 -0.417838 0.096463 v -0.146191 -0.434383 0.145574 v -0.136185 -0.421413 0.190319 v -0.132146 -0.468419 0.180798 v -0.155540 -0.382216 0.167477 v -0.028134 -0.508686 0.248569 v -0.046672 -0.447501 0.288255 v -0.037440 -0.423162 0.316922 v 0.013221 -0.509442 0.249962 v -0.090196 -0.455379 0.248707 v -0.096472 -0.421121 0.275043 v -0.112158 -0.476896 0.211805 v -0.112134 -0.429315 0.236335 v -0.064292 -0.510282 0.233964 v -0.098266 -0.507494 0.215886 v -0.029725 -0.542202 0.231643 v -0.051660 -0.560588 0.225590 v -0.085027 -0.575666 0.221605 v -0.105826 -0.551125 0.209602 v -0.050381 -0.585940 0.230033 v -0.025369 -0.617695 0.244437 v 0.032831 -0.565138 0.226153 v 0.047773 -0.586662 0.230073 v -0.074857 -0.616470 0.241049 v 0.017713 -0.631061 0.255198 v -0.041382 -0.630552 0.255788 v -0.082766 -0.630189 0.249885 v -0.122652 -0.605283 0.211089 v -0.103421 -0.611313 0.227480 v -0.125694 -0.622133 0.223968 v -0.120504 -0.572421 0.201397 v -0.126716 -0.520349 0.188450 v -0.154413 -0.601147 0.182804 v -0.146182 -0.593112 0.177448 v -0.140718 -0.578750 0.174130 v -0.144609 -0.522927 0.156753 v -0.152504 -0.504322 0.134501 v -0.157361 -0.447332 0.095841 v -0.164434 -0.554702 0.121392 v -0.169212 -0.567851 0.126339 v -0.171273 -0.438903 0.076106 v -0.192063 -0.559648 0.108124 v -0.189055 -0.540770 0.087154 v -0.180948 -0.508501 0.091225 v -0.198462 -0.483773 0.068644 v -0.209434 -0.464583 0.050475 v -0.230968 -0.486876 0.020800 v -0.219090 -0.519693 0.054636 v -0.238275 -0.519126 0.044954 v -0.235315 -0.508797 0.030479 v -0.189098 -0.418894 0.038710 v -0.205487 -0.395336 -0.003070 v -0.236228 -0.423248 -0.034842 v -0.252922 -0.502303 0.005601 v -0.294629 -0.413014 -0.116170 v -0.302928 -0.378175 -0.133044 v -0.292868 -0.373090 -0.131161 v -0.303091 -0.430542 -0.110825 v -0.287799 -0.441895 -0.101624 v -0.282765 -0.470992 -0.070340 v -0.272193 -0.476037 -0.060199 v -0.256584 -0.455419 -0.057172 v -0.275157 -0.386099 -0.111234 v -0.269898 -0.367302 -0.105708 v -0.272570 -0.436990 -0.089504 v -0.259730 -0.421781 -0.078140 v -0.256085 -0.385849 -0.089740 v -0.268086 -0.355186 -0.097696 v -0.240020 -0.397330 -0.052392 v -0.240158 -0.368069 -0.049860 v -0.265600 -0.319549 -0.051848 v -0.285785 -0.268477 -0.048099 v -0.285963 -0.324997 -0.101767 v -0.299219 -0.345101 -0.132635 v -0.308940 -0.337771 -0.135063 v -0.332484 -0.267743 -0.132858 v -0.340133 -0.211571 -0.131644 v -0.331434 -0.222198 -0.123421 v -0.323777 -0.253817 -0.125629 v -0.296192 -0.288494 -0.101900 v -0.291530 -0.289340 -0.078669 v -0.306546 -0.250789 -0.063406 v -0.319939 -0.224297 -0.083003 v -0.339745 -0.167334 -0.111759 v -0.350728 -0.209627 -0.137994 v -0.344631 -0.163354 -0.126754 v -0.321302 -0.185475 -0.040357 v -0.353366 -0.174077 -0.141728 v -0.357466 -0.110812 -0.054344 v -0.305646 -0.216397 -0.043734 v -0.324188 -0.196614 -0.071251 v -0.339854 -0.154456 -0.083830 v -0.341886 -0.131752 -0.124538 v -0.347429 -0.130108 -0.097653 v -0.360495 -0.105784 -0.085241 v -0.346921 -0.113586 -0.109685 v -0.348497 -0.119604 -0.150386 v -0.336221 -0.102542 -0.134844 v -0.336400 -0.048118 -0.174700 v -0.318696 -0.030891 -0.159246 v -0.316625 -0.049118 -0.139603 v -0.361644 -0.109571 -0.163834 v -0.354721 -0.057217 -0.175281 v -0.363779 -0.189143 -0.139215 v -0.381526 -0.162239 -0.138548 v -0.374624 -0.120981 -0.156567 v -0.357847 -0.239599 -0.132229 v -0.326357 -0.326416 -0.131072 v -0.313473 -0.403969 -0.118820 v -0.283954 -0.478593 -0.047689 v -0.238937 -0.536237 0.086147 v -0.186491 -0.580516 0.149548 v -0.157536 -0.613827 0.206435 v -0.125018 -0.630689 0.242706 v -0.076625 -0.637362 0.268712 v -0.029122 -0.636958 0.269778 v -0.282052 -0.219960 0.043626 v -0.295763 -0.174497 0.071706 v -0.301400 -0.132326 0.082455 v -0.268435 -0.248999 0.040171 v -0.045217 -0.415363 0.330354 v -0.089856 -0.406390 0.309568 v -0.097801 -0.410624 0.286692 v -0.058769 -0.418679 0.311920 v -0.115841 -0.400257 0.287233 v -0.099759 -0.401009 0.302904 v -0.115764 -0.401387 0.267776 v -0.131818 -0.383640 0.265711 v 0.015211 -0.415293 0.327436 v -0.029573 -0.418215 0.328656 v -0.127031 -0.388195 0.256192 v -0.136329 -0.397896 0.216435 v -0.136033 -0.387790 0.246757 v -0.146983 -0.386210 0.221157 v -0.159694 -0.376633 0.187552 v -0.166543 -0.360036 0.155590 v -0.188118 -0.342182 0.066953 v -0.179886 -0.355333 0.106188 v -0.171109 -0.362960 0.123516 v -0.409224 -0.031657 -0.150711 v -0.405236 -0.091879 -0.135051 v -0.412720 -0.091703 -0.115517 v -0.428228 -0.051609 -0.120934 v -0.424650 -0.031352 -0.134442 v -0.401927 -0.013972 -0.152082 v -0.360214 -0.031418 -0.173086 v -0.337792 -0.020716 -0.175321 v -0.324243 -0.020878 -0.168418 v -0.356009 -0.005302 -0.158621 v -0.329976 -0.013257 -0.165632 v -0.346583 -0.004315 -0.150896 v -0.386229 -0.008291 -0.153853 v -0.416577 -0.015261 -0.137171 v -0.416629 -0.013115 -0.124153 v -0.420111 -0.028287 -0.108680 v -0.408708 -0.011625 -0.117304 v -0.427389 -0.033486 -0.116159 v -0.398274 -0.021524 -0.107035 v -0.376628 -0.006648 -0.120643 v -0.360347 -0.017038 -0.117136 v -0.322697 -0.032358 -0.130152 v -0.325175 -0.018109 -0.138045 v -0.315105 -0.033200 -0.137929 v -0.319560 -0.017172 -0.151128 v -0.377507 -0.000815 -0.136520 v -0.402207 -0.004295 -0.133939 v -0.333324 -0.094748 -0.125583 v -0.321939 -0.051108 -0.126407 v -0.426252 -0.055989 -0.107783 v -0.410954 -0.054266 -0.101829 v -0.377654 -0.041910 -0.109542 v -0.355423 -0.069164 -0.112868 v -0.340238 -0.090639 -0.119230 v -0.379814 -0.064778 -0.101971 v -0.361306 -0.088070 -0.101875 v -0.379369 -0.092128 -0.073091 v -0.386616 -0.073596 -0.092398 v -0.352215 -0.106555 -0.027581 v -0.367451 -0.105486 -0.038895 v -0.370521 -0.103372 -0.061166 v -0.362854 -0.095593 -0.014529 v -0.313256 -0.026850 0.100680 v -0.307921 -0.075872 0.093536 v -0.401682 -0.091747 -0.090424 v -0.390304 -0.091956 -0.081824 v -0.388631 -0.106413 -0.074965 v -0.378344 -0.105474 -0.052779 v -0.375036 -0.108241 -0.035716 v -0.368879 -0.099693 -0.005730 v -0.359282 -0.073434 0.017291 v -0.325760 -0.018488 0.099095 v -0.318270 -0.020891 0.110436 v -0.316209 -0.045033 0.106750 v -0.195205 -0.334225 0.082033 v -0.216720 -0.317531 0.045011 v -0.179633 -0.361162 0.166076 v -0.161547 -0.383794 0.219143 v -0.159435 -0.385165 0.233540 v -0.116877 -0.399382 0.305667 v -0.074959 -0.407294 0.323880 v -0.136847 -0.387124 0.275906 v -0.025925 -0.416441 0.333590 v -0.000460 -0.445910 0.347127 v -0.000460 -0.426964 0.348311 v -0.000460 -0.414265 0.339574 v 0.147861 -0.525603 0.271088 v 0.174024 -0.491838 0.251263 v 0.135676 -0.455996 0.288862 v 0.164097 -0.426835 0.262683 v 0.116665 -0.483211 0.294977 v 0.080169 -0.480625 0.315204 v 0.119998 -0.529459 0.289063 v 0.059544 -0.509087 0.313321 v 0.053292 -0.483765 0.322137 v 0.073084 -0.535018 0.306386 v 0.175923 -0.524194 0.234742 v 0.115946 -0.571079 0.291314 v 0.072860 -0.585160 0.309028 v 0.219419 -0.462740 0.202459 v 0.173999 -0.413611 0.247182 v 0.202511 -0.421810 0.203321 v 0.238078 -0.407729 0.136856 v 0.198856 -0.375922 0.165293 v 0.245966 -0.379339 0.117003 v 0.266508 -0.382640 0.079915 v 0.227013 -0.373416 0.138091 v 0.264951 -0.338035 0.103982 v 0.313412 -0.357018 0.006464 v 0.293492 -0.290711 0.079217 v 0.345612 -0.256833 0.016657 v 0.303816 -0.248750 0.079438 v 0.331928 -0.206799 0.054634 v 0.338653 -0.142239 0.056028 v 0.337491 -0.021805 0.090111 v 0.318649 -0.111481 0.086369 v 0.353179 -0.057851 0.051218 v 0.324741 -0.043083 0.103978 v 0.328651 -0.019128 0.102796 v 0.321030 -0.023710 0.111608 v 0.350566 -0.014932 0.056985 v 0.350785 -0.015909 0.052311 v 0.214418 -0.497058 0.205912 v 0.245844 -0.516204 0.142112 v 0.250785 -0.439082 0.118342 v 0.276236 -0.428471 0.049266 v 0.362279 -0.233353 -0.006008 v 0.355940 -0.150841 0.019630 v 0.361604 -0.075974 0.022641 v 0.079898 -0.605867 0.304045 v 0.119369 -0.599494 0.284697 v 0.150596 -0.603535 0.248959 v 0.184427 -0.580901 0.196749 v 0.193617 -0.558645 0.191418 v 0.234549 -0.525173 0.165716 v 0.273881 -0.488335 0.037032 v 0.282769 -0.466730 0.015902 v 0.337638 -0.342037 -0.045147 v 0.357739 -0.283242 -0.034530 v 0.374580 -0.202043 -0.034758 v 0.373626 -0.246171 -0.058302 v 0.375765 -0.125477 -0.044023 v 0.384221 -0.175690 -0.069523 v 0.323972 -0.399047 -0.061833 v 0.278215 -0.490075 0.010167 v 0.371923 -0.246102 -0.108010 v 0.387795 -0.175609 -0.096708 v 0.386864 -0.124385 -0.073799 v 0.399516 -0.117545 -0.097213 v 0.398674 -0.120585 -0.119788 v 0.380406 -0.176580 -0.130841 v 0.359894 -0.261134 -0.124510 v 0.336353 -0.356528 -0.106696 v 0.314935 -0.418918 -0.108306 v 0.213901 -0.368703 0.144422 v 0.200422 -0.364401 0.148378 v 0.190752 -0.399406 0.207351 v 0.117742 -0.430797 0.329058 v 0.109119 -0.460058 0.313511 v 0.101760 -0.435000 0.345308 v 0.089794 -0.441076 0.347501 v 0.062826 -0.445575 0.352111 v 0.073634 -0.432864 0.353481 v 0.036063 -0.427679 0.355529 v 0.058072 -0.425346 0.351532 v 0.043242 -0.424189 0.350890 v 0.026577 -0.440053 0.353947 v 0.070978 -0.422446 0.347666 v 0.080755 -0.416911 0.347144 v 0.087574 -0.421878 0.343736 v 0.036534 -0.420691 0.350080 v 0.129583 -0.407390 0.311283 v 0.114501 -0.403305 0.316949 v 0.110967 -0.426933 0.339527 v 0.137911 -0.407863 0.305473 v 0.142009 -0.400174 0.295629 v 0.149797 -0.396135 0.282617 v 0.163543 -0.396590 0.268835 v 0.182003 -0.387042 0.224377 v 0.169925 -0.386880 0.247921 v 0.175252 -0.389800 0.242079 v 0.189370 -0.376099 0.192106 v 0.188492 -0.365402 0.173244 v 0.197082 -0.360856 0.141061 v 0.199791 -0.350907 0.121899 v 0.226357 -0.346494 0.122048 v 0.246609 -0.338635 0.112976 v 0.242174 -0.327281 0.101782 v 0.234076 -0.319586 0.081350 v 0.252970 -0.304924 0.081533 v 0.268113 -0.312569 0.097389 v 0.293564 -0.270301 0.084005 v 0.290122 -0.257624 0.082909 v 0.280188 -0.262190 0.076251 v 0.267944 -0.266866 0.063579 v 0.230043 -0.307775 0.041702 v 0.252592 -0.277364 0.048944 v 0.294422 -0.219486 0.078187 v 0.306454 -0.130514 0.087585 v 0.283796 -0.485150 -0.011884 v 0.264516 -0.509201 0.045671 v 0.251372 -0.532080 0.093103 v 0.251104 -0.529091 0.118202 v 0.208374 -0.566563 0.140208 v 0.211219 -0.561095 0.158994 v 0.185780 -0.590567 0.177391 v 0.160311 -0.615405 0.220832 v 0.122119 -0.631082 0.257124 v 0.120372 -0.618084 0.273918 v 0.077605 -0.637345 0.279485 v 0.075264 -0.624058 0.295139 v 0.334622 -0.013081 0.071765 v 0.320534 -0.016855 0.086805 v 0.352888 -0.078272 0.012641 v 0.329314 -0.086374 0.034641 v 0.304564 -0.119403 0.063333 v 0.340084 -0.114684 -0.005212 v 0.301733 -0.155228 0.042187 v 0.291691 -0.198850 0.015238 v 0.337208 -0.151865 -0.023745 v 0.264703 -0.260799 0.007548 v 0.253689 -0.302357 -0.021269 v 0.221012 -0.340767 -0.009651 v 0.231500 -0.311552 0.008823 v 0.203989 -0.371044 -0.002989 v 0.189849 -0.351619 0.040054 v 0.182259 -0.387097 0.035919 v 0.163350 -0.367573 0.125388 v 0.158270 -0.417836 0.096462 v 0.145271 -0.434370 0.145578 v 0.131223 -0.468418 0.180804 v 0.135262 -0.421420 0.190321 v 0.154620 -0.382212 0.167475 v 0.045750 -0.447497 0.288258 v 0.041626 -0.423162 0.314771 v 0.095554 -0.421118 0.275043 v 0.089275 -0.455383 0.248704 v 0.111237 -0.476900 0.211803 v 0.111213 -0.429316 0.236335 v 0.036615 -0.511194 0.244329 v 0.097348 -0.507492 0.215886 v 0.063371 -0.510281 0.233964 v 0.045627 -0.543171 0.228943 v 0.104905 -0.551127 0.209602 v 0.084107 -0.575666 0.221605 v 0.037247 -0.617365 0.244734 v 0.073936 -0.616470 0.241049 v 0.069144 -0.630391 0.254172 v 0.102501 -0.611315 0.227480 v 0.121729 -0.605281 0.211090 v 0.124772 -0.622134 0.223969 v 0.119584 -0.572416 0.201395 v 0.125795 -0.520351 0.188451 v 0.153492 -0.601147 0.182803 v 0.145266 -0.593105 0.177435 v 0.139796 -0.578750 0.174131 v 0.143684 -0.522918 0.156759 v 0.151581 -0.504321 0.134506 v 0.156441 -0.447329 0.095839 v 0.163513 -0.554702 0.121392 v 0.168291 -0.567851 0.126339 v 0.170353 -0.438901 0.076104 v 0.208512 -0.464581 0.050475 v 0.188135 -0.540769 0.087153 v 0.191142 -0.559649 0.108125 v 0.180023 -0.508500 0.091228 v 0.197542 -0.483772 0.068644 v 0.230050 -0.486871 0.020792 v 0.218169 -0.519694 0.054637 v 0.234394 -0.508798 0.030480 v 0.237353 -0.519127 0.044956 v 0.188183 -0.418888 0.038698 v 0.204563 -0.395338 -0.003065 v 0.235312 -0.423250 -0.034850 v 0.252001 -0.502303 0.005603 v 0.302007 -0.378175 -0.133044 v 0.293708 -0.413011 -0.116171 v 0.291947 -0.373091 -0.131162 v 0.302170 -0.430543 -0.110825 v 0.286878 -0.441897 -0.101623 v 0.281844 -0.470992 -0.070340 v 0.271273 -0.476036 -0.060201 v 0.255664 -0.455417 -0.057176 v 0.274240 -0.386096 -0.111240 v 0.268976 -0.367302 -0.105706 v 0.271647 -0.436989 -0.089502 v 0.258812 -0.421781 -0.078145 v 0.255165 -0.385846 -0.089742 v 0.267162 -0.355185 -0.097690 v 0.239097 -0.397330 -0.052388 v 0.239238 -0.368069 -0.049860 v 0.264676 -0.319553 -0.051847 v 0.284864 -0.268477 -0.048099 v 0.285041 -0.324996 -0.101763 v 0.298297 -0.345101 -0.132635 v 0.308019 -0.337771 -0.135063 v 0.339211 -0.211571 -0.131644 v 0.331563 -0.267743 -0.132858 v 0.322852 -0.253829 -0.125628 v 0.330515 -0.222188 -0.123421 v 0.295272 -0.288491 -0.101901 v 0.290610 -0.289338 -0.078668 v 0.305625 -0.250789 -0.063406 v 0.319020 -0.224294 -0.083004 v 0.338825 -0.167331 -0.111757 v 0.343710 -0.163354 -0.126753 v 0.349807 -0.209629 -0.137994 v 0.320380 -0.185474 -0.040352 v 0.352444 -0.174080 -0.141727 v 0.356545 -0.110812 -0.054345 v 0.304723 -0.216399 -0.043733 v 0.323263 -0.196616 -0.071240 v 0.338934 -0.154452 -0.083831 v 0.346512 -0.130098 -0.097647 v 0.340965 -0.131753 -0.124539 v 0.359574 -0.105783 -0.085243 v 0.346002 -0.113582 -0.109682 v 0.347577 -0.119611 -0.150383 v 0.335298 -0.102539 -0.134843 v 0.315705 -0.049118 -0.139603 v 0.317775 -0.030891 -0.159246 v 0.335478 -0.048115 -0.174700 v 0.360723 -0.109572 -0.163834 v 0.353800 -0.057218 -0.175280 v 0.362857 -0.189146 -0.139214 v 0.373704 -0.120982 -0.156567 v 0.380606 -0.162239 -0.138547 v 0.356926 -0.239597 -0.132229 v 0.325436 -0.326416 -0.131072 v 0.312551 -0.403969 -0.118821 v 0.283033 -0.478593 -0.047690 v 0.238016 -0.536237 0.086148 v 0.185570 -0.580517 0.149549 v 0.156615 -0.613826 0.206434 v 0.124096 -0.630689 0.242706 v 0.075703 -0.637362 0.268712 v 0.026374 -0.636909 0.270280 v 0.281133 -0.219955 0.043623 v 0.294840 -0.174508 0.071704 v 0.300480 -0.132315 0.082456 v 0.267515 -0.248998 0.040169 v 0.044291 -0.415363 0.330353 v 0.088935 -0.406390 0.309568 v 0.096882 -0.410624 0.286690 v 0.057848 -0.418678 0.311920 v 0.098838 -0.401008 0.302904 v 0.114920 -0.400257 0.287233 v 0.114844 -0.401386 0.267774 v 0.130897 -0.383640 0.265711 v 0.028651 -0.418215 0.328655 v 0.126110 -0.388195 0.256192 v 0.135409 -0.397897 0.216433 v 0.135112 -0.387790 0.246757 v 0.146061 -0.386210 0.221157 v 0.158772 -0.376634 0.187553 v 0.165623 -0.360036 0.155590 v 0.187197 -0.342182 0.066952 v 0.178961 -0.355337 0.106195 v 0.170187 -0.362961 0.123515 v 0.408300 -0.031658 -0.150713 v 0.404313 -0.091881 -0.135052 v 0.411800 -0.091701 -0.115517 v 0.427307 -0.051609 -0.120935 v 0.423729 -0.031353 -0.134441 v 0.359292 -0.031418 -0.173086 v 0.401004 -0.013972 -0.152083 v 0.336871 -0.020716 -0.175321 v 0.323322 -0.020878 -0.168418 v 0.355088 -0.005302 -0.158621 v 0.329055 -0.013257 -0.165632 v 0.345662 -0.004315 -0.150896 v 0.385307 -0.008292 -0.153854 v 0.415658 -0.015263 -0.137172 v 0.415709 -0.013115 -0.124152 v 0.419190 -0.028288 -0.108680 v 0.426468 -0.033488 -0.116158 v 0.407787 -0.011625 -0.117304 v 0.397354 -0.021524 -0.107035 v 0.375708 -0.006648 -0.120643 v 0.359426 -0.017038 -0.117136 v 0.321776 -0.032357 -0.130152 v 0.324255 -0.018109 -0.138046 v 0.314184 -0.033199 -0.137928 v 0.318640 -0.017171 -0.151130 v 0.376587 -0.000815 -0.136520 v 0.401289 -0.004295 -0.133939 v 0.332401 -0.094746 -0.125585 v 0.321017 -0.051110 -0.126407 v 0.425329 -0.055991 -0.107782 v 0.410031 -0.054267 -0.101829 v 0.376734 -0.041911 -0.109542 v 0.354502 -0.069164 -0.112868 v 0.339316 -0.090639 -0.119231 v 0.378893 -0.064779 -0.101971 v 0.360386 -0.088070 -0.101875 v 0.385696 -0.073596 -0.092398 v 0.351293 -0.106554 -0.027579 v 0.366530 -0.105486 -0.038894 v 0.369598 -0.103372 -0.061166 v 0.378448 -0.092129 -0.073090 v 0.361933 -0.095593 -0.014530 v 0.312335 -0.026849 0.100678 v 0.306999 -0.075878 0.093534 v 0.389382 -0.091955 -0.081824 v 0.400762 -0.091743 -0.090425 v 0.387709 -0.106414 -0.074963 v 0.377424 -0.105474 -0.052779 v 0.374114 -0.108239 -0.035713 v 0.367958 -0.099693 -0.005730 v 0.358361 -0.073435 0.017290 v 0.324839 -0.018487 0.099095 v 0.317348 -0.020891 0.110436 v 0.315288 -0.045031 0.106750 v 0.194284 -0.334225 0.082036 v 0.211491 -0.320605 0.030530 v 0.215803 -0.317529 0.045009 v 0.178712 -0.361162 0.166077 v 0.160625 -0.383794 0.219143 v 0.158515 -0.385165 0.233540 v 0.115958 -0.399383 0.305666 v 0.074039 -0.407293 0.323880 v 0.135926 -0.387124 0.275905 v 0.142316 -0.466101 0.188910 v 0.144201 -0.461731 0.188480 v 0.135748 -0.436852 0.196519 v 0.159503 -0.462090 0.192918 v 0.154996 -0.471026 0.190418 v 0.152955 -0.473760 0.196397 v 0.138599 -0.466544 0.199540 v 0.131655 -0.445842 0.210157 v 0.142967 -0.444869 0.218664 v 0.130550 -0.355646 0.248401 v 0.140623 -0.343297 0.233823 v 0.124597 -0.349622 0.240761 v 0.140153 -0.343893 0.213604 v 0.151288 -0.348140 0.210482 v 0.159314 -0.349058 0.215971 v 0.137575 -0.378119 0.203514 v 0.138894 -0.362375 0.204674 v 0.166913 -0.398891 0.235265 v 0.169132 -0.363034 0.256810 v 0.121698 -0.383623 0.230032 v 0.127289 -0.355952 0.245921 v 0.140721 -0.381085 0.204398 v 0.129907 -0.402955 0.214717 v 0.133425 -0.416196 0.212431 v 0.131233 -0.423552 0.205106 v 0.178695 -0.357865 0.253926 v 0.123821 -0.396277 0.228404 v 0.121363 -0.414608 0.229305 v 0.151612 -0.470260 0.202937 v 0.155417 -0.454619 0.214648 v 0.160332 -0.456222 0.209120 v 0.142071 -0.470138 0.193180 v 0.177525 -0.382948 0.212321 v 0.186108 -0.351611 0.219160 v 0.176083 -0.393357 0.217085 v 0.189387 -0.350570 0.223681 v 0.172157 -0.418719 0.216113 v 0.121699 -0.423818 0.224885 v 0.165951 -0.427229 0.225851 v 0.187047 -0.349149 0.242512 v 0.166939 -0.358870 0.255473 v 0.148106 -0.360867 0.252059 v 0.176619 -0.350319 0.214861 v 0.174438 -0.345959 0.240244 v 0.160791 -0.418436 0.232841 v 0.131855 -0.385229 0.208080 v 0.129351 -0.401127 0.236660 v 0.174252 -0.388697 0.211856 v 0.162613 -0.398314 0.237933 v 0.127028 -0.342306 0.230143 v 0.130070 -0.340741 0.226774 v 0.183823 -0.374564 0.233028 v 0.131145 -0.364625 0.207801 v 0.175425 -0.397813 0.219356 v 0.157218 -0.353143 0.232149 v 0.168339 -0.349386 0.222701 v 0.145335 -0.384062 0.246455 v 0.127017 -0.414418 0.217676 v 0.158239 -0.385520 0.204013 v 0.168168 -0.437694 0.209980 v 0.126862 -0.425628 0.206150 v 0.135028 -0.411256 0.238776 v 0.127608 -0.378296 0.208108 v 0.125055 -0.363528 0.217889 v 0.145914 -0.353817 0.241713 v 0.159939 -0.421349 0.209511 v 0.189064 -0.351116 0.240225 v 0.138308 -0.403195 0.239324 v 0.158071 -0.356198 0.245293 v 0.162914 -0.379076 0.205114 v 0.128064 -0.395534 0.219219 v 0.151411 -0.416559 0.210614 v 0.157469 -0.453178 0.219784 v 0.155738 -0.457891 0.217907 v 0.152670 -0.459887 0.223149 v 0.159058 -0.420632 0.247605 v 0.147653 -0.452924 0.213831 v 0.144929 -0.456262 0.216715 v 0.139821 -0.454166 0.221996 v 0.136624 -0.440502 0.241019 v 0.123891 -0.361761 0.280327 v 0.128617 -0.347250 0.264996 v 0.135093 -0.349311 0.246013 v 0.153019 -0.355236 0.249856 v 0.133875 -0.372290 0.236076 v 0.150490 -0.394947 0.271908 v 0.149989 -0.363260 0.293093 v 0.114443 -0.367447 0.269606 v 0.136974 -0.385410 0.236346 v 0.126023 -0.409081 0.234959 v 0.131291 -0.418360 0.229313 v 0.116139 -0.414977 0.250729 v 0.117234 -0.422784 0.240912 v 0.149186 -0.456237 0.230234 v 0.130122 -0.346724 0.258970 v 0.162930 -0.381426 0.254750 v 0.161922 -0.390080 0.259772 v 0.114618 -0.355421 0.271054 v 0.168837 -0.354303 0.273544 v 0.170671 -0.356189 0.264990 v 0.125197 -0.419020 0.231197 v 0.156774 -0.418192 0.242077 v 0.122027 -0.426007 0.250580 v 0.144916 -0.423666 0.259453 v 0.151528 -0.416148 0.261405 v 0.141934 -0.364575 0.291049 v 0.137127 -0.398242 0.272416 v 0.160620 -0.355869 0.254758 v 0.143897 -0.396209 0.274078 v 0.129876 -0.387374 0.236843 v 0.116666 -0.398415 0.253960 v 0.162216 -0.386784 0.256014 v 0.120830 -0.347085 0.258456 v 0.152531 -0.352510 0.279999 v 0.136457 -0.361594 0.281228 v 0.129026 -0.364483 0.283967 v 0.150249 -0.376675 0.241716 v 0.125308 -0.376858 0.239116 v 0.163073 -0.355021 0.284914 v 0.162505 -0.375396 0.275302 v 0.157068 -0.395712 0.263212 v 0.115989 -0.373016 0.253935 v 0.122258 -0.400408 0.244733 v 0.124401 -0.404061 0.265232 v 0.144941 -0.415802 0.234371 v 0.126493 -0.401599 0.267293 v 0.130425 -0.422114 0.259645 v 0.145398 -0.447070 0.214156 v 0.147946 -0.385600 0.239788 v 0.141621 -0.355714 0.263360 v 0.150925 -0.355797 0.265507 v 0.116486 -0.463742 0.270038 v 0.115614 -0.470783 0.272507 v 0.127917 -0.458452 0.271059 v 0.122542 -0.471896 0.272280 v 0.129043 -0.456663 0.282981 v 0.139954 -0.405477 0.285792 v 0.114252 -0.469404 0.277678 v 0.123886 -0.350942 0.300728 v 0.125762 -0.350244 0.293392 v 0.125497 -0.361141 0.289987 v 0.131806 -0.393586 0.316559 v 0.134723 -0.372107 0.315162 v 0.112143 -0.381609 0.313527 v 0.110222 -0.424001 0.272374 v 0.135192 -0.356965 0.300051 v 0.120232 -0.360567 0.311026 v 0.100844 -0.434818 0.297391 v 0.121439 -0.471202 0.278859 v 0.100983 -0.410765 0.297564 v 0.142203 -0.386469 0.285626 v 0.141291 -0.372194 0.290180 v 0.130110 -0.433114 0.274544 v 0.103941 -0.410553 0.305200 v 0.135692 -0.412213 0.303322 v 0.128154 -0.412632 0.310679 v 0.130372 -0.350484 0.297423 v 0.129211 -0.363883 0.313573 v 0.106146 -0.405230 0.281649 v 0.115789 -0.400906 0.277701 v 0.134463 -0.402861 0.279891 v 0.114653 -0.407520 0.312878 v 0.141530 -0.375290 0.305020 v 0.116495 -0.429513 0.305382 v 0.100503 -0.431177 0.279494 v 0.098236 -0.435464 0.290426 v 0.132843 -0.372647 0.284873 v 0.126560 -0.378291 0.320133 v 0.139664 -0.409675 0.293321 v -0.144646 -0.462177 0.188383 v -0.143059 -0.466583 0.189146 v -0.137633 -0.436339 0.196633 v -0.160426 -0.462089 0.192919 v -0.155918 -0.471026 0.190418 v -0.153878 -0.473760 0.196396 v -0.139647 -0.466563 0.199672 v -0.132576 -0.445840 0.210158 v -0.141548 -0.343297 0.233824 v -0.125519 -0.349622 0.240760 v -0.146835 -0.353817 0.241714 v -0.141076 -0.343893 0.213603 v -0.152210 -0.348140 0.210482 v -0.160237 -0.349058 0.215971 v -0.139818 -0.362374 0.204674 v -0.167836 -0.398891 0.235265 v -0.170055 -0.363033 0.256810 v -0.122589 -0.383989 0.230410 v -0.141644 -0.381086 0.204398 v -0.130829 -0.402953 0.214718 v -0.134347 -0.416196 0.212431 v -0.132157 -0.423553 0.205104 v -0.179617 -0.357865 0.253927 v -0.130253 -0.355213 0.247870 v -0.122434 -0.412510 0.229554 v -0.156421 -0.459146 0.211807 v -0.142994 -0.470138 0.193178 v -0.178447 -0.382950 0.212320 v -0.187032 -0.351610 0.219162 v -0.177006 -0.393358 0.217086 v -0.190311 -0.350570 0.223682 v -0.173079 -0.418718 0.216114 v -0.122620 -0.423816 0.224887 v -0.166873 -0.427226 0.225854 v -0.187969 -0.349148 0.242512 v -0.167862 -0.358870 0.255473 v -0.149028 -0.360867 0.252059 v -0.150986 -0.468644 0.204431 v -0.177543 -0.350318 0.214862 v -0.175360 -0.345959 0.240244 v -0.161714 -0.418434 0.232841 v -0.132778 -0.385228 0.208080 v -0.138497 -0.378116 0.203514 v -0.130108 -0.400320 0.236432 v -0.124740 -0.395847 0.228402 v -0.175175 -0.388699 0.211857 v -0.163537 -0.398314 0.237933 v -0.127950 -0.342306 0.230144 v -0.130993 -0.340741 0.226773 v -0.184746 -0.374563 0.233028 v -0.132067 -0.364620 0.207803 v -0.142622 -0.434570 0.224563 v -0.176347 -0.397814 0.219357 v -0.158140 -0.353143 0.232152 v -0.169262 -0.349386 0.222700 v -0.146256 -0.384063 0.246455 v -0.127939 -0.414419 0.217676 v -0.159161 -0.385519 0.204013 v -0.169091 -0.437693 0.209981 v -0.127983 -0.425314 0.206143 v -0.135950 -0.411256 0.238776 v -0.161254 -0.456227 0.209118 v -0.128532 -0.378299 0.208107 v -0.125979 -0.363526 0.217888 v -0.160863 -0.421349 0.209512 v -0.189986 -0.351116 0.240227 v -0.139230 -0.403195 0.239324 v -0.158994 -0.356198 0.245292 v -0.163838 -0.379079 0.205114 v -0.128987 -0.395535 0.219221 v -0.152334 -0.416560 0.210614 v -0.143924 -0.444739 0.215604 v -0.157076 -0.456252 0.221943 v -0.160004 -0.420739 0.247520 v -0.148118 -0.452915 0.213659 v -0.141289 -0.454460 0.222833 v -0.124813 -0.361761 0.280327 v -0.129540 -0.347250 0.264996 v -0.136015 -0.349311 0.246013 v -0.153943 -0.355236 0.249856 v -0.134798 -0.372291 0.236075 v -0.151411 -0.394947 0.271910 v -0.150912 -0.363259 0.293094 v -0.115367 -0.367439 0.269610 v -0.137895 -0.385409 0.236346 v -0.126945 -0.409079 0.234959 v -0.132213 -0.418360 0.229313 v -0.117062 -0.414977 0.250730 v -0.118156 -0.422784 0.240913 v -0.150109 -0.456237 0.230234 v -0.144547 -0.455850 0.216965 v -0.131044 -0.346723 0.258972 v -0.163235 -0.387654 0.256868 v -0.171934 -0.354935 0.267971 v -0.115540 -0.355420 0.271052 v -0.170844 -0.356061 0.263821 v -0.157699 -0.418190 0.242080 v -0.145838 -0.423666 0.259453 v -0.152451 -0.416145 0.261407 v -0.163996 -0.355021 0.284914 v -0.142856 -0.364576 0.291049 v -0.138049 -0.398242 0.272416 v -0.161543 -0.355869 0.254758 v -0.144820 -0.396209 0.274078 v -0.130799 -0.387374 0.236843 v -0.117589 -0.398415 0.253960 v -0.159649 -0.386282 0.250784 v -0.121754 -0.347085 0.258456 v -0.153452 -0.352510 0.279999 v -0.137380 -0.361594 0.281228 v -0.129948 -0.364483 0.283966 v -0.151168 -0.376678 0.241714 v -0.128901 -0.372856 0.238474 v -0.163805 -0.381346 0.270456 v -0.161321 -0.392677 0.260429 v -0.121481 -0.379587 0.245010 v -0.123372 -0.400027 0.244613 v -0.152171 -0.459946 0.222323 v -0.125323 -0.404062 0.265232 v -0.122950 -0.426009 0.250577 v -0.137552 -0.440509 0.241013 v -0.126120 -0.419019 0.231197 v -0.145864 -0.415802 0.234371 v -0.127415 -0.401600 0.267293 v -0.131349 -0.422113 0.259647 v -0.157935 -0.450209 0.220169 v -0.156317 -0.457848 0.217559 v -0.148868 -0.385601 0.239788 v -0.142543 -0.355713 0.263359 v -0.151850 -0.355797 0.265505 v -0.116801 -0.368051 0.256121 v -0.117409 -0.463741 0.270038 v -0.116536 -0.470782 0.272506 v -0.128840 -0.458453 0.271059 v -0.123465 -0.471895 0.272280 v -0.129963 -0.456670 0.282980 v -0.140877 -0.405477 0.285792 v -0.115175 -0.469403 0.277679 v -0.125188 -0.350433 0.300424 v -0.126685 -0.350244 0.293392 v -0.126420 -0.361141 0.289987 v -0.132728 -0.393585 0.316559 v -0.135646 -0.372109 0.315163 v -0.113065 -0.381610 0.313527 v -0.111145 -0.423997 0.272374 v -0.134127 -0.353528 0.298268 v -0.121155 -0.360567 0.311027 v -0.101766 -0.434819 0.297390 v -0.122363 -0.471201 0.278860 v -0.101905 -0.410767 0.297564 v -0.143126 -0.386468 0.285626 v -0.142213 -0.372196 0.290178 v -0.131032 -0.433115 0.274543 v -0.104864 -0.410553 0.305200 v -0.129076 -0.412629 0.310680 v -0.136615 -0.412214 0.303321 v -0.130136 -0.363884 0.313574 v -0.107069 -0.405231 0.281650 v -0.116713 -0.400905 0.277702 v -0.135386 -0.402861 0.279891 v -0.115573 -0.407524 0.312876 v -0.142453 -0.375287 0.305019 v -0.117416 -0.429515 0.305381 v -0.101425 -0.431177 0.279495 v -0.099159 -0.435464 0.290427 v -0.133767 -0.372647 0.284873 v -0.127482 -0.378290 0.320133 v -0.140587 -0.409678 0.293322 v 0.210551 -0.337756 0.070749 v 0.210535 -0.353320 0.067505 v 0.207458 -0.349950 0.075980 v 0.212743 -0.326498 0.071238 v 0.206312 -0.347582 0.083072 v 0.203301 -0.354524 0.095277 v 0.206022 -0.343014 0.105965 v 0.247450 -0.352936 0.079688 v 0.246170 -0.355465 0.091813 v 0.240645 -0.367200 0.105226 v 0.196067 -0.299041 0.111244 v 0.204478 -0.296673 0.108218 v 0.195951 -0.296977 0.102948 v 0.204343 -0.301908 0.116990 v 0.199301 -0.299365 0.092522 v 0.211433 -0.305912 0.119160 v 0.201048 -0.295395 0.084103 v 0.206510 -0.293566 0.073885 v 0.213192 -0.294467 0.071125 v 0.215269 -0.292194 0.077700 v 0.225439 -0.298665 0.073581 v 0.209204 -0.306221 0.070849 v 0.245245 -0.366301 0.072334 v 0.237999 -0.357406 0.073439 v 0.207777 -0.350972 0.085587 v 0.196200 -0.309785 0.112097 v 0.202268 -0.330512 0.104351 v 0.253484 -0.316485 0.089530 v 0.249878 -0.335312 0.083176 v 0.239213 -0.344778 0.114873 v 0.240176 -0.314612 0.121899 v 0.215858 -0.341727 0.068938 v 0.227689 -0.368483 0.111911 v 0.236123 -0.296582 0.119718 v 0.225594 -0.299715 0.122920 v 0.242810 -0.292624 0.081480 v 0.244867 -0.291923 0.092007 v 0.238577 -0.296253 0.104566 v 0.231970 -0.302144 0.125075 v 0.251136 -0.300351 0.084422 v 0.241168 -0.302048 0.120562 v 0.233096 -0.296283 0.102993 v 0.195201 -0.310551 0.101945 v 0.220644 -0.301140 0.070312 v 0.245598 -0.300615 0.105555 v 0.242442 -0.377943 0.099787 v 0.220386 -0.367697 0.090366 v 0.212220 -0.374995 0.105256 v 0.216165 -0.371631 0.069613 v 0.229182 -0.369407 0.092230 v 0.216635 -0.358938 0.086800 v 0.233613 -0.389004 0.092712 v 0.240240 -0.379355 0.104125 v 0.245048 -0.368085 0.083275 v 0.242966 -0.381469 0.071390 v 0.211959 -0.374976 0.100335 v 0.219195 -0.380078 0.095433 v 0.235538 -0.369351 0.084303 v 0.228103 -0.296221 0.114796 v 0.206217 -0.299789 0.094465 v 0.223583 -0.390995 0.090269 v 0.230971 -0.383562 0.066203 v 0.230319 -0.374807 0.081850 v 0.245091 -0.374693 0.084891 v 0.208156 -0.331966 0.109782 v 0.240119 -0.361316 0.093380 v 0.230204 -0.365108 0.090026 v 0.236202 -0.371398 0.109881 v 0.225565 -0.371488 0.063740 v 0.218518 -0.364755 0.063928 v 0.216666 -0.387152 0.093116 v 0.235016 -0.291633 0.090095 v 0.226234 -0.309089 0.124285 v 0.239151 -0.366806 0.097203 v 0.249322 -0.367702 0.076609 v 0.233626 -0.377712 0.107052 v 0.242763 -0.332316 0.077598 v 0.199241 -0.302637 0.116488 v 0.204143 -0.309580 0.117690 v 0.236404 -0.387132 0.097718 v 0.250460 -0.336685 0.091418 v 0.208498 -0.358619 0.089055 v 0.222621 -0.296877 0.083263 v 0.204972 -0.359467 0.103141 v 0.216589 -0.303576 0.096522 v 0.207356 -0.325400 0.077278 v 0.203425 -0.311981 0.077376 v 0.239327 -0.376782 0.097416 v 0.231418 -0.347142 0.115975 v 0.218995 -0.363685 0.082477 v 0.218679 -0.326468 0.070927 v 0.216867 -0.373125 0.096081 v 0.241051 -0.298171 0.077113 v 0.233571 -0.380407 0.065722 v 0.222734 -0.388213 0.089975 v 0.247804 -0.376229 0.082125 v 0.250914 -0.373778 0.080697 v 0.251598 -0.303073 0.096244 v 0.201775 -0.329363 0.095727 v 0.246627 -0.312606 0.113172 v 0.219906 -0.371863 0.076318 v 0.214811 -0.302084 0.109522 v 0.212213 -0.291683 0.082389 v 0.210520 -0.363172 0.106130 v 0.214862 -0.383194 0.100197 v 0.245622 -0.373904 0.074851 v 0.244341 -0.341679 0.109912 v 0.218648 -0.372289 0.065212 v 0.169347 -0.360419 0.112662 v 0.171133 -0.365964 0.109893 v 0.164004 -0.366548 0.135596 v 0.165964 -0.375457 0.143143 v 0.214195 -0.367253 0.112356 v 0.215285 -0.371381 0.121481 v 0.211520 -0.366503 0.140950 v 0.212088 -0.379863 0.135428 v 0.207150 -0.366606 0.147903 v 0.175184 -0.374946 0.146527 v 0.160293 -0.325427 0.154929 v 0.152052 -0.324930 0.150109 v 0.163268 -0.322259 0.148309 v 0.151008 -0.322717 0.141772 v 0.158796 -0.323052 0.133406 v 0.175966 -0.330921 0.155738 v 0.157006 -0.316731 0.123502 v 0.161650 -0.315740 0.110429 v 0.167377 -0.315439 0.108287 v 0.182117 -0.318577 0.112024 v 0.167811 -0.327997 0.106071 v 0.168057 -0.373405 0.115941 v 0.168001 -0.371971 0.125255 v 0.219148 -0.378600 0.112555 v 0.213704 -0.377723 0.107991 v 0.208839 -0.363895 0.108182 v 0.193396 -0.367388 0.110277 v 0.164209 -0.390134 0.135831 v 0.206526 -0.388793 0.141014 v 0.168243 -0.347356 0.107404 v 0.160972 -0.333416 0.109008 v 0.153423 -0.343994 0.142620 v 0.164099 -0.360158 0.144962 v 0.215660 -0.342058 0.115642 v 0.209049 -0.352997 0.155010 v 0.212675 -0.352912 0.151029 v 0.186277 -0.367967 0.108980 v 0.174373 -0.361593 0.110048 v 0.198263 -0.378225 0.147131 v 0.203638 -0.320800 0.154608 v 0.196593 -0.324181 0.161144 v 0.200372 -0.314073 0.113277 v 0.209131 -0.312943 0.120912 v 0.199776 -0.312020 0.127874 v 0.197984 -0.318700 0.140041 v 0.205334 -0.327888 0.161065 v 0.159192 -0.314596 0.115563 v 0.154768 -0.335694 0.154043 v 0.212355 -0.317219 0.117125 v 0.212585 -0.357801 0.112540 v 0.174434 -0.345914 0.105576 v 0.209332 -0.321227 0.140604 v 0.206371 -0.395092 0.141257 v 0.168850 -0.376376 0.126085 v 0.209138 -0.388015 0.114227 v 0.213226 -0.375094 0.126928 v 0.173597 -0.389303 0.100695 v 0.175645 -0.400346 0.140011 v 0.212018 -0.335607 0.151567 v 0.192760 -0.408195 0.120731 v 0.187529 -0.392280 0.123269 v 0.176763 -0.399880 0.098126 v 0.174537 -0.382248 0.109187 v 0.197862 -0.411399 0.129561 v 0.205112 -0.396056 0.105538 v 0.197289 -0.408581 0.096278 v 0.169207 -0.399669 0.123948 v 0.155706 -0.334956 0.116341 v 0.194644 -0.376473 0.124270 v 0.192911 -0.395037 0.106629 v 0.193491 -0.321171 0.152786 v 0.206858 -0.376157 0.125436 v 0.211680 -0.315612 0.129638 v 0.191901 -0.409420 0.133154 v 0.188621 -0.384315 0.111465 v 0.208911 -0.324775 0.112398 v 0.170242 -0.360417 0.147878 v 0.197771 -0.394870 0.132918 v 0.192603 -0.390155 0.095546 v 0.198748 -0.407597 0.093995 v 0.194976 -0.384945 0.148778 v 0.204093 -0.400712 0.150821 v 0.194208 -0.351995 0.106830 v 0.185253 -0.380923 0.095143 v 0.170804 -0.379202 0.101805 v 0.178014 -0.415344 0.120553 v 0.178297 -0.414361 0.125605 v 0.183628 -0.418157 0.119649 v 0.200153 -0.364054 0.151190 v 0.204791 -0.388019 0.133094 v 0.194520 -0.395425 0.155278 v 0.182107 -0.390056 0.150932 v 0.158861 -0.330616 0.158087 v 0.195469 -0.379204 0.104746 v 0.176699 -0.337331 0.160414 v 0.194575 -0.417279 0.122425 v 0.192207 -0.417089 0.119712 v 0.161609 -0.357883 0.138726 v 0.184256 -0.375850 0.124077 v 0.164102 -0.349174 0.113530 v 0.206741 -0.352129 0.109122 v 0.196959 -0.333322 0.163610 v 0.192167 -0.339250 0.161524 v 0.215167 -0.361017 0.119744 v 0.182951 -0.404491 0.098313 v 0.184293 -0.407646 0.092861 v 0.194544 -0.382166 0.128200 v 0.181049 -0.389131 0.121838 v 0.169218 -0.313476 0.119974 v 0.188841 -0.376285 0.125543 v 0.171310 -0.391753 0.146780 v 0.183858 -0.403953 0.091813 v 0.180441 -0.413285 0.118620 v 0.203629 -0.403096 0.099253 v 0.215178 -0.320792 0.126140 v 0.179456 -0.320134 0.123705 v 0.176976 -0.328040 0.147731 v 0.155120 -0.319292 0.119218 v 0.152881 -0.324604 0.132318 v 0.185659 -0.321847 0.107325 v 0.217545 -0.344984 0.124800 v 0.204385 -0.397809 0.095868 v 0.209763 -0.387001 0.103392 v 0.197160 -0.399511 0.154620 v 0.176539 -0.327846 0.135143 v 0.209213 -0.324756 0.153469 v 0.164824 -0.380705 0.128867 v 0.171082 -0.407877 0.127515 v 0.205060 -0.404193 0.140117 v 0.199912 -0.408533 0.124116 v 0.177748 -0.397600 0.093384 v 0.156147 -0.380820 0.163295 v 0.154089 -0.392687 0.156582 v 0.149547 -0.394005 0.164484 v 0.163157 -0.371041 0.158758 v 0.146531 -0.394997 0.178577 v 0.140605 -0.395700 0.188634 v 0.144589 -0.381217 0.201070 v 0.139479 -0.400457 0.190903 v 0.143590 -0.389855 0.200529 v 0.197920 -0.385752 0.167149 v 0.200669 -0.390988 0.171801 v 0.200075 -0.395401 0.178885 v 0.193258 -0.399566 0.194247 v 0.185053 -0.400802 0.199714 v 0.153760 -0.394542 0.202619 v 0.135178 -0.333071 0.199345 v 0.137738 -0.331532 0.190739 v 0.139469 -0.338052 0.204675 v 0.156013 -0.343323 0.202566 v 0.157237 -0.340390 0.199168 v 0.142399 -0.335176 0.180785 v 0.152134 -0.324335 0.164676 v 0.159321 -0.325463 0.156263 v 0.176165 -0.334294 0.152744 v 0.175219 -0.332641 0.158838 v 0.151116 -0.330715 0.158598 v 0.202178 -0.398673 0.162053 v 0.192747 -0.385598 0.165733 v 0.180909 -0.382375 0.164323 v 0.144690 -0.400318 0.180652 v 0.141079 -0.408564 0.184157 v 0.191813 -0.407918 0.194374 v 0.157562 -0.372924 0.162077 v 0.154571 -0.354913 0.157215 v 0.201147 -0.366647 0.154984 v 0.185253 -0.386652 0.190518 v 0.185275 -0.372758 0.193614 v 0.139578 -0.367390 0.197365 v 0.166811 -0.380128 0.160842 v 0.168442 -0.401211 0.203381 v 0.188736 -0.335017 0.198023 v 0.181543 -0.334010 0.202604 v 0.173232 -0.335084 0.204153 v 0.192793 -0.327620 0.157158 v 0.200112 -0.328336 0.161299 v 0.195017 -0.327522 0.172677 v 0.193903 -0.335902 0.184420 v 0.171948 -0.392738 0.151477 v 0.163533 -0.394653 0.150990 v 0.176714 -0.340278 0.205594 v 0.186657 -0.341561 0.202326 v 0.167190 -0.359009 0.152493 v 0.134204 -0.338585 0.200820 v 0.205617 -0.343849 0.158552 v 0.198158 -0.374473 0.158271 v 0.134844 -0.360813 0.192485 v 0.162020 -0.336320 0.152136 v 0.174767 -0.339722 0.150779 v 0.196523 -0.357578 0.189548 v 0.153296 -0.403829 0.177600 v 0.180038 -0.446364 0.168480 v 0.165358 -0.425768 0.144877 v 0.199682 -0.415056 0.151266 v 0.160871 -0.398089 0.173674 v 0.146514 -0.404776 0.194943 v 0.164261 -0.394485 0.178683 v 0.176585 -0.437663 0.137967 v 0.145187 -0.355957 0.168329 v 0.143336 -0.412219 0.187767 v 0.194209 -0.370723 0.154576 v 0.197692 -0.362967 0.152115 v 0.151701 -0.369844 0.197627 v 0.190780 -0.385643 0.182798 v 0.146851 -0.332033 0.196227 v 0.147774 -0.335841 0.180855 v 0.142760 -0.380864 0.199183 v 0.164686 -0.342855 0.180675 v 0.156282 -0.433854 0.169856 v 0.197012 -0.332422 0.154550 v 0.138478 -0.354392 0.197514 v 0.175470 -0.436001 0.141290 v 0.172277 -0.420337 0.139486 v 0.179577 -0.442274 0.165894 v 0.154143 -0.347794 0.202484 v 0.189388 -0.325975 0.170104 v 0.180249 -0.426034 0.185278 v 0.165398 -0.446412 0.165151 v 0.162324 -0.445637 0.170283 v 0.194081 -0.404728 0.190647 v 0.168613 -0.367447 0.195575 v 0.139447 -0.338123 0.179964 v 0.196788 -0.400974 0.169640 v 0.162168 -0.325804 0.166765 v 0.161213 -0.328729 0.153508 v 0.152367 -0.373614 0.169314 v 0.147865 -0.378540 0.180379 v 0.186293 -0.409117 0.197612 v 0.187909 -0.399834 0.173637 v 0.186035 -0.432219 0.171609 v 0.165921 -0.422577 0.142242 v 0.160528 -0.339575 0.193848 v 0.179705 -0.332104 0.196866 v 0.193968 -0.428068 0.138304 v 0.182563 -0.397646 0.181066 v 0.195585 -0.398065 0.185539 v 0.189405 -0.437355 0.139502 v 0.151038 -0.397754 0.170924 v 0.175388 -0.444826 0.172296 v 0.133285 -0.334908 0.194837 v 0.176771 -0.434554 0.136734 v 0.176693 -0.385742 0.194938 v 0.181059 -0.405601 0.179687 v 0.161832 -0.431719 0.167504 v 0.204795 -0.351090 0.170336 v 0.182590 -0.334113 0.183641 v 0.175980 -0.449389 0.167161 v 0.190864 -0.398352 0.152320 v 0.186596 -0.438097 0.137395 v 0.194321 -0.344419 0.194699 v 0.168156 -0.449193 0.165866 v 0.203142 -0.367271 0.159307 v 0.177065 -0.412446 0.196117 v 0.201737 -0.331597 0.170488 v 0.195667 -0.419619 0.141079 v 0.171762 -0.334700 0.169086 v 0.197346 -0.378752 0.166511 v 0.145130 -0.329166 0.170264 v 0.145865 -0.386679 0.184029 v 0.200547 -0.399958 0.155912 v -0.211458 -0.353320 0.067505 v -0.210599 -0.325611 0.074102 v -0.208381 -0.349949 0.075981 v -0.213878 -0.326392 0.071159 v -0.207235 -0.347584 0.083070 v -0.206945 -0.343014 0.105965 v -0.248372 -0.352938 0.079688 v -0.247091 -0.355467 0.091817 v -0.242134 -0.365563 0.104588 v -0.240136 -0.344777 0.114874 v -0.196991 -0.299040 0.111243 v -0.205401 -0.296673 0.108218 v -0.196874 -0.296976 0.102951 v -0.205266 -0.301909 0.116991 v -0.200252 -0.299371 0.092434 v -0.212356 -0.305913 0.119161 v -0.205892 -0.292044 0.079153 v -0.213347 -0.293625 0.071593 v -0.226763 -0.299027 0.073016 v -0.206843 -0.295803 0.073727 v -0.210084 -0.305931 0.070707 v -0.246177 -0.366223 0.072436 v -0.240172 -0.351609 0.074732 v -0.208495 -0.350705 0.085533 v -0.205153 -0.355145 0.092330 v -0.197128 -0.309747 0.112126 v -0.203581 -0.331014 0.104544 v -0.254407 -0.316484 0.089528 v -0.250738 -0.303028 0.081953 v -0.250507 -0.335394 0.082472 v -0.241100 -0.314610 0.121900 v -0.214702 -0.340404 0.068678 v -0.228613 -0.368484 0.111911 v -0.237046 -0.296582 0.119719 v -0.226515 -0.299715 0.122920 v -0.241830 -0.293162 0.079734 v -0.245790 -0.291923 0.092007 v -0.239499 -0.296254 0.104567 v -0.232892 -0.302144 0.125075 v -0.245679 -0.293712 0.082143 v -0.242091 -0.302048 0.120563 v -0.234020 -0.296284 0.102993 v -0.196123 -0.310546 0.101947 v -0.223784 -0.301250 0.070620 v -0.246521 -0.300615 0.105556 v -0.213144 -0.374997 0.105255 v -0.217086 -0.371629 0.069616 v -0.230103 -0.369405 0.092228 v -0.217557 -0.358937 0.086800 v -0.242367 -0.379453 0.103050 v -0.205066 -0.309579 0.117690 v -0.251382 -0.336686 0.091420 v -0.245969 -0.368086 0.083275 v -0.243890 -0.381469 0.071391 v -0.212883 -0.374979 0.100334 v -0.220118 -0.380078 0.095433 v -0.205934 -0.327328 0.083959 v -0.236463 -0.369351 0.084303 v -0.229026 -0.296221 0.114795 v -0.207140 -0.299789 0.094465 v -0.202371 -0.296706 0.081520 v -0.231240 -0.374807 0.081849 v -0.246016 -0.374694 0.084891 v -0.209079 -0.331964 0.109783 v -0.241043 -0.361315 0.093381 v -0.231127 -0.365108 0.090027 v -0.237125 -0.371397 0.109881 v -0.226489 -0.371490 0.063741 v -0.219441 -0.364756 0.063928 v -0.223656 -0.388214 0.089975 v -0.217588 -0.387152 0.093117 v -0.224504 -0.390995 0.090269 v -0.235940 -0.291633 0.090096 v -0.227158 -0.309089 0.124285 v -0.240075 -0.366806 0.097204 v -0.250245 -0.367702 0.076611 v -0.234550 -0.377712 0.107052 v -0.242071 -0.330999 0.077099 v -0.200163 -0.302638 0.116488 v -0.236416 -0.388190 0.096254 v -0.233547 -0.389193 0.092180 v -0.247552 -0.312612 0.113166 v -0.252975 -0.300485 0.091915 v -0.216258 -0.365235 0.089688 v -0.223544 -0.296877 0.083263 v -0.205895 -0.359467 0.103141 v -0.219865 -0.326726 0.070979 v -0.204347 -0.311984 0.077379 v -0.231894 -0.383562 0.066203 v -0.238682 -0.374156 0.096176 v -0.242381 -0.377647 0.097997 v -0.232342 -0.347142 0.115975 v -0.219922 -0.363684 0.082481 v -0.217789 -0.373124 0.096081 v -0.214056 -0.291584 0.081953 v -0.234494 -0.380409 0.065722 v -0.248727 -0.376229 0.082125 v -0.251837 -0.373777 0.080698 v -0.202445 -0.329115 0.097330 v -0.220827 -0.371862 0.076318 v -0.215734 -0.302084 0.109522 v -0.211442 -0.363171 0.106130 v -0.215786 -0.383194 0.100197 v -0.246545 -0.373905 0.074852 v -0.245264 -0.341679 0.109911 v -0.217512 -0.303576 0.096522 v -0.219570 -0.372289 0.065213 v -0.170271 -0.360419 0.112661 v -0.172055 -0.365964 0.109893 v -0.164926 -0.366549 0.135599 v -0.166889 -0.375456 0.143145 v -0.215117 -0.367252 0.112355 v -0.216209 -0.371383 0.121481 v -0.213010 -0.379864 0.135428 v -0.213190 -0.366090 0.137583 v -0.207975 -0.366690 0.147922 v -0.176108 -0.374947 0.146527 v -0.161216 -0.325427 0.154929 v -0.152975 -0.324931 0.150110 v -0.164191 -0.322259 0.148310 v -0.151931 -0.322717 0.141773 v -0.159719 -0.323052 0.133406 v -0.176889 -0.330922 0.155739 v -0.157930 -0.316729 0.123500 v -0.162572 -0.315740 0.110430 v -0.168302 -0.315439 0.108287 v -0.183066 -0.318608 0.111804 v -0.164187 -0.332736 0.107170 v -0.168980 -0.373406 0.115944 v -0.168924 -0.371971 0.125255 v -0.220071 -0.378600 0.112556 v -0.214625 -0.377723 0.107990 v -0.209761 -0.363889 0.108183 v -0.194318 -0.367388 0.110277 v -0.165132 -0.390133 0.135832 v -0.207449 -0.388794 0.141014 v -0.170110 -0.347005 0.106667 v -0.165021 -0.360158 0.144962 v -0.216583 -0.342062 0.115642 v -0.208970 -0.355055 0.154915 v -0.206827 -0.337252 0.160519 v -0.187193 -0.367963 0.108980 v -0.175297 -0.361593 0.110048 v -0.199186 -0.378225 0.147132 v -0.204559 -0.320800 0.154607 v -0.197516 -0.324181 0.161144 v -0.201295 -0.314073 0.113277 v -0.210054 -0.312943 0.120914 v -0.200698 -0.312020 0.127874 v -0.198905 -0.318701 0.140041 v -0.206256 -0.327886 0.161065 v -0.160115 -0.314596 0.115563 v -0.153804 -0.324604 0.132318 v -0.155691 -0.335696 0.154043 v -0.213278 -0.317218 0.117126 v -0.213507 -0.357800 0.112539 v -0.154347 -0.343997 0.142619 v -0.176468 -0.328674 0.106114 v -0.210253 -0.321226 0.140604 v -0.207294 -0.395092 0.141257 v -0.169770 -0.376374 0.126086 v -0.210058 -0.388015 0.114228 v -0.214149 -0.375094 0.126929 v -0.174520 -0.389301 0.100698 v -0.176572 -0.400346 0.140014 v -0.212941 -0.335611 0.151568 v -0.193682 -0.408196 0.120730 v -0.188452 -0.392282 0.123269 v -0.175460 -0.382247 0.109188 v -0.177685 -0.399880 0.098125 v -0.198786 -0.411400 0.129558 v -0.206083 -0.396231 0.105164 v -0.170132 -0.399672 0.123948 v -0.156628 -0.334956 0.116345 v -0.195568 -0.376473 0.124270 v -0.193978 -0.395379 0.106537 v -0.194412 -0.321171 0.152786 v -0.207783 -0.376157 0.125436 v -0.212603 -0.315613 0.129639 v -0.192825 -0.409420 0.133153 v -0.189545 -0.384316 0.111464 v -0.209835 -0.324774 0.112399 v -0.210689 -0.386997 0.103395 v -0.171165 -0.360418 0.147878 v -0.198694 -0.394870 0.132918 v -0.193526 -0.390156 0.095545 v -0.199671 -0.407597 0.093995 v -0.211879 -0.366375 0.143247 v -0.195899 -0.384946 0.148779 v -0.205016 -0.400712 0.150821 v -0.195130 -0.351996 0.106831 v -0.186176 -0.380924 0.095143 v -0.171728 -0.379202 0.101804 v -0.181363 -0.413284 0.118620 v -0.178938 -0.415345 0.120552 v -0.179220 -0.414360 0.125606 v -0.184551 -0.418157 0.119649 v -0.201074 -0.364053 0.151191 v -0.205714 -0.388019 0.133094 v -0.193128 -0.334938 0.163156 v -0.183032 -0.390056 0.150932 v -0.159784 -0.330616 0.158087 v -0.196392 -0.379205 0.104746 v -0.177623 -0.337332 0.160414 v -0.195497 -0.417280 0.122424 v -0.193129 -0.417089 0.119712 v -0.162531 -0.357883 0.138727 v -0.216100 -0.320792 0.126140 v -0.185178 -0.375850 0.124077 v -0.165025 -0.349174 0.113529 v -0.207664 -0.352131 0.109122 v -0.216090 -0.361017 0.119744 v -0.204550 -0.403336 0.098395 v -0.183873 -0.404491 0.098313 v -0.185216 -0.407646 0.092861 v -0.195467 -0.382164 0.128200 v -0.181973 -0.389135 0.121838 v -0.170140 -0.313476 0.119974 v -0.189763 -0.376285 0.125543 v -0.172004 -0.407877 0.127516 v -0.172232 -0.391752 0.146781 v -0.184781 -0.403953 0.091813 v -0.180379 -0.320134 0.123706 v -0.177899 -0.328040 0.147731 v -0.156042 -0.319291 0.119224 v -0.213724 -0.352747 0.150878 v -0.218468 -0.344991 0.124801 v -0.195443 -0.395425 0.155278 v -0.199083 -0.408378 0.096365 v -0.205307 -0.397811 0.095867 v -0.198082 -0.399511 0.154619 v -0.187571 -0.321786 0.107565 v -0.177462 -0.327846 0.135142 v -0.210137 -0.324757 0.153469 v -0.165747 -0.380709 0.128865 v -0.205984 -0.404193 0.140117 v -0.200835 -0.408534 0.124115 v -0.178671 -0.397599 0.093385 v -0.154211 -0.394830 0.163295 v -0.152151 -0.406699 0.156582 v -0.147610 -0.408016 0.164485 v -0.144594 -0.409008 0.178577 v -0.138667 -0.409711 0.188636 v -0.137542 -0.414468 0.190902 v -0.140734 -0.410203 0.197267 v -0.195982 -0.399760 0.167146 v -0.199221 -0.405069 0.173033 v -0.191322 -0.413576 0.194247 v -0.183113 -0.414812 0.199715 v -0.149453 -0.407045 0.202370 v -0.133241 -0.347082 0.199345 v -0.135801 -0.345545 0.190738 v -0.137490 -0.351915 0.204797 v -0.145838 -0.349852 0.180855 v -0.154077 -0.357334 0.202567 v -0.155300 -0.354401 0.199167 v -0.140460 -0.349188 0.180786 v -0.150198 -0.338346 0.164675 v -0.157383 -0.339474 0.156263 v -0.174229 -0.348306 0.152744 v -0.173281 -0.346652 0.158839 v -0.149179 -0.344725 0.158598 v -0.149101 -0.411764 0.170926 v -0.197107 -0.411294 0.178850 v -0.200493 -0.411990 0.163977 v -0.190809 -0.399609 0.165733 v -0.178971 -0.396385 0.164323 v -0.142754 -0.414335 0.180652 v -0.139141 -0.422574 0.184160 v -0.189875 -0.421930 0.194375 v -0.158764 -0.386001 0.159929 v -0.152635 -0.368925 0.157214 v -0.133496 -0.365023 0.196309 v -0.199759 -0.379474 0.155136 v -0.183317 -0.400663 0.190518 v -0.183337 -0.386771 0.193614 v -0.137641 -0.381400 0.197365 v -0.164876 -0.394139 0.160842 v -0.166504 -0.415222 0.203381 v -0.177768 -0.346116 0.196869 v -0.186799 -0.349027 0.198022 v -0.179607 -0.348021 0.202604 v -0.171296 -0.349094 0.204153 v -0.190856 -0.341632 0.157158 v -0.198446 -0.341995 0.163557 v -0.193716 -0.341882 0.173013 v -0.191965 -0.349913 0.184421 v -0.170015 -0.406750 0.151477 v -0.161598 -0.408663 0.150990 v -0.174775 -0.354289 0.205594 v -0.184721 -0.355572 0.202326 v -0.165251 -0.373019 0.152493 v -0.134199 -0.351656 0.203232 v -0.203294 -0.359209 0.157659 v -0.196375 -0.388854 0.159096 v -0.134254 -0.374080 0.187712 v -0.160083 -0.350332 0.152137 v -0.172828 -0.353731 0.150779 v -0.151359 -0.417840 0.177601 v -0.163420 -0.439775 0.144880 v -0.197745 -0.429064 0.151271 v -0.162323 -0.408497 0.178683 v -0.174647 -0.451674 0.137968 v -0.143972 -0.367451 0.166935 v -0.178103 -0.460375 0.168481 v -0.141401 -0.426237 0.187763 v -0.193129 -0.377825 0.152213 v -0.152202 -0.361805 0.202484 v -0.149763 -0.383855 0.197627 v -0.144915 -0.346044 0.196228 v -0.193794 -0.412054 0.185460 v -0.162750 -0.356867 0.180675 v -0.154347 -0.447868 0.169856 v -0.196243 -0.346453 0.154821 v -0.197028 -0.362096 0.152705 v -0.140492 -0.370985 0.197228 v -0.173535 -0.450014 0.141289 v -0.170341 -0.434347 0.139487 v -0.177640 -0.456283 0.165895 v -0.187453 -0.339985 0.170104 v -0.158949 -0.412102 0.173674 v -0.178315 -0.440043 0.185280 v -0.163461 -0.460425 0.165151 v -0.159475 -0.458650 0.169515 v -0.192145 -0.418740 0.190648 v -0.166681 -0.381460 0.195574 v -0.137510 -0.352135 0.179966 v -0.195025 -0.415467 0.169020 v -0.160229 -0.339815 0.166765 v -0.159276 -0.342741 0.153508 v -0.152486 -0.386985 0.165618 v -0.184355 -0.423128 0.197613 v -0.188371 -0.414806 0.172321 v -0.182227 -0.412515 0.175901 v -0.146605 -0.418706 0.195564 v -0.184099 -0.446227 0.171609 v -0.177116 -0.410953 0.180373 v -0.163980 -0.436585 0.142246 v -0.192031 -0.442081 0.138304 v -0.194587 -0.371588 0.189547 v -0.181997 -0.415921 0.182530 v -0.187469 -0.451367 0.139503 v -0.173454 -0.458838 0.172295 v -0.140037 -0.393548 0.198502 v -0.131163 -0.348533 0.195636 v -0.193919 -0.385075 0.154542 v -0.174833 -0.448566 0.136734 v -0.174757 -0.399754 0.194938 v -0.174917 -0.420700 0.178467 v -0.159895 -0.445727 0.167505 v -0.146425 -0.395736 0.200759 v -0.203721 -0.369327 0.163367 v -0.203503 -0.356706 0.167791 v -0.147401 -0.389438 0.174429 v -0.180651 -0.348125 0.183641 v -0.174043 -0.463401 0.167161 v -0.158591 -0.353586 0.193850 v -0.188842 -0.399655 0.182799 v -0.188927 -0.412363 0.152321 v -0.184658 -0.452109 0.137395 v -0.192385 -0.358429 0.194698 v -0.166222 -0.463205 0.165866 v -0.161755 -0.459563 0.170937 v -0.173407 -0.383589 0.157148 v -0.199922 -0.384744 0.161110 v -0.175127 -0.426461 0.196114 v -0.199976 -0.347969 0.171858 v -0.193733 -0.433628 0.141081 v -0.169826 -0.348711 0.169086 v -0.195410 -0.392762 0.166509 v -0.143193 -0.343178 0.170265 v -0.145881 -0.393298 0.181376 v -0.141244 -0.394734 0.200162 v -0.198610 -0.413970 0.155910 v 0.076149 -0.381694 0.338910 v 0.083486 -0.365645 0.339535 v 0.088338 -0.375381 0.351370 v 0.088883 -0.394636 0.352335 v 0.110580 -0.363799 0.333773 v 0.086518 -0.411698 0.346669 v 0.080228 -0.368414 0.346304 v 0.084459 -0.379282 0.353050 v 0.116047 -0.366296 0.317721 v 0.115042 -0.359677 0.320063 v 0.122128 -0.367583 0.322354 v 0.115033 -0.407815 0.321751 v 0.114013 -0.416642 0.325970 v 0.123919 -0.379725 0.327708 v 0.096827 -0.459712 0.296994 v 0.101959 -0.469783 0.302148 v 0.099749 -0.473191 0.303264 v 0.091108 -0.471898 0.303015 v 0.095537 -0.473918 0.305296 v 0.072314 -0.432396 0.316026 v 0.073531 -0.400011 0.333589 v 0.074139 -0.440058 0.313586 v 0.110137 -0.402322 0.314026 v 0.098562 -0.434604 0.301535 v 0.072294 -0.392927 0.330904 v 0.077473 -0.381562 0.349080 v 0.096555 -0.410231 0.305661 v 0.105588 -0.365076 0.322218 v 0.120607 -0.388856 0.332723 v 0.116137 -0.358785 0.324127 v 0.091225 -0.472297 0.299656 v 0.079472 -0.403236 0.344659 v 0.087757 -0.444491 0.333427 v 0.090666 -0.445846 0.298317 v 0.083358 -0.401758 0.308253 v 0.083788 -0.413584 0.305611 v 0.076208 -0.439102 0.324126 v 0.087181 -0.362516 0.342871 v 0.096069 -0.424034 0.341134 v 0.097439 -0.393807 0.349677 v 0.110858 -0.434526 0.316919 v 0.111703 -0.420413 0.330549 v 0.105193 -0.428280 0.332288 v 0.096143 -0.418812 0.305454 v 0.095343 -0.448523 0.331427 v 0.082485 -0.450573 0.302472 v 0.096989 -0.378043 0.319259 v 0.094443 -0.474216 0.299550 v 0.108072 -0.458559 0.308443 v 0.112355 -0.379599 0.315899 v 0.086061 -0.392503 0.311220 v 0.109572 -0.449200 0.320403 v 0.075510 -0.409234 0.317649 v 0.083911 -0.424706 0.306146 v 0.074573 -0.374407 0.353600 v 0.067988 -0.370364 0.356954 v 0.072268 -0.384700 0.347020 v 0.073032 -0.380098 0.362696 v 0.077331 -0.401677 0.359893 v 0.036002 -0.382417 0.367748 v 0.077473 -0.410999 0.351119 v 0.070073 -0.371287 0.360539 v 0.076134 -0.375615 0.357651 v 0.031735 -0.378166 0.360194 v 0.029520 -0.393988 0.351537 v 0.029032 -0.379177 0.364145 v 0.032590 -0.412258 0.360414 v 0.030789 -0.402476 0.365693 v 0.038820 -0.475684 0.312539 v 0.040336 -0.469974 0.310455 v 0.047654 -0.478495 0.309124 v 0.041489 -0.476957 0.322975 v 0.039302 -0.478288 0.317563 v 0.059584 -0.447951 0.315506 v 0.049605 -0.481806 0.316051 v 0.068625 -0.446325 0.330797 v 0.063173 -0.418950 0.326110 v 0.035042 -0.424410 0.354051 v 0.036958 -0.442776 0.344054 v 0.037056 -0.432555 0.344411 v 0.034293 -0.441144 0.339992 v 0.039909 -0.455042 0.334603 v 0.033303 -0.413293 0.333883 v 0.032475 -0.428445 0.326976 v 0.035726 -0.430279 0.323384 v 0.032810 -0.420166 0.349763 v 0.030586 -0.407280 0.340601 v 0.035543 -0.445031 0.318858 v 0.072578 -0.422734 0.352580 v 0.068523 -0.448562 0.339753 v 0.033851 -0.422023 0.325498 v 0.034077 -0.374904 0.363435 v 0.070145 -0.396733 0.334786 v 0.072077 -0.406493 0.363260 v 0.050920 -0.438686 0.313673 v 0.044240 -0.414791 0.325051 v 0.043479 -0.408127 0.325438 v 0.034952 -0.411443 0.329859 v 0.062380 -0.453953 0.341094 v 0.044171 -0.451742 0.342327 v 0.028004 -0.405578 0.351651 v 0.035176 -0.405440 0.367418 v 0.044362 -0.484458 0.312730 v 0.042071 -0.401582 0.329619 v 0.042560 -0.482388 0.310615 v 0.076873 -0.395618 0.342758 v 0.063358 -0.432489 0.352065 v 0.043048 -0.430144 0.351756 v 0.037045 -0.436710 0.315349 v 0.050621 -0.460534 0.309683 v 0.045569 -0.387381 0.348694 v 0.064155 -0.404810 0.329477 v -0.077072 -0.381693 0.338911 v -0.084408 -0.365644 0.339537 v -0.089261 -0.375380 0.351370 v -0.089804 -0.394631 0.352336 v -0.113657 -0.363121 0.331959 v -0.087440 -0.411698 0.346669 v -0.081151 -0.368414 0.346304 v -0.085383 -0.379282 0.353051 v -0.117021 -0.362021 0.318504 v -0.122663 -0.366098 0.322004 v -0.115955 -0.407816 0.321750 v -0.114933 -0.416651 0.325972 v -0.124841 -0.379722 0.327707 v -0.099829 -0.470335 0.298918 v -0.100916 -0.473011 0.303203 v -0.093930 -0.464347 0.313750 v -0.095853 -0.474085 0.305272 v -0.073237 -0.432396 0.316027 v -0.074453 -0.400011 0.333587 v -0.075062 -0.440058 0.313587 v -0.109680 -0.455335 0.310664 v -0.111058 -0.402326 0.314024 v -0.099029 -0.435927 0.300935 v -0.096529 -0.455699 0.296982 v -0.073216 -0.392927 0.330905 v -0.078395 -0.381560 0.349080 v -0.097477 -0.410231 0.305661 v -0.106509 -0.365074 0.322220 v -0.121531 -0.388856 0.332723 v -0.092003 -0.472226 0.299782 v -0.080394 -0.403235 0.344660 v -0.088680 -0.444492 0.333427 v -0.104316 -0.456198 0.302292 v -0.076434 -0.409231 0.317647 v -0.084280 -0.401760 0.308253 v -0.110638 -0.449563 0.319984 v -0.084710 -0.413586 0.305611 v -0.083945 -0.423922 0.306860 v -0.077132 -0.439104 0.324125 v -0.088104 -0.362516 0.342872 v -0.096991 -0.424033 0.341134 v -0.098360 -0.393807 0.349678 v -0.111844 -0.434076 0.317023 v -0.112624 -0.420414 0.330549 v -0.106117 -0.428280 0.332287 v -0.095887 -0.420825 0.304887 v -0.096266 -0.448523 0.331427 v -0.083407 -0.450572 0.302473 v -0.097912 -0.378042 0.319259 v -0.095365 -0.474216 0.299550 v -0.113279 -0.379598 0.315900 v -0.086982 -0.392504 0.311221 v -0.114441 -0.357884 0.323387 v -0.091417 -0.446630 0.298272 v -0.075497 -0.374408 0.353600 v -0.068910 -0.370364 0.356954 v -0.073190 -0.384700 0.347020 v -0.073954 -0.380097 0.362696 v -0.078253 -0.401677 0.359894 v -0.036925 -0.382417 0.367748 v -0.070995 -0.371287 0.360539 v -0.077057 -0.375616 0.357652 v -0.032657 -0.378162 0.360196 v -0.030443 -0.393985 0.351539 v -0.029955 -0.379177 0.364145 v -0.033512 -0.412260 0.360411 v -0.031711 -0.402477 0.365692 v -0.039742 -0.475680 0.312540 v -0.041259 -0.469974 0.310455 v -0.043482 -0.482388 0.310616 v -0.048576 -0.478497 0.309124 v -0.042411 -0.476957 0.322974 v -0.040225 -0.478286 0.317565 v -0.060506 -0.447951 0.315505 v -0.050529 -0.481805 0.316052 v -0.064095 -0.418949 0.326110 v -0.035964 -0.424408 0.354053 v -0.037880 -0.442775 0.344055 v -0.037979 -0.432555 0.344411 v -0.035216 -0.441143 0.339992 v -0.040834 -0.455045 0.334602 v -0.034226 -0.413293 0.333883 v -0.033397 -0.428446 0.326976 v -0.036648 -0.430280 0.323384 v -0.033732 -0.420166 0.349763 v -0.031509 -0.407282 0.340601 v -0.036100 -0.405440 0.367418 v -0.036465 -0.445031 0.318859 v -0.073501 -0.422735 0.352580 v -0.069446 -0.448562 0.339754 v -0.034774 -0.422022 0.325497 v -0.035000 -0.374904 0.363435 v -0.071068 -0.396732 0.334787 v -0.073000 -0.406493 0.363261 v -0.052514 -0.440011 0.313427 v -0.046399 -0.415279 0.324442 v -0.035875 -0.411443 0.329859 v -0.063302 -0.453954 0.341094 v -0.045093 -0.451742 0.342326 v -0.078396 -0.411000 0.351122 v -0.028928 -0.405579 0.351651 v -0.069548 -0.446325 0.330796 v -0.045285 -0.484458 0.312730 v -0.042994 -0.401583 0.329618 v -0.077797 -0.395619 0.342758 v -0.064282 -0.432489 0.352066 v -0.043971 -0.430144 0.351756 v -0.038265 -0.435564 0.315351 v -0.051544 -0.460534 0.309683 v -0.046490 -0.387382 0.348693 v -0.043665 -0.407469 0.325881 v -0.065077 -0.404810 0.329477 v 0.019700 -0.374409 0.346134 v 0.014051 -0.370289 0.349548 v 0.017393 -0.384700 0.339555 v -0.013824 -0.378224 0.349609 v 0.018158 -0.380092 0.355229 v 0.022458 -0.401675 0.352429 v -0.019964 -0.385683 0.360659 v 0.022599 -0.411001 0.343654 v 0.016227 -0.371107 0.352074 v 0.021260 -0.375615 0.350186 v -0.025353 -0.393983 0.344076 v -0.025975 -0.378648 0.355556 v -0.022843 -0.375705 0.355744 v -0.022284 -0.412258 0.352949 v -0.024085 -0.402475 0.358228 v -0.016054 -0.475681 0.305075 v -0.014537 -0.469980 0.302990 v -0.007220 -0.478503 0.301660 v -0.013385 -0.476955 0.315511 v -0.015571 -0.478286 0.310099 v 0.004709 -0.447951 0.308039 v -0.005267 -0.481804 0.308587 v 0.013752 -0.446322 0.323331 v 0.008298 -0.418946 0.318645 v -0.019832 -0.424408 0.346588 v -0.021681 -0.423961 0.341241 v -0.017817 -0.432555 0.336945 v -0.015465 -0.446693 0.336511 v -0.020488 -0.440484 0.332049 v -0.014224 -0.455963 0.328406 v -0.021569 -0.413295 0.326414 v -0.022399 -0.428445 0.319511 v -0.019148 -0.430279 0.315918 v -0.024288 -0.407280 0.333138 v -0.020293 -0.377207 0.358717 v -0.019331 -0.445033 0.311392 v 0.017703 -0.422738 0.345114 v 0.013649 -0.448563 0.332289 v -0.021022 -0.422022 0.318032 v 0.015272 -0.396732 0.327321 v 0.017205 -0.406494 0.355794 v -0.003280 -0.440017 0.305961 v -0.010634 -0.414789 0.317586 v -0.011394 -0.408130 0.317972 v -0.019922 -0.411442 0.322395 v 0.006835 -0.454493 0.333550 v -0.026869 -0.405579 0.344187 v -0.019696 -0.405439 0.359953 v -0.010510 -0.484457 0.305266 v -0.012802 -0.401581 0.322154 v -0.012313 -0.482389 0.303150 v 0.022001 -0.395616 0.335293 v 0.008487 -0.432488 0.344600 v -0.011826 -0.430145 0.344289 v -0.017532 -0.435562 0.307887 v -0.004252 -0.460533 0.302218 v -0.009301 -0.387380 0.341228 v 0.009280 -0.404810 0.322011 v 0.000428 0.087594 0.415423 v 0.013194 0.072869 0.422656 v 0.000480 0.105316 0.404584 v 0.021577 0.088795 0.400627 v 0.000499 0.063821 0.428448 v 0.034371 0.115856 0.357439 v 0.051990 0.116327 0.329341 v 0.027826 0.142625 0.364823 v 0.008078 0.133006 0.379079 v 0.006761 0.114671 0.385572 v 0.036061 0.160705 0.365352 v 0.054299 0.124219 0.324231 v 0.061479 0.138925 0.333238 v 0.107217 0.162609 0.342274 v 0.061388 0.194722 0.379488 v 0.111739 0.178985 0.359551 v 0.095505 0.198291 0.376938 v 0.145813 0.206006 0.360370 v 0.151660 0.232353 0.368615 v 0.169523 0.201503 0.340559 v 0.196652 0.231849 0.340013 v 0.220104 0.275467 0.339633 v 0.253847 0.296678 0.327411 v 0.305368 0.263309 0.307203 v 0.172762 0.044039 0.327764 v 0.125593 0.053851 0.331424 v 0.155107 0.031293 0.339183 v 0.176628 0.008837 0.337022 v 0.211975 0.033760 0.316622 v 0.212128 0.018693 0.320320 v 0.316071 0.279743 0.299191 v 0.337628 0.249084 0.287607 v 0.347949 0.265491 0.275170 v 0.355842 0.227484 0.267645 v 0.379205 0.205712 0.232778 v 0.362448 0.191323 0.244727 v 0.377690 0.097702 0.197184 v 0.346471 0.111535 0.203843 v 0.000479 0.137873 0.381242 v 0.009963 0.155198 0.372324 v 0.017807 0.169548 0.369999 v 0.000478 0.175892 0.367351 v 0.374781 0.146897 0.215010 v 0.386589 0.149916 0.208897 v 0.354945 0.153210 0.224555 v 0.069495 0.047196 0.375378 v 0.030972 0.045447 0.416775 v 0.067724 0.020892 0.391507 v 0.067822 0.083864 0.347062 v 0.088360 0.047766 0.362195 v 0.114558 0.048878 0.343187 v 0.091387 0.070130 0.334046 v 0.118803 0.039957 0.347984 v 0.215822 0.041861 0.309889 v 0.245796 0.029343 0.316801 v 0.261199 0.040376 0.305654 v 0.281372 0.030045 0.297427 v 0.268865 0.049133 0.289080 v 0.319613 0.022441 0.275501 v 0.322643 0.040068 0.270605 v 0.320006 0.054393 0.264517 v 0.355661 0.040197 0.217585 v 0.361187 0.001086 0.224992 v 0.346040 0.064559 0.214156 v 0.365350 0.077072 0.198259 v 0.339141 0.093152 0.203335 v 0.103499 0.031616 0.352535 v 0.152845 0.009395 0.332080 v 0.137691 -0.002036 0.330286 v 0.132216 -0.052113 0.321980 v 0.157725 -0.025652 0.328978 v 0.172920 -0.008812 0.336623 v 0.081724 0.011592 0.376932 v 0.118738 -0.003336 0.343956 v 0.102893 -0.014547 0.355922 v 0.096994 -0.067517 0.340617 v 0.000547 0.246721 0.382128 v 0.231211 0.329689 0.338376 v 0.270420 0.322894 0.316872 v 0.295203 0.321838 0.300334 v 0.334119 0.311727 0.265678 v 0.362605 0.269241 0.251833 v 0.381500 0.218267 0.217395 v 0.388660 0.158712 0.197713 v 0.153722 0.190894 0.341432 v 0.093596 0.147174 0.318004 v 0.065124 0.095381 0.329377 v 0.054512 0.119097 0.312415 v 0.232653 0.256554 0.327579 v 0.258261 0.267401 0.320961 v 0.333264 0.230210 0.284656 v 0.345048 0.211580 0.269129 v 0.346524 0.183734 0.240783 v 0.346647 0.168044 0.232732 v 0.336338 0.134532 0.209575 v 0.332828 0.111094 0.200546 v 0.335952 0.070728 0.214962 v 0.323966 0.074368 0.207751 v 0.314869 0.060704 0.256069 v 0.289351 0.053545 0.271029 v 0.274119 0.054937 0.247415 v 0.232008 0.047381 0.267998 v 0.219237 0.046119 0.300912 v 0.132754 0.055452 0.319120 v 0.115709 0.058737 0.297498 v 0.110484 0.062855 0.259525 v 0.091398 0.073544 0.280167 v 0.135852 0.054347 0.274118 v 0.204063 0.047762 0.272694 v 0.277726 0.064383 0.222852 v 0.335372 0.081415 0.206141 v 0.289011 0.089439 0.169889 v 0.320420 0.116920 0.190254 v 0.210929 0.238810 0.328085 v 0.233181 0.253081 0.307054 v 0.264788 0.264229 0.308889 v 0.282913 0.265687 0.312291 v 0.293107 0.261796 0.307596 v 0.299351 0.254406 0.290784 v 0.333897 0.221440 0.275723 v 0.066675 0.124828 0.303248 v 0.067100 0.116472 0.284159 v 0.058018 0.106536 0.303831 v 0.164560 0.198677 0.305658 v 0.194289 0.226175 0.301147 v 0.233563 0.260187 0.262529 v 0.254052 0.269853 0.273829 v 0.275929 0.271757 0.265543 v 0.291313 0.267725 0.250837 v 0.342497 0.207795 0.260643 v 0.325329 0.240645 0.245251 v 0.306724 0.258525 0.232999 v 0.315992 0.247885 0.224091 v 0.330936 0.215497 0.212546 v 0.310916 0.182287 0.195712 v 0.128748 0.168462 0.266370 v 0.094279 0.124813 0.187710 v 0.082767 0.108708 0.234750 v 0.098862 0.074431 0.249821 v 0.161671 0.064897 0.206528 v 0.175812 0.207808 0.272091 v 0.175961 0.204092 0.242956 v 0.204704 0.236407 0.223722 v 0.238613 0.260640 0.208021 v 0.258915 0.270475 0.240835 v 0.269963 0.266711 0.215073 v 0.282465 0.265400 0.207508 v 0.313240 0.237770 0.189723 v 0.288600 0.253302 0.157848 v 0.322479 0.157690 0.202587 v 0.244180 0.057119 0.224080 v 0.268020 0.058629 0.232847 v 0.095541 0.117345 0.181586 v 0.117900 0.144938 0.173185 v 0.109126 0.107480 0.185703 v 0.144432 0.169979 0.196805 v 0.185611 0.204351 0.205637 v 0.227086 0.245971 0.172881 v 0.258303 0.265107 0.168071 v 0.248076 0.260493 0.141163 v 0.261020 0.263191 0.138840 v 0.266420 0.256144 0.133162 v 0.277965 0.244073 0.141745 v 0.120558 0.085918 0.187650 v 0.106176 0.081270 0.217754 v 0.233984 0.067165 0.148420 v 0.263906 0.072818 0.171960 v 0.254823 0.078961 0.149284 v 0.254048 0.089197 0.140422 v 0.266474 0.137794 0.159810 v 0.260812 0.166487 0.153425 v 0.250146 0.232673 0.117467 v 0.243485 0.250415 0.117166 v 0.240643 0.237398 0.107790 v 0.224753 0.235596 0.106619 v 0.216402 0.223826 0.139303 v 0.319061 0.216290 0.195444 v 0.196795 0.180927 0.102216 v 0.165547 0.175455 0.161176 v 0.109369 0.127527 0.161001 v 0.116675 0.118046 0.149535 v 0.173722 0.113947 0.088811 v 0.156786 0.118336 0.103630 v 0.146920 0.107887 0.134175 v 0.160765 0.085592 0.152189 v 0.178261 0.105612 0.107908 v 0.133612 0.068526 0.205709 v 0.187683 0.076871 0.143740 v 0.190364 0.098030 0.105788 v 0.223135 0.078381 0.111588 v 0.205511 0.087496 0.100860 v 0.230817 0.084271 0.113543 v 0.228538 0.111721 0.115426 v 0.227645 0.233856 0.097130 v 0.221976 0.212944 0.088195 v 0.211536 0.204321 0.082664 v 0.209402 0.208901 0.087518 v 0.164479 0.152716 0.122653 v 0.183150 0.108400 0.090773 v 0.197173 0.107088 0.097817 v 0.215136 0.086018 0.100366 v 0.217350 0.127958 0.099506 v 0.213688 0.162378 0.084874 v 0.203887 0.189912 0.080479 v 0.190896 0.159245 0.085194 v 0.184649 0.138671 0.083839 v 0.186819 0.120450 0.076759 v 0.193418 0.116208 0.082229 v 0.203980 0.113392 0.094683 v 0.216078 0.100800 0.103304 v 0.195262 0.129862 0.073962 v 0.094105 -0.099650 0.336472 v 0.105641 -0.128067 0.327287 v 0.131963 -0.102433 0.309916 v 0.090706 -0.135468 0.335775 v 0.071096 -0.123288 0.335269 v 0.068011 -0.155037 0.351926 v 0.064533 -0.138627 0.348472 v 0.055390 -0.142255 0.350539 v 0.054851 -0.215382 0.361635 v 0.036404 -0.154413 0.369614 v 0.007118 -0.164324 0.398928 v 0.028179 -0.147621 0.371911 v 0.009824 -0.146040 0.388647 v 0.026488 -0.192731 0.378073 v 0.016723 -0.261832 0.392307 v -0.000053 -0.309114 0.401898 v 0.013645 -0.305775 0.397150 v 0.028601 -0.299775 0.398686 v 0.039231 -0.271530 0.388649 v 0.041906 -0.290926 0.387083 v 0.062355 -0.285297 0.376191 v 0.070359 -0.271516 0.373634 v 0.070457 -0.304486 0.370234 v 0.047909 -0.303060 0.372883 v 0.082733 -0.297032 0.376558 v 0.092897 -0.292763 0.367339 v 0.095890 -0.300860 0.365242 v 0.107487 -0.302460 0.355585 v 0.128660 -0.291116 0.345491 v 0.115208 -0.273832 0.353107 v 0.128717 -0.299469 0.337910 v 0.144794 -0.291623 0.314936 v 0.143707 -0.300132 0.318428 v 0.159214 -0.288775 0.299377 v 0.157716 -0.295656 0.299011 v 0.031118 -0.220980 0.376972 v 0.146006 -0.274716 0.312293 v 0.084001 -0.246515 0.356239 v 0.362620 0.289979 0.224479 v 0.352137 0.300309 0.245485 v 0.169827 0.308419 0.368044 v 0.120794 0.295918 0.382810 v 0.083229 0.277712 0.387647 v 0.035138 0.254106 0.386282 v 0.113884 0.344361 0.376410 v 0.174458 0.369305 0.358915 v 0.008482 0.337348 0.382380 v 0.034040 0.293793 0.384957 v 0.294723 0.363002 0.289384 v 0.337852 0.346134 0.248637 v 0.359957 0.324626 0.221779 v 0.368316 0.299329 0.197772 v 0.368807 0.268370 0.205030 v 0.380894 0.216902 0.205326 v 0.370423 0.230123 0.180933 v 0.369405 0.250991 0.158904 v 0.382866 0.152911 0.183230 v 0.367748 0.196272 0.171860 v 0.351063 0.206045 0.147906 v 0.113138 0.473227 0.348326 v 0.243873 0.388671 0.324385 v 0.379041 0.412974 0.178738 v 0.393863 0.322276 0.133932 v 0.387124 0.278945 0.121391 v 0.410993 0.298276 0.068248 v 0.346872 0.200657 0.112622 v 0.413742 0.287672 0.050947 v 0.404230 0.207400 0.009623 v 0.454348 0.304443 -0.039171 v 0.448931 0.180449 -0.105496 v 0.470068 0.244873 -0.124620 v 0.483925 0.148913 -0.265888 v 0.461985 0.100478 -0.236461 v 0.493996 0.215792 -0.242679 v 0.468790 0.080980 -0.280367 v 0.500962 0.218545 -0.306433 v 0.483251 0.106431 -0.339300 v 0.497827 0.223781 -0.378312 v 0.483382 0.125275 -0.384943 v 0.473334 0.077652 -0.390252 v 0.461137 0.196984 -0.500817 v 0.481789 0.255075 -0.464137 v 0.456055 0.108341 -0.451477 v 0.434384 0.108234 -0.518079 v 0.000463 0.474863 0.355551 v 0.165539 0.505772 0.330269 v 0.243035 0.493289 0.304825 v 0.274126 0.448615 0.294481 v 0.310135 0.445214 0.265154 v 0.347658 0.430360 0.222458 v 0.412290 0.413654 0.105007 v 0.442021 0.378683 0.032288 v 0.426289 0.334376 0.052885 v 0.471967 0.304442 -0.096036 v 0.483189 0.383127 -0.122151 v 0.469243 0.356918 -0.061078 v 0.499517 0.266100 -0.245508 v 0.504446 0.353868 -0.269837 v 0.505763 0.347777 -0.356020 v 0.496017 0.294756 -0.415166 v 0.481431 0.371034 -0.472150 v 0.456617 0.276531 -0.528003 v 0.449912 0.363615 -0.548772 v 0.434376 0.176390 -0.548389 v 0.375730 0.102404 -0.609853 v 0.376557 0.205619 -0.647621 v 0.298503 0.076220 -0.677650 v 0.337871 0.162092 -0.681116 v 0.281513 0.126753 -0.721117 v 0.241044 0.149857 -0.764074 v 0.319656 0.206514 -0.709080 v 0.225116 0.089391 -0.764267 v 0.188993 0.100220 -0.795180 v 0.224114 0.196013 -0.779160 v 0.103643 0.112476 -0.836411 v 0.156878 0.149575 -0.816059 v 0.000460 0.062498 -0.854459 v 0.000849 0.093804 -0.859348 v 0.053167 0.132096 -0.851417 v 0.001623 0.130057 -0.859059 v 0.418732 0.285280 -0.596620 v 0.378904 0.287588 -0.654040 v 0.261737 0.276051 -0.753228 v 0.185798 0.226912 -0.796311 v 0.141674 0.175275 -0.821106 v 0.000689 0.218037 -0.844809 v -0.000314 -0.183381 0.402843 v 0.005693 -0.135107 0.363443 v 0.000428 -0.141794 0.380469 v 0.158586 -0.064893 0.304835 v 0.175057 -0.030975 0.318454 v 0.214407 0.003449 0.313505 v 0.245078 -0.004070 0.300387 v 0.143726 -0.145827 0.291394 v 0.097803 -0.189381 0.336790 v 0.131938 -0.182607 0.306215 v 0.298216 0.003073 0.284242 v 0.326344 0.002620 0.270369 v 0.320595 -0.028332 0.268882 v 0.333378 -0.031090 0.259049 v 0.160505 -0.195893 0.260803 v 0.161149 -0.122028 0.275339 v 0.185196 -0.049911 0.293967 v 0.229102 -0.065147 0.280845 v 0.268507 -0.086216 0.265698 v 0.314646 -0.096279 0.255446 v 0.336279 -0.111479 0.233958 v 0.366110 -0.101726 0.203517 v 0.380909 0.042009 0.190829 v 0.383682 0.081736 0.189597 v 0.174755 -0.139916 0.261141 v 0.192176 -0.136918 0.254206 v 0.257202 -0.127284 0.253205 v 0.221938 -0.138969 0.249693 v 0.308987 -0.126235 0.246512 v 0.300057 -0.157310 0.231332 v 0.390634 0.019988 0.180729 v 0.417826 -0.092418 0.131972 v 0.201972 -0.161802 0.243071 v 0.245111 -0.157784 0.235240 v 0.229175 -0.172917 0.228110 v 0.359163 -0.127034 0.202618 v 0.366586 -0.164537 0.167837 v 0.337944 -0.155764 0.207713 v 0.401397 -0.130293 0.143701 v 0.420748 -0.105259 0.124024 v 0.405804 -0.018836 0.151534 v 0.446021 -0.068917 0.079403 v 0.435014 -0.020373 0.095141 v 0.458510 -0.048098 0.021615 v 0.438424 -0.013437 0.074169 v 0.460125 -0.032509 -0.013358 v 0.451924 -0.067891 0.021916 v 0.446339 -0.086365 0.061189 v 0.403330 -0.145657 0.122745 v 0.324667 -0.168299 0.201171 v 0.352598 -0.172811 0.164879 v 0.271686 -0.171171 0.222475 v 0.282263 -0.172934 0.211983 v 0.249541 -0.181051 0.212597 v 0.214346 -0.200823 0.215960 v 0.183669 -0.183115 0.242391 v 0.170512 -0.191792 0.249358 v 0.154826 -0.223610 0.277706 v 0.130300 -0.223179 0.316646 v 0.102625 -0.223376 0.341867 v 0.172993 -0.218120 0.241381 v 0.203807 -0.224001 0.211711 v 0.215366 -0.221794 0.198909 v 0.222213 -0.274781 0.167630 v 0.197908 -0.285544 0.153034 v 0.226500 -0.270493 0.128188 v 0.231779 -0.266628 0.147124 v 0.180375 -0.288247 0.190349 v 0.194514 -0.279026 0.202240 v 0.182147 -0.273780 0.230645 v 0.161835 -0.295102 0.225866 v 0.167010 -0.289587 0.245231 v 0.155716 -0.295281 0.240537 v 0.169753 -0.279582 0.252354 v 0.152839 -0.296479 0.274352 v 0.161070 -0.239999 0.260254 v 0.212139 -0.259601 0.197005 v 0.231957 -0.259506 0.163797 v 0.234709 -0.252534 0.136081 v 0.388754 0.107932 0.177620 v 0.386732 0.067806 0.177182 v 0.405763 -0.007821 0.143660 v 0.425304 -0.012799 0.093738 v 0.411309 -0.011235 0.129767 v 0.458974 -0.050654 -0.060071 v 0.461079 -0.041650 -0.052269 v 0.448382 -0.063929 -0.057341 v 0.445918 -0.038740 -0.112966 v 0.433333 -0.064864 -0.108822 v 0.433567 -0.026397 -0.158640 v 0.414188 -0.044159 -0.166594 v 0.425374 -0.015098 -0.198602 v 0.395551 -0.030546 -0.205908 v 0.421555 -0.018735 -0.225632 v 0.429612 -0.012476 -0.221521 v 0.431910 -0.002092 -0.202929 v 0.391087 -0.024220 -0.240337 v 0.382576 -0.024676 -0.219870 v 0.420820 -0.034572 -0.271539 v 0.439844 -0.014973 -0.259122 v 0.435872 0.004801 -0.214537 v 0.390883 -0.034451 -0.261324 v 0.398934 -0.052601 -0.282489 v 0.429700 -0.035957 -0.283615 v 0.414437 -0.069732 -0.303368 v 0.430570 -0.048788 -0.300310 v 0.434041 0.025490 -0.176603 v 0.442656 -0.025436 -0.128767 v 0.348552 0.215246 0.134042 v 0.357461 0.180212 0.064765 v 0.403172 0.169623 -0.019782 v 0.400765 0.108509 -0.056995 v 0.414055 0.098155 -0.098427 v 0.440371 0.130032 -0.136257 v 0.429744 0.095754 -0.127604 v 0.437283 0.082792 -0.175599 v 0.464931 0.009964 -0.313081 v 0.384733 0.080738 0.171716 v 0.390824 0.029349 0.170256 v 0.399516 0.002533 0.156310 v 0.424515 -0.019576 0.069205 v 0.411146 -0.018007 0.086205 v 0.401650 -0.012834 0.118623 v 0.393658 -0.004965 0.129766 v 0.388549 0.006764 0.140106 v 0.384968 0.015299 0.148071 v 0.382490 0.030689 0.158113 v 0.380841 0.062360 0.165600 v 0.387631 0.130296 0.180730 v 0.364221 0.097487 0.167366 v 0.436334 0.040476 -0.118038 v 0.343879 0.146706 0.144998 v 0.337848 0.153054 0.120864 v 0.357945 0.122564 0.026427 v 0.380854 0.116960 -0.015496 v 0.414336 0.067558 -0.108761 v 0.444427 -0.022936 -0.101978 v 0.402511 0.018796 -0.098377 v 0.385705 0.040928 -0.091980 v 0.383633 0.058592 -0.080244 v 0.367218 0.085351 -0.019640 v 0.339434 0.123755 0.073929 v 0.333450 0.123786 0.125821 v 0.348762 0.108651 0.151306 v 0.343726 0.079844 0.163188 v 0.342166 0.092446 0.161742 v 0.345694 0.063071 0.161666 v 0.368028 0.029818 0.159592 v 0.317637 0.113626 0.119232 v 0.297490 0.107111 0.099834 v 0.281675 0.096352 0.093715 v 0.305033 0.091893 0.058452 v 0.382698 -0.013563 -0.092844 v 0.365505 -0.012444 -0.086176 v 0.453632 -0.040891 -0.066046 v 0.449616 -0.035918 -0.086131 v 0.452710 -0.035343 -0.016125 v 0.436167 -0.011740 0.064686 v 0.324845 0.103389 0.142837 v 0.308675 0.090015 0.145771 v 0.294030 0.099189 0.127249 v 0.278996 0.093955 0.115330 v 0.265774 0.073893 0.116143 v 0.289256 0.090233 0.135687 v 0.282756 0.072513 0.144467 v 0.252140 0.053732 0.118999 v 0.252112 0.042861 0.099015 v 0.250903 0.044692 0.151875 v 0.241744 0.023887 0.130146 v 0.271529 0.074808 0.086932 v 0.287687 0.080503 0.066500 v 0.300078 0.068855 0.035871 v 0.346239 0.051761 -0.027266 v 0.348676 0.019989 -0.054406 v 0.354534 -0.000121 -0.071112 v 0.436964 -0.044579 -0.052251 v 0.427438 -0.041927 -0.068710 v 0.427590 -0.054139 -0.032140 v 0.434321 -0.044534 -0.008195 v 0.428147 -0.020873 0.049790 v 0.403221 -0.032172 -0.084656 v 0.380215 -0.021835 -0.092487 v 0.255965 0.053707 0.081971 v 0.261935 0.053227 0.060044 v 0.298495 0.058837 0.019057 v 0.302904 0.052936 0.006875 v 0.273884 0.039151 0.024100 v 0.239437 0.024253 0.059307 v 0.250894 0.026589 0.038407 v 0.337499 0.039458 -0.028126 v 0.317548 0.031957 -0.033421 v 0.403556 -0.044383 -0.067015 v 0.370489 -0.032157 -0.077949 v 0.381684 -0.042961 -0.074341 v 0.360460 -0.020250 -0.078560 v 0.343659 -0.022117 -0.068258 v 0.421434 -0.055915 -0.047491 v 0.429157 -0.057313 0.000576 v 0.403354 -0.060778 -0.064247 v 0.367935 -0.059290 -0.077544 v 0.369083 -0.071212 -0.081070 v 0.327038 0.010691 -0.049045 v 0.328751 -0.015793 -0.064439 v 0.002541 0.596245 0.314165 v 0.000023 0.528879 0.340532 v 0.047408 0.581917 0.317560 v 0.125174 0.518827 0.333949 v 0.115107 0.573701 0.311232 v 0.233968 0.554197 0.286002 v 0.170391 0.571754 0.301176 v 0.273001 0.505786 0.279558 v 0.292507 0.537230 0.246896 v 0.308079 0.494975 0.251327 v 0.063191 0.645579 0.277054 v 0.217074 0.590908 0.270613 v 0.152034 0.644220 0.253066 v 0.211229 0.641030 0.227852 v 0.271341 0.580905 0.235503 v 0.255468 0.629927 0.200739 v 0.323775 0.544360 0.196998 v 0.311877 0.602761 0.157447 v 0.042736 0.693443 0.233843 v 0.005451 0.652292 0.278642 v -0.003222 0.710677 0.220282 v 0.102155 0.683235 0.230396 v 0.189850 0.666748 0.211343 v 0.247851 0.661827 0.169497 v 0.304834 0.637212 0.125199 v 0.020953 0.729176 0.189687 v 0.060333 0.728452 0.187875 v 0.135662 0.704690 0.188827 v 0.208871 0.710183 0.134191 v 0.224496 0.712424 0.107597 v 0.267690 0.680114 0.101518 v 0.360144 0.478312 0.184568 v 0.345667 0.520877 0.182377 v 0.411642 0.482053 0.079241 v 0.475557 0.454359 -0.113817 v 0.463770 0.466890 -0.069712 v 0.455067 0.452271 -0.031218 v 0.442707 0.424752 0.024879 v 0.468076 0.406772 -0.056253 v 0.487975 0.441070 -0.183635 v 0.493431 0.423872 -0.213827 v 0.499292 0.421968 -0.280502 v 0.498287 0.436489 -0.335295 v 0.495051 0.431554 -0.377893 v 0.478380 0.443695 -0.456952 v 0.447582 0.459940 -0.541736 v 0.399289 0.349360 -0.626330 v 0.406763 0.436896 -0.604719 v 0.351447 0.311213 -0.683466 v 0.310151 0.290478 -0.719680 v 0.257640 0.367146 -0.744233 v 0.180808 0.324728 -0.781597 v 0.097272 0.293112 -0.808370 v 0.043304 0.301492 -0.818152 v 0.000273 0.316726 -0.821827 v 0.400631 0.529877 0.066584 v 0.424973 0.514724 0.015815 v 0.353673 0.578071 0.113723 v 0.439460 0.521041 -0.049749 v 0.446206 0.532655 -0.086857 v 0.453706 0.528536 -0.120623 v 0.465632 0.522836 -0.189340 v 0.476481 0.509659 -0.256025 v 0.490540 0.465588 -0.294937 v 0.472874 0.521548 -0.317381 v 0.475338 0.511755 -0.359327 v 0.468984 0.508901 -0.420309 v 0.456227 0.506330 -0.481248 v 0.428086 0.528704 -0.533827 v 0.380754 0.528696 -0.607720 v 0.328490 0.500111 -0.675128 v 0.269319 0.459595 -0.728751 v 0.221124 0.427485 -0.756170 v 0.146588 0.447236 -0.779087 v 0.133722 0.403109 -0.784217 v 0.080085 0.390085 -0.795210 v 0.032765 0.388923 -0.798154 v -0.022154 0.391670 -0.797440 v 0.318835 0.633457 0.103734 v 0.378463 0.588468 0.052319 v 0.368715 0.616038 0.032769 v 0.404729 0.580342 -0.011707 v 0.433746 0.573005 -0.114822 v 0.398822 0.611947 -0.057412 v 0.406508 0.626219 -0.141922 v 0.442765 0.580776 -0.247406 v 0.438073 0.588743 -0.295025 v 0.437125 0.585641 -0.350806 v 0.417940 0.617570 -0.332839 v 0.439209 0.579726 -0.390541 v 0.437745 0.570003 -0.414388 v 0.439719 0.563937 -0.445394 v 0.422917 0.563187 -0.506637 v 0.396762 0.557889 -0.566825 v 0.259118 0.515779 -0.721889 v 0.196389 0.479859 -0.758865 v 0.198148 0.501010 -0.755137 v 0.145576 0.468543 -0.773541 v 0.147487 0.488057 -0.772592 v 0.084218 0.435707 -0.790987 v 0.096998 0.466764 -0.781943 v 0.000454 0.462584 -0.787024 v 0.340136 0.645797 0.044129 v 0.304506 0.694186 0.013199 v 0.284471 0.687783 0.062982 v 0.369198 0.641991 -0.025295 v 0.355794 0.672638 -0.083735 v 0.369494 0.673152 -0.210386 v 0.418573 0.619795 -0.272125 v 0.412544 0.616832 -0.396145 v 0.408548 0.599895 -0.475704 v 0.381542 0.629573 -0.469764 v 0.363252 0.585944 -0.585271 v 0.393990 0.590395 -0.532450 v 0.335237 0.563227 -0.635932 v 0.282287 0.555325 -0.685671 v 0.220682 0.566783 -0.716653 v 0.170365 0.546226 -0.746854 v 0.115954 0.532995 -0.762854 v 0.074699 0.486536 -0.775575 v 0.068818 0.530432 -0.765535 v 0.028877 0.537104 -0.767296 v 0.025629 0.486599 -0.777179 v -0.007423 0.550446 -0.757072 v 0.020389 0.587663 -0.729759 v 0.015505 0.648008 -0.696308 v 0.046688 0.650219 -0.696958 v 0.086514 0.641815 -0.696927 v 0.132176 0.605818 -0.718421 v 0.128442 0.653730 -0.683434 v 0.195143 0.608206 -0.697925 v 0.174937 0.678994 -0.641520 v 0.248039 0.643695 -0.632879 v 0.214278 0.692331 -0.596061 v 0.310263 0.659810 -0.543361 v 0.218586 0.731434 -0.522756 v 0.272017 0.712483 -0.485712 v 0.324283 0.675213 -0.481278 v 0.351922 0.678692 -0.371437 v 0.297682 0.720769 -0.367283 v 0.367584 0.669239 -0.335726 v 0.313888 0.716503 -0.296111 v 0.370661 0.670708 -0.291095 v 0.377016 0.666444 -0.258025 v 0.324481 0.711228 -0.235787 v 0.360873 0.676496 -0.131103 v 0.310225 0.717603 -0.105255 v 0.323966 0.685520 -0.011626 v 0.295450 0.712336 -0.021582 v 0.244292 0.743473 -0.015672 v 0.268375 0.713946 0.024062 v 0.228916 0.740734 0.022980 v 0.248688 0.705623 0.078272 v 0.235286 0.717841 0.085213 v 0.185561 0.731496 0.112525 v 0.142465 0.729828 0.145314 v 0.140198 0.739714 0.141720 v 0.104500 0.727724 0.170725 v 0.099416 0.762186 0.122208 v 0.004077 0.771691 0.135549 v 0.000261 0.752147 0.162923 v 0.017734 0.735291 -0.618336 v -0.032961 0.702500 -0.649923 v 0.057742 0.734700 -0.614844 v 0.076872 0.707884 -0.640254 v 0.136720 0.713364 -0.616288 v 0.094304 0.752619 -0.576321 v 0.165851 0.723650 -0.587639 v 0.092397 0.773486 -0.533991 v 0.145271 0.748357 -0.553832 v 0.149259 0.762105 -0.518270 v 0.197381 0.729871 -0.547293 v 0.178607 0.751050 -0.512514 v 0.183904 0.761915 -0.475568 v 0.208030 0.757389 -0.459853 v 0.159516 0.771839 -0.482608 v 0.180060 0.787748 -0.352419 v 0.253552 0.753303 -0.337968 v 0.216202 0.777902 -0.263822 v 0.268109 0.749102 -0.259185 v 0.258401 0.753701 -0.113007 v 0.221958 0.774642 -0.111605 v 0.206522 0.777297 -0.069995 v 0.246914 0.749274 -0.039132 v 0.184682 0.774723 -0.011097 v 0.205148 0.748599 0.049328 v 0.003626 0.799341 0.070449 v 0.144733 0.765474 0.095618 v 0.100744 0.784245 0.075138 v 0.118570 0.794484 0.036243 v 0.064724 0.803762 0.032055 v 0.145622 0.780970 0.062636 v 0.195291 0.752914 0.068032 v 0.169821 0.776806 0.035356 v -0.013306 0.763230 -0.582595 v 0.000479 0.784217 -0.547472 v 0.028871 0.754556 -0.594127 v 0.047670 0.765254 -0.570816 v 0.019148 0.794842 -0.521146 v 0.075485 0.797955 -0.483506 v 0.140009 0.789675 -0.438293 v 0.099705 0.812367 -0.381639 v 0.165639 0.800836 -0.253553 v 0.123081 0.815345 -0.249293 v 0.156287 0.801319 -0.095897 v 0.112581 0.816097 -0.100157 v 0.152956 0.796806 -0.057133 v 0.140373 0.795632 -0.020546 v 0.073374 0.816669 -0.027937 v 0.129929 0.796793 0.005310 v -0.000730 0.820131 -0.004206 v 0.045588 0.810758 -0.455200 v 0.028147 0.834485 -0.332687 v 0.077989 0.826946 -0.250253 v 0.023256 0.840187 -0.261271 v 0.065806 0.828431 -0.118537 v 0.022090 0.833714 -0.119727 v 0.014390 0.826406 -0.042352 v 0.000443 0.816300 -0.450245 v 0.000446 0.829133 -0.390511 v 0.000479 0.840543 -0.294724 v 0.006306 0.839216 -0.191053 v 0.456023 -0.017434 -0.315063 v 0.443777 -0.033349 -0.303845 v 0.471515 0.035307 -0.350514 v 0.467459 0.038056 -0.378203 v 0.398483 -0.019600 -0.491514 v 0.398059 0.068160 -0.552025 v 0.309676 0.039818 -0.635805 v 0.205533 0.076679 -0.772606 v 0.107294 0.038660 -0.811146 v 0.165841 0.055444 -0.786918 v 0.057347 0.023111 -0.824366 v 0.001730 -0.019294 -0.815213 v 0.443844 -0.037479 -0.347818 v 0.420170 0.002891 -0.450521 v 0.383981 0.014409 -0.534349 v 0.208748 0.027540 -0.725044 v 0.080453 0.003826 -0.800829 v 0.043800 -0.014266 -0.805935 v 0.429881 -0.068306 -0.320833 v 0.418908 -0.036839 -0.427074 v 0.400868 -0.051685 -0.469030 v 0.414921 -0.032866 -0.460145 v 0.361140 -0.102615 -0.506842 v 0.333882 -0.080162 -0.548138 v 0.283710 -0.067289 -0.608727 v 0.237381 -0.045466 -0.659310 v 0.205832 -0.002466 -0.705947 v 0.132349 -0.001980 -0.751467 v 0.060756 -0.042004 -0.761765 v 0.000515 -0.052400 -0.787262 v 0.425787 -0.078189 -0.343068 v 0.383482 -0.055530 -0.278005 v 0.403605 -0.082870 -0.300564 v 0.413588 -0.093784 -0.319932 v 0.420484 -0.073100 -0.384071 v 0.414252 -0.112343 -0.344787 v 0.399206 -0.115946 -0.419820 v 0.387790 -0.111154 -0.456557 v 0.386645 -0.077280 -0.283602 v 0.386390 -0.102217 -0.282841 v 0.404239 -0.134677 -0.374051 v 0.396542 -0.172823 -0.316911 v 0.392084 -0.160273 -0.300919 v 0.392877 -0.184768 -0.334778 v 0.379285 -0.114814 -0.281406 v 0.376202 -0.172710 -0.288521 v 0.375214 -0.191402 -0.379936 v 0.375217 -0.121428 -0.468938 v 0.369026 -0.157183 -0.282590 v 0.369812 -0.039914 -0.266459 v 0.332070 -0.056428 -0.255577 v 0.333720 -0.026752 -0.253810 v 0.355889 -0.117552 -0.268599 v 0.339421 -0.139795 -0.262808 v 0.338160 -0.168874 -0.269902 v 0.336844 -0.125218 -0.252843 v 0.316759 -0.146361 -0.255098 v 0.343991 -0.009654 -0.248995 v 0.317559 -0.024845 -0.243657 v 0.352790 -0.006381 -0.236744 v 0.366863 -0.029426 -0.212962 v 0.349267 -0.040904 -0.212030 v 0.326645 0.002263 -0.242234 v 0.383509 -0.035103 -0.204256 v 0.398196 -0.044649 -0.179044 v 0.407944 -0.059208 -0.152328 v 0.412225 -0.076625 -0.123168 v 0.422125 -0.077893 -0.097431 v 0.447741 -0.062462 -0.010010 v 0.440862 -0.070252 0.014243 v 0.434625 -0.102431 0.057654 v 0.395139 -0.150030 0.115260 v 0.313606 -0.169720 0.191766 v 0.295027 -0.171481 0.196693 v 0.308410 -0.175493 0.190837 v 0.265563 -0.173619 0.193966 v 0.232209 -0.188377 0.213015 v 0.243959 -0.186285 0.195869 v 0.224156 -0.200006 0.199125 v 0.421510 -0.094770 0.056326 v 0.432036 -0.093490 0.046263 v 0.392659 -0.140753 0.104041 v 0.381143 -0.122088 0.112925 v 0.344072 -0.145546 0.155817 v 0.350550 -0.170455 0.158127 v 0.305162 -0.167117 0.183949 v 0.326099 -0.156719 0.166729 v 0.307867 -0.154350 0.172636 v 0.292238 -0.163172 0.180327 v 0.261443 -0.168440 0.186107 v 0.423961 -0.081131 0.041006 v 0.431868 -0.065949 0.009393 v 0.432464 -0.063969 -0.005485 v 0.428256 -0.065688 -0.017112 v 0.422579 -0.075900 -0.042346 v 0.411824 -0.084999 -0.075132 v 0.407705 -0.085522 -0.073874 v 0.388714 -0.081896 -0.080371 v 0.404257 -0.082138 -0.073049 v 0.409905 -0.073526 -0.064562 v 0.065361 -0.212093 0.186964 v 0.083270 -0.230246 0.185584 v 0.049899 -0.189650 0.166680 v 0.092682 -0.184636 0.136668 v 0.114152 -0.217336 0.141310 v 0.057218 -0.233370 0.236916 v 0.034608 -0.219816 0.238490 v 0.069714 -0.264029 0.268015 v 0.063733 -0.310081 0.322050 v 0.024076 -0.271909 0.301390 v 0.189112 -0.241925 0.075600 v 0.126737 -0.252627 0.141386 v 0.132363 -0.191430 0.116100 v 0.099460 -0.261746 0.187725 v 0.081986 -0.250912 0.227410 v 0.097540 -0.275268 0.236494 v 0.072270 -0.287912 0.291882 v 0.080436 -0.301916 0.306306 v 0.227560 -0.224797 0.162300 v 0.241012 -0.178590 0.182125 v 0.230471 -0.189898 0.179704 v 0.226800 -0.198853 0.173206 v 0.226026 -0.217881 0.130615 v 0.228634 -0.209453 0.151425 v 0.230229 -0.257456 0.116917 v 0.209027 -0.270768 0.112571 v 0.225826 -0.263205 0.114360 v 0.224867 -0.193842 0.140450 v 0.228678 -0.170540 0.149640 v 0.241682 -0.165596 0.173895 v 0.259951 -0.142469 0.173332 v 0.269655 -0.119401 0.169134 v 0.300944 -0.111962 0.170436 v 0.283816 -0.097877 0.169101 v 0.297492 -0.009659 0.174593 v 0.312510 0.001935 0.170928 v 0.223390 -0.164716 0.121778 v 0.232851 -0.157252 0.154556 v 0.243054 -0.162131 0.164160 v 0.238427 -0.138910 0.154152 v 0.252504 -0.136699 0.162487 v 0.254431 -0.127488 0.164469 v 0.272350 -0.041186 0.165554 v 0.299725 0.022497 0.170899 v 0.283639 0.030664 0.171399 v 0.233594 -0.137459 0.141447 v 0.228815 -0.130456 0.121391 v 0.238514 -0.111028 0.139155 v 0.238889 -0.098808 0.144160 v 0.254583 -0.014527 0.158251 v 0.229934 -0.083580 0.120462 v 0.235029 -0.032267 0.122320 v 0.237776 -0.025952 0.134527 v 0.265707 0.045995 0.162613 v 0.256803 0.053966 0.150056 v 0.349032 -0.035249 0.141064 v 0.322210 0.060810 0.161246 v 0.303788 0.060339 0.167842 v 0.315764 0.082982 0.157124 v 0.277916 0.061555 0.156923 v 0.368238 -0.037612 0.137779 v 0.412408 -0.071951 0.066195 v 0.417486 -0.044802 0.054710 v 0.397082 -0.053321 0.098321 v 0.408857 -0.034975 0.078332 v 0.395839 -0.029167 0.112240 v 0.382522 -0.016209 0.126741 v 0.011695 -0.269652 0.312907 v 0.000719 -0.259425 0.322689 v 0.011378 -0.242650 0.276883 v 0.000479 -0.237274 0.279612 v -0.001648 -0.222660 0.251261 v 0.078566 -0.308976 0.317506 v 0.027480 -0.309618 0.336282 v 0.017111 -0.309895 0.341016 v 0.003893 -0.280868 0.338818 v 0.181944 -0.216283 0.071289 v 0.176136 -0.214919 0.054281 v 0.158837 -0.182397 0.090164 v 0.194339 -0.241543 0.058837 v 0.193532 -0.257928 0.056072 v 0.192175 -0.265601 0.074883 v 0.183610 -0.262766 0.041411 v 0.180051 -0.263269 0.092293 v 0.164289 -0.269254 0.116781 v 0.120748 -0.270131 0.178202 v 0.110261 -0.286211 0.242620 v 0.089597 -0.299186 0.272323 v 0.345552 -0.208769 -0.277741 v 0.374172 -0.195504 -0.294618 v 0.382127 -0.201092 -0.317688 v 0.369245 -0.216856 -0.354893 v 0.338322 -0.216092 -0.396303 v 0.342649 -0.164139 -0.468494 v 0.326912 -0.188041 -0.458285 v 0.314082 -0.201486 -0.446136 v 0.327583 -0.124748 -0.522752 v 0.304359 -0.143920 -0.515358 v 0.306673 -0.181268 -0.473883 v 0.238569 -0.083037 -0.637376 v 0.163557 -0.080063 -0.680420 v 0.102951 -0.044352 -0.734834 v 0.074431 -0.071691 -0.723513 v 0.048068 -0.095638 -0.704327 v 0.028530 -0.071665 -0.739977 v -0.001558 -0.094994 -0.715478 v 0.000533 -0.115576 -0.679512 v 0.056390 -0.129611 -0.662499 v 0.098216 -0.124045 -0.670908 v 0.115422 -0.103410 -0.686388 v 0.138715 -0.143227 -0.628352 v 0.263060 -0.116457 -0.578371 v 0.176588 -0.148675 -0.596878 v 0.299485 -0.103516 -0.560774 v 0.238504 -0.149615 -0.546629 v 0.106510 -0.151183 -0.623385 v 0.059045 -0.145713 -0.621961 v 0.000674 -0.131882 -0.643467 v 0.272645 -0.170418 -0.485999 v 0.259062 -0.162711 -0.503885 v 0.150762 -0.172632 -0.576883 v 0.081658 -0.165997 -0.592306 v 0.126557 -0.178801 -0.561382 v 0.039338 -0.154413 -0.583838 v 0.000058 -0.148229 -0.571074 v 0.268193 -0.182179 -0.453942 v 0.228899 -0.176801 -0.490016 v 0.137392 -0.184252 -0.508142 v 0.064927 -0.179091 -0.527793 v 0.000458 -0.169066 -0.513635 v 0.319634 -0.223074 -0.400055 v 0.314160 -0.231308 -0.385863 v 0.329168 -0.250534 -0.341256 v 0.319213 -0.247713 -0.351577 v 0.356389 -0.233023 -0.340225 v 0.333791 -0.253172 -0.300914 v 0.344377 -0.229030 -0.286331 v 0.322169 -0.248682 -0.281953 v 0.309525 -0.220128 -0.272551 v 0.299264 -0.210665 -0.413090 v 0.242989 0.005665 0.114046 v 0.240904 0.033530 0.083031 v 0.326326 -0.255960 -0.289632 v 0.327941 -0.258691 -0.304201 v 0.312723 -0.160466 -0.260553 v 0.308207 -0.235416 -0.369658 v 0.300505 -0.253174 -0.320722 v 0.315934 -0.260600 -0.301584 v 0.311970 -0.256225 -0.290133 v 0.298990 -0.235250 -0.280677 v 0.309969 -0.123009 -0.241005 v 0.289264 -0.149729 -0.263266 v 0.284942 -0.204186 -0.388624 v 0.275930 -0.195826 -0.422864 v 0.191862 -0.268904 0.061073 v 0.174026 -0.273118 0.118402 v 0.193753 -0.271553 0.101204 v 0.119325 -0.286032 0.192018 v 0.109258 -0.282459 0.209526 v 0.138128 -0.292480 0.174867 v 0.107456 -0.287710 0.230007 v 0.136710 -0.293459 0.234785 v 0.031921 -0.179686 -0.469723 v 0.000471 -0.176804 -0.477829 v 0.136882 -0.183215 -0.485447 v 0.073718 -0.179281 -0.486924 v 0.276551 -0.197570 -0.410925 v 0.172082 -0.189091 -0.455361 v 0.109475 -0.173446 -0.453617 v 0.280305 -0.139420 -0.252888 v 0.289789 -0.167091 -0.273062 v 0.293657 -0.237007 -0.289762 v 0.293873 -0.247049 -0.308027 v 0.291654 -0.244732 -0.336759 v 0.284779 -0.218915 -0.360783 v 0.280388 -0.149149 -0.271653 v 0.262829 -0.133703 -0.288610 v 0.265592 -0.139194 -0.266911 v 0.264662 -0.145583 -0.253550 v 0.266775 -0.176598 -0.305530 v 0.268622 -0.191976 -0.317783 v 0.281729 -0.223790 -0.328184 v 0.271742 -0.199603 -0.333217 v 0.269227 -0.195847 -0.355271 v 0.277860 -0.132116 -0.240086 v 0.281033 -0.119368 -0.230453 v 0.260962 -0.147801 -0.233668 v 0.313082 -0.104004 -0.233645 v 0.320311 -0.094853 -0.234985 v 0.041137 -0.176442 -0.444471 v 0.060006 -0.177408 -0.433120 v 0.074118 -0.179546 -0.449239 v 0.137074 -0.172399 -0.431705 v 0.213244 -0.191203 -0.403847 v 0.263185 -0.198200 -0.381197 v 0.119651 -0.151805 -0.407880 v 0.089161 -0.142532 -0.406340 v 0.220863 -0.182066 -0.370922 v 0.247079 -0.186601 -0.349876 v 0.000468 -0.317073 0.393264 v 0.024712 -0.306445 0.398542 v 0.038529 -0.305280 0.387261 v 0.089296 -0.308082 0.358573 v 0.149858 -0.297933 0.296202 v 0.005707 0.057826 0.421702 v 0.011386 0.063939 0.425865 v 0.020789 0.048662 0.417811 v 0.030621 0.035944 0.411270 v 0.058800 0.015112 0.395213 v 0.059162 0.002186 0.372280 v 0.088650 -0.016209 0.362221 v 0.078751 -0.024689 0.333949 v 0.085518 -0.042209 0.331958 v 0.087234 -0.054116 0.347613 v 0.080898 -0.097543 0.299984 v 0.060339 -0.133605 0.336120 v 0.067283 -0.125843 0.313300 v 0.080854 -0.105184 0.335236 v 0.078100 -0.108415 0.311069 v 0.045931 -0.143762 0.348619 v 0.026083 -0.138818 0.343510 v 0.042401 -0.140730 0.297440 v 0.040447 -0.140161 0.282609 v 0.034327 0.022569 0.389895 v 0.011594 -0.137463 0.281652 v 0.000308 -0.124813 0.334535 v 0.000384 -0.110392 0.310937 v 0.021432 -0.135313 0.167722 v 0.032010 -0.138572 0.084296 v 0.028126 -0.129905 0.083299 v 0.017526 -0.101446 0.102146 v 0.000496 -0.053048 0.314299 v 0.058370 -0.148973 0.091428 v 0.083915 -0.154534 0.112201 v 0.094514 -0.150820 0.128310 v 0.103795 -0.139274 0.130945 v 0.112670 -0.130816 0.118271 v 0.111679 -0.097698 0.151580 v 0.115898 -0.080594 0.131717 v 0.095464 -0.053672 0.256241 v 0.082959 -0.034172 0.235387 v 0.088945 -0.037348 0.158705 v 0.050562 0.000095 0.311832 v 0.030379 0.019364 0.302586 v 0.035389 0.011449 0.221144 v 0.028492 0.032699 0.356399 v 0.000492 0.045262 0.406975 v 0.018444 0.023794 0.337309 v 0.009440 -0.040593 0.191367 v 0.014824 -0.040380 0.075088 v 0.017917 -0.017708 0.132102 v 0.004708 0.005642 0.340861 v 0.000472 -0.021591 0.342077 v 0.019437 0.001298 0.234277 v 0.060182 -0.159481 -0.256784 v 0.034445 -0.153254 -0.242816 v 0.025350 -0.156661 -0.252902 v 0.058382 -0.166620 -0.285620 v 0.066231 -0.161442 -0.328291 v 0.051348 -0.151868 -0.362087 v 0.047252 -0.150334 -0.392344 v 0.074301 -0.145028 -0.391494 v 0.051122 -0.157176 -0.407239 v 0.012136 -0.150469 -0.436180 v 0.020058 -0.169601 -0.454955 v 0.000476 -0.154431 -0.447253 v 0.031767 -0.162940 -0.274917 v 0.036982 -0.163660 -0.302992 v 0.022015 -0.147518 -0.326710 v 0.026515 -0.142929 -0.364163 v 0.027292 -0.145309 -0.407465 v 0.048353 -0.144264 -0.238331 v 0.017464 -0.130934 -0.218789 v 0.009114 -0.139720 -0.230370 v 0.000566 -0.111779 -0.196144 v 0.012837 -0.083309 -0.178876 v 0.019300 -0.116342 -0.209205 v 0.016018 -0.055916 -0.148070 v 0.000478 -0.070623 -0.156029 v 0.022364 -0.038127 -0.110369 v 0.020482 -0.033276 -0.078199 v 0.000478 -0.045013 -0.086090 v 0.000480 -0.047910 -0.034425 v 0.027109 -0.031452 -0.037164 v 0.029115 -0.018428 0.024335 v 0.000480 -0.032320 0.032698 v 0.030562 -0.021758 0.060198 v 0.018113 -0.029887 0.057070 v 0.000477 -0.045856 0.046504 v 0.000480 -0.145103 -0.275142 v 0.000479 -0.133216 -0.321019 v 0.001390 -0.139507 -0.365901 v 0.000584 -0.133251 -0.233102 v 0.221682 -0.269567 -0.219432 v 0.217204 -0.266701 -0.218483 v 0.214830 -0.262576 -0.226412 v 0.223623 -0.265157 -0.229457 v 0.226531 -0.267251 -0.225406 v 0.236628 -0.182022 -0.247541 v 0.230816 -0.221345 -0.239190 v 0.224037 -0.175456 -0.230773 v 0.252202 -0.158273 -0.254945 v 0.238528 -0.153750 -0.254573 v 0.250110 -0.145309 -0.262546 v 0.226387 -0.163388 -0.240004 v 0.221871 -0.150282 -0.228289 v 0.251565 -0.180046 -0.242320 v 0.236471 -0.248510 -0.229020 v 0.241421 -0.209583 -0.238903 v 0.229909 -0.264738 -0.215147 v 0.233961 -0.263807 -0.218900 v 0.239200 -0.245936 -0.223591 v 0.250073 -0.187396 -0.224004 v 0.256083 -0.148213 -0.223367 v 0.229885 -0.158893 -0.224492 v 0.238838 -0.148087 -0.221686 v 0.218841 -0.211967 -0.222133 v 0.223168 -0.212970 -0.216275 v 0.227288 -0.246735 -0.214209 v 0.241501 -0.194685 -0.217273 v 0.254244 -0.128916 -0.220425 v 0.223025 -0.149050 -0.221894 v 0.278862 -0.097032 -0.223011 v 0.309829 -0.079215 -0.224537 v 0.296225 -0.055656 -0.215714 v 0.263701 -0.097098 -0.214222 v 0.245885 -0.129505 -0.213594 v 0.320278 -0.075016 -0.237377 v 0.240545 -0.119227 -0.210690 v 0.230835 -0.138524 -0.215131 v 0.222526 -0.121071 -0.223741 v 0.352298 -0.045542 -0.202815 v 0.373607 -0.033970 -0.197231 v 0.396925 -0.057598 -0.148204 v 0.368428 -0.040213 -0.139935 v 0.388411 -0.084841 -0.112877 v 0.351886 -0.045081 -0.125394 v 0.371679 -0.027182 -0.162690 v 0.385374 -0.037224 -0.185071 v 0.370714 -0.026821 -0.178765 v 0.396764 -0.085788 -0.114004 v 0.378450 -0.083122 -0.100902 v 0.358808 -0.066232 -0.110140 v 0.355097 -0.071639 -0.095414 v 0.352516 -0.032987 -0.191968 v 0.343618 -0.047000 -0.203695 v 0.335681 -0.056414 -0.214282 v 0.348741 -0.062391 -0.083516 v 0.029276 -0.001606 0.150117 v 0.040670 0.005664 0.171533 v 0.067063 -0.009750 0.147073 v 0.081696 -0.007016 0.076905 v 0.108566 -0.024868 0.079874 v 0.041158 -0.029395 -0.054900 v 0.059853 -0.028307 -0.085620 v 0.060123 -0.034448 -0.058092 v 0.061443 -0.028369 -0.013341 v 0.081822 -0.010749 0.038764 v 0.053123 -0.012072 0.025521 v 0.057186 -0.010136 0.066220 v 0.033609 -0.039040 -0.175186 v 0.044514 -0.024274 -0.171772 v 0.051013 -0.009284 -0.143689 v 0.034238 -0.028434 -0.117840 v 0.044743 -0.063390 -0.201160 v 0.122851 -0.153227 -0.360722 v 0.118912 -0.151929 -0.329657 v 0.123320 -0.143690 -0.295581 v 0.074533 -0.160021 -0.273939 v 0.112641 -0.142082 -0.282060 v 0.099748 -0.142854 -0.268696 v 0.084195 -0.140160 -0.250865 v 0.088864 -0.082539 -0.230428 v 0.074401 -0.051671 -0.208717 v 0.084858 -0.023801 -0.185627 v 0.070724 -0.011123 -0.166433 v 0.125918 -0.026201 -0.185957 v 0.156176 -0.005832 -0.156090 v 0.105993 -0.058902 -0.220115 v 0.100779 -0.119053 -0.256613 v 0.110614 -0.085875 -0.252130 v 0.123974 -0.114735 -0.264643 v 0.145611 -0.138354 -0.293820 v 0.156552 -0.156091 -0.330295 v 0.185864 -0.159924 -0.317159 v 0.221199 -0.167632 -0.324000 v 0.242650 -0.170188 -0.319041 v 0.244084 -0.137631 -0.299518 v 0.236566 -0.130717 -0.284235 v 0.204440 -0.132302 -0.290111 v 0.253229 -0.130405 -0.288678 v 0.233269 -0.135092 -0.268228 v 0.223521 -0.120264 -0.268575 v 0.262521 -0.130223 -0.281780 v 0.323673 -0.029703 -0.230108 v 0.321251 -0.067585 -0.221507 v 0.318983 -0.050731 -0.213275 v 0.319107 -0.008624 -0.200417 v 0.283388 -0.006634 -0.207984 v 0.308594 0.006203 -0.193734 v 0.235191 -0.085147 -0.214299 v 0.210215 -0.063517 -0.233110 v 0.224526 -0.101676 -0.218273 v 0.221167 -0.058540 -0.215150 v 0.220844 -0.042851 -0.205289 v 0.328086 0.009957 -0.173899 v 0.350620 -0.019299 -0.175808 v 0.336449 0.000266 -0.158614 v 0.351174 -0.019841 -0.160176 v 0.349248 -0.027454 -0.145441 v 0.330296 -0.031882 -0.123188 v 0.328796 0.000736 -0.148288 v 0.339169 -0.043745 -0.107556 v 0.336120 -0.033595 -0.116841 v 0.336416 -0.041354 -0.100385 v 0.320353 -0.038995 -0.091766 v 0.317454 -0.036727 -0.103544 v 0.296042 -0.029362 -0.089412 v 0.301002 -0.024833 -0.110171 v 0.288225 -0.012678 -0.125550 v 0.301695 -0.010535 -0.130225 v 0.304194 0.010820 -0.154286 v 0.323548 0.016138 -0.163303 v 0.305616 -0.024704 -0.072987 v 0.288837 0.024811 -0.027561 v 0.275752 0.036426 -0.005913 v 0.291365 0.008575 -0.047194 v 0.270527 0.023135 -0.044511 v 0.265618 0.036894 0.010938 v 0.261954 0.032089 -0.031272 v 0.229324 0.028767 -0.004474 v 0.220557 0.005643 0.049068 v 0.201445 -0.000988 0.023532 v 0.225149 0.025780 -0.042046 v 0.204534 0.015114 -0.057887 v 0.224878 0.018316 -0.065445 v 0.228839 0.003067 -0.084682 v 0.265821 -0.019252 -0.088672 v 0.275893 -0.022789 -0.106729 v 0.247956 -0.026002 -0.124891 v 0.242788 -0.027184 -0.111896 v 0.269883 0.013471 -0.159306 v 0.292237 0.026160 -0.166906 v 0.234952 -0.023859 -0.140195 v 0.221237 -0.029440 -0.136587 v 0.231482 -0.028601 -0.153780 v 0.222190 -0.021403 -0.120924 v 0.208398 0.017807 -0.083562 v 0.205729 0.020089 -0.071611 v 0.192133 0.004249 -0.060230 v 0.201688 -0.012194 -0.133483 v 0.198755 0.003591 -0.129206 v 0.199196 -0.028680 -0.144285 v 0.194150 0.022288 -0.119321 v 0.190440 0.026193 -0.112623 v 0.188669 0.030014 -0.103437 v 0.184028 0.025710 -0.094828 v 0.200948 -0.043159 -0.153837 v 0.206608 -0.047778 -0.162789 v 0.310277 0.013393 -0.174306 v 0.263575 -0.007228 -0.182261 v 0.283110 0.024177 -0.172607 v 0.292422 0.021132 -0.182086 v 0.233214 -0.022919 -0.173162 v 0.233611 -0.017188 -0.186155 v 0.236012 -0.020769 -0.196518 v 0.260913 -0.008639 -0.197485 v 0.155610 -0.030443 -0.191651 v 0.172297 -0.043730 -0.198742 v 0.178067 -0.018592 -0.154235 v 0.192287 -0.048736 -0.169176 v 0.194709 -0.056395 -0.177493 v 0.198315 -0.055704 -0.184550 v 0.203344 -0.051514 -0.200492 v 0.180263 -0.042678 -0.215411 v 0.139748 -0.043938 -0.213947 v 0.160510 -0.043407 -0.209608 v 0.150985 -0.055763 -0.232188 v 0.179622 -0.057872 -0.241692 v 0.185803 -0.039194 -0.221593 v 0.205391 -0.052403 -0.214352 v 0.193897 -0.044188 -0.227209 v 0.223838 -0.142730 -0.249030 v 0.203448 -0.073472 -0.248580 v 0.128614 -0.065406 -0.241380 v 0.199819 0.009176 -0.017200 v 0.178622 -0.025279 -0.047821 v 0.210233 0.005530 0.053263 v 0.180720 -0.031119 0.001714 v 0.169554 -0.078017 -0.017385 v 0.167492 -0.056859 -0.045428 v 0.159247 -0.065928 -0.046424 v 0.188497 -0.011876 0.012920 v 0.186463 -0.006036 0.028811 v 0.189549 0.009141 0.047912 v 0.228907 0.036687 0.111660 v 0.240257 0.041527 0.105449 v 0.240534 0.037694 0.116822 v 0.232385 0.021938 0.123534 v 0.204647 0.032764 0.081756 v 0.225690 0.031782 0.112330 v 0.195772 0.009956 0.067138 v 0.202746 -0.161428 0.073388 v 0.184314 -0.144220 0.046232 v 0.214577 -0.190652 0.095740 v 0.222702 -0.203799 0.118459 v 0.197826 -0.196370 0.052372 v 0.214182 -0.216299 0.076629 v 0.186959 -0.218772 0.033085 v 0.226383 -0.232106 0.123381 v 0.222914 -0.232460 0.115392 v 0.228013 -0.239790 0.109112 v 0.219869 -0.259248 0.092986 v 0.216214 -0.265457 0.095474 v 0.069975 -0.004111 -0.146792 v 0.090650 -0.004520 -0.122847 v 0.105483 -0.015557 -0.096454 v 0.162898 0.000096 -0.115858 v 0.151086 -0.007911 -0.094797 v 0.126476 -0.031022 -0.076226 v 0.148880 0.000860 -0.136204 v 0.180461 0.015370 -0.134877 v 0.175013 0.017696 -0.123978 v 0.175747 0.024191 -0.109346 v 0.167032 0.004836 -0.089166 v 0.166149 -0.022397 -0.064881 v 0.092976 -0.049582 -0.060686 v 0.082042 -0.050642 -0.041475 v 0.110460 -0.083745 -0.037968 v 0.137596 -0.085526 -0.042641 v 0.131338 -0.120503 0.069367 v 0.127685 -0.109967 0.031311 v 0.122001 -0.068518 0.035044 v 0.124355 -0.061070 0.059132 v 0.105509 -0.066910 0.013207 v 0.131120 -0.143849 0.046320 v 0.099507 -0.030811 0.046691 v 0.120097 -0.040749 0.061507 v 0.091299 -0.030812 0.021590 v 0.084024 -0.045101 -0.005476 v 0.101321 -0.074126 -0.016334 v 0.159954 -0.189804 0.042644 v 0.131390 -0.158720 0.032271 v 0.133749 -0.190555 0.021639 v 0.141899 -0.203882 0.011952 v 0.113215 -0.153011 0.009044 v 0.106084 -0.118319 -0.000743 v 0.105874 -0.137047 -0.010922 v 0.121071 -0.170470 -0.000809 v 0.107742 -0.105111 -0.024774 v 0.179124 -0.017574 0.037868 v 0.166505 -0.117926 -0.005770 v 0.157977 -0.141527 -0.013345 v 0.177736 -0.046975 0.041028 v 0.169760 -0.145731 0.005406 v 0.177032 -0.184839 0.017114 v 0.168476 -0.182946 0.006135 v 0.159322 -0.156581 -0.007397 v 0.149210 -0.144105 -0.015670 v 0.124447 -0.124496 -0.023387 v 0.065220 -0.310746 0.332478 v 0.050667 -0.314153 0.341201 v 0.043597 -0.316781 0.348747 v 0.078541 -0.319847 0.325358 v 0.006343 -0.304469 0.348279 v 0.010523 -0.316019 0.357996 v 0.035160 -0.311907 0.352442 v 0.000731 -0.309869 0.347010 v -0.001869 -0.276926 0.334483 v -0.000165 -0.185338 0.195172 v 0.000476 -0.174651 0.138455 v 0.130920 -0.097985 0.073390 v 0.137573 -0.158699 0.105970 v 0.067584 -0.172565 0.132838 v 0.099892 -0.156406 0.119578 v 0.124787 -0.135267 0.077209 v 0.109938 -0.146438 0.117512 v 0.064265 -0.165823 0.121094 v 0.055277 -0.165236 0.107275 v 0.042728 -0.158334 0.093606 v 0.016479 -0.152303 0.093595 v 0.024423 -0.128026 0.065874 v 0.000479 -0.113830 0.072486 v 0.016480 -0.100964 0.069149 v 0.012736 -0.072208 0.070398 v 0.000479 -0.148705 0.101545 v 0.086186 -0.310078 0.329610 v 0.080876 -0.320646 0.334630 v 0.095132 -0.302792 0.317097 v 0.098022 -0.306889 0.294610 v 0.119303 -0.305988 0.311697 v 0.064959 -0.308247 0.348433 v 0.013361 -0.315751 0.369615 v 0.031645 -0.306878 0.395989 v 0.060439 -0.312124 0.361771 v 0.201822 -0.265175 0.066936 v 0.183492 -0.245952 0.035699 v 0.160699 -0.207334 0.017016 v 0.133450 -0.161869 -0.006195 v 0.218275 -0.232277 0.094057 v 0.000481 0.025972 0.385601 v 0.000453 -0.322533 0.370233 v -0.011570 0.073140 0.423223 v -0.033501 0.115856 0.357439 v -0.051119 0.116327 0.329343 v -0.066952 0.083864 0.347062 v -0.006041 0.114619 0.385447 v -0.007214 0.133015 0.379074 v -0.026957 0.142627 0.364823 v -0.035190 0.160705 0.365352 v -0.060612 0.138926 0.333236 v -0.053428 0.124220 0.324234 v -0.106348 0.162609 0.342275 v -0.060518 0.194722 0.379488 v -0.110871 0.178987 0.359552 v -0.094635 0.198292 0.376938 v -0.144910 0.205989 0.360379 v -0.150705 0.232318 0.368654 v -0.167602 0.202963 0.343194 v -0.195773 0.231844 0.340018 v -0.219225 0.275509 0.339646 v -0.231779 0.256552 0.327582 v -0.271447 0.292554 0.319582 v -0.257388 0.267401 0.320962 v -0.317658 0.281401 0.297291 v -0.310875 0.261349 0.304855 v -0.124723 0.053851 0.331424 v -0.171874 0.044040 0.327770 v -0.154236 0.031293 0.339183 v -0.117934 0.039957 0.347984 v -0.175761 0.008835 0.337024 v -0.214955 0.041862 0.309887 v -0.211103 0.033759 0.316622 v -0.211257 0.018691 0.320320 v -0.336758 0.249088 0.287607 v -0.350016 0.272789 0.267807 v -0.354974 0.227488 0.267645 v -0.364487 0.241355 0.256225 v -0.380314 0.197642 0.228153 v -0.361580 0.191318 0.244724 v -0.376818 0.097694 0.197184 v -0.345602 0.111536 0.203844 v -0.020709 0.088794 0.400624 v -0.016222 0.164430 0.369129 v -0.373908 0.146912 0.215018 v -0.385720 0.149909 0.208894 v -0.354075 0.153205 0.224552 v -0.068627 0.047195 0.375377 v -0.030107 0.045443 0.416772 v -0.066854 0.020893 0.391507 v -0.087484 0.047766 0.362200 v -0.113690 0.048877 0.343187 v -0.090518 0.070128 0.334049 v -0.249967 0.030713 0.315789 v -0.260332 0.040377 0.305653 v -0.268004 0.049135 0.289074 v -0.318746 0.022440 0.275498 v -0.330423 0.039097 0.258834 v -0.311578 0.040218 0.276257 v -0.319134 0.054392 0.264520 v -0.343157 0.066437 0.213859 v -0.357267 0.016722 0.224873 v -0.357820 0.046267 0.211778 v -0.364479 0.077073 0.198260 v -0.383357 0.051268 0.187625 v -0.338271 0.093151 0.203335 v -0.102627 0.031617 0.352536 v -0.151975 0.009397 0.332081 v -0.136821 -0.002035 0.330287 v -0.168902 -0.011631 0.335774 v -0.156856 -0.025652 0.328978 v -0.131347 -0.052112 0.321980 v -0.080852 0.011594 0.376934 v -0.117868 -0.003336 0.343955 v -0.102023 -0.014548 0.355921 v -0.096124 -0.067519 0.340616 v -0.162338 0.294764 0.369904 v -0.235003 0.324213 0.336083 v -0.281155 0.321541 0.310172 v -0.312087 0.320230 0.284599 v -0.363539 0.265849 0.249349 v -0.380629 0.218270 0.217394 v -0.387790 0.158716 0.197714 v -0.167397 0.200227 0.339103 v -0.092733 0.147180 0.318009 v -0.064252 0.095386 0.329373 v -0.053644 0.119095 0.312409 v -0.282044 0.265686 0.312290 v -0.332394 0.230211 0.284657 v -0.344179 0.211578 0.269126 v -0.345655 0.183734 0.240783 v -0.345777 0.168045 0.232732 v -0.338857 0.139086 0.213415 v -0.331960 0.111096 0.200547 v -0.335081 0.070728 0.214962 v -0.324624 0.074128 0.208417 v -0.313998 0.060703 0.256073 v -0.288474 0.053543 0.271033 v -0.218371 0.046118 0.300910 v -0.131885 0.055452 0.319120 v -0.114839 0.058737 0.297499 v -0.109614 0.062855 0.259528 v -0.090531 0.073541 0.280164 v -0.134577 0.054385 0.274523 v -0.202965 0.047790 0.273130 v -0.231159 0.047383 0.267994 v -0.273252 0.054937 0.247415 v -0.276861 0.064383 0.222853 v -0.334503 0.081415 0.206142 v -0.319549 0.116897 0.190248 v -0.283474 0.089277 0.166575 v -0.210055 0.238807 0.328088 v -0.232313 0.253082 0.307053 v -0.263919 0.264229 0.308888 v -0.292237 0.261797 0.307596 v -0.298480 0.254407 0.290784 v -0.333030 0.221437 0.275721 v -0.065805 0.124827 0.303248 v -0.066230 0.116470 0.284158 v -0.057148 0.106536 0.303831 v -0.163682 0.198670 0.305641 v -0.193419 0.226175 0.301143 v -0.232693 0.260189 0.262514 v -0.253186 0.269855 0.273825 v -0.275060 0.271757 0.265542 v -0.290440 0.267726 0.250840 v -0.341626 0.207795 0.260644 v -0.324462 0.240642 0.245256 v -0.315122 0.247888 0.224105 v -0.305852 0.258526 0.233002 v -0.329198 0.216371 0.210573 v -0.314997 0.185412 0.199813 v -0.321823 0.151696 0.201744 v -0.127877 0.168459 0.266357 v -0.093407 0.124811 0.187718 v -0.081897 0.108709 0.234751 v -0.097993 0.074431 0.249819 v -0.243310 0.057119 0.224079 v -0.173420 0.205304 0.262622 v -0.197072 0.231638 0.254318 v -0.258044 0.270474 0.240835 v -0.239323 0.262750 0.217848 v -0.269091 0.266712 0.215079 v -0.281592 0.265400 0.207491 v -0.311142 0.238488 0.187705 v -0.285108 0.256224 0.158798 v -0.269999 0.073203 0.177742 v -0.267145 0.058630 0.232842 v -0.094671 0.117345 0.181587 v -0.117025 0.144934 0.173184 v -0.108255 0.107480 0.185703 v -0.143565 0.169982 0.196807 v -0.167682 0.180809 0.168294 v -0.180667 0.205465 0.225230 v -0.213504 0.239445 0.193471 v -0.234753 0.254667 0.181842 v -0.257430 0.265108 0.168070 v -0.245318 0.259832 0.142293 v -0.260150 0.263191 0.138838 v -0.265550 0.256145 0.133161 v -0.284813 0.246018 0.149062 v -0.119690 0.085916 0.187652 v -0.105305 0.081271 0.217754 v -0.160836 0.064940 0.206392 v -0.233114 0.067165 0.148421 v -0.252763 0.074424 0.154702 v -0.275578 0.078677 0.167882 v -0.276053 0.082565 0.155790 v -0.249351 0.125040 0.143735 v -0.256868 0.088113 0.144298 v -0.280194 0.122449 0.166809 v -0.267164 0.147350 0.161482 v -0.259913 0.167340 0.153163 v -0.249277 0.232680 0.117466 v -0.245510 0.249940 0.117996 v -0.228504 0.235706 0.099270 v -0.241260 0.236411 0.108778 v -0.236435 0.245537 0.135428 v -0.222614 0.229181 0.130829 v -0.223715 0.236512 0.109191 v -0.217362 0.226732 0.141559 v -0.222642 0.223371 0.160264 v -0.196248 0.187516 0.118353 v -0.207736 0.220224 0.162814 v -0.108496 0.127529 0.161005 v -0.115809 0.118045 0.149531 v -0.158329 0.117245 0.100881 v -0.145798 0.107221 0.135271 v -0.187712 0.106063 0.099559 v -0.174105 0.091077 0.129421 v -0.132746 0.068526 0.205704 v -0.186817 0.076871 0.143736 v -0.207411 0.086954 0.100189 v -0.222266 0.078381 0.111589 v -0.242355 0.086575 0.128185 v -0.223661 0.217188 0.090097 v -0.217033 0.221021 0.091048 v -0.208858 0.209732 0.088025 v -0.195844 0.178895 0.098383 v -0.163755 0.154539 0.125059 v -0.185497 0.135352 0.080615 v -0.176365 0.117615 0.083336 v -0.187637 0.112950 0.081578 v -0.196518 0.098887 0.100271 v -0.218053 0.085623 0.101783 v -0.223300 0.115386 0.110413 v -0.209337 0.152447 0.083075 v -0.205494 0.195875 0.080655 v -0.190024 0.159243 0.085195 v -0.194227 0.150282 0.076358 v -0.194528 0.128729 0.074121 v -0.203570 0.114320 0.094227 v -0.215236 0.100790 0.103320 v -0.094257 -0.097674 0.336450 v -0.104779 -0.128071 0.327282 v -0.089831 -0.135476 0.335779 v -0.070301 -0.123550 0.335366 v -0.067150 -0.155034 0.351920 v -0.066008 -0.139221 0.347873 v -0.046484 -0.147146 0.355972 v -0.035866 -0.153803 0.369263 v -0.006236 -0.161850 0.397889 v -0.009515 -0.147017 0.388761 v -0.018434 -0.139995 0.369462 v -0.025996 -0.192590 0.377844 v 0.000232 -0.246300 0.399046 v -0.020867 -0.267986 0.392417 v -0.012775 -0.305775 0.397150 v -0.027731 -0.299776 0.398686 v -0.038362 -0.271530 0.388649 v -0.061484 -0.285296 0.376191 v -0.041039 -0.290925 0.387082 v -0.069488 -0.271515 0.373634 v -0.069581 -0.304487 0.370234 v -0.047040 -0.303060 0.372883 v -0.081863 -0.297032 0.376558 v -0.092027 -0.292763 0.367339 v -0.095019 -0.300860 0.365242 v -0.127790 -0.291115 0.345491 v -0.106617 -0.302460 0.355586 v -0.114342 -0.273835 0.353106 v -0.127847 -0.299470 0.337910 v -0.143922 -0.291628 0.314939 v -0.142836 -0.300133 0.318428 v -0.158344 -0.288776 0.299377 v -0.156845 -0.295657 0.299011 v -0.030249 -0.220981 0.376973 v -0.145119 -0.273593 0.312169 v -0.083130 -0.246514 0.356240 v -0.348136 0.300853 0.251802 v -0.361751 0.289978 0.224478 v -0.175460 0.323213 0.364334 v -0.120632 0.295724 0.382641 v -0.034013 0.254275 0.386287 v -0.111753 0.339269 0.377662 v -0.173589 0.369305 0.358915 v -0.046103 0.351246 0.378063 v -0.082321 0.277657 0.387646 v -0.035034 0.294186 0.384960 v -0.293857 0.362995 0.289382 v -0.336988 0.346127 0.248633 v -0.359089 0.324628 0.221774 v -0.367448 0.299335 0.197769 v -0.367937 0.268370 0.205030 v -0.380024 0.216903 0.205327 v -0.368596 0.251037 0.159253 v -0.369552 0.230124 0.180933 v -0.384023 0.147472 0.183427 v -0.366879 0.196268 0.171860 v -0.353854 0.214739 0.153551 v -0.112264 0.473213 0.348331 v -0.243002 0.388664 0.324387 v -0.386698 0.279284 0.120367 v -0.392998 0.322264 0.133915 v -0.410119 0.298269 0.068254 v -0.346001 0.200656 0.112623 v -0.403359 0.207404 0.009630 v -0.412873 0.287676 0.050949 v -0.448061 0.180446 -0.105498 v -0.453481 0.304439 -0.039184 v -0.469199 0.244876 -0.124618 v -0.493127 0.215792 -0.242678 v -0.483054 0.148911 -0.265883 v -0.461113 0.100476 -0.236456 v -0.467923 0.080991 -0.280363 v -0.500091 0.218535 -0.306441 v -0.482382 0.106431 -0.339300 v -0.496960 0.223798 -0.378312 v -0.482512 0.125273 -0.384941 v -0.470703 0.060342 -0.385233 v -0.484574 0.228674 -0.439284 v -0.460266 0.196980 -0.500820 v -0.455185 0.108345 -0.451478 v -0.433513 0.108223 -0.518075 v -0.144632 0.511282 0.333687 v -0.208785 0.515129 0.312654 v -0.246716 0.493137 0.302456 v -0.273257 0.448610 0.294482 v -0.307258 0.442641 0.267495 v -0.347780 0.432477 0.220798 v -0.377963 0.406814 0.179963 v -0.414367 0.398897 0.098335 v -0.441194 0.378626 0.032154 v -0.425344 0.334249 0.053026 v -0.471023 0.303656 -0.096246 v -0.468378 0.356914 -0.061096 v -0.482189 0.384150 -0.121539 v -0.498658 0.268698 -0.244865 v -0.503874 0.356197 -0.275313 v -0.504893 0.347791 -0.356020 v -0.495147 0.294753 -0.415165 v -0.480494 0.308764 -0.471551 v -0.455633 0.305418 -0.532046 v -0.433498 0.176389 -0.548403 v -0.383998 0.156617 -0.621364 v -0.370520 0.093583 -0.608962 v -0.336993 0.162091 -0.681125 v -0.297632 0.076219 -0.677652 v -0.280642 0.126762 -0.721123 v -0.240175 0.149864 -0.764074 v -0.224261 0.089391 -0.764253 v -0.318788 0.206518 -0.709079 v -0.188126 0.100219 -0.795178 v -0.223228 0.195993 -0.779170 v -0.155998 0.149554 -0.816062 v -0.102772 0.112477 -0.836412 v -0.051261 0.130634 -0.851744 v -0.027189 0.092521 -0.853100 v -0.417856 0.285280 -0.596632 v -0.377792 0.286522 -0.654265 v -0.371447 0.228338 -0.656292 v -0.338958 0.295867 -0.694990 v -0.223815 0.260984 -0.774182 v -0.137327 0.172181 -0.822600 v -0.152884 -0.073100 0.303384 v -0.137067 -0.131125 0.297928 v -0.183456 -0.007232 0.330607 v -0.217476 0.005989 0.313073 v -0.123100 -0.182528 0.314591 v -0.090037 -0.193533 0.341134 v -0.268285 0.016557 0.301208 v -0.300507 -0.000436 0.282274 v -0.327725 -0.004404 0.268195 v -0.326569 -0.033780 0.264161 v -0.164907 -0.116662 0.273903 v -0.181901 -0.049777 0.295741 v -0.207653 -0.031424 0.297388 v -0.258183 -0.099855 0.262964 v -0.311959 -0.114457 0.250493 v -0.335357 -0.111428 0.234029 v -0.365637 -0.091849 0.204450 v -0.387364 0.035664 0.182776 v -0.192438 -0.132713 0.256735 v -0.232161 -0.123738 0.257107 v -0.358838 -0.117471 0.207022 v -0.388554 0.018184 0.183564 v -0.400211 -0.021202 0.159537 v -0.412663 -0.099325 0.136847 v -0.210658 -0.168550 0.236891 v -0.337077 -0.155768 0.207707 v -0.298199 -0.156764 0.232248 v -0.444006 -0.063540 0.082173 v -0.433812 -0.020141 0.095641 v -0.456195 -0.033442 0.018939 v -0.436936 -0.012836 0.072173 v -0.419259 -0.016970 0.124109 v -0.458287 -0.051578 0.002430 v -0.445601 -0.079704 0.069210 v -0.439507 -0.097008 0.059853 v -0.405964 -0.129826 0.135790 v -0.402462 -0.145656 0.122745 v -0.373726 -0.157640 0.163170 v -0.358379 -0.168730 0.169684 v -0.324265 -0.167812 0.202055 v -0.260717 -0.175852 0.215757 v -0.276568 -0.170122 0.222529 v -0.238479 -0.171210 0.227585 v -0.220218 -0.194519 0.214626 v -0.186482 -0.175017 0.243988 v -0.166458 -0.186171 0.253679 v -0.160322 -0.197049 0.259074 v -0.141903 -0.212264 0.292539 v -0.129341 -0.222823 0.316566 v -0.101771 -0.223393 0.341865 v -0.053990 -0.215383 0.361631 v -0.154435 -0.224923 0.277116 v -0.195115 -0.216927 0.220533 v -0.209726 -0.223366 0.204612 v -0.221345 -0.274781 0.167624 v -0.210240 -0.280721 0.144508 v -0.179505 -0.288247 0.190349 v -0.232437 -0.264775 0.142299 v -0.225928 -0.270244 0.128530 v -0.193643 -0.279024 0.202246 v -0.181271 -0.273785 0.230652 v -0.160965 -0.295102 0.225870 v -0.166142 -0.289588 0.245228 v -0.154844 -0.295281 0.240540 v -0.168884 -0.279581 0.252353 v -0.151968 -0.296479 0.274355 v -0.160200 -0.239998 0.260255 v -0.211276 -0.259602 0.196996 v -0.231089 -0.259507 0.163787 v -0.234020 -0.253881 0.133683 v -0.171540 -0.220714 0.242245 v -0.387859 0.108036 0.177322 v -0.383950 0.094390 0.190384 v -0.385862 0.067815 0.177184 v -0.407806 -0.012248 0.141726 v -0.424436 -0.012799 0.093732 v -0.434308 -0.011874 0.066070 v -0.459416 -0.048632 -0.058455 v -0.460591 -0.037122 -0.033349 v -0.447513 -0.063928 -0.057339 v -0.441601 -0.036653 -0.124121 v -0.432464 -0.064865 -0.108818 v -0.427911 -0.027696 -0.167537 v -0.424504 -0.015097 -0.198606 v -0.394682 -0.030546 -0.205907 v -0.428742 -0.012476 -0.221521 v -0.389265 -0.025802 -0.218635 v -0.431313 -0.001509 -0.202345 v -0.429301 -0.020626 -0.244305 v -0.389560 -0.023706 -0.234058 v -0.394394 -0.029812 -0.253963 v -0.438599 0.002058 -0.230800 v -0.417835 -0.036631 -0.274053 v -0.403561 -0.053767 -0.284759 v -0.434066 -0.033525 -0.287190 v -0.415115 -0.068223 -0.303716 v -0.427858 -0.071291 -0.322259 v -0.433171 0.025487 -0.176600 v -0.441620 -0.024930 -0.129943 v -0.443558 -0.022936 -0.101978 v -0.347682 0.215244 0.134042 v -0.356591 0.180209 0.064764 v -0.402304 0.169620 -0.019787 v -0.397674 0.105326 -0.055215 v -0.413190 0.098161 -0.098431 v -0.439500 0.130028 -0.136258 v -0.436414 0.082791 -0.175605 v -0.428873 0.095754 -0.127604 v -0.464058 0.009962 -0.313073 v -0.383552 0.070052 0.169894 v -0.389955 0.029344 0.170255 v -0.398647 0.002531 0.156308 v -0.404556 -0.008058 0.139551 v -0.423018 -0.016791 0.075622 v -0.409159 -0.018271 0.087063 v -0.400062 -0.013665 0.115704 v -0.392548 -0.004565 0.130180 v -0.387679 0.006764 0.140106 v -0.381559 0.029484 0.157681 v -0.384146 0.015201 0.147954 v -0.375460 0.084838 0.170010 v -0.370044 0.119960 0.174139 v -0.364003 0.094713 0.168675 v -0.435464 0.040485 -0.118039 v -0.345605 0.156330 0.147540 v -0.336626 0.151070 0.120400 v -0.343642 0.140360 0.074546 v -0.357194 0.122683 0.026364 v -0.381731 0.122787 -0.014086 v -0.413467 0.067558 -0.108761 v -0.401640 0.018796 -0.098377 v -0.382457 0.037147 -0.090397 v -0.385762 0.063845 -0.081864 v -0.341360 0.100806 0.022185 v -0.335407 0.121955 0.075370 v -0.332580 0.123786 0.125821 v -0.347961 0.108649 0.151351 v -0.341186 0.092271 0.161807 v -0.345764 0.079610 0.164067 v -0.345384 0.062545 0.161767 v -0.366600 0.017696 0.154739 v -0.355505 0.044683 0.161684 v -0.298278 0.107823 0.098506 v -0.315891 0.112857 0.119365 v -0.280950 0.096257 0.093175 v -0.360918 0.082722 -0.013926 v -0.350735 0.034556 -0.046741 v -0.382679 -0.013219 -0.093044 v -0.455632 -0.043054 -0.070692 v -0.451672 -0.040594 -0.064760 v -0.449287 -0.036206 -0.084450 v -0.457135 -0.030656 -0.004895 v -0.323656 0.103115 0.142919 v -0.293514 0.099552 0.127093 v -0.307807 0.090014 0.145772 v -0.276111 0.092522 0.112746 v -0.268133 0.072568 0.129503 v -0.288603 0.090215 0.135848 v -0.250978 0.053046 0.121352 v -0.257311 0.056994 0.093010 v -0.241003 0.026841 0.129008 v -0.237111 -0.013810 0.122368 v -0.249954 0.044999 0.151442 v -0.269582 0.071389 0.082615 v -0.289415 0.080508 0.062673 v -0.337424 0.065114 -0.006406 v -0.362533 -0.012191 -0.084297 v -0.423266 -0.049707 -0.049838 v -0.444180 -0.039659 -0.015790 v -0.430346 -0.047432 -0.005476 v -0.427695 -0.052654 -0.030665 v -0.426542 -0.020919 0.050311 v -0.432594 -0.034234 0.016359 v -0.402653 -0.030362 -0.085656 v -0.377010 -0.021298 -0.091424 v -0.307604 0.054042 0.004495 v -0.282841 0.045799 0.019304 v -0.253927 0.051495 0.070108 v -0.250986 0.042672 0.099233 v -0.238641 0.024364 0.059339 v -0.248778 0.025888 0.039593 v -0.280551 0.042659 0.014265 v -0.340403 0.035637 -0.034589 v -0.325730 0.014785 -0.046363 v -0.316322 0.032959 -0.031949 v -0.401556 -0.041842 -0.068184 v -0.381288 -0.043203 -0.074216 v -0.377352 -0.030627 -0.081078 v -0.359043 -0.019954 -0.078325 v -0.362221 -0.037307 -0.075982 v -0.342849 -0.021804 -0.068226 v -0.418895 -0.060623 -0.050399 v -0.365681 -0.068667 -0.080967 v -0.327446 -0.015346 -0.063972 v -0.057153 0.587696 0.313207 v -0.217409 0.567536 0.287091 v -0.162077 0.562009 0.308742 v -0.266441 0.548616 0.264401 v -0.299117 0.497007 0.259246 v -0.308084 0.538249 0.226557 v -0.053591 0.643346 0.280579 v -0.139764 0.611531 0.283219 v -0.194552 0.638921 0.238908 v -0.255143 0.588033 0.244964 v -0.231889 0.636731 0.215663 v -0.309584 0.620992 0.139199 v -0.059506 0.695882 0.227848 v -0.122113 0.665686 0.242668 v -0.212378 0.670007 0.190755 v -0.261152 0.644536 0.176466 v -0.069368 0.724942 0.190809 v -0.158860 0.679765 0.210641 v -0.130197 0.763117 0.105157 v -0.227373 0.700666 0.127058 v -0.300016 0.648757 0.109958 v -0.362278 0.460625 0.189739 v -0.359011 0.515551 0.161785 v -0.417266 0.469473 0.070643 v -0.470186 0.447836 -0.085391 v -0.441976 0.436376 0.021055 v -0.467211 0.406770 -0.056270 v -0.496405 0.418382 -0.235934 v -0.499455 0.419658 -0.350457 v -0.480603 0.446229 -0.441097 v -0.478393 0.392271 -0.475339 v -0.435918 0.388997 -0.570738 v -0.442499 0.460430 -0.545498 v -0.377443 0.339179 -0.652436 v -0.309284 0.290481 -0.719678 v -0.278646 0.284163 -0.740980 v -0.221907 0.373502 -0.760011 v -0.174168 0.302158 -0.787278 v -0.104412 0.293622 -0.807441 v -0.049268 0.341970 -0.808049 v -0.401109 0.521514 0.071535 v -0.420382 0.525533 0.017818 v -0.380598 0.574818 0.063335 v -0.346899 0.580344 0.121745 v -0.456853 0.506330 -0.089602 v -0.483956 0.471284 -0.215846 v -0.465654 0.523355 -0.192737 v -0.474429 0.516698 -0.309742 v -0.490217 0.467653 -0.341334 v -0.464241 0.521237 -0.421393 v -0.458894 0.481575 -0.492611 v -0.387309 0.495864 -0.613058 v -0.296761 0.493017 -0.703341 v -0.340375 0.495944 -0.664227 v -0.250041 0.477898 -0.736535 v -0.203712 0.435852 -0.763573 v -0.155466 0.406303 -0.779319 v -0.119516 0.397059 -0.787623 v -0.083011 0.412711 -0.791854 v -0.351251 0.630491 0.049967 v -0.394427 0.600008 -0.013814 v -0.424106 0.593843 -0.128420 v -0.450663 0.563023 -0.230551 v -0.422089 0.613846 -0.255166 v -0.446675 0.572061 -0.363834 v -0.431970 0.567105 -0.472984 v -0.432371 0.529845 -0.527337 v -0.403158 0.555943 -0.557931 v -0.348346 0.550931 -0.631091 v -0.142502 0.444518 -0.779687 v -0.164848 0.517436 -0.760617 v -0.098096 0.451866 -0.791551 v -0.119175 0.457421 -0.780426 v -0.301704 0.688754 0.026383 v -0.364333 0.642643 -0.015654 v -0.331717 0.686593 -0.040579 v -0.397149 0.634532 -0.124629 v -0.415737 0.621764 -0.297386 v -0.369237 0.668449 -0.317691 v -0.409908 0.620771 -0.384386 v -0.410995 0.597818 -0.471452 v -0.378144 0.630343 -0.476407 v -0.343062 0.617999 -0.567154 v -0.380027 0.587259 -0.557869 v -0.271385 0.542769 -0.701331 v -0.261253 0.588804 -0.677416 v -0.204694 0.512464 -0.748309 v -0.201463 0.560949 -0.726651 v -0.142687 0.497712 -0.769198 v -0.112125 0.532189 -0.761870 v -0.049568 0.531752 -0.764988 v -0.081719 0.488656 -0.779269 v -0.041651 0.486618 -0.780212 v -0.030813 0.531219 -0.760947 v -0.069210 0.624795 -0.699396 v -0.045197 0.647327 -0.694599 v -0.087628 0.648693 -0.691099 v -0.113530 0.595374 -0.726612 v -0.141322 0.653761 -0.678884 v -0.172563 0.611739 -0.703979 v -0.202066 0.685767 -0.618557 v -0.235251 0.634172 -0.650842 v -0.233694 0.678386 -0.599764 v -0.248064 0.690986 -0.569706 v -0.260533 0.705017 -0.516586 v -0.320725 0.669170 -0.505599 v -0.345143 0.678038 -0.398434 v -0.273544 0.716153 -0.467074 v -0.304614 0.720068 -0.334474 v -0.320710 0.712977 -0.284167 v -0.366827 0.673974 -0.276652 v -0.321427 0.712984 -0.253570 v -0.369044 0.675129 -0.211778 v -0.349188 0.688072 -0.172383 v -0.315366 0.714892 -0.119225 v -0.356707 0.679624 -0.129596 v -0.288235 0.718522 -0.024413 v -0.234201 0.723115 0.061338 v -0.196090 0.751793 0.066088 v -0.156226 0.764551 0.087140 v -0.045026 0.739809 -0.611856 v -0.066861 0.710556 -0.639120 v -0.131243 0.707255 -0.624979 v -0.091902 0.746332 -0.586630 v -0.161618 0.721466 -0.589310 v -0.193648 0.734323 -0.534433 v -0.110386 0.774078 -0.521118 v -0.218214 0.748545 -0.465095 v -0.155430 0.782458 -0.445464 v -0.246817 0.753900 -0.357155 v -0.266708 0.749437 -0.267621 v -0.214619 0.776581 -0.314362 v -0.263649 0.750034 -0.124947 v -0.211636 0.779944 -0.137191 v -0.250540 0.749051 -0.049197 v -0.197961 0.778540 -0.054980 v -0.216667 0.746967 0.025400 v -0.177887 0.775423 0.002688 v -0.053496 0.778711 0.107815 v -0.145954 0.781079 0.062473 v -0.168881 0.776868 0.035351 v -0.046803 0.765252 -0.570817 v -0.018446 0.794640 -0.521612 v -0.055423 0.805655 -0.472170 v -0.106881 0.810342 -0.382273 v -0.164493 0.800129 -0.266656 v -0.109533 0.818965 -0.253053 v -0.148390 0.806530 -0.138564 v -0.155540 0.798134 -0.069915 v -0.095914 0.820801 -0.105299 v -0.139501 0.795632 -0.020546 v -0.128710 0.796951 0.004884 v -0.068036 0.817019 -0.025689 v -0.111582 0.797015 0.031848 v -0.025465 0.834740 -0.333184 v -0.023451 0.839959 -0.266982 v -0.018436 0.839103 -0.188241 v -0.035346 0.829861 -0.084977 v -0.455154 -0.017432 -0.315063 v -0.442908 -0.033352 -0.303851 v -0.472479 0.053568 -0.357026 v -0.465254 0.009008 -0.343477 v -0.397182 0.068154 -0.552031 v -0.408658 -0.003403 -0.476467 v -0.309314 0.040281 -0.635592 v -0.204660 0.076678 -0.772608 v -0.176969 0.049568 -0.771607 v -0.106421 0.038660 -0.811148 v -0.150503 0.053501 -0.794652 v -0.055998 0.023292 -0.824718 v -0.425741 -0.012752 -0.420113 v -0.392568 -0.004113 -0.511051 v -0.367052 0.021945 -0.558475 v -0.231669 0.022114 -0.699651 v -0.197563 0.024946 -0.730689 v -0.085765 0.009491 -0.801933 v -0.033116 -0.023512 -0.802106 v -0.022718 -0.007912 -0.817155 v -0.434487 -0.027998 -0.384013 v -0.429508 -0.072738 -0.340846 v -0.404865 -0.068403 -0.444467 v -0.392249 -0.062116 -0.480753 v -0.410209 -0.032639 -0.462677 v -0.349408 -0.069913 -0.535080 v -0.276914 -0.052085 -0.622698 v -0.154271 -0.001503 -0.738921 v -0.093571 -0.025344 -0.755721 v -0.063824 -0.045509 -0.754838 v -0.424268 -0.078961 -0.341273 v -0.432506 -0.079937 -0.319414 v -0.380851 -0.055724 -0.277238 v -0.402736 -0.082871 -0.300565 v -0.415053 -0.085822 -0.319846 v -0.420209 -0.074518 -0.381114 v -0.416357 -0.077788 -0.425408 v -0.408072 -0.100731 -0.406276 v -0.413382 -0.112345 -0.344787 v -0.402423 -0.084979 -0.439322 v -0.405604 -0.098213 -0.424049 v -0.376028 -0.114033 -0.474881 v -0.382894 -0.110078 -0.284364 v -0.400599 -0.145384 -0.370550 v -0.386091 -0.133374 -0.430722 v -0.399004 -0.167651 -0.324595 v -0.394640 -0.132127 -0.298713 v -0.384161 -0.186458 -0.303034 v -0.370036 -0.182767 -0.287525 v -0.389003 -0.190101 -0.317374 v -0.384601 -0.197957 -0.334672 v -0.374233 -0.191933 -0.379465 v -0.358638 -0.119485 -0.271397 v -0.366059 -0.030712 -0.259988 v -0.372688 -0.023458 -0.251945 v -0.330606 -0.055591 -0.255133 v -0.358400 -0.045571 -0.264326 v -0.353261 -0.149166 -0.273316 v -0.331642 -0.161634 -0.266808 v -0.313003 -0.160184 -0.260254 v -0.320213 -0.117684 -0.241350 v -0.329976 -0.025109 -0.252221 v -0.316689 -0.024847 -0.243657 v -0.326446 0.001825 -0.242268 v -0.352119 -0.006313 -0.237084 v -0.365993 -0.029426 -0.212962 v -0.348394 -0.040905 -0.212028 v -0.382642 -0.035104 -0.204254 v -0.397329 -0.044649 -0.179043 v -0.409321 -0.059158 -0.152412 v -0.404310 -0.081299 -0.122469 v -0.398121 -0.087290 -0.093834 v -0.424163 -0.076251 -0.095659 v -0.438308 -0.068290 -0.030865 v -0.444414 -0.064653 -0.005910 v -0.439992 -0.070252 0.014242 v -0.446361 -0.074418 0.027485 v -0.433425 -0.100271 0.054177 v -0.394273 -0.150025 0.115252 v -0.351479 -0.172756 0.164042 v -0.315148 -0.169828 0.191698 v -0.255606 -0.179255 0.205907 v -0.264713 -0.173302 0.193201 v -0.224783 -0.198028 0.200327 v -0.219665 -0.212112 0.190673 v -0.427223 -0.096132 0.050375 v -0.398519 -0.116506 0.087215 v -0.391375 -0.143237 0.106732 v -0.378964 -0.120017 0.114078 v -0.346762 -0.134001 0.150940 v -0.349849 -0.170382 0.157963 v -0.335248 -0.156531 0.162064 v -0.308281 -0.167236 0.182572 v -0.300959 -0.158638 0.176686 v -0.267517 -0.166938 0.185431 v -0.424307 -0.077602 0.035001 v -0.430028 -0.062013 0.000047 v -0.425775 -0.068228 -0.023042 v -0.409363 -0.085616 -0.076109 v -0.421297 -0.075825 -0.043670 v -0.388132 -0.081895 -0.080374 v -0.404209 -0.083755 -0.073801 v -0.409451 -0.070562 -0.062888 v -0.074390 -0.222577 0.190653 v -0.101317 -0.217481 0.152002 v -0.091736 -0.186743 0.138522 v -0.049052 -0.189639 0.166650 v -0.032510 -0.215647 0.231960 v -0.043271 -0.227639 0.243468 v -0.069413 -0.264647 0.268218 v -0.012689 -0.251988 0.285581 v -0.022353 -0.284430 0.313880 v -0.063202 -0.294208 0.305829 v -0.155576 -0.228718 0.105101 v -0.168609 -0.199760 0.079161 v -0.127351 -0.197457 0.124984 v -0.146196 -0.260040 0.122506 v -0.184117 -0.226634 0.081737 v -0.102041 -0.255041 0.173516 v -0.081115 -0.250909 0.227405 v -0.097263 -0.276476 0.238232 v -0.078028 -0.289044 0.278787 v -0.079541 -0.302183 0.303322 v -0.226173 -0.225746 0.167441 v -0.250705 -0.175659 0.187185 v -0.230681 -0.188186 0.179811 v -0.224925 -0.204760 0.169064 v -0.224018 -0.210301 0.136437 v -0.223541 -0.263905 0.111009 v -0.234569 -0.205092 0.154114 v -0.227156 -0.186902 0.162996 v -0.233939 -0.163949 0.165450 v -0.262513 -0.157671 0.175745 v -0.254635 -0.147403 0.174601 v -0.273343 -0.151990 0.177094 v -0.295599 -0.123721 0.171319 v -0.265334 -0.108908 0.167367 v -0.323763 -0.116798 0.164350 v -0.296156 -0.045009 0.173350 v -0.303811 0.019572 0.174094 v -0.228041 -0.164412 0.149086 v -0.217237 -0.187787 0.110099 v -0.233432 -0.143854 0.151350 v -0.254691 -0.127769 0.166374 v -0.272484 -0.066197 0.165964 v -0.279513 0.044768 0.168179 v -0.225256 -0.149304 0.120783 v -0.236757 -0.084353 0.139673 v -0.252282 -0.085766 0.160329 v -0.267597 0.032993 0.164840 v -0.228783 -0.083642 0.119915 v -0.239238 -0.010165 0.137708 v -0.255499 0.039573 0.157396 v -0.268514 0.054508 0.159699 v -0.256352 0.054977 0.148750 v -0.348163 -0.035254 0.141064 v -0.303069 0.060906 0.167502 v -0.322819 0.060736 0.160652 v -0.314891 0.082983 0.157124 v -0.291027 0.071762 0.151300 v -0.367368 -0.037614 0.137778 v -0.410381 -0.086748 0.067545 v -0.416333 -0.056454 0.046671 v -0.404615 -0.057419 0.079509 v -0.398279 -0.087336 0.079585 v -0.403317 -0.039384 0.081888 v -0.394550 -0.040310 0.106477 v -0.424484 -0.060679 -0.022426 v -0.425551 -0.059850 0.009773 v -0.421937 -0.030425 0.054471 v -0.426193 -0.027761 0.043667 v -0.379927 -0.034409 0.125268 v -0.377553 0.001535 0.138194 v -0.006058 -0.267747 0.313677 v -0.062751 -0.309943 0.321329 v -0.075835 -0.308096 0.315118 v -0.019030 -0.310095 0.339664 v -0.006644 -0.304923 0.348704 v -0.185133 -0.224308 0.063973 v -0.193573 -0.242264 0.057748 v -0.163321 -0.190594 0.070477 v -0.192662 -0.257929 0.056072 v -0.191141 -0.265638 0.073304 v -0.174103 -0.246208 0.033817 v -0.182698 -0.264145 0.042333 v -0.169411 -0.265532 0.101519 v -0.160407 -0.271545 0.123097 v -0.115165 -0.272834 0.186897 v -0.109392 -0.286211 0.242620 v -0.080136 -0.297067 0.275491 v -0.091467 -0.299014 0.271331 v -0.346983 -0.212762 -0.279256 v -0.363757 -0.217460 -0.360753 v -0.336836 -0.216605 -0.395933 v -0.365076 -0.096300 -0.503825 v -0.338358 -0.115833 -0.520778 v -0.342806 -0.160492 -0.471176 v -0.325523 -0.186747 -0.460660 v -0.312852 -0.085141 -0.563705 v -0.282599 -0.124449 -0.552421 v -0.306567 -0.159646 -0.497298 v -0.303849 -0.181645 -0.473198 v -0.312634 -0.201737 -0.445919 v -0.259671 -0.092092 -0.610104 v -0.226426 -0.049057 -0.664283 v -0.206250 -0.077663 -0.658134 v -0.107700 -0.085168 -0.704947 v -0.074214 -0.085195 -0.711258 v -0.043239 -0.095709 -0.704990 v -0.027771 -0.072895 -0.738180 v -0.055261 -0.131516 -0.659794 v -0.097349 -0.123577 -0.671421 v -0.130344 -0.125323 -0.655601 v -0.213048 -0.117930 -0.614626 v -0.178181 -0.135414 -0.623890 v -0.300516 -0.101450 -0.561510 v -0.279352 -0.152145 -0.514847 v -0.232525 -0.151600 -0.544386 v -0.173044 -0.154197 -0.589096 v -0.121016 -0.155425 -0.613800 v -0.087916 -0.165553 -0.593611 v -0.035856 -0.151046 -0.591562 v -0.258793 -0.167399 -0.493392 v -0.187668 -0.171149 -0.566631 v -0.184772 -0.174375 -0.543560 v -0.233343 -0.172085 -0.521877 v -0.144374 -0.172278 -0.581418 v -0.119315 -0.179967 -0.554878 v -0.267077 -0.182163 -0.454004 v -0.228593 -0.176734 -0.489057 v -0.136530 -0.184252 -0.508142 v -0.064048 -0.179090 -0.527792 v -0.319761 -0.235756 -0.373814 v -0.328299 -0.250535 -0.341255 v -0.356695 -0.231957 -0.340375 v -0.332920 -0.253173 -0.300914 v -0.326201 -0.255323 -0.289494 v -0.325564 -0.243969 -0.281651 v -0.305916 -0.217174 -0.406056 v -0.275798 -0.196617 -0.420227 v -0.240032 0.033527 0.083029 v -0.327071 -0.258691 -0.304201 v -0.310517 -0.221256 -0.272999 v -0.314454 -0.140346 -0.251672 v -0.316824 -0.248063 -0.350104 v -0.307193 -0.236861 -0.366847 v -0.289516 -0.205910 -0.396940 v -0.290785 -0.244733 -0.336759 v -0.299635 -0.253174 -0.320723 v -0.315064 -0.260600 -0.301585 v -0.311892 -0.255338 -0.287571 v -0.301141 -0.127768 -0.243918 v -0.288217 -0.145658 -0.260310 v -0.295108 -0.164974 -0.268543 v -0.300545 -0.233883 -0.278790 v -0.190163 -0.268324 0.059860 v -0.185597 -0.271509 0.101630 v -0.107994 -0.282863 0.208736 v -0.137261 -0.292480 0.174866 v -0.106586 -0.287709 0.230007 v -0.031043 -0.179685 -0.469738 v -0.072847 -0.179281 -0.486926 v -0.136015 -0.183215 -0.485445 v -0.171212 -0.189091 -0.455361 v -0.108605 -0.173446 -0.453617 v -0.215812 -0.191594 -0.446208 v -0.282878 -0.160877 -0.276665 v -0.292281 -0.234743 -0.288138 v -0.293003 -0.247049 -0.308030 v -0.277782 -0.202932 -0.374942 v -0.276674 -0.142731 -0.260422 v -0.261959 -0.133703 -0.288611 v -0.264723 -0.139194 -0.266911 v -0.263793 -0.145583 -0.253550 v -0.265906 -0.176598 -0.305529 v -0.267752 -0.191975 -0.317781 v -0.280859 -0.223788 -0.328182 v -0.270872 -0.199602 -0.333217 v -0.268356 -0.195846 -0.355270 v -0.276989 -0.132116 -0.240085 v -0.260093 -0.147801 -0.233669 v -0.280162 -0.119368 -0.230452 v -0.311072 -0.103278 -0.233026 v -0.320063 -0.095626 -0.235456 v -0.040265 -0.176443 -0.444476 v -0.059138 -0.177409 -0.433123 v -0.073248 -0.179546 -0.449239 v -0.136205 -0.172399 -0.431706 v -0.212372 -0.191203 -0.403847 v -0.262316 -0.198200 -0.381197 v -0.118779 -0.151805 -0.407880 v -0.088292 -0.142532 -0.406340 v -0.219992 -0.182066 -0.370922 v -0.246209 -0.186601 -0.349878 v -0.023842 -0.306446 0.398539 v -0.037659 -0.305280 0.387261 v -0.088427 -0.308082 0.358573 v -0.148989 -0.297934 0.296200 v -0.009247 0.065005 0.426487 v -0.004456 0.058151 0.421852 v -0.028223 0.038805 0.412623 v -0.016839 0.048922 0.417268 v -0.059108 0.016155 0.395278 v -0.047293 0.016741 0.396016 v -0.087780 -0.016209 0.362221 v -0.057950 0.002613 0.372755 v -0.077881 -0.024689 0.333949 v -0.086363 -0.054123 0.347611 v -0.084653 -0.042132 0.332004 v -0.081552 -0.078737 0.307868 v -0.046815 -0.142388 0.332653 v -0.062537 -0.133975 0.342565 v -0.064232 -0.127349 0.311773 v -0.076058 -0.114321 0.309107 v -0.079986 -0.105180 0.335237 v -0.034223 -0.141001 0.304129 v -0.003191 -0.133652 0.355995 v -0.039834 -0.141316 0.265656 v -0.053512 -0.134749 0.322769 v -0.043238 -0.138811 0.293032 v -0.029260 0.029558 0.400872 v -0.028150 0.024846 0.384565 v -0.009656 -0.137332 0.286507 v -0.003555 -0.127817 0.292259 v -0.019275 -0.128285 0.160307 v -0.025266 -0.139394 0.163441 v -0.030835 -0.138440 0.084140 v -0.027167 -0.129418 0.083423 v -0.014546 -0.116174 0.151110 v -0.016556 -0.100125 0.099537 v 0.000616 -0.088475 0.307266 v -0.055438 -0.148539 0.090253 v -0.082024 -0.154503 0.111565 v -0.093644 -0.150820 0.128310 v -0.088351 -0.126664 0.213361 v -0.110637 -0.130822 0.117308 v -0.102040 -0.139820 0.129054 v -0.111738 -0.099701 0.147318 v -0.115028 -0.080594 0.131717 v -0.094530 -0.053779 0.255783 v -0.082114 -0.034257 0.235755 v -0.088141 -0.037441 0.158620 v -0.048520 0.001001 0.310732 v -0.055059 -0.008574 0.171083 v -0.029322 0.019191 0.302710 v -0.030512 0.023527 0.356223 v -0.036651 0.008262 0.186608 v -0.028055 0.032288 0.355730 v -0.017094 0.024210 0.338455 v -0.008830 -0.040328 0.187553 v -0.013953 -0.040385 0.075029 v -0.017048 -0.017708 0.132102 v 0.000508 -0.018163 0.344929 v -0.003840 0.005727 0.340981 v -0.018297 0.001457 0.236474 v -0.037882 -0.152057 -0.242005 v -0.040669 -0.161205 -0.256898 v -0.057116 -0.166689 -0.284544 v -0.069652 -0.157673 -0.260599 v -0.065414 -0.161427 -0.328355 v -0.050478 -0.151869 -0.362085 v -0.046382 -0.150334 -0.392344 v -0.073431 -0.145028 -0.391494 v -0.050252 -0.157175 -0.407238 v -0.019115 -0.169589 -0.455001 v -0.030720 -0.162869 -0.275609 v -0.020265 -0.152830 -0.248653 v -0.036110 -0.163621 -0.303175 v -0.021143 -0.147508 -0.326711 v -0.028261 -0.141674 -0.378304 v -0.026424 -0.145308 -0.407461 v -0.010979 -0.149606 -0.435003 v -0.047322 -0.144762 -0.238505 v -0.014277 -0.129779 -0.217008 v -0.009356 -0.139078 -0.228223 v -0.011926 -0.083359 -0.178873 v -0.018427 -0.116340 -0.209203 v -0.015093 -0.055972 -0.148055 v -0.023292 -0.033790 -0.097404 v -0.026155 -0.031507 -0.037315 v -0.028330 -0.018400 0.024349 v -0.021255 -0.025802 0.055876 v -0.016891 -0.027745 0.075634 v -0.015350 -0.141728 -0.357645 v -0.220811 -0.269567 -0.219433 v -0.216336 -0.266701 -0.218481 v -0.224175 -0.266082 -0.229109 v -0.213947 -0.262632 -0.226347 v -0.232427 -0.210963 -0.241357 v -0.229422 -0.182389 -0.241117 v -0.222829 -0.177808 -0.230580 v -0.237658 -0.153750 -0.254573 v -0.250176 -0.150393 -0.257861 v -0.225427 -0.162991 -0.240120 v -0.221290 -0.158132 -0.233309 v -0.250696 -0.180046 -0.242318 v -0.235601 -0.248511 -0.229022 v -0.240467 -0.204261 -0.241113 v -0.233092 -0.263807 -0.218901 v -0.229039 -0.264738 -0.215147 v -0.238331 -0.245933 -0.223592 v -0.249205 -0.187389 -0.224005 v -0.255214 -0.148214 -0.223365 v -0.237967 -0.148087 -0.221686 v -0.228987 -0.158933 -0.224492 v -0.217970 -0.211971 -0.222133 v -0.222298 -0.212978 -0.216275 v -0.226419 -0.246734 -0.214209 v -0.240631 -0.194687 -0.217273 v -0.253374 -0.128914 -0.220425 v -0.223669 -0.148033 -0.221211 v -0.277992 -0.097033 -0.223011 v -0.308959 -0.079214 -0.224537 v -0.295355 -0.055657 -0.215714 v -0.262831 -0.097099 -0.214222 v -0.245017 -0.129503 -0.213594 v -0.319409 -0.075016 -0.237377 v -0.239675 -0.119227 -0.210690 v -0.229966 -0.138524 -0.215131 v -0.221657 -0.121075 -0.223741 v -0.351429 -0.045541 -0.202814 v -0.372738 -0.033970 -0.197231 v -0.395218 -0.055703 -0.150363 v -0.367560 -0.040213 -0.139935 v -0.387257 -0.083606 -0.114723 v -0.370808 -0.027182 -0.162684 v -0.384503 -0.037224 -0.185075 v -0.369847 -0.026822 -0.178765 v -0.382541 -0.085364 -0.102716 v -0.357939 -0.066232 -0.110141 v -0.354435 -0.071837 -0.095116 v -0.351644 -0.032988 -0.191969 v -0.342748 -0.047000 -0.203694 v -0.334812 -0.056414 -0.214282 v -0.349867 -0.066522 -0.087178 v -0.028487 -0.001283 0.151829 v -0.103329 -0.019900 0.084202 v -0.080060 -0.006537 0.076588 v -0.039263 -0.029265 -0.072656 v -0.059899 -0.028520 -0.085429 v -0.041044 -0.024439 -0.016753 v -0.060019 -0.034665 -0.056942 v -0.060572 -0.028482 -0.013705 v -0.057850 -0.010090 0.037058 v -0.048930 -0.010440 0.076730 v -0.081902 -0.010416 0.040978 v -0.032742 -0.039034 -0.175184 v -0.033368 -0.028435 -0.117839 v -0.050394 -0.009151 -0.142356 v -0.043644 -0.024274 -0.171773 v -0.043873 -0.063391 -0.201159 v -0.121980 -0.153227 -0.360722 v -0.118044 -0.151929 -0.329657 v -0.122450 -0.143690 -0.295581 v -0.090149 -0.155997 -0.294826 v -0.098879 -0.142855 -0.268696 v -0.111769 -0.142083 -0.282061 v -0.083321 -0.140163 -0.250865 v -0.087993 -0.082538 -0.230428 v -0.073532 -0.051671 -0.208717 v -0.069979 -0.011072 -0.166389 v -0.083988 -0.023801 -0.185627 v -0.126435 -0.033708 -0.195166 v -0.105124 -0.058901 -0.220114 v -0.155306 -0.005832 -0.156090 v -0.099910 -0.119054 -0.256613 v -0.109745 -0.085876 -0.252131 v -0.127869 -0.107432 -0.262683 v -0.144402 -0.138035 -0.293171 v -0.155682 -0.156091 -0.330296 v -0.177378 -0.156602 -0.313751 v -0.220330 -0.167632 -0.324000 v -0.243216 -0.137631 -0.299518 v -0.241780 -0.170188 -0.319041 v -0.203570 -0.132302 -0.290111 v -0.235697 -0.130717 -0.284235 v -0.252359 -0.130405 -0.288678 v -0.232401 -0.135093 -0.268228 v -0.222651 -0.120264 -0.268575 v -0.261652 -0.130224 -0.281780 v -0.322805 -0.029696 -0.230110 v -0.320380 -0.067585 -0.221507 v -0.318112 -0.050731 -0.213275 v -0.318237 -0.008624 -0.200417 v -0.255403 -0.025534 -0.207566 v -0.284912 -0.001352 -0.205084 v -0.307652 0.005919 -0.194081 v -0.234321 -0.085147 -0.214299 v -0.209346 -0.063517 -0.233108 v -0.220298 -0.058540 -0.215150 v -0.225679 -0.043625 -0.205406 v -0.223657 -0.101676 -0.218273 v -0.324006 0.008481 -0.179567 v -0.326386 0.014472 -0.165409 v -0.349751 -0.019298 -0.175806 v -0.335580 0.000264 -0.158612 v -0.350306 -0.019842 -0.160176 v -0.348380 -0.027456 -0.145441 v -0.329426 -0.031882 -0.123188 v -0.351015 -0.045082 -0.125392 v -0.327926 0.000735 -0.148286 v -0.338297 -0.043742 -0.107557 v -0.335250 -0.033594 -0.116841 v -0.335608 -0.041382 -0.100424 v -0.342000 -0.048482 -0.076448 v -0.319485 -0.038995 -0.091766 v -0.316584 -0.036727 -0.103544 v -0.300132 -0.024834 -0.110170 v -0.295171 -0.029362 -0.089411 v -0.287356 -0.012676 -0.125553 v -0.300825 -0.010535 -0.130225 v -0.310270 0.010700 -0.154257 v -0.292484 0.008531 -0.046324 v -0.304712 -0.024684 -0.072971 v -0.287966 0.024813 -0.027558 v -0.274887 0.036426 -0.005917 v -0.263687 0.029667 -0.038333 v -0.265736 0.037500 0.008112 v -0.230927 0.028980 -0.000435 v -0.223521 0.007543 0.043852 v -0.223987 0.017017 0.007588 v -0.225626 0.027722 -0.026197 v -0.213228 0.020388 -0.035292 v -0.209739 0.017597 -0.011780 v -0.219323 0.021851 -0.060300 v -0.223193 0.023778 -0.037288 v -0.235822 0.020760 -0.057090 v -0.227972 0.003064 -0.084684 v -0.264949 -0.019254 -0.088674 v -0.275021 -0.022790 -0.106728 v -0.253205 -0.023519 -0.125025 v -0.241918 -0.027184 -0.111896 v -0.290891 0.026194 -0.167028 v -0.267560 0.012401 -0.159332 v -0.234788 -0.026891 -0.132401 v -0.238349 -0.022487 -0.163626 v -0.220645 -0.030247 -0.138814 v -0.221319 -0.021402 -0.120924 v -0.207392 0.018049 -0.083290 v -0.201224 0.013351 -0.059371 v -0.195269 0.020494 -0.084271 v -0.200307 -0.010615 -0.132435 v -0.201224 0.001144 -0.129676 v -0.191220 0.024582 -0.118718 v -0.189384 0.029450 -0.102595 v -0.179061 0.027120 -0.102544 v -0.223128 -0.039409 -0.157949 v -0.200344 -0.052086 -0.167767 v -0.201782 -0.036381 -0.147656 v -0.315703 0.012677 -0.172585 v -0.279438 0.022670 -0.172334 v -0.293617 0.020275 -0.181831 v -0.224427 -0.028641 -0.174560 v -0.233584 -0.016976 -0.185526 v -0.250046 -0.012398 -0.197262 v -0.176729 -0.017984 -0.153689 v -0.155259 -0.030486 -0.191751 v -0.191450 -0.048754 -0.169171 v -0.171692 -0.043837 -0.198534 v -0.191985 -0.055900 -0.181284 v -0.202709 -0.052098 -0.198334 v -0.189147 -0.042348 -0.213946 v -0.160548 -0.043660 -0.210321 v -0.150470 -0.051970 -0.227522 v -0.181160 -0.043130 -0.221259 v -0.176389 -0.055323 -0.242082 v -0.204144 -0.052219 -0.214327 v -0.193334 -0.044335 -0.227072 v -0.202479 -0.073508 -0.248686 v -0.127744 -0.065407 -0.241381 v -0.198142 0.009033 -0.023644 v -0.184429 -0.012590 -0.033848 v -0.177098 -0.023873 -0.050968 v -0.199030 -0.001865 0.024185 v -0.208738 0.003824 0.050070 v -0.166257 -0.056741 -0.047100 v -0.168684 -0.078017 -0.017389 v -0.158889 -0.062890 -0.047560 v -0.179849 -0.031122 0.001713 v -0.187627 -0.011876 0.012920 v -0.185594 -0.006036 0.028811 v -0.188678 0.009141 0.047912 v -0.222503 0.035112 0.105662 v -0.216580 0.035208 0.097519 v -0.225623 0.035163 0.112087 v -0.239387 0.041527 0.105448 v -0.241852 0.028800 0.115500 v -0.236382 0.037394 0.120535 v -0.205164 0.034011 0.084260 v -0.217535 -0.052450 0.098354 v -0.193984 -0.021880 0.066483 v -0.230209 0.002846 0.122573 v -0.233017 -0.046354 0.118176 v -0.215524 -0.134671 0.098409 v -0.229744 -0.129496 0.113005 v -0.220400 -0.122710 0.089525 v -0.216610 -0.058312 0.089616 v -0.203825 -0.146082 0.078351 v -0.195789 -0.127745 0.065662 v -0.200342 -0.172310 0.069633 v -0.220484 -0.257921 0.094348 v -0.201492 -0.271649 0.108868 v -0.072388 -0.005016 -0.127665 v -0.069517 -0.003897 -0.146839 v -0.120627 -0.011577 -0.098868 v -0.152967 0.002036 -0.116806 v -0.084846 -0.045144 -0.064493 v -0.125607 -0.031022 -0.076226 v -0.155362 -0.024543 -0.070654 v -0.158806 -0.011770 -0.094797 v -0.146689 0.000418 -0.136703 v -0.178542 0.014619 -0.135681 v -0.173660 0.017605 -0.123041 v -0.171179 0.003808 -0.081661 v -0.174156 -0.017105 -0.061343 v -0.081173 -0.050642 -0.041475 v -0.102356 -0.052831 -0.060694 v -0.109591 -0.083745 -0.037968 v -0.138801 -0.082788 -0.044205 v -0.127623 -0.080316 0.053612 v -0.127667 -0.130738 0.048053 v -0.130520 -0.100018 0.038226 v -0.118262 -0.108050 0.025855 v -0.117171 -0.064913 0.035288 v -0.098485 -0.030330 0.046453 v -0.119459 -0.040334 0.059804 v -0.104639 -0.066910 0.013207 v -0.090646 -0.031662 0.020929 v -0.082323 -0.045554 -0.007801 v -0.101269 -0.075598 -0.016434 v -0.136316 -0.165625 0.037471 v -0.134055 -0.193573 0.019974 v -0.137083 -0.196273 0.007695 v -0.115043 -0.166824 0.007631 v -0.105917 -0.120037 0.001873 v -0.105037 -0.130814 -0.014190 v -0.118244 -0.168865 -0.001497 v -0.165635 -0.117931 -0.005771 v -0.177576 -0.020877 0.038950 v -0.157107 -0.141530 -0.013344 v -0.179671 -0.135001 0.040273 v -0.168891 -0.145729 0.005408 v -0.177262 -0.186860 0.019445 v -0.167605 -0.182941 0.006132 v -0.158452 -0.156582 -0.007397 v -0.148341 -0.144109 -0.015669 v -0.123574 -0.124496 -0.023386 v -0.184559 -0.210256 0.029950 v -0.064350 -0.310746 0.332478 v -0.049798 -0.314153 0.341200 v -0.042727 -0.316781 0.348747 v -0.034288 -0.311907 0.352440 v -0.077651 -0.319849 0.325486 v -0.009524 -0.316070 0.358152 v -0.126850 -0.091913 0.082256 v -0.133473 -0.092313 0.071096 v -0.130789 -0.119659 0.070988 v -0.136589 -0.179526 0.110737 v -0.152664 -0.177726 0.096368 v -0.066718 -0.172564 0.132838 v -0.099020 -0.156407 0.119579 v -0.123872 -0.135347 0.077404 v -0.135417 -0.156578 0.105321 v -0.108944 -0.146376 0.117475 v -0.063395 -0.165824 0.121094 v -0.054498 -0.165251 0.107324 v -0.041858 -0.158334 0.093606 v -0.015602 -0.152308 0.093600 v -0.023555 -0.128026 0.065874 v -0.015610 -0.100961 0.069149 v -0.011866 -0.072200 0.070389 v -0.080006 -0.320646 0.334630 v -0.085390 -0.310121 0.330341 v -0.094589 -0.302789 0.317359 v -0.118431 -0.305987 0.311694 v -0.097162 -0.306888 0.294614 v -0.135858 -0.293464 0.234799 v -0.064089 -0.308247 0.348433 v -0.012493 -0.315752 0.369612 v -0.030777 -0.306880 0.395986 v -0.059568 -0.312124 0.361773 v -0.181579 -0.287933 0.157443 v -0.207403 -0.265074 0.078594 v -0.182622 -0.245949 0.035698 v -0.159830 -0.207333 0.017016 v -0.132581 -0.161869 -0.006195 v 0.000517 0.029098 0.389168 vt 0.965130 0.377155 vt 0.966513 0.376090 vt 0.966977 0.376532 vt 0.582676 0.961532 vt 0.582190 0.959856 vt 0.582613 0.959932 vt 0.582648 0.959809 vt 0.582676 0.959702 vt 0.966126 0.375903 vt 0.966171 0.375783 vt 0.964382 0.380468 vt 0.965857 0.350405 vt 0.967740 0.350995 vt 0.967282 0.351444 vt 0.577775 0.959702 vt 0.577709 0.961316 vt 0.577288 0.961397 vt 0.577746 0.961439 vt 0.577775 0.961546 vt 0.966946 0.351758 vt 0.966899 0.351639 vt 0.964980 0.347106 vt 0.577343 0.983349 vt 0.579000 0.971384 vt 0.581487 0.977343 vt 0.769431 0.277433 vt 0.767763 0.286603 vt 0.767468 0.279200 vt 0.969162 0.679830 vt 0.971679 0.682852 vt 0.970587 0.685393 vt 0.575173 0.985671 vt 0.574138 0.983356 vt 0.970483 0.667732 vt 0.972965 0.670883 vt 0.902720 0.959249 vt 0.904193 0.964020 vt 0.900954 0.961196 vt 0.969741 0.655404 vt 0.972380 0.643677 vt 0.973411 0.647113 vt 0.770226 0.300857 vt 0.767792 0.292357 vt 0.772016 0.294372 vt 0.981848 0.584859 vt 0.981054 0.589557 vt 0.978352 0.583582 vt 0.970470 0.646694 vt 0.969064 0.640718 vt 0.968806 0.060978 vt 0.965801 0.061873 vt 0.966713 0.055204 vt 0.972177 0.655291 vt 0.906828 0.924853 vt 0.905082 0.930941 vt 0.905062 0.926881 vt 0.967547 0.073322 vt 0.963757 0.087352 vt 0.964927 0.073947 vt 0.965904 0.068737 vt 0.907828 0.925759 vt 0.907526 0.930750 vt 0.909428 0.926705 vt 0.966548 0.086367 vt 0.964132 0.098420 vt 0.769929 0.292105 vt 0.902101 0.952932 vt 0.905329 0.954539 vt 0.968608 0.068119 vt 0.771936 0.285922 vt 0.905940 0.961594 vt 0.773228 0.300663 vt 0.574919 0.962278 vt 0.577730 0.961669 vt 0.905146 0.941399 vt 0.899592 0.943228 vt 0.899495 0.952344 vt 0.897479 0.951072 vt 0.909426 0.955461 vt 0.910370 0.943051 vt 0.763335 0.292567 vt 0.775946 0.297790 vt 0.774415 0.304061 vt 0.768355 0.308563 vt 0.573614 0.972530 vt 0.101962 0.998040 vt 0.099876 0.998246 vt 0.100500 0.990987 vt 0.969312 0.054281 vt 0.974358 0.655046 vt 0.575580 0.986853 vt 0.576749 0.986513 vt 0.979585 0.591402 vt 0.977462 0.589481 vt 0.773237 0.292965 vt 0.764733 0.284388 vt 0.962375 0.074197 vt 0.967258 0.666107 vt 0.982584 0.580083 vt 0.980529 0.580290 vt 0.961098 0.063023 vt 0.908711 0.961940 vt 0.966652 0.656878 vt 0.962064 0.094453 vt 0.961901 0.083936 vt 0.101325 0.989299 vt 0.101124 0.988933 vt 0.766115 0.309474 vt 0.763631 0.303338 vt 0.968870 0.651707 vt 0.960066 0.072745 vt 0.966521 0.641763 vt 0.966110 0.645816 vt 0.975605 0.582306 vt 0.972936 0.685340 vt 0.578009 0.985623 vt 0.265823 0.954281 vt 0.266872 0.955592 vt 0.265851 0.956409 vt 0.935213 0.973986 vt 0.940366 0.973631 vt 0.940181 0.976777 vt 0.689212 0.952689 vt 0.690256 0.963133 vt 0.686429 0.952149 vt 0.982932 0.305351 vt 0.986828 0.301895 vt 0.988475 0.304621 vt 0.241010 0.941509 vt 0.240787 0.934028 vt 0.242868 0.934951 vt 0.240555 0.946425 vt 0.238705 0.955463 vt 0.238368 0.946824 vt 0.685117 0.924941 vt 0.686566 0.923827 vt 0.686221 0.930366 vt 0.234967 0.973383 vt 0.237689 0.973711 vt 0.236625 0.975612 vt 0.266990 0.962534 vt 0.269139 0.968403 vt 0.267716 0.968208 vt 0.688763 0.927728 vt 0.938705 0.987609 vt 0.940860 0.991288 vt 0.936413 0.989838 vt 0.934341 0.987889 vt 0.942781 0.991380 vt 0.941130 0.987548 vt 0.969776 0.725845 vt 0.970572 0.711562 vt 0.972320 0.721020 vt 0.687445 0.947018 vt 0.268990 0.952488 vt 0.691495 0.927104 vt 0.238595 0.941318 vt 0.971279 0.725430 vt 0.134803 0.963222 vt 0.132492 0.976754 vt 0.130685 0.974013 vt 0.933700 0.980520 vt 0.934990 0.982807 vt 0.968950 0.698127 vt 0.972693 0.712678 vt 0.687869 0.937489 vt 0.684876 0.942643 vt 0.687629 0.964239 vt 0.968624 0.737062 vt 0.697988 0.956447 vt 0.700761 0.958961 vt 0.696956 0.960064 vt 0.988526 0.563272 vt 0.992364 0.570515 vt 0.984141 0.567370 vt 0.985322 0.571682 vt 0.985993 0.575222 vt 0.235271 0.942069 vt 0.236231 0.932439 vt 0.970730 0.737976 vt 0.982997 0.307820 vt 0.991654 0.306699 vt 0.267693 0.951380 vt 0.689778 0.923837 vt 0.973788 0.729547 vt 0.612961 0.973304 vt 0.612986 0.978811 vt 0.609849 0.974446 vt 0.995035 0.575887 vt 0.235135 0.947336 vt 0.234341 0.950177 vt 0.235058 0.974932 vt 0.692953 0.936418 vt 0.698783 0.948875 vt 0.694839 0.950587 vt 0.237310 0.955249 vt 0.236976 0.965137 vt 0.234555 0.955621 vt 0.138404 0.955655 vt 0.139449 0.967512 vt 0.139025 0.978426 vt 0.700842 0.954409 vt 0.695273 0.952747 vt 0.992262 0.563697 vt 0.137106 0.955589 vt 0.994597 0.561248 vt 0.990907 0.560943 vt 0.993517 0.560187 vt 0.233535 0.941859 vt 0.973822 0.705143 vt 0.971006 0.696984 vt 0.141697 0.955857 vt 0.940158 0.980714 vt 0.937984 0.983361 vt 0.973380 0.724480 vt 0.975754 0.725470 vt 0.143184 0.966458 vt 0.609830 0.979970 vt 0.685093 0.964110 vt 0.684295 0.955277 vt 0.991649 0.303886 vt 0.264492 0.953503 vt 0.266126 0.950746 vt 0.991673 0.292820 vt 0.991409 0.298302 vt 0.986766 0.294175 vt 0.969601 0.696249 vt 0.238980 0.970790 vt 0.973389 0.739377 vt 0.234802 0.965008 vt 0.986393 0.576837 vt 0.687871 0.922631 vt 0.975212 0.714481 vt 0.990582 0.288916 vt 0.987799 0.289438 vt 0.943407 0.983963 vt 0.944415 0.983834 vt 0.933546 0.976362 vt 0.697716 0.943833 vt 0.685302 0.922685 vt 0.240660 0.961856 vt 0.130507 0.976289 vt 0.944123 0.979356 vt 0.981291 0.200585 vt 0.984596 0.198660 vt 0.987837 0.200117 vt 0.984320 0.205303 vt 0.980611 0.207317 vt 0.992058 0.545255 vt 0.987322 0.545396 vt 0.990514 0.542863 vt 0.932578 0.960665 vt 0.932134 0.959874 vt 0.932578 0.958483 vt 0.968590 0.119712 vt 0.968226 0.129221 vt 0.967063 0.120304 vt 0.966578 0.149662 vt 0.968475 0.147472 vt 0.967472 0.150319 vt 0.990314 0.206486 vt 0.991568 0.204332 vt 0.991867 0.207776 vt 0.967079 0.043287 vt 0.965368 0.042405 vt 0.968478 0.031153 vt 0.969241 0.014952 vt 0.968601 0.003048 vt 0.971566 0.017095 vt 0.958140 0.543711 vt 0.962097 0.542692 vt 0.961323 0.554352 vt 0.993670 0.559080 vt 0.984762 0.559565 vt 0.992649 0.557496 vt 0.985737 0.277177 vt 0.986769 0.270212 vt 0.988659 0.274460 vt 0.992207 0.272946 vt 0.987993 0.268620 vt 0.991155 0.268660 vt 0.986691 0.215947 vt 0.989169 0.217726 vt 0.985885 0.217750 vt 0.970455 0.026330 vt 0.969818 0.119485 vt 0.962604 0.560198 vt 0.963795 0.554957 vt 0.961433 0.584960 vt 0.960661 0.582062 vt 0.962376 0.584296 vt 0.956830 0.582452 vt 0.956192 0.578381 vt 0.991420 0.287276 vt 0.986916 0.282549 vt 0.991919 0.285624 vt 0.969949 0.107533 vt 0.969186 0.114190 vt 0.966876 0.114571 vt 0.983191 0.285062 vt 0.987816 0.285024 vt 0.961424 0.569988 vt 0.964642 0.565718 vt 0.952723 0.550961 vt 0.948853 0.546122 vt 0.953458 0.545493 vt 0.988784 0.220677 vt 0.990645 0.218503 vt 0.990645 0.222679 vt 0.964530 0.542519 vt 0.971888 0.034891 vt 0.973111 0.045172 vt 0.970313 0.045276 vt 0.983235 0.288014 vt 0.963288 0.115754 vt 0.962338 0.106384 vt 0.989372 0.277379 vt 0.986753 0.208225 vt 0.987595 0.203219 vt 0.954527 0.555285 vt 0.962835 0.124219 vt 0.964294 0.121479 vt 0.511612 0.942203 vt 0.511844 0.953619 vt 0.507115 0.941170 vt 0.991428 0.552380 vt 0.966766 0.129103 vt 0.967035 0.139378 vt 0.963813 0.130014 vt 0.955729 0.570581 vt 0.949985 0.557049 vt 0.514647 0.965682 vt 0.517170 0.957620 vt 0.518601 0.942992 vt 0.970544 0.030265 vt 0.974183 0.031171 vt 0.969758 0.000390 vt 0.971851 0.002965 vt 0.974042 0.018566 vt 0.961127 0.115522 vt 0.988200 0.213519 vt 0.983966 0.211027 vt 0.510176 0.965852 vt 0.962227 0.120393 vt 0.948054 0.550442 vt 0.507516 0.952147 vt 0.980902 0.212491 vt 0.982235 0.215612 vt 0.190733 0.994931 vt 0.190451 0.989710 vt 0.191094 0.990058 vt 0.250564 0.992416 vt 0.250426 0.989471 vt 0.251451 0.989360 vt 0.966069 0.106021 vt 0.958448 0.585164 vt 0.988859 0.281292 vt 0.991801 0.283049 vt 0.251460 0.992957 vt 0.969509 0.142727 vt 0.964494 0.139609 vt 0.965009 0.148402 vt 0.253414 0.989294 vt 0.252971 0.993979 vt 0.987609 0.198392 vt 0.964782 0.551823 vt 0.506016 0.941492 vt 0.975150 0.024721 vt 0.520454 0.946180 vt 0.951524 0.568721 vt 0.990290 0.210694 vt 0.725882 0.311958 vt 0.728024 0.310235 vt 0.728024 0.313022 vt 0.993385 0.543555 vt 0.520157 0.943126 vt 0.984161 0.552577 vt 0.985971 0.335400 vt 0.982821 0.332083 vt 0.982695 0.323506 vt 0.306992 0.962822 vt 0.305610 0.962946 vt 0.303470 0.952425 vt 0.968404 0.919978 vt 0.966637 0.929344 vt 0.964979 0.926976 vt 0.988475 0.337326 vt 0.989128 0.334810 vt 0.962794 0.915807 vt 0.964298 0.911820 vt 0.959443 0.772620 vt 0.958878 0.769231 vt 0.961664 0.768080 vt 0.963856 0.899489 vt 0.959858 0.891673 vt 0.961393 0.887420 vt 0.303814 0.938017 vt 0.306530 0.944171 vt 0.302638 0.946752 vt 0.878002 0.993053 vt 0.874315 0.993168 vt 0.878700 0.988313 vt 0.963104 0.891359 vt 0.963981 0.884677 vt 0.959828 0.821817 vt 0.962502 0.816072 vt 0.962791 0.822800 vt 0.961545 0.899655 vt 0.965804 0.861352 vt 0.965000 0.859680 vt 0.966517 0.858610 vt 0.960831 0.834184 vt 0.963292 0.834897 vt 0.964591 0.848546 vt 0.962317 0.829674 vt 0.960395 0.806223 vt 0.958278 0.800831 vt 0.960608 0.801232 vt 0.961916 0.805704 vt 0.304794 0.946700 vt 0.961409 0.777514 vt 0.957959 0.778785 vt 0.959654 0.828150 vt 0.306724 0.954213 vt 0.963043 0.770632 vt 0.306816 0.937789 vt 0.986477 0.313518 vt 0.982722 0.313271 vt 0.959503 0.790470 vt 0.966926 0.843630 vt 0.965957 0.835209 vt 0.969056 0.835278 vt 0.965833 0.777046 vt 0.966054 0.792491 vt 0.298162 0.946532 vt 0.959394 0.807048 vt 0.309960 0.940229 vt 0.307528 0.934253 vt 0.300860 0.930660 vt 0.988202 0.323637 vt 0.984829 0.340108 vt 0.983510 0.347845 vt 0.982342 0.340023 vt 0.303294 0.930656 vt 0.967709 0.781815 vt 0.988335 0.338530 vt 0.987118 0.338417 vt 0.956028 0.778064 vt 0.955114 0.790005 vt 0.875321 0.987272 vt 0.877928 0.986115 vt 0.980258 0.313640 vt 0.301001 0.954688 vt 0.967583 0.909833 vt 0.877991 0.997744 vt 0.875408 0.997037 vt 0.957346 0.772384 vt 0.967878 0.824050 vt 0.966015 0.770593 vt 0.967163 0.900317 vt 0.984457 0.349483 vt 0.984273 0.349844 vt 0.969070 0.891750 vt 0.297609 0.937552 vt 0.968761 0.833654 vt 0.963526 0.853907 vt 0.966996 0.885602 vt 0.966466 0.818115 vt 0.959593 0.896990 vt 0.964233 0.929657 vt 0.989202 0.318049 vt 0.989506 0.323416 vt 0.585949 0.989857 vt 0.590952 0.986910 vt 0.591199 0.990081 vt 0.555830 0.954471 vt 0.558489 0.953599 vt 0.555642 0.964928 vt 0.983727 0.743634 vt 0.988990 0.744163 vt 0.987346 0.746890 vt 0.967224 0.966754 vt 0.968454 0.973091 vt 0.966275 0.973867 vt 0.967166 0.961512 vt 0.965206 0.960860 vt 0.966356 0.952280 vt 0.557137 0.925512 vt 0.556983 0.932065 vt 0.555978 0.925586 vt 0.963800 0.932737 vt 0.965265 0.932281 vt 0.966405 0.933991 vt 0.964794 0.168136 vt 0.960756 0.161302 vt 0.960466 0.157393 vt 0.969686 0.571921 vt 0.971562 0.569243 vt 0.968967 0.581790 vt 0.554218 0.929710 vt 0.589268 0.976000 vt 0.586930 0.973811 vt 0.590988 0.972359 vt 0.584898 0.975825 vt 0.593222 0.972210 vt 0.591675 0.976050 vt 0.968512 0.556009 vt 0.970791 0.560927 vt 0.557211 0.948665 vt 0.961878 0.590763 vt 0.960042 0.590433 vt 0.962319 0.586538 vt 0.551192 0.929474 vt 0.965057 0.966371 vt 0.969624 0.556545 vt 0.962221 0.154649 vt 0.585639 0.980956 vt 0.584400 0.983283 vt 0.556040 0.939285 vt 0.559289 0.944107 vt 0.558258 0.964973 vt 0.966399 0.544969 vt 0.547160 0.959176 vt 0.548496 0.962637 vt 0.544389 0.961959 vt 0.216520 0.981164 vt 0.221670 0.984692 vt 0.214043 0.988869 vt 0.221315 0.989196 vt 0.221330 0.992888 vt 0.961656 0.965307 vt 0.961543 0.974963 vt 0.968321 0.544045 vt 0.959380 0.965442 vt 0.958914 0.973214 vt 0.961045 0.586579 vt 0.552468 0.926202 vt 0.971983 0.552418 vt 0.900114 0.221109 vt 0.899742 0.215660 vt 0.905329 0.218919 vt 0.212440 0.994784 vt 0.961805 0.960036 vt 0.961316 0.957137 vt 0.550725 0.938792 vt 0.549950 0.953027 vt 0.545492 0.951713 vt 0.964957 0.952375 vt 0.965172 0.942478 vt 0.962029 0.951740 vt 0.968085 0.175651 vt 0.969395 0.163885 vt 0.906132 0.222027 vt 0.549699 0.955215 vt 0.543949 0.957466 vt 0.212872 0.982076 vt 0.968763 0.152938 vt 0.973348 0.579296 vt 0.971100 0.584926 vt 0.971939 0.175236 vt 0.590797 0.983069 vt 0.588596 0.980391 vt 0.971883 0.557433 vt 0.974479 0.556263 vt 0.972472 0.162687 vt 0.906486 0.213810 vt 0.971384 0.542507 vt 0.974397 0.543159 vt 0.992154 0.742117 vt 0.992160 0.744926 vt 0.959272 0.586761 vt 0.958340 0.589704 vt 0.992183 0.756070 vt 0.987283 0.754668 vt 0.991553 0.750870 vt 0.969637 0.585594 vt 0.983443 0.741217 vt 0.967198 0.936912 vt 0.962674 0.942234 vt 0.221111 0.995455 vt 0.559469 0.956582 vt 0.213909 0.979369 vt 0.211096 0.980315 vt 0.553682 0.924815 vt 0.975395 0.562469 vt 0.974389 0.567303 vt 0.991095 0.759981 vt 0.988054 0.759567 vt 0.593931 0.979838 vt 0.594925 0.979983 vt 0.584341 0.987449 vt 0.546857 0.940615 vt 0.557016 0.924298 vt 0.960256 0.155122 vt 0.962780 0.934659 vt 0.594548 0.984549 vt 0.981480 0.123307 vt 0.988022 0.123692 vt 0.984815 0.125188 vt 0.984410 0.118572 vt 0.980677 0.116583 vt 0.991505 0.532441 vt 0.989743 0.534568 vt 0.986736 0.532045 vt 0.949516 0.527242 vt 0.950950 0.528101 vt 0.948392 0.532428 vt 0.966066 0.430852 vt 0.967598 0.431298 vt 0.967342 0.440274 vt 0.971639 0.460456 vt 0.970878 0.461194 vt 0.969447 0.458508 vt 0.250155 0.975724 vt 0.247078 0.979857 vt 0.248215 0.974435 vt 0.969250 0.240704 vt 0.967699 0.239486 vt 0.971222 0.226157 vt 0.992094 0.520065 vt 0.984146 0.517250 vt 0.993138 0.518456 vt 0.959708 0.540946 vt 0.962664 0.530184 vt 0.963686 0.541738 vt 0.249954 0.982592 vt 0.248673 0.987246 vt 0.253499 0.984140 vt 0.252449 0.988425 vt 0.986618 0.107771 vt 0.985775 0.105998 vt 0.989047 0.106002 vt 0.969207 0.253822 vt 0.967817 0.248900 vt 0.965173 0.430773 vt 0.963878 0.524306 vt 0.964953 0.529514 vt 0.968428 0.223618 vt 0.970284 0.223174 vt 0.967001 0.227369 vt 0.961319 0.502650 vt 0.956817 0.506639 vt 0.956863 0.503097 vt 0.252714 0.969733 vt 0.253214 0.971389 vt 0.964250 0.418570 vt 0.967092 0.425576 vt 0.964940 0.425395 vt 0.244389 0.971897 vt 0.249114 0.971958 vt 0.962517 0.514636 vt 0.964740 0.513178 vt 0.954041 0.534027 vt 0.954856 0.539421 vt 0.949290 0.538906 vt 0.982940 0.527802 vt 0.983548 0.524585 vt 0.970436 0.266187 vt 0.967483 0.266811 vt 0.965524 0.542035 vt 0.965549 0.257251 vt 0.963073 0.267268 vt 0.244567 0.969168 vt 0.973204 0.425965 vt 0.971308 0.417065 vt 0.973999 0.418449 vt 0.970869 0.426409 vt 0.250664 0.979694 vt 0.990326 0.117467 vt 0.987722 0.120600 vt 0.986766 0.115684 vt 0.955790 0.529630 vt 0.972332 0.434430 vt 0.970583 0.432200 vt 0.266325 0.972902 vt 0.264236 0.972467 vt 0.266325 0.968599 vt 0.990879 0.525278 vt 0.968695 0.440029 vt 0.969797 0.450273 vt 0.971887 0.440648 vt 0.956699 0.514349 vt 0.090067 0.958114 vt 0.086773 0.950138 vt 0.091709 0.945707 vt 0.090832 0.934339 vt 0.083924 0.935712 vt 0.963292 0.253288 vt 0.967243 0.252798 vt 0.964423 0.241606 vt 0.988156 0.110224 vt 0.983964 0.112808 vt 0.094281 0.958696 vt 0.972687 0.430919 vt 0.096156 0.944289 vt 0.095263 0.932926 vt 0.980885 0.111363 vt 0.982167 0.108196 vt 0.296337 0.696496 vt 0.295644 0.693685 vt 0.296337 0.692021 vt 0.985935 0.340599 vt 0.986721 0.343635 vt 0.985717 0.343543 vt 0.966484 0.267960 vt 0.967951 0.416731 vt 0.958797 0.499662 vt 0.961890 0.499709 vt 0.253095 0.973985 vt 0.986840 0.340068 vt 0.967801 0.453846 vt 0.972494 0.449914 vt 0.973105 0.459051 vt 0.988600 0.343812 vt 0.988401 0.339171 vt 0.987822 0.125436 vt 0.271995 0.991247 vt 0.272876 0.998153 vt 0.270434 0.996697 vt 0.963146 0.245299 vt 0.082389 0.939037 vt 0.991834 0.116225 vt 0.951469 0.516496 vt 0.990231 0.113239 vt 0.992829 0.534138 vt 0.082395 0.935974 vt 0.080573 0.970181 vt 0.077745 0.974652 vt 0.075822 0.972877 vt 0.074032 0.967854 vt 0.077463 0.968593 vt 0.986867 0.129791 vt 0.986537 0.135792 vt 0.985293 0.133006 vt 0.983602 0.126469 vt 0.982603 0.129476 vt 0.980906 0.128015 vt 0.835242 0.991908 vt 0.824380 0.991403 vt 0.834352 0.990326 vt 0.271284 0.944417 vt 0.269798 0.934887 vt 0.271343 0.933838 vt 0.697872 0.980497 vt 0.695535 0.983392 vt 0.695795 0.973536 vt 0.074810 0.958545 vt 0.078070 0.957029 vt 0.079444 0.959365 vt 0.990617 0.144205 vt 0.986713 0.144654 vt 0.991268 0.140851 vt 0.969067 0.202186 vt 0.966063 0.206608 vt 0.966576 0.202743 vt 0.948208 0.301893 vt 0.946449 0.309024 vt 0.945685 0.303912 vt 0.273562 0.946883 vt 0.272130 0.946642 vt 0.968133 0.197367 vt 0.374033 0.987190 vt 0.373664 0.988437 vt 0.370506 0.989030 vt 0.081267 0.973869 vt 0.276157 0.948643 vt 0.275990 0.954594 vt 0.963918 0.181139 vt 0.960496 0.179750 vt 0.962024 0.178538 vt 0.691739 0.975142 vt 0.692366 0.967158 vt 0.695192 0.968200 vt 0.765114 0.995915 vt 0.762668 0.996715 vt 0.762894 0.992824 vt 0.074576 0.961733 vt 0.073490 0.961562 vt 0.984495 0.140975 vt 0.985441 0.143931 vt 0.958059 0.105236 vt 0.957042 0.105236 vt 0.957631 0.102847 vt 0.291079 0.679564 vt 0.292175 0.675037 vt 0.292175 0.682822 vt 0.697236 0.973042 vt 0.946770 0.300937 vt 0.944825 0.303663 vt 0.068940 0.967840 vt 0.824283 0.993797 vt 0.990521 0.128323 vt 0.966986 0.217387 vt 0.963622 0.219030 vt 0.961170 0.211727 vt 0.275943 0.939918 vt 0.078891 0.965246 vt 0.081623 0.964518 vt 0.963914 0.202551 vt 0.964744 0.196792 vt 0.279313 0.956649 vt 0.276400 0.960609 vt 0.989320 0.080830 vt 0.983563 0.087745 vt 0.982408 0.078522 vt 0.947659 0.312810 vt 0.953533 0.302174 vt 0.953565 0.311096 vt 0.954717 0.299985 vt 0.948190 0.296926 vt 0.962498 0.192498 vt 0.964712 0.187116 vt 0.967459 0.194039 vt 0.761763 0.993076 vt 0.765502 0.988438 vt 0.989619 0.135617 vt 0.987434 0.138667 vt 0.958787 0.210563 vt 0.962050 0.201976 vt 0.960578 0.187685 vt 0.068655 0.972618 vt 0.064179 0.968879 vt 0.955903 0.312168 vt 0.372687 0.998151 vt 0.370082 0.996131 vt 0.372099 0.995686 vt 0.958384 0.303533 vt 0.081651 0.971515 vt 0.827954 0.995063 vt 0.993360 0.085389 vt 0.991960 0.085320 vt 0.944787 0.298796 vt 0.688928 0.973468 vt 0.760820 0.996807 vt 0.760355 0.993862 vt 0.685045 0.978704 vt 0.960081 0.206557 vt 0.696196 0.965960 vt 0.991536 0.130989 vt 0.274638 0.972220 vt 0.274452 0.968410 vt 0.275899 0.971953 vt 0.277859 0.966020 vt 0.986487 0.074772 vt 0.077381 0.956209 vt 0.684163 0.981092 vt 0.688088 0.984338 vt 0.076546 0.964617 vt 0.960422 0.217671 vt 0.693334 0.965022 vt 0.985841 0.088104 vt 0.959539 0.301472 vt 0.075937 0.974091 vt 0.958219 0.293802 vt 0.960045 0.293774 vt 0.278746 0.946707 vt 0.993756 0.089424 vt 0.064838 0.972307 vt 0.945240 0.307728 vt 0.958138 0.311350 vt 0.959954 0.204780 vt 0.969047 0.216275 vt 0.835351 0.983050 vt 0.830367 0.986087 vt 0.991250 0.136193 vt 0.272258 0.675297 vt 0.272947 0.672145 vt 0.272947 0.675689 vt 0.981244 0.088751 vt 0.275742 0.932757 vt 0.991762 0.088332 vt 0.275791 0.931730 vt 0.279523 0.932743 vt 0.969811 0.199604 vt 0.277709 0.969110 vt 0.993795 0.609283 vt 0.994128 0.607623 vt 0.995674 0.606832 vt 0.862476 0.591213 vt 0.864815 0.586309 vt 0.864611 0.590447 vt 0.991852 0.849394 vt 0.989621 0.851723 vt 0.990238 0.846977 vt 0.977000 0.201456 vt 0.973166 0.213722 vt 0.975027 0.201232 vt 0.980482 0.844875 vt 0.981458 0.840248 vt 0.983366 0.842416 vt 0.976501 0.191022 vt 0.975100 0.190966 vt 0.974004 0.189564 vt 0.002398 0.987838 vt 0.001463 0.986848 vt 0.003285 0.985405 vt 0.001143 0.977862 vt 0.002125 0.974020 vt 0.004224 0.973612 vt 0.231029 0.945211 vt 0.229880 0.947904 vt 0.228096 0.944217 vt 0.988311 0.901592 vt 0.986605 0.906418 vt 0.986468 0.900391 vt 0.983329 0.893081 vt 0.984574 0.885903 vt 0.987226 0.887854 vt 0.854636 0.995741 vt 0.858120 0.996179 vt 0.855718 0.997306 vt 0.228890 0.952977 vt 0.849412 0.984969 vt 0.851709 0.981923 vt 0.851081 0.987798 vt 0.984018 0.847274 vt 0.984272 0.850254 vt 0.981439 0.847446 vt 0.316412 0.991794 vt 0.314772 0.992491 vt 0.314226 0.982919 vt 0.973792 0.180986 vt 0.006653 0.984712 vt 0.228096 0.967151 vt 0.223860 0.967568 vt 0.225687 0.960433 vt 0.011867 0.988619 vt 0.995991 0.610316 vt 0.995003 0.612068 vt 0.994996 0.609245 vt 0.981230 0.905083 vt 0.980356 0.902718 vt 0.983952 0.906390 vt 0.978501 0.184464 vt 0.977946 0.192240 vt 0.979682 0.191261 vt 0.979323 0.198807 vt 0.972466 0.200556 vt 0.970934 0.192438 vt 0.971015 0.183247 vt 0.970233 0.190052 vt 0.319046 0.992294 vt 0.986847 0.844429 vt 0.986920 0.851424 vt 0.004503 0.979369 vt 0.000797 0.981602 vt 0.859208 0.590783 vt 0.859254 0.584360 vt 0.974726 0.214797 vt 0.987856 0.885213 vt 0.982032 0.900748 vt 0.223301 0.953555 vt 0.225421 0.946659 vt 0.226400 0.951157 vt 0.225360 0.939899 vt 0.227409 0.933653 vt 0.228903 0.962882 vt 0.232866 0.953879 vt 0.232722 0.965815 vt 0.989441 0.844157 vt 0.225499 0.944163 vt 0.313058 0.994779 vt 0.311555 0.987231 vt 0.993634 0.611901 vt 0.222723 0.957500 vt 0.973603 0.215586 vt 0.011862 0.986604 vt 0.975692 0.179611 vt 0.977907 0.178389 vt 0.857354 0.986124 vt 0.855047 0.986005 vt 0.987623 0.841402 vt 0.008302 0.979911 vt 0.231681 0.951911 vt 0.230824 0.966540 vt 0.979367 0.897342 vt 0.986381 0.884351 vt 0.316870 0.983269 vt 0.918285 0.585332 vt 0.921419 0.582240 vt 0.922808 0.583414 vt 0.921937 0.585253 vt 0.921488 0.588385 vt 0.924032 0.591599 vt 0.919461 0.588733 vt 0.851425 0.991426 vt 0.012689 0.982238 vt 0.295542 0.704599 vt 0.296337 0.703948 vt 0.296337 0.707454 vt 0.006509 0.973962 vt 0.008037 0.976651 vt 0.988626 0.907018 vt 0.225128 0.933938 vt 0.863470 0.584025 vt 0.272926 0.679347 vt 0.272258 0.679050 vt 0.272926 0.675689 vt 0.233035 0.947336 vt 0.849068 0.987476 vt 0.322313 0.994254 vt 0.321186 0.988321 vt 0.988890 0.916503 vt 0.990614 0.913795 vt 0.994147 0.923414 vt 0.996796 0.921996 vt 0.995897 0.925449 vt 0.995181 0.318355 vt 0.996853 0.318517 vt 0.994558 0.328961 vt 0.990371 0.349925 vt 0.988233 0.352200 vt 0.989806 0.346269 vt 0.978510 0.334273 vt 0.979381 0.317182 vt 0.979785 0.326459 vt 0.975032 0.394149 vt 0.975313 0.404932 vt 0.972907 0.393369 vt 0.997460 0.232905 vt 0.995179 0.240864 vt 0.996284 0.224596 vt 0.991678 0.345160 vt 0.987203 0.358384 vt 0.989746 0.354937 vt 0.993063 0.345390 vt 0.994541 0.314020 vt 0.979598 0.334771 vt 0.996897 0.313981 vt 0.993348 0.908336 vt 0.996860 0.908256 vt 0.990709 0.363057 vt 0.988643 0.366092 vt 0.988248 0.363265 vt 0.979528 0.374012 vt 0.978960 0.385709 vt 0.974535 0.386250 vt 0.997095 0.914824 vt 0.979122 0.340353 vt 0.976916 0.319275 vt 0.993161 0.349815 vt 0.993132 0.358213 vt 0.978081 0.393717 vt 0.976680 0.406014 vt 0.989186 0.233584 vt 0.992323 0.236634 vt 0.991405 0.240500 vt 0.995164 0.223222 vt 0.996773 0.222814 vt 0.994401 0.224454 vt 0.993035 0.363967 vt 0.991999 0.367360 vt 0.975771 0.333505 vt 0.972716 0.333490 vt 0.970649 0.339129 vt 0.974788 0.344267 vt 0.994385 0.925689 vt 0.996197 0.332171 vt 0.995109 0.333603 vt 0.978803 0.344757 vt 0.977843 0.351093 vt 0.976626 0.349633 vt 0.978805 0.313742 vt 0.992220 0.326928 vt 0.971239 0.333506 vt 0.997576 0.240065 vt 0.972262 0.376693 vt 0.977767 0.368192 vt 0.990634 0.329057 vt 0.990024 0.326527 vt 0.979864 0.369000 vt 0.971369 0.345654 vt 0.972291 0.385852 vt 0.974753 0.369981 vt 0.975742 0.317582 vt 0.857192 0.310104 vt 0.857405 0.312601 vt 0.854988 0.310253 vt 0.992600 0.344429 vt 0.951292 0.692289 vt 0.948909 0.686741 vt 0.952004 0.688463 vt 0.946188 0.688993 vt 0.989470 0.919090 vt 0.128961 0.959688 vt 0.124328 0.956594 vt 0.126101 0.955363 vt 0.125868 0.961374 vt 0.122452 0.962317 vt 0.986562 0.264625 vt 0.985071 0.261352 vt 0.986382 0.258359 vt 0.983323 0.267224 vt 0.980528 0.265964 vt 0.982053 0.264570 vt 0.944439 0.693378 vt 0.942802 0.692629 vt 0.942635 0.682688 vt 0.594031 0.947330 vt 0.592223 0.947030 vt 0.591703 0.941911 vt 0.586473 0.971508 vt 0.585445 0.970343 vt 0.588621 0.968874 vt 0.962985 0.296399 vt 0.962474 0.306840 vt 0.961227 0.305927 vt 0.309799 0.970677 vt 0.308651 0.978715 vt 0.307876 0.967430 vt 0.123457 0.971755 vt 0.127933 0.970662 vt 0.126583 0.973081 vt 0.990648 0.249878 vt 0.991142 0.253137 vt 0.986774 0.249491 vt 0.432370 0.965369 vt 0.434884 0.967389 vt 0.434135 0.972502 vt 0.965393 0.293994 vt 0.964000 0.294236 vt 0.593591 0.952210 vt 0.867786 0.582875 vt 0.867786 0.584305 vt 0.867054 0.583026 vt 0.129622 0.955974 vt 0.999220 0.059462 vt 0.998477 0.064776 vt 0.997766 0.062956 vt 0.773468 0.987948 vt 0.770873 0.991759 vt 0.770891 0.987883 vt 0.121970 0.968728 vt 0.123054 0.968537 vt 0.592314 0.932079 vt 0.594772 0.934340 vt 0.984470 0.253209 vt 0.985239 0.250392 vt 0.522723 0.745647 vt 0.523168 0.743210 vt 0.523654 0.745647 vt 0.968123 0.292306 vt 0.418091 0.950499 vt 0.419317 0.947275 vt 0.419317 0.955082 vt 0.309594 0.978348 vt 0.433799 0.964411 vt 0.435728 0.967137 vt 0.117206 0.961914 vt 0.944955 0.682398 vt 0.586522 0.931648 vt 0.584300 0.938862 vt 0.585012 0.932620 vt 0.586927 0.938214 vt 0.589435 0.930973 vt 0.967380 0.300896 vt 0.480246 0.951082 vt 0.481207 0.949098 vt 0.481207 0.951006 vt 0.590137 0.953227 vt 0.589385 0.947458 vt 0.971717 0.285017 vt 0.968127 0.286382 vt 0.968730 0.280409 vt 0.783837 0.984381 vt 0.790874 0.981569 vt 0.789323 0.991372 vt 0.432962 0.976295 vt 0.427066 0.974577 vt 0.427087 0.965883 vt 0.300931 0.977995 vt 0.303311 0.972601 vt 0.307506 0.982265 vt 0.425847 0.963453 vt 0.432344 0.960394 vt 0.587851 0.957392 vt 0.592975 0.956007 vt 0.589733 0.962926 vt 0.987340 0.255535 vt 0.989422 0.258432 vt 0.587401 0.948011 vt 0.114734 0.956425 vt 0.112553 0.960597 vt 0.424746 0.975651 vt 0.294638 0.414136 vt 0.293813 0.417417 vt 0.291758 0.416992 vt 0.295933 0.424538 vt 0.292723 0.423975 vt 0.422126 0.966952 vt 0.130026 0.958314 vt 0.970911 0.294392 vt 0.970981 0.308157 vt 0.779564 0.989022 vt 0.780927 0.988947 vt 0.435746 0.962265 vt 0.304895 0.983523 vt 0.768568 0.990725 vt 0.769043 0.987784 vt 0.297341 0.971918 vt 0.585621 0.943379 vt 0.308768 0.984846 vt 0.127315 0.964519 vt 0.990163 0.266067 vt 0.991235 0.263296 vt 0.967644 0.268970 vt 0.968916 0.269238 vt 0.967568 0.272898 vt 0.970568 0.275117 vt 0.769734 0.991307 vt 0.786433 0.978668 vt 0.125382 0.973535 vt 0.296398 0.969533 vt 0.300303 0.966379 vt 0.124989 0.965421 vt 0.305832 0.985673 vt 0.787101 0.991625 vt 0.421003 0.964933 vt 0.420192 0.959347 vt 0.422241 0.957248 vt 0.779107 0.993049 vt 0.585291 0.945176 vt 0.422490 0.974828 vt 0.584543 0.969190 vt 0.586005 0.960295 vt 0.935712 0.694235 vt 0.938089 0.689059 vt 0.991052 0.257751 vt 0.295577 0.707828 vt 0.296337 0.707454 vt 0.296337 0.711003 vt 0.791668 0.992381 vt 0.966897 0.307995 vt 0.979573 0.259459 vt 0.781084 0.991954 vt 0.967227 0.309002 vt 0.291818 0.412088 vt 0.970617 0.272076 vt 0.100713 0.967876 vt 0.100254 0.966454 vt 0.101677 0.967630 vt 0.855770 0.584126 vt 0.857902 0.584915 vt 0.858109 0.589061 vt 0.972527 0.792947 vt 0.971928 0.803003 vt 0.969933 0.802492 vt 0.984266 0.673152 vt 0.985532 0.670475 vt 0.986868 0.675001 vt 0.974575 0.782434 vt 0.972841 0.782708 vt 0.971638 0.770248 vt 0.995067 0.666482 vt 0.991754 0.664493 vt 0.993395 0.662150 vt 0.425275 0.977389 vt 0.426162 0.979794 vt 0.424629 0.979917 vt 0.424133 0.987773 vt 0.427174 0.991948 vt 0.424555 0.991087 vt 0.106186 0.955599 vt 0.104532 0.955995 vt 0.106448 0.952312 vt 0.988290 0.913300 vt 0.986587 0.914546 vt 0.986584 0.908509 vt 0.970868 0.792740 vt 0.340785 0.981806 vt 0.340579 0.983385 vt 0.338099 0.981951 vt 0.983476 0.921821 vt 0.987432 0.927109 vt 0.984704 0.929087 vt 0.105512 0.947235 vt 0.331896 0.994557 vt 0.333489 0.991634 vt 0.334032 0.997477 vt 0.991760 0.669768 vt 0.994443 0.669129 vt 0.992023 0.672617 vt 0.801084 0.304875 vt 0.792263 0.302032 vt 0.801968 0.303356 vt 0.429499 0.980404 vt 0.105085 0.933135 vt 0.102243 0.938594 vt 0.100612 0.932395 vt 0.098213 0.941996 vt 0.098151 0.933940 vt 0.981527 0.909679 vt 0.983926 0.908497 vt 0.980125 0.912248 vt 0.974118 0.792418 vt 0.977363 0.785378 vt 0.977527 0.793127 vt 0.968550 0.790381 vt 0.970532 0.783382 vt 0.968202 0.801295 vt 0.967819 0.793193 vt 0.801270 0.307528 vt 0.100671 0.943001 vt 0.102728 0.948983 vt 0.988473 0.667586 vt 0.989525 0.674221 vt 0.423841 0.984166 vt 0.427455 0.986134 vt 0.803091 0.301578 vt 0.804070 0.302077 vt 0.852487 0.584520 vt 0.852552 0.590953 vt 0.099463 0.946713 vt 0.972750 0.769293 vt 0.975257 0.772443 vt 0.982130 0.914123 vt 0.101658 0.953593 vt 0.101527 0.955980 vt 0.105783 0.937297 vt 0.109196 0.939053 vt 0.109012 0.946153 vt 0.637183 0.311858 vt 0.637183 0.313077 vt 0.636081 0.312186 vt 0.823454 0.970197 vt 0.821641 0.972803 vt 0.822102 0.970191 vt 0.987766 0.930019 vt 0.795596 0.300498 vt 0.823018 0.973213 vt 0.434063 0.978975 vt 0.435075 0.976955 vt 0.974954 0.797234 vt 0.974284 0.805497 vt 0.340620 0.993338 vt 0.337557 0.993211 vt 0.988730 0.664383 vt 0.972036 0.768254 vt 0.431178 0.985352 vt 0.108060 0.948264 vt 0.107425 0.933961 vt 0.979414 0.917492 vt 0.986513 0.930597 vt 0.792513 0.304622 vt 0.557012 0.988357 vt 0.560902 0.992370 vt 0.559388 0.993249 vt 0.560495 0.990357 vt 0.562639 0.994652 vt 0.560811 0.987202 vt 0.823612 0.982264 vt 0.823509 0.975470 vt 0.824062 0.980308 vt 0.435993 0.983492 vt 0.295507 0.699327 vt 0.296337 0.696496 vt 0.296337 0.700016 vt 0.430908 0.988852 vt 0.429592 0.991524 vt 0.206451 0.926182 vt 0.205508 0.923534 vt 0.206451 0.921463 vt 0.988597 0.929670 vt 0.988164 0.907647 vt 0.336914 0.983593 vt 0.102920 0.967021 vt 0.988474 0.930869 vt 0.856787 0.591337 vt 0.990910 0.675717 vt 0.559193 0.985817 vt 0.557971 0.987181 vt 0.977906 0.805185 vt 0.331565 0.992052 vt 0.429949 0.984471 vt 0.802817 0.310981 vt 0.797219 0.309593 vt 0.989658 0.799277 vt 0.995135 0.792605 vt 0.991257 0.802068 vt 0.996968 0.790653 vt 0.997727 0.794153 vt 0.944225 0.588541 vt 0.944933 0.580250 vt 0.946602 0.589570 vt 0.928475 0.977556 vt 0.929011 0.981702 vt 0.926349 0.975313 vt 0.978330 0.831371 vt 0.978763 0.839197 vt 0.977480 0.847432 vt 0.414600 0.989365 vt 0.414491 0.986036 vt 0.418903 0.995567 vt 0.422733 0.988098 vt 0.420802 0.995656 vt 0.421266 0.979423 vt 0.931493 0.981908 vt 0.925057 0.968794 vt 0.927618 0.972573 vt 0.978675 0.126817 vt 0.979968 0.119770 vt 0.979948 0.126407 vt 0.979359 0.830931 vt 0.977846 0.118282 vt 0.997409 0.807817 vt 0.993787 0.807667 vt 0.928627 0.964246 vt 0.926215 0.964148 vt 0.926660 0.961235 vt 0.979734 0.138565 vt 0.973893 0.125548 vt 0.998063 0.801753 vt 0.980535 0.461322 vt 0.976489 0.460956 vt 0.979699 0.459396 vt 0.975304 0.846149 vt 0.931424 0.969550 vt 0.931289 0.977511 vt 0.974709 0.117702 vt 0.977693 0.105766 vt 0.417486 0.979283 vt 0.418072 0.983225 vt 0.419512 0.996870 vt 0.421034 0.997489 vt 0.931020 0.959094 vt 0.931067 0.963268 vt 0.930861 0.982839 vt 0.975539 0.831948 vt 0.972331 0.831721 vt 0.979360 0.825414 vt 0.976219 0.106801 vt 0.970576 0.825936 vt 0.975340 0.821150 vt 0.995548 0.790313 vt 0.945216 0.575776 vt 0.946589 0.577091 vt 0.976916 0.851182 vt 0.942601 0.582368 vt 0.970695 0.831720 vt 0.977062 0.143577 vt 0.971685 0.133853 vt 0.939949 0.582682 vt 0.940910 0.580316 vt 0.979292 0.143031 vt 0.972167 0.819039 vt 0.978375 0.815060 vt 0.979400 0.820943 vt 0.971744 0.125811 vt 0.973813 0.141338 vt 0.974004 0.848673 vt 0.851786 0.310696 vt 0.853927 0.310302 vt 0.852084 0.313189 vt 0.972760 0.118138 vt 0.979251 0.455525 vt 0.974457 0.459175 vt 0.978816 0.109148 vt 0.209601 0.942308 vt 0.209072 0.949402 vt 0.208428 0.942579 vt 0.218629 0.949015 vt 0.218351 0.941723 vt 0.219497 0.941443 vt 0.995160 0.722989 vt 0.997756 0.721680 vt 0.997089 0.724291 vt 0.993478 0.740992 vt 0.997497 0.741377 vt 0.997571 0.743373 vt 0.993039 0.424724 vt 0.996201 0.426395 vt 0.994821 0.427893 vt 0.213620 0.946957 vt 0.214120 0.943207 vt 0.692659 0.985543 vt 0.692880 0.991192 vt 0.686713 0.988273 vt 0.981652 0.758645 vt 0.979454 0.758513 vt 0.979928 0.751554 vt 0.220758 0.935890 vt 0.775315 0.989267 vt 0.775095 0.986832 vt 0.778089 0.987690 vt 0.972447 0.757245 vt 0.973121 0.750919 vt 0.970057 0.756262 vt 0.971638 0.750260 vt 0.994859 0.731581 vt 0.996568 0.733078 vt 0.994876 0.734175 vt 0.971729 0.763165 vt 0.970135 0.763856 vt 0.969402 0.759347 vt 0.993980 0.753638 vt 0.994155 0.751168 vt 0.997515 0.752910 vt 0.993579 0.423485 vt 0.957120 0.759913 vt 0.960159 0.756988 vt 0.959072 0.764375 vt 0.993201 0.336880 vt 0.991540 0.340799 vt 0.991615 0.336289 vt 0.688448 0.994388 vt 0.805065 0.986808 vt 0.797138 0.991006 vt 0.797619 0.988000 vt 0.993207 0.746174 vt 0.996762 0.746498 vt 0.774134 0.994475 vt 0.778234 0.989650 vt 0.777350 0.993952 vt 0.778237 0.996710 vt 0.996150 0.418678 vt 0.995992 0.423646 vt 0.997740 0.750676 vt 0.959220 0.751189 vt 0.957907 0.749011 vt 0.964483 0.751790 vt 0.993673 0.743029 vt 0.216650 0.958601 vt 0.215436 0.948470 vt 0.217704 0.956621 vt 0.209667 0.937874 vt 0.217116 0.936491 vt 0.996485 0.727055 vt 0.997236 0.731251 vt 0.133422 0.992480 vt 0.140785 0.993673 vt 0.134760 0.993613 vt 0.774897 0.997398 vt 0.209804 0.933953 vt 0.138878 0.981050 vt 0.140185 0.984025 vt 0.135850 0.982720 vt 0.994185 0.726986 vt 0.689376 0.985814 vt 0.981698 0.763762 vt 0.978804 0.764807 vt 0.804123 0.992795 vt 0.684875 0.992634 vt 0.523850 0.694877 vt 0.523145 0.697949 vt 0.522932 0.691601 vt 0.140711 0.991297 vt 0.136177 0.981187 vt 0.967720 0.759670 vt 0.966884 0.759889 vt 0.967369 0.754332 vt 0.221439 0.933012 vt 0.220101 0.933215 vt 0.976846 0.765042 vt 0.965734 0.742556 vt 0.967643 0.747034 vt 0.964963 0.747054 vt 0.143370 0.994437 vt 0.142642 0.991837 vt 0.143499 0.993318 vt 0.578735 0.959702 vt 0.578713 0.961201 vt 0.578265 0.960542 vt 0.740654 0.984529 vt 0.744835 0.985743 vt 0.743949 0.988044 vt 0.524544 0.700285 vt 0.523581 0.689420 vt 0.805601 0.984498 vt 0.738957 0.987054 vt 0.207698 0.949706 vt 0.207812 0.957124 vt 0.993760 0.418604 vt 0.738437 0.984503 vt 0.967094 0.751838 vt 0.966623 0.764478 vt 0.963566 0.756769 vt 0.975238 0.747261 vt 0.989709 0.339724 vt 0.989909 0.337031 vt 0.217578 0.932432 vt 0.957188 0.744702 vt 0.961439 0.742589 vt 0.132981 0.986603 vt 0.957809 0.764921 vt 0.980117 0.744391 vt 0.214040 0.934049 vt 0.742013 0.997320 vt 0.739393 0.993778 vt 0.744771 0.997268 vt 0.997944 0.420317 vt 0.796704 0.988032 vt 0.796360 0.990345 vt 0.982055 0.751349 vt 0.799695 0.986205 vt 0.523905 0.701050 vt 0.131365 0.994349 vt 0.977361 0.741006 vt 0.979877 0.741369 vt 0.976875 0.742491 vt 0.131561 0.992479 vt 0.806113 0.994213 vt 0.806898 0.993039 vt 0.807160 0.995972 vt 0.997003 0.427819 vt 0.996274 0.428871 vt 0.997537 0.416719 vt 0.998104 0.417446 vt 0.777742 0.999255 vt 0.997003 0.754002 vt 0.972130 0.765197 vt 0.207414 0.938148 vt 0.967986 0.765528 vt 0.776964 0.986390 vt 0.980742 0.766407 vt 0.209086 0.933187 vt 0.207052 0.934064 vt 0.995397 0.417095 vt 0.797837 0.986839 vt 0.958824 0.767209 vt 0.956464 0.757102 vt 0.807383 0.983907 vt 0.806826 0.987877 vt 0.956122 0.750548 vt 0.955456 0.746455 vt 0.955088 0.742056 vt 0.743859 0.994718 vt 0.578333 0.961471 vt 0.981194 0.744553 vt 0.775094 0.999577 vt 0.957185 0.741384 vt 0.805111 0.995438 vt 0.968713 0.743648 vt 0.993798 0.732926 vt 0.961647 0.755559 vt 0.992861 0.416190 vt 0.972852 0.747504 vt 0.693204 0.996174 vt 0.211246 0.949090 vt 0.208779 0.957799 vt 0.217100 0.959560 vt 0.995691 0.334329 vt 0.208280 0.959418 vt 0.997034 0.734245 vt 0.993900 0.724327 vt 0.219943 0.932239 vt 0.967438 0.767253 vt 0.362584 0.983233 vt 0.353965 0.980850 vt 0.361936 0.981535 vt 0.650427 0.289937 vt 0.650862 0.297718 vt 0.649848 0.301258 vt 0.660608 0.289007 vt 0.662066 0.298304 vt 0.660379 0.298089 vt 0.658015 0.289232 vt 0.657800 0.294213 vt 0.717154 0.296979 vt 0.717085 0.294041 vt 0.719072 0.297045 vt 0.646960 0.962649 vt 0.648266 0.962199 vt 0.646708 0.964677 vt 0.649697 0.962176 vt 0.648455 0.966292 vt 0.645827 0.969807 vt 0.644488 0.969429 vt 0.656062 0.963056 vt 0.657729 0.963411 vt 0.657287 0.966243 vt 0.654986 0.295758 vt 0.721666 0.294686 vt 0.717607 0.287928 vt 0.360462 0.966622 vt 0.359727 0.973838 vt 0.354775 0.967859 vt 0.608169 0.291515 vt 0.598562 0.297959 vt 0.601390 0.290856 vt 0.595342 0.297133 vt 0.594052 0.296621 vt 0.596652 0.289965 vt 0.990488 0.499385 vt 0.985616 0.498779 vt 0.986627 0.497086 vt 0.593834 0.301321 vt 0.639612 0.965418 vt 0.640006 0.962784 vt 0.641582 0.963475 vt 0.598643 0.289666 vt 0.596205 0.305473 vt 0.594542 0.306236 vt 0.660808 0.283196 vt 0.661004 0.278408 vt 0.662434 0.279600 vt 0.645328 0.964581 vt 0.838507 0.963470 vt 0.838355 0.966065 vt 0.827012 0.967385 vt 0.652848 0.980615 vt 0.653089 0.976858 vt 0.656946 0.980130 vt 0.652244 0.962346 vt 0.996181 0.120598 vt 0.994574 0.121550 vt 0.993320 0.116724 vt 0.656860 0.284966 vt 0.658381 0.278121 vt 0.955223 0.415990 vt 0.954546 0.414488 vt 0.955223 0.414249 vt 0.727627 0.308024 vt 0.727142 0.309627 vt 0.723614 0.307989 vt 0.727547 0.286443 vt 0.724821 0.290350 vt 0.725279 0.281313 vt 0.602315 0.285359 vt 0.609124 0.286281 vt 0.353263 0.977097 vt 0.786892 0.308287 vt 0.784708 0.312228 vt 0.784494 0.309342 vt 0.653613 0.297508 vt 0.652009 0.309164 vt 0.651145 0.309015 vt 0.651776 0.969749 vt 0.656893 0.970600 vt 0.638157 0.972381 vt 0.642501 0.966701 vt 0.994785 0.110617 vt 0.995882 0.116426 vt 0.657436 0.976541 vt 0.640999 0.972593 vt 0.725721 0.297146 vt 0.727510 0.299678 vt 0.720456 0.299744 vt 0.652308 0.965187 vt 0.833698 0.979009 vt 0.826686 0.973524 vt 0.838317 0.979611 vt 0.036109 0.981569 vt 0.045198 0.987588 vt 0.039705 0.985750 vt 0.649586 0.283718 vt 0.648174 0.969942 vt 0.649362 0.975923 vt 0.647253 0.976905 vt 0.717077 0.302983 vt 0.718771 0.306840 vt 0.715641 0.308037 vt 0.642381 0.976024 vt 0.639215 0.976836 vt 0.824736 0.968404 vt 0.837867 0.976944 vt 0.787716 0.312324 vt 0.348758 0.976883 vt 0.349956 0.970939 vt 0.611225 0.291428 vt 0.609022 0.298910 vt 0.295978 0.977430 vt 0.294683 0.980250 vt 0.295377 0.973852 vt 0.043564 0.983402 vt 0.043945 0.973544 vt 0.046755 0.974968 vt 0.824548 0.972328 vt 0.716251 0.287992 vt 0.721899 0.990629 vt 0.720723 0.991546 vt 0.719981 0.990389 vt 0.662270 0.278585 vt 0.599035 0.306948 vt 0.609556 0.305968 vt 0.605079 0.306894 vt 0.609905 0.308056 vt 0.652515 0.290604 vt 0.728153 0.304959 vt 0.047337 0.977340 vt 0.047186 0.983267 vt 0.946724 0.414675 vt 0.946924 0.415990 vt 0.945972 0.415639 vt 0.989795 0.502925 vt 0.992416 0.112542 vt 0.295985 0.983812 vt 0.361857 0.978087 vt 0.984110 0.503116 vt 0.721347 0.984311 vt 0.722470 0.985188 vt 0.720157 0.986069 vt 0.983197 0.500626 vt 0.983990 0.497988 vt 0.992157 0.117198 vt 0.721032 0.291017 vt 0.839518 0.966069 vt 0.839033 0.974234 vt 0.645372 0.976321 vt 0.034662 0.980599 vt 0.035053 0.976651 vt 0.035720 0.976999 vt 0.717924 0.309570 vt 0.656983 0.297004 vt 0.655778 0.296111 vt 0.650195 0.279136 vt 0.654087 0.279762 vt 0.986940 0.515381 vt 0.985361 0.511899 vt 0.992271 0.515663 vt 0.611354 0.297736 vt 0.611795 0.304702 vt 0.997427 0.111266 vt 0.038708 0.974133 vt 0.649729 0.979589 vt 0.648726 0.981137 vt 0.646698 0.979826 vt 0.718403 0.286060 vt 0.294672 0.984090 vt 0.603094 0.280735 vt 0.598352 0.286055 vt 0.600639 0.281928 vt 0.840270 0.979246 vt 0.641929 0.979613 vt 0.641326 0.980414 vt 0.639070 0.979572 vt 0.609479 0.280799 vt 0.604215 0.278135 vt 0.608187 0.278082 vt 0.660166 0.310325 vt 0.660074 0.306240 vt 0.660990 0.309675 vt 0.660848 0.311558 vt 0.717234 0.297682 vt 0.992743 0.108642 vt 0.995424 0.107982 vt 0.036413 0.975065 vt 0.728079 0.289570 vt 0.596141 0.307566 vt 0.592925 0.298815 vt 0.592764 0.301950 vt 0.730042 0.305909 vt 0.729807 0.308377 vt 0.990838 0.512380 vt 0.658553 0.967520 vt 0.045536 0.985248 vt 0.723294 0.292026 vt 0.997734 0.109395 vt 0.992414 0.107141 vt 0.047886 0.988342 vt 0.716157 0.280072 vt 0.725016 0.288819 vt 0.997391 0.122866 vt 0.996635 0.124071 vt 0.647314 0.280507 vt 0.046190 0.971397 vt 0.651490 0.311447 vt 0.658488 0.298786 vt 0.048052 0.970597 vt 0.728385 0.297540 vt 0.715551 0.281292 vt 0.825613 0.974036 vt 0.649029 0.289447 vt 0.611052 0.285518 vt 0.997788 0.125270 vt 0.994376 0.123397 vt 0.839444 0.974767 vt 0.840384 0.962293 vt 0.716776 0.280147 vt 0.725676 0.995568 vt 0.897718 0.813611 vt 0.888820 0.811735 vt 0.893953 0.811208 vt 0.897043 0.811752 vt 0.947792 0.197834 vt 0.949007 0.200182 vt 0.945922 0.201908 vt 0.956272 0.192038 vt 0.957447 0.203434 vt 0.955559 0.202840 vt 0.954577 0.191733 vt 0.527753 0.948894 vt 0.527860 0.944783 vt 0.529989 0.948518 vt 0.020810 0.945326 vt 0.023229 0.945033 vt 0.022732 0.947403 vt 0.531925 0.946751 vt 0.528382 0.937354 vt 0.895293 0.796262 vt 0.894834 0.799620 vt 0.885356 0.799915 vt 0.219819 0.977176 vt 0.221335 0.978585 vt 0.218537 0.978328 vt 0.914695 0.945452 vt 0.912951 0.944918 vt 0.917297 0.934202 vt 0.541040 0.948994 vt 0.538347 0.947151 vt 0.540981 0.937403 vt 0.956409 0.183298 vt 0.914158 0.953069 vt 0.912479 0.948314 vt 0.973736 0.976280 vt 0.973835 0.973768 vt 0.976148 0.974702 vt 0.893945 0.807173 vt 0.886207 0.807886 vt 0.921898 0.937076 vt 0.918401 0.946666 vt 0.918943 0.936224 vt 0.016353 0.990677 vt 0.018186 0.990081 vt 0.019413 0.992098 vt 0.973117 0.991651 vt 0.973332 0.989924 vt 0.977102 0.990246 vt 0.020082 0.963209 vt 0.020233 0.960268 vt 0.022637 0.962714 vt 0.023766 0.964090 vt 0.027133 0.964302 vt 0.955132 0.178618 vt 0.957811 0.179567 vt 0.019677 0.947762 vt 0.017868 0.947454 vt 0.016608 0.952911 vt 0.019137 0.951719 vt 0.018073 0.953627 vt 0.537491 0.940831 vt 0.526774 0.937448 vt 0.976567 0.992194 vt 0.026286 0.946912 vt 0.026157 0.945078 vt 0.029988 0.945903 vt 0.027248 0.960591 vt 0.030896 0.963029 vt 0.929670 0.931954 vt 0.930261 0.938150 vt 0.050041 0.966508 vt 0.038690 0.966703 vt 0.048224 0.954187 vt 0.048473 0.969350 vt 0.037588 0.969451 vt 0.025628 0.953182 vt 0.030762 0.954064 vt 0.971866 0.984036 vt 0.975616 0.984287 vt 0.031758 0.959224 vt 0.977413 0.978170 vt 0.216079 0.963618 vt 0.206338 0.970311 vt 0.207379 0.966047 vt 0.014222 0.981289 vt 0.016424 0.983253 vt 0.016785 0.988032 vt 0.032642 0.950629 vt 0.880875 0.806257 vt 0.042853 0.953468 vt 0.021336 0.953551 vt 0.022815 0.959474 vt 0.017985 0.958497 vt 0.923063 0.926569 vt 0.929871 0.947248 vt 0.931198 0.956191 vt 0.927228 0.954950 vt 0.047011 0.951068 vt 0.523953 0.660639 vt 0.522761 0.661280 vt 0.523563 0.651690 vt 0.441207 0.987302 vt 0.439284 0.992110 vt 0.437057 0.988800 vt 0.524745 0.652717 vt 0.217860 0.972984 vt 0.207257 0.972599 vt 0.216799 0.975903 vt 0.035724 0.961999 vt 0.040932 0.953027 vt 0.035066 0.967650 vt 0.532623 0.941057 vt 0.958070 0.182532 vt 0.888537 0.796948 vt 0.918269 0.957191 vt 0.925189 0.957072 vt 0.930163 0.958252 vt 0.043402 0.950885 vt 0.022225 0.949896 vt 0.205357 0.970381 vt 0.896830 0.808843 vt 0.981524 0.395511 vt 0.989484 0.394261 vt 0.988478 0.397972 vt 0.952026 0.179090 vt 0.943564 0.186220 vt 0.948007 0.181024 vt 0.524602 0.664498 vt 0.529893 0.962563 vt 0.527991 0.955640 vt 0.531655 0.956455 vt 0.956706 0.211293 vt 0.955065 0.216725 vt 0.953010 0.187656 vt 0.949367 0.192462 vt 0.015296 0.976542 vt 0.017590 0.976757 vt 0.944719 0.211739 vt 0.014783 0.987770 vt 0.437284 0.992974 vt 0.945374 0.216524 vt 0.942715 0.205937 vt 0.943134 0.193528 vt 0.209479 0.964239 vt 0.218185 0.961037 vt 0.535914 0.962821 vt 0.534065 0.959951 vt 0.539623 0.962733 vt 0.220693 0.973108 vt 0.033633 0.963218 vt 0.944995 0.194084 vt 0.951553 0.202104 vt 0.976499 0.987773 vt 0.943879 0.216407 vt 0.985437 0.411218 vt 0.981481 0.407201 vt 0.990481 0.410896 vt 0.931688 0.947918 vt 0.932185 0.952791 vt 0.205316 0.967232 vt 0.532066 0.951007 vt 0.535315 0.942345 vt 0.931605 0.946694 vt 0.436562 0.988362 vt 0.981649 0.401245 vt 0.989013 0.407882 vt 0.032388 0.965219 vt 0.529312 0.935038 vt 0.018269 0.960690 vt 0.523018 0.664696 vt 0.205965 0.965831 vt 0.929832 0.925028 vt 0.925548 0.921772 vt 0.928252 0.921848 vt 0.919998 0.958030 vt 0.541381 0.957255 vt 0.921395 0.925519 vt 0.923801 0.922532 vt 0.525830 0.925076 vt 0.526738 0.926979 vt 0.525948 0.928212 vt 0.956552 0.216346 vt 0.955902 0.219780 vt 0.911986 0.950408 vt 0.020734 0.979351 vt 0.526248 0.961792 vt 0.538048 0.928471 vt 0.017480 0.973871 vt 0.543646 0.959031 vt 0.543089 0.962426 vt 0.939782 0.183171 vt 0.947232 0.205550 vt 0.033379 0.954291 vt 0.536452 0.925344 vt 0.537236 0.925342 vt 0.958176 0.199311 vt 0.958067 0.206422 vt 0.527934 0.963722 vt 0.941957 0.193158 vt 0.982383 0.392514 vt 0.019004 0.987013 vt 0.020294 0.990907 vt 0.018571 0.983570 vt 0.915322 0.957907 vt 0.941724 0.180539 vt 0.942837 0.179393 vt 0.944362 0.179871 vt 0.032881 0.947151 vt 0.525144 0.958677 vt 0.053208 0.970198 vt 0.540354 0.951448 vt 0.439057 0.994231 vt 0.883473 0.809840 vt 0.019787 0.975232 vt 0.219190 0.962552 vt 0.220801 0.963541 vt 0.944712 0.219669 vt 0.438957 0.986274 vt 0.931417 0.931113 vt 0.444289 0.983681 vt 0.881165 0.808292 vt 0.035161 0.970243 vt 0.021627 0.964828 vt 0.221667 0.959817 vt 0.219843 0.960258 vt 0.051984 0.966870 vt 0.753397 0.943147 vt 0.755023 0.943442 vt 0.754656 0.950697 vt 0.744668 0.950050 vt 0.743612 0.942544 vt 0.744630 0.942770 vt 0.997166 0.554452 vt 0.998245 0.552295 vt 0.999227 0.555091 vt 0.993246 0.281358 vt 0.997333 0.279069 vt 0.997260 0.281064 vt 0.994239 0.629711 vt 0.996446 0.626811 vt 0.997604 0.628495 vt 0.749547 0.947884 vt 0.748859 0.944158 vt 0.751843 0.949126 vt 0.460034 0.962374 vt 0.461819 0.953955 vt 0.462375 0.962576 vt 0.572549 0.996293 vt 0.567510 0.994217 vt 0.572446 0.994563 vt 0.572211 0.987719 vt 0.742528 0.937923 vt 0.996705 0.570855 vt 0.999479 0.572374 vt 0.996323 0.573197 vt 0.817220 0.971266 vt 0.810491 0.972005 vt 0.810252 0.965631 vt 0.808991 0.971508 vt 0.808218 0.966391 vt 0.996427 0.544846 vt 0.996484 0.542575 vt 0.998188 0.543470 vt 0.809998 0.959578 vt 0.807559 0.963351 vt 0.808324 0.959171 vt 0.998280 0.638149 vt 0.996481 0.636128 vt 0.998269 0.636217 vt 0.993833 0.268694 vt 0.997467 0.270863 vt 0.993951 0.271134 vt 0.996769 0.268804 vt 0.994603 0.631012 vt 0.452388 0.955627 vt 0.454563 0.949534 vt 0.455528 0.956790 vt 0.755668 0.959236 vt 0.926653 0.218061 vt 0.925236 0.219289 vt 0.925745 0.214753 vt 0.567549 0.987015 vt 0.360759 0.992959 vt 0.352916 0.991064 vt 0.352757 0.988338 vt 0.707099 0.992828 vt 0.709118 0.986132 vt 0.711012 0.983739 vt 0.996520 0.275992 vt 0.992972 0.276223 vt 0.995525 0.565564 vt 0.999624 0.570416 vt 0.817182 0.964223 vt 0.817494 0.957870 vt 0.999627 0.563352 vt 0.998739 0.566128 vt 0.997013 0.631211 vt 0.993441 0.279329 vt 0.718019 0.988507 vt 0.718745 0.993171 vt 0.716238 0.983833 vt 0.747340 0.959750 vt 0.746158 0.957677 vt 0.748008 0.949548 vt 0.753087 0.938729 vt 0.744991 0.937653 vt 0.997792 0.549555 vt 0.998780 0.545349 vt 0.716938 0.993131 vt 0.715601 0.994235 vt 0.709542 0.994163 vt 0.996288 0.562628 vt 0.752858 0.934813 vt 0.712104 0.981471 vt 0.714916 0.983325 vt 0.995496 0.549439 vt 0.819942 0.958915 vt 0.359815 0.986948 vt 0.563765 0.989038 vt 0.523954 0.667206 vt 0.523328 0.674816 vt 0.522840 0.667986 vt 0.463321 0.948833 vt 0.462536 0.948279 vt 0.463032 0.946384 vt 0.709665 0.991790 vt 0.714623 0.981615 vt 0.463319 0.954923 vt 0.741467 0.934237 vt 0.742766 0.933682 vt 0.741439 0.935002 vt 0.460355 0.971759 vt 0.460354 0.967125 vt 0.462956 0.967447 vt 0.995274 0.625606 vt 0.997968 0.622340 vt 0.998843 0.624559 vt 0.711362 0.981620 vt 0.361192 0.995335 vt 0.992964 0.623136 vt 0.819686 0.964394 vt 0.755705 0.950466 vt 0.756297 0.958607 vt 0.994254 0.635792 vt 0.459163 0.957350 vt 0.812399 0.975710 vt 0.923582 0.218110 vt 0.923589 0.215985 vt 0.923786 0.215317 vt 0.352028 0.988962 vt 0.352377 0.991343 vt 0.523999 0.665508 vt 0.452408 0.969170 vt 0.456464 0.971434 vt 0.998702 0.613011 vt 0.997994 0.615176 vt 0.994795 0.613345 vt 0.817171 0.978655 vt 0.745025 0.933597 vt 0.748590 0.935016 vt 0.993332 0.616431 vt 0.819548 0.971841 vt 0.354714 0.993228 vt 0.452994 0.948829 vt 0.718738 0.994862 vt 0.361810 0.985619 vt 0.362860 0.983893 vt 0.362594 0.986768 vt 0.998019 0.626056 vt 0.998595 0.627201 vt 0.999133 0.560793 vt 0.816868 0.981674 vt 0.814318 0.981929 vt 0.815027 0.957860 vt 0.810384 0.957635 vt 0.452032 0.965677 vt 0.755916 0.938195 vt 0.998357 0.573673 vt 0.819476 0.956551 vt 0.454175 0.946637 vt 0.996004 0.553188 vt 0.753677 0.933982 vt 0.813155 0.979611 vt 0.755740 0.934846 vt 0.995578 0.637635 vt 0.454739 0.963182 vt 0.363081 0.995940 vt 0.362521 0.991922 vt 0.449892 0.971985 vt 0.844930 0.583013 vt 0.845317 0.583320 vt 0.844923 0.583938 vt 0.818376 0.978595 vt 0.996485 0.560447 vt 0.452108 0.972468 vt 0.360813 0.984470 vt 0.463134 0.971173 vt 0.995440 0.543483 vt 0.457225 0.958485 vt 0.993096 0.638288 vt 0.810676 0.976610 vt 0.572388 0.985110 vt 0.451632 0.963235 vt 0.746972 0.960497 vt 0.998373 0.542475 vt 0.706904 0.994870 vt 0.995065 0.552046 vt 0.907146 0.965483 vt 0.909160 0.966485 vt 0.902138 0.966555 vt 0.630767 0.287187 vt 0.635312 0.298134 vt 0.633879 0.298496 vt 0.636574 0.289074 vt 0.637384 0.293996 vt 0.851344 0.980978 vt 0.851138 0.978915 vt 0.852688 0.981438 vt 0.852875 0.977340 vt 0.854110 0.981495 vt 0.850241 0.973838 vt 0.848902 0.974223 vt 0.856624 0.981505 vt 0.861639 0.977677 vt 0.860532 0.980849 vt 0.862079 0.980523 vt 0.640509 0.295199 vt 0.643170 0.295884 vt 0.690982 0.293002 vt 0.687427 0.299918 vt 0.689213 0.290795 vt 0.686881 0.293931 vt 0.907339 0.982001 vt 0.901307 0.976232 vt 0.906941 0.974274 vt 0.698788 0.293231 vt 0.698340 0.297399 vt 0.698039 0.289469 vt 0.993454 0.166134 vt 0.990509 0.168456 vt 0.988634 0.167072 vt 0.614265 0.289749 vt 0.613141 0.290522 vt 0.612665 0.285652 vt 0.265887 0.947161 vt 0.267855 0.949139 vt 0.266024 0.950190 vt 0.627989 0.287035 vt 0.620360 0.295624 vt 0.617407 0.288691 vt 0.617665 0.297014 vt 0.616093 0.297357 vt 0.614849 0.281324 vt 0.613171 0.280899 vt 0.632843 0.283063 vt 0.628468 0.279840 vt 0.632357 0.278660 vt 0.849753 0.979029 vt 0.928606 0.811884 vt 0.917676 0.807911 vt 0.928943 0.809443 vt 0.857327 0.963189 vt 0.861296 0.963757 vt 0.857471 0.966937 vt 0.417627 0.895452 vt 0.414542 0.899307 vt 0.415797 0.894454 vt 0.637142 0.284717 vt 0.635042 0.278063 vt 0.634022 0.289109 vt 0.647073 0.279510 vt 0.647030 0.283314 vt 0.644524 0.282627 vt 0.696607 0.279430 vt 0.692439 0.279634 vt 0.696415 0.277817 vt 0.646233 0.298981 vt 0.646483 0.307873 vt 0.627250 0.294550 vt 0.621861 0.301653 vt 0.628360 0.299638 vt 0.770799 0.982731 vt 0.762731 0.981198 vt 0.761560 0.976013 vt 0.922275 0.810831 vt 0.861225 0.973397 vt 0.856134 0.974132 vt 0.264441 0.940056 vt 0.268774 0.945921 vt 0.416008 0.905429 vt 0.417104 0.899634 vt 0.861787 0.967355 vt 0.267483 0.939999 vt 0.695003 0.290361 vt 0.696708 0.287774 vt 0.856678 0.978662 vt 0.922867 0.797309 vt 0.928907 0.795748 vt 0.917271 0.801614 vt 0.644578 0.288902 vt 0.852575 0.973760 vt 0.851677 0.966673 vt 0.853776 0.967700 vt 0.928720 0.798888 vt 0.929926 0.800943 vt 0.686012 0.284920 vt 0.684509 0.280124 vt 0.687491 0.280976 vt 0.268628 0.936626 vt 0.265490 0.935709 vt 0.915321 0.806793 vt 0.902120 0.980940 vt 0.769599 0.974103 vt 0.897449 0.977474 vt 0.896002 0.971150 vt 0.630579 0.294628 vt 0.957727 0.972152 vt 0.957477 0.976927 vt 0.956070 0.967962 vt 0.915133 0.802803 vt 0.686375 0.299924 vt 0.701417 0.984798 vt 0.698723 0.985846 vt 0.700247 0.983893 vt 0.628988 0.277704 vt 0.617631 0.279639 vt 0.623725 0.279249 vt 0.622339 0.307569 vt 0.623257 0.307242 vt 0.624365 0.308510 vt 0.642362 0.289800 vt 0.697190 0.282470 vt 0.688928 0.286703 vt 0.930941 0.813159 vt 0.929383 0.812959 vt 0.642908 0.298576 vt 0.657643 0.313150 vt 0.657086 0.312577 vt 0.657643 0.312187 vt 0.760397 0.976231 vt 0.761757 0.974617 vt 0.992348 0.162722 vt 0.413639 0.903511 vt 0.957823 0.963695 vt 0.909035 0.968784 vt 0.769804 0.985063 vt 0.986612 0.162918 vt 0.699658 0.991669 vt 0.698398 0.989080 vt 0.700498 0.990566 vt 0.637246 0.308586 vt 0.635223 0.304899 vt 0.900729 0.968590 vt 0.706367 0.981174 vt 0.706573 0.981695 vt 0.987085 0.167931 vt 0.985990 0.165441 vt 0.413380 0.898835 vt 0.690676 0.296692 vt 0.930237 0.809793 vt 0.849791 0.967280 vt 0.696959 0.308989 vt 0.696368 0.307746 vt 0.697671 0.302589 vt 0.686741 0.278282 vt 0.639768 0.295639 vt 0.638415 0.297231 vt 0.770883 0.970246 vt 0.639447 0.279219 vt 0.643483 0.278149 vt 0.988886 0.149553 vt 0.993573 0.149310 vt 0.986795 0.154013 vt 0.418650 0.904798 vt 0.854135 0.964057 vt 0.851074 0.963776 vt 0.852796 0.962636 vt 0.688439 0.301752 vt 0.956228 0.963355 vt 0.760531 0.980039 vt 0.930859 0.796018 vt 0.627822 0.308001 vt 0.268202 0.932947 vt 0.265343 0.932951 vt 0.267599 0.932145 vt 0.628950 0.305522 vt 0.637100 0.311612 vt 0.636487 0.309667 vt 0.686850 0.290838 vt 0.695058 0.296970 vt 0.414060 0.907411 vt 0.416594 0.908119 vt 0.773747 0.987288 vt 0.772980 0.981139 vt 0.614766 0.279223 vt 0.612047 0.288884 vt 0.699075 0.284487 vt 0.647231 0.306339 vt 0.698984 0.278985 vt 0.992249 0.153191 vt 0.862710 0.976348 vt 0.771861 0.972145 vt 0.773711 0.969400 vt 0.692957 0.295591 vt 0.418956 0.906676 vt 0.414102 0.909413 vt 0.686924 0.307800 vt 0.695135 0.298724 vt 0.418613 0.893154 vt 0.417858 0.891943 vt 0.618693 0.302355 vt 0.772868 0.974502 vt 0.771884 0.986477 vt 0.646636 0.310326 vt 0.646000 0.308598 vt 0.704898 0.995094 vt 0.915772 0.801540 vt 0.645908 0.288576 vt 0.630399 0.300244 vt 0.879697 0.583087 vt 0.879697 0.584368 vt 0.879348 0.583514 vt 0.415573 0.892628 vt 0.687550 0.308046 vt 0.175499 0.954025 vt 0.171730 0.956095 vt 0.166628 0.955417 vt 0.174838 0.955640 vt 0.944512 0.787551 vt 0.946526 0.791621 vt 0.943305 0.789895 vt 0.935917 0.781752 vt 0.936569 0.792554 vt 0.934768 0.793148 vt 0.937526 0.781445 vt 0.599741 0.972468 vt 0.601655 0.970410 vt 0.602144 0.972820 vt 0.635301 0.945477 vt 0.638771 0.936144 vt 0.639240 0.943648 vt 0.172440 0.971149 vt 0.163213 0.967473 vt 0.172120 0.967739 vt 0.416200 0.961074 vt 0.414926 0.959946 vt 0.417717 0.959695 vt 0.624220 0.947141 vt 0.625555 0.935304 vt 0.625667 0.947399 vt 0.628635 0.945696 vt 0.935629 0.773011 vt 0.666115 0.936002 vt 0.664120 0.933685 vt 0.665729 0.928381 vt 0.364902 0.960753 vt 0.367312 0.962371 vt 0.365000 0.963277 vt 0.163852 0.959199 vt 0.171552 0.960130 vt 0.672999 0.944249 vt 0.670029 0.945167 vt 0.669811 0.934706 vt 0.598622 0.958389 vt 0.597991 0.955001 vt 0.600158 0.954938 vt 0.934387 0.769283 vt 0.936979 0.768331 vt 0.598616 0.969995 vt 0.596802 0.970324 vt 0.595522 0.964922 vt 0.596990 0.964190 vt 0.598054 0.966101 vt 0.629277 0.939397 vt 0.640238 0.936564 vt 0.368263 0.946774 vt 0.364339 0.945654 vt 0.367728 0.944819 vt 0.605967 0.953844 vt 0.609739 0.955025 vt 0.606109 0.957405 vt 0.681591 0.942980 vt 0.680852 0.949205 vt 0.763528 0.965273 vt 0.765724 0.952743 vt 0.775135 0.965468 vt 0.765126 0.968071 vt 0.776260 0.968216 vt 0.609575 0.964138 vt 0.604465 0.964935 vt 0.363029 0.952991 vt 0.366776 0.952792 vt 0.610589 0.958886 vt 0.368574 0.958914 vt 0.413919 0.973547 vt 0.403567 0.971455 vt 0.402512 0.967116 vt 0.996602 0.776548 vt 0.993123 0.782415 vt 0.994549 0.777833 vt 0.604949 0.969643 vt 0.609488 0.968279 vt 0.158463 0.960657 vt 0.771204 0.952224 vt 0.600235 0.964334 vt 0.601733 0.958315 vt 0.364417 0.948452 vt 0.674098 0.954745 vt 0.668630 0.947110 vt 0.681596 0.933871 vt 0.678938 0.926206 vt 0.683302 0.924888 vt 0.766825 0.949964 vt 0.793654 0.971912 vt 0.793526 0.981210 vt 0.792417 0.971215 vt 0.625768 0.960095 vt 0.630567 0.961416 vt 0.627120 0.962197 vt 0.912107 0.994013 vt 0.906431 0.990034 vt 0.909086 0.987134 vt 0.794612 0.979841 vt 0.414209 0.965150 vt 0.413150 0.962225 vt 0.403460 0.964932 vt 0.948808 0.775932 vt 0.944214 0.770811 vt 0.950704 0.770529 vt 0.776967 0.959060 vt 0.778707 0.966419 vt 0.772837 0.951504 vt 0.634457 0.939744 vt 0.612265 0.968072 vt 0.934163 0.770508 vt 0.165725 0.970249 vt 0.670222 0.923986 vt 0.676906 0.924128 vt 0.682077 0.922827 vt 0.629552 0.937436 vt 0.628189 0.926991 vt 0.770649 0.949641 vt 0.601004 0.967918 vt 0.401528 0.967029 vt 0.174497 0.958044 vt 0.984560 0.072938 vt 0.989134 0.068354 vt 0.990321 0.071985 vt 0.940098 0.768802 vt 0.794510 0.967305 vt 0.982634 0.068578 vt 0.636894 0.961394 vt 0.635517 0.955195 vt 0.639145 0.954470 vt 0.937648 0.805910 vt 0.935692 0.801019 vt 0.942849 0.782175 vt 0.938994 0.777366 vt 0.996030 0.771182 vt 0.993754 0.771273 vt 0.948085 0.801455 vt 0.906609 0.986960 vt 0.605072 0.972657 vt 0.947777 0.806312 vt 0.950000 0.795090 vt 0.949516 0.783163 vt 0.596944 0.957749 vt 0.414856 0.976632 vt 0.406076 0.973859 vt 0.636352 0.947530 vt 0.638604 0.947191 vt 0.632855 0.958620 vt 0.417036 0.965105 vt 0.612453 0.954922 vt 0.947419 0.783796 vt 0.992809 0.784921 vt 0.990508 0.786160 vt 0.991331 0.782319 vt 0.940722 0.791816 vt 0.949326 0.769410 vt 0.368149 0.949181 vt 0.949202 0.806716 vt 0.985393 0.054411 vt 0.990895 0.054376 vt 0.981525 0.059048 vt 0.683705 0.934043 vt 0.684067 0.926955 vt 0.981733 0.072327 vt 0.994746 0.783274 vt 0.401483 0.970175 vt 0.635195 0.949733 vt 0.623844 0.961803 vt 0.631652 0.940958 vt 0.683362 0.934374 vt 0.905881 0.990415 vt 0.989154 0.058397 vt 0.981562 0.063807 vt 0.610303 0.953052 vt 0.637721 0.933796 vt 0.792967 0.966919 vt 0.996839 0.786036 vt 0.417172 0.974741 vt 0.402143 0.971630 vt 0.626312 0.950121 vt 0.624009 0.948634 vt 0.681179 0.955852 vt 0.679511 0.959321 vt 0.676674 0.959488 vt 0.625326 0.955721 vt 0.671819 0.954226 vt 0.675190 0.958983 vt 0.908063 0.993129 vt 0.906730 0.992567 vt 0.936933 0.809501 vt 0.936538 0.806929 vt 0.622923 0.956162 vt 0.952569 0.776918 vt 0.953338 0.772140 vt 0.991042 0.773414 vt 0.640551 0.960650 vt 0.994030 0.768374 vt 0.622234 0.960271 vt 0.761624 0.964945 vt 0.982950 0.495239 vt 0.981963 0.494235 vt 0.983080 0.493086 vt 0.403580 0.972897 vt 0.683763 0.943421 vt 0.610394 0.971876 vt 0.682927 0.950164 vt 0.638738 0.962531 vt 0.951222 0.782139 vt 0.992390 0.777996 vt 0.666533 0.924097 vt 0.602736 0.954506 vt 0.997496 0.767975 vt 0.760466 0.969053 vt 0.640753 0.926603 vt 0.909034 0.985131 vt 0.159155 0.958327 vt 0.991650 0.769598 vt 0.948579 0.809374 vt 0.913405 0.997483 vt 0.778721 0.969008 vt 0.991691 0.785903 vt 0.418055 0.978550 vt 0.415645 0.978029 vt 0.639908 0.925600 vt 0.367869 0.966646 vt 0.366951 0.963602 vt 0.368767 0.964296 vt 0.096639 0.986434 vt 0.095033 0.984727 vt 0.097374 0.984482 vt 0.941962 0.955073 vt 0.938653 0.956267 vt 0.938980 0.956131 vt 0.944912 0.954329 vt 0.944810 0.958770 vt 0.367767 0.976216 vt 0.364692 0.976738 vt 0.364642 0.974683 vt 0.450407 0.989592 vt 0.454013 0.988578 vt 0.452455 0.994282 vt 0.744927 0.975427 vt 0.744926 0.971553 vt 0.746324 0.972482 vt 0.570157 0.979462 vt 0.571640 0.981389 vt 0.568412 0.980587 vt 0.572593 0.979611 vt 0.572379 0.976007 vt 0.562014 0.981910 vt 0.560006 0.983542 vt 0.560416 0.981737 vt 0.571321 0.968574 vt 0.569115 0.968553 vt 0.934436 0.958894 vt 0.934169 0.954879 vt 0.936304 0.955502 vt 0.922945 0.306237 vt 0.925632 0.305983 vt 0.922119 0.308241 vt 0.092523 0.989834 vt 0.093509 0.986305 vt 0.095190 0.987314 vt 0.943944 0.962763 vt 0.395123 0.951136 vt 0.398109 0.950032 vt 0.399414 0.951891 vt 0.481207 0.959916 vt 0.481207 0.962280 vt 0.480815 0.961563 vt 0.935890 0.948651 vt 0.389187 0.952329 vt 0.391414 0.956545 vt 0.390267 0.962842 vt 0.939500 0.953855 vt 0.938864 0.952912 vt 0.897131 0.950381 vt 0.897131 0.952074 vt 0.896449 0.952237 vt 0.367953 0.973900 vt 0.363615 0.969106 vt 0.949800 0.591573 vt 0.948343 0.587362 vt 0.951465 0.587284 vt 0.095087 0.989715 vt 0.093555 0.995596 vt 0.896546 0.950540 vt 0.367066 0.969175 vt 0.925417 0.311314 vt 0.925390 0.307828 vt 0.295484 0.554333 vt 0.296286 0.551639 vt 0.296286 0.555872 vt 0.369004 0.973421 vt 0.364431 0.966044 vt 0.908661 0.216917 vt 0.913868 0.214383 vt 0.914474 0.217836 vt 0.934986 0.967137 vt 0.942043 0.968597 vt 0.935430 0.972495 vt 0.757628 0.995333 vt 0.757563 0.991492 vt 0.758810 0.994143 vt 0.564817 0.981890 vt 0.562519 0.983429 vt 0.949411 0.585983 vt 0.083420 0.992413 vt 0.085280 0.990673 vt 0.086874 0.996939 vt 0.667967 0.310741 vt 0.666839 0.311978 vt 0.663002 0.308728 vt 0.567807 0.977286 vt 0.564022 0.979887 vt 0.747013 0.968574 vt 0.754082 0.971145 vt 0.751286 0.976079 vt 0.672236 0.310765 vt 0.670661 0.310488 vt 0.671429 0.306606 vt 0.091282 0.990343 vt 0.562355 0.970370 vt 0.562829 0.966339 vt 0.562575 0.973882 vt 0.943922 0.972521 vt 0.944960 0.969288 vt 0.945607 0.971964 vt 0.561334 0.979903 vt 0.392320 0.952308 vt 0.397565 0.954729 vt 0.847957 0.308219 vt 0.848357 0.308052 vt 0.848357 0.308861 vt 0.082090 0.992357 vt 0.082551 0.993771 vt 0.082419 0.994293 vt 0.745088 0.968964 vt 0.368217 0.969473 vt 0.669001 0.305725 vt 0.088399 0.993761 vt 0.089315 0.993043 vt 0.090673 0.995356 vt 0.091920 0.994631 vt 0.747422 0.962276 vt 0.744220 0.963150 vt 0.745469 0.960798 vt 0.391115 0.949937 vt 0.941206 0.962604 vt 0.392608 0.962838 vt 0.390325 0.968131 vt 0.089244 0.995887 vt 0.393767 0.969227 vt 0.391231 0.972483 vt 0.389899 0.972992 vt 0.755346 0.982046 vt 0.749248 0.979992 vt 0.755098 0.979902 vt 0.934721 0.947812 vt 0.087335 0.990550 vt 0.088212 0.986327 vt 0.755888 0.972420 vt 0.755300 0.975862 vt 0.671582 0.312187 vt 0.398314 0.971216 vt 0.398571 0.963509 vt 0.399213 0.973247 vt 0.449206 0.991584 vt 0.990862 0.541108 vt 0.989791 0.541820 vt 0.987545 0.539896 vt 0.758932 0.991108 vt 0.667683 0.303148 vt 0.667799 0.307663 vt 0.295716 0.740718 vt 0.295716 0.746329 vt 0.295518 0.743667 vt 0.743735 0.960905 vt 0.747103 0.978339 vt 0.988633 0.536981 vt 0.990271 0.537324 vt 0.990162 0.539211 vt 0.567337 0.962994 vt 0.756408 0.966293 vt 0.397471 0.974998 vt 0.396040 0.971946 vt 0.661661 0.311976 vt 0.661661 0.313172 vt 0.661480 0.312604 vt 0.399741 0.955601 vt 0.938658 0.971539 vt 0.941933 0.972504 vt 0.753812 0.962284 vt 0.945344 0.963010 vt 0.096253 0.994259 vt 0.089906 0.984344 vt 0.090415 0.984767 vt 0.569556 0.982043 vt 0.387327 0.952392 vt 0.387951 0.950712 vt 0.364475 0.977595 vt 0.663921 0.305035 vt 0.391240 0.974631 vt 0.909365 0.213062 vt 0.912801 0.213078 vt 0.922227 0.311632 vt 0.394923 0.970338 vt 0.754237 0.983637 vt 0.751102 0.983286 vt 0.751632 0.982640 vt 0.966254 0.689018 vt 0.968116 0.689375 vt 0.965622 0.690814 vt 0.083168 0.994706 vt 0.083718 0.996939 vt 0.290828 0.939307 vt 0.290828 0.942403 vt 0.290394 0.939921 vt 0.560016 0.980988 vt 0.015584 0.965182 vt 0.014567 0.962520 vt 0.015736 0.963779 vt 0.915567 0.219156 vt 0.915931 0.216386 vt 0.933032 0.971559 vt 0.933184 0.968498 vt 0.398387 0.975375 vt 0.397133 0.976708 vt 0.921065 0.309418 vt 0.937663 0.948932 vt 0.569909 0.962057 vt 0.097114 0.995764 vt 0.095516 0.996856 vt 0.454071 0.997432 vt 0.450332 0.996302 vt 0.364536 0.963826 vt 0.561713 0.967424 vt 0.089438 0.988904 vt 0.945245 0.949212 vt 0.388839 0.972889 vt 0.396493 0.974252 vt 0.935558 0.962843 vt 0.666579 0.302513 vt 0.390038 0.975097 vt 0.389114 0.977282 vt 0.399888 0.963874 vt 0.934156 0.962311 vt 0.016063 0.958121 vt 0.755999 0.980955 vt 0.946082 0.950830 vt 0.091152 0.984113 vt 0.944564 0.949475 vt 0.941191 0.953882 vt 0.086127 0.998032 vt 0.912868 0.220594 vt 0.908461 0.219375 vt 0.998241 0.074115 vt 0.998902 0.078026 vt 0.998263 0.076731 vt 0.665770 0.302363 vt 0.933431 0.966945 vt 0.934177 0.962608 vt 0.969555 0.695146 vt 0.966576 0.693521 vt 0.747118 0.980260 vt 0.748698 0.982338 vt 0.908221 0.214431 vt 0.757982 0.989931 vt 0.671875 0.303418 vt 0.668181 0.303003 vt 0.396122 0.978279 vt 0.945704 0.947275 vt 0.759920 0.998289 vt 0.757410 0.990291 vt 0.943781 0.945074 vt 0.968933 0.687627 vt 0.960382 0.370794 vt 0.959758 0.370794 vt 0.960322 0.369170 vt 0.703656 0.294277 vt 0.704182 0.290030 vt 0.706924 0.290289 vt 0.683164 0.963689 vt 0.682631 0.960382 vt 0.683853 0.960662 vt 0.262581 0.990900 vt 0.259436 0.985991 vt 0.261273 0.986098 vt 0.523886 0.969812 vt 0.523431 0.967547 vt 0.524774 0.967260 vt 0.901000 0.797918 vt 0.898770 0.799041 vt 0.899527 0.795383 vt 0.756697 0.295450 vt 0.757844 0.291276 vt 0.757995 0.293065 vt 0.753728 0.294436 vt 0.711166 0.288608 vt 0.711939 0.292029 vt 0.708877 0.291416 vt 0.712307 0.288465 vt 0.713180 0.292633 vt 0.751471 0.292859 vt 0.751859 0.296664 vt 0.749778 0.299187 vt 0.747970 0.294007 vt 0.746570 0.299039 vt 0.989839 0.094229 vt 0.991979 0.093959 vt 0.991838 0.100857 vt 0.701959 0.287562 vt 0.701745 0.294329 vt 0.750464 0.284292 vt 0.748610 0.289478 vt 0.748049 0.281599 vt 0.907699 0.809433 vt 0.905455 0.809235 vt 0.902124 0.807447 vt 0.908338 0.805448 vt 0.912756 0.809218 vt 0.900281 0.803107 vt 0.291556 0.917725 vt 0.294475 0.918258 vt 0.291496 0.919311 vt 0.680099 0.961692 vt 0.679947 0.960132 vt 0.749172 0.278745 vt 0.747443 0.279479 vt 0.295387 0.905279 vt 0.292542 0.905798 vt 0.292135 0.902475 vt 0.522574 0.982765 vt 0.524157 0.980541 vt 0.524087 0.982880 vt 0.258614 0.975641 vt 0.261199 0.977133 vt 0.255363 0.975822 vt 0.680932 0.974236 vt 0.683332 0.976270 vt 0.680867 0.977053 vt 0.263419 0.992995 vt 0.260851 0.990959 vt 0.282162 0.984861 vt 0.288351 0.983340 vt 0.288134 0.987414 vt 0.294537 0.901979 vt 0.759734 0.300809 vt 0.760130 0.297672 vt 0.968357 0.220614 vt 0.969811 0.219417 vt 0.969811 0.222754 vt 0.760171 0.303825 vt 0.757760 0.298138 vt 0.993127 0.871129 vt 0.993832 0.871843 vt 0.990696 0.870925 vt 0.262156 0.979681 vt 0.293978 0.911560 vt 0.290797 0.912176 vt 0.683622 0.973098 vt 0.679211 0.967333 vt 0.222453 0.978794 vt 0.225854 0.972548 vt 0.230402 0.974522 vt 0.682155 0.967544 vt 0.521119 0.970011 vt 0.521019 0.974352 vt 0.519283 0.975061 vt 0.295568 0.915200 vt 0.758838 0.287321 vt 0.750683 0.289187 vt 0.758721 0.283505 vt 0.752037 0.302691 vt 0.263687 0.980622 vt 0.262727 0.986005 vt 0.989204 0.872844 vt 0.285175 0.981627 vt 0.227421 0.968727 vt 0.955725 0.981726 vt 0.955356 0.986994 vt 0.954575 0.982300 vt 0.224210 0.984605 vt 0.227219 0.985487 vt 0.224500 0.985363 vt 0.902372 0.802511 vt 0.900818 0.806566 vt 0.226959 0.982817 vt 0.223327 0.982239 vt 0.988390 0.878250 vt 0.993109 0.875862 vt 0.986103 0.094034 vt 0.987461 0.098230 vt 0.712619 0.294930 vt 0.151267 0.991933 vt 0.146848 0.992487 vt 0.148282 0.989538 vt 0.907041 0.797072 vt 0.288793 0.988826 vt 0.285107 0.987618 vt 0.787671 0.997802 vt 0.786228 0.996343 vt 0.787720 0.994485 vt 0.954967 0.988648 vt 0.263747 0.989442 vt 0.912357 0.805980 vt 0.712533 0.283743 vt 0.713158 0.285277 vt 0.963368 0.219821 vt 0.961990 0.221351 vt 0.962078 0.219680 vt 0.995529 0.094038 vt 0.995332 0.103048 vt 0.953185 0.990555 vt 0.955410 0.993374 vt 0.750673 0.304518 vt 0.714061 0.307272 vt 0.712927 0.299716 vt 0.714559 0.304730 vt 0.424533 0.992806 vt 0.425480 0.996846 vt 0.423345 0.994527 vt 0.153371 0.988341 vt 0.280277 0.984317 vt 0.280885 0.980733 vt 0.944715 0.987963 vt 0.945145 0.986184 vt 0.946027 0.986688 vt 0.293367 0.975453 vt 0.289265 0.977084 vt 0.289274 0.974544 vt 0.474603 0.997503 vt 0.472556 0.993980 vt 0.473148 0.993280 vt 0.991901 0.103324 vt 0.225900 0.969626 vt 0.713801 0.295570 vt 0.947245 0.990125 vt 0.944968 0.990261 vt 0.293548 0.989262 vt 0.476878 0.997785 vt 0.477023 0.993345 vt 0.153864 0.991227 vt 0.285280 0.978439 vt 0.752775 0.295585 vt 0.151256 0.996393 vt 0.146410 0.994974 vt 0.153418 0.984495 vt 0.152717 0.983969 vt 0.914572 0.803231 vt 0.913681 0.807676 vt 0.955321 0.995657 vt 0.947940 0.994321 vt 0.951469 0.993689 vt 0.477390 0.990491 vt 0.754732 0.279455 vt 0.758900 0.278891 vt 0.913576 0.799285 vt 0.913848 0.812415 vt 0.282426 0.986523 vt 0.969294 0.996312 vt 0.970976 0.991878 vt 0.970405 0.996030 vt 0.699246 0.284989 vt 0.701098 0.282917 vt 0.701710 0.285447 vt 0.521071 0.979991 vt 0.951010 0.988633 vt 0.952224 0.986329 vt 0.995646 0.104723 vt 0.474153 0.997472 vt 0.262985 0.976114 vt 0.263889 0.977506 vt 0.901064 0.795525 vt 0.293011 0.984748 vt 0.292814 0.981524 vt 0.293375 0.981894 vt 0.259676 0.979409 vt 0.949725 0.982744 vt 0.911620 0.797400 vt 0.751479 0.278658 vt 0.258367 0.982193 vt 0.710333 0.294542 vt 0.758131 0.277742 vt 0.986213 0.090741 vt 0.761435 0.279303 vt 0.760751 0.283685 vt 0.704282 0.279964 vt 0.705975 0.278041 vt 0.705768 0.280354 vt 0.704261 0.287379 vt 0.703569 0.284456 vt 0.711495 0.306604 vt 0.709927 0.299464 vt 0.520806 0.982532 vt 0.519427 0.981893 vt 0.701742 0.299246 vt 0.702833 0.304704 vt 0.701221 0.307324 vt 0.295281 0.911881 vt 0.989591 0.871152 vt 0.995252 0.874641 vt 0.994578 0.882686 vt 0.713022 0.308465 vt 0.710872 0.308460 vt 0.293024 0.977788 vt 0.523569 0.975067 vt 0.231876 0.972785 vt 0.153963 0.996743 vt 0.758272 0.288399 vt 0.521902 0.968213 vt 0.949556 0.991666 vt 0.706904 0.307707 vt 0.703398 0.308475 vt 0.702964 0.307682 vt 0.760127 0.288084 vt 0.989551 0.882463 vt 0.992877 0.883552 vt 0.986552 0.880720 vt 0.946949 0.991917 vt 0.473369 0.990824 vt 0.281265 0.979404 vt 0.283730 0.978097 vt 0.296319 0.580027 vt 0.296319 0.583608 vt 0.295760 0.580130 vt 0.987047 0.874842 vt 0.996509 0.881687 vt 0.759955 0.277751 vt 0.713805 0.280123 vt 0.714655 0.281003 vt 0.761402 0.303952 vt 0.990026 0.091037 vt 0.947597 0.579688 vt 0.948012 0.578383 vt 0.948012 0.581409 vt 0.761000 0.306354 vt 0.759916 0.937637 vt 0.760062 0.938979 vt 0.760035 0.940292 vt 0.985263 0.092522 vt 0.987493 0.100884 vt 0.706392 0.278424 vt 0.996748 0.878367 vt 0.752335 0.307196 vt 0.751184 0.306956 vt 0.475926 0.987354 vt 0.969902 0.998321 vt 0.993479 0.091484 vt 0.952686 0.981653 vt 0.148144 0.986004 vt 0.290955 0.403453 vt 0.291034 0.399533 vt 0.291480 0.404993 vt 0.714580 0.278858 vt 0.538716 0.968841 vt 0.536714 0.969072 vt 0.538297 0.965387 vt 0.703213 0.941325 vt 0.702655 0.944916 vt 0.702483 0.942673 vt 0.722235 0.942819 vt 0.724977 0.943259 vt 0.727512 0.943510 vt 0.971901 0.363806 vt 0.973277 0.366591 vt 0.970665 0.365904 vt 0.992616 0.395211 vt 0.992759 0.393364 vt 0.995983 0.392355 vt 0.080584 0.934802 vt 0.075677 0.936624 vt 0.075155 0.935613 vt 0.678785 0.984965 vt 0.680339 0.982463 vt 0.680147 0.984653 vt 0.538469 0.979194 vt 0.540065 0.973346 vt 0.541004 0.979468 vt 0.973379 0.099005 vt 0.977517 0.104210 vt 0.973055 0.104250 vt 0.706267 0.950472 vt 0.704707 0.947898 vt 0.706007 0.946675 vt 0.068129 0.955452 vt 0.066530 0.953497 vt 0.069211 0.953942 vt 0.734108 0.951406 vt 0.735414 0.950920 vt 0.736132 0.957967 vt 0.521223 0.946917 vt 0.521491 0.945781 vt 0.521497 0.947501 vt 0.995942 0.407668 vt 0.992867 0.408916 vt 0.996538 0.405343 vt 0.067620 0.935611 vt 0.065630 0.935828 vt 0.067672 0.934737 vt 0.070192 0.935867 vt 0.681810 0.996344 vt 0.679748 0.996884 vt 0.682145 0.993957 vt 0.736845 0.954953 vt 0.978999 0.099524 vt 0.980620 0.103894 vt 0.981823 0.099146 vt 0.983803 0.104304 vt 0.066360 0.937812 vt 0.069424 0.937415 vt 0.067938 0.945101 vt 0.525960 0.965506 vt 0.525134 0.963962 vt 0.527274 0.965337 vt 0.535970 0.973297 vt 0.707578 0.928279 vt 0.705541 0.932009 vt 0.705313 0.928447 vt 0.681511 0.996944 vt 0.704673 0.927929 vt 0.706089 0.927285 vt 0.737287 0.961270 vt 0.736192 0.962604 vt 0.068495 0.949006 vt 0.070841 0.948572 vt 0.703135 0.940651 vt 0.704679 0.937404 vt 0.706665 0.935295 vt 0.533991 0.979131 vt 0.527276 0.974062 vt 0.539005 0.980850 vt 0.578855 0.926399 vt 0.582120 0.924710 vt 0.582692 0.926061 vt 0.716669 0.958034 vt 0.711018 0.947992 vt 0.712778 0.947452 vt 0.972406 0.092424 vt 0.527280 0.971212 vt 0.580855 0.933075 vt 0.577307 0.934878 vt 0.579320 0.929576 vt 0.994981 0.399162 vt 0.992836 0.406104 vt 0.991262 0.400458 vt 0.072642 0.943779 vt 0.077160 0.939500 vt 0.077958 0.943226 vt 0.582196 0.928501 vt 0.896078 0.992806 vt 0.897356 0.986911 vt 0.904198 0.993683 vt 0.726630 0.946586 vt 0.731788 0.947916 vt 0.724537 0.946950 vt 0.679520 0.989285 vt 0.677161 0.989741 vt 0.582796 0.936222 vt 0.578425 0.940387 vt 0.051006 0.981888 vt 0.053276 0.976797 vt 0.051995 0.982283 vt 0.979055 0.091761 vt 0.979937 0.352750 vt 0.982908 0.354335 vt 0.983539 0.360442 vt 0.869097 0.987601 vt 0.870678 0.986655 vt 0.867794 0.990034 vt 0.628987 0.964657 vt 0.625835 0.978325 vt 0.623048 0.978483 vt 0.728956 0.961099 vt 0.725530 0.962490 vt 0.725514 0.959914 vt 0.973520 0.090376 vt 0.532065 0.966948 vt 0.904689 0.985202 vt 0.981125 0.364876 vt 0.977992 0.367025 vt 0.680971 0.989090 vt 0.077943 0.932976 vt 0.074911 0.934554 vt 0.632887 0.963811 vt 0.634547 0.977696 vt 0.983731 0.352285 vt 0.080787 0.946670 vt 0.078321 0.951069 vt 0.734352 0.936097 vt 0.731348 0.941438 vt 0.993540 0.307953 vt 0.995865 0.312339 vt 0.993059 0.310984 vt 0.727042 0.931922 vt 0.721761 0.940599 vt 0.727648 0.927473 vt 0.715056 0.947663 vt 0.717594 0.956945 vt 0.629337 0.963383 vt 0.632004 0.962883 vt 0.050844 0.973625 vt 0.053209 0.971268 vt 0.713842 0.935434 vt 0.716408 0.935912 vt 0.714276 0.939796 vt 0.076415 0.937690 vt 0.996253 0.398976 vt 0.997453 0.403703 vt 0.637316 0.972108 vt 0.637961 0.977745 vt 0.636798 0.976239 vt 0.527120 0.980137 vt 0.984594 0.352892 vt 0.985366 0.366241 vt 0.729252 0.944361 vt 0.627914 0.980629 vt 0.066968 0.955519 vt 0.733464 0.962121 vt 0.732227 0.956359 vt 0.074510 0.953749 vt 0.736524 0.929590 vt 0.737058 0.931083 vt 0.996667 0.394807 vt 0.997322 0.391775 vt 0.868741 0.991293 vt 0.868108 0.997007 vt 0.865952 0.993444 vt 0.898819 0.994473 vt 0.992520 0.392910 vt 0.714885 0.927435 vt 0.711498 0.929275 vt 0.711640 0.928536 vt 0.678999 0.994847 vt 0.726391 0.955267 vt 0.080864 0.938265 vt 0.708802 0.946811 vt 0.080547 0.949561 vt 0.063596 0.946063 vt 0.066211 0.948339 vt 0.525493 0.978546 vt 0.677538 0.996142 vt 0.696576 0.993881 vt 0.697939 0.998040 vt 0.694791 0.997996 vt 0.526120 0.970048 vt 0.525610 0.972349 vt 0.981595 0.351453 vt 0.995132 0.391726 vt 0.980826 0.351397 vt 0.866184 0.996823 vt 0.866782 0.997496 vt 0.865486 0.994778 vt 0.992659 0.308109 vt 0.736772 0.933592 vt 0.733628 0.940099 vt 0.081394 0.932831 vt 0.984568 0.101390 vt 0.981097 0.092938 vt 0.583002 0.939621 vt 0.581277 0.941246 vt 0.578540 0.942077 vt 0.708247 0.961981 vt 0.708815 0.958650 vt 0.709143 0.963266 vt 0.064852 0.941893 vt 0.064857 0.939178 vt 0.535325 0.966881 vt 0.723112 0.941476 vt 0.756758 0.861296 vt 0.756409 0.859685 vt 0.756758 0.858045 vt 0.709172 0.941634 vt 0.582290 0.933186 vt 0.728027 0.928651 vt 0.970389 0.363342 vt 0.717686 0.928546 vt 0.676174 0.989841 vt 0.676834 0.987369 vt 0.682446 0.982469 vt 0.681371 0.986050 vt 0.718014 0.961249 vt 0.627251 0.965701 vt 0.081354 0.942074 vt 0.972138 0.360052 vt 0.970814 0.361234 vt 0.050154 0.986014 vt 0.965352 0.637675 vt 0.965454 0.639771 vt 0.964318 0.639792 vt 0.697715 0.999273 vt 0.983789 0.366285 vt 0.712634 0.940977 vt 0.714472 0.940832 vt 0.713570 0.944364 vt 0.707620 0.948765 vt 0.994896 0.304603 vt 0.625771 0.969239 vt 0.970800 0.098765 vt 0.632235 0.980369 vt 0.730541 0.945566 vt 0.734265 0.948647 vt 0.705521 0.951650 vt 0.995904 0.305619 vt 0.707405 0.943872 vt 0.051430 0.971028 vt 0.708369 0.927036 vt 0.697663 0.987861 vt 0.694350 0.990974 vt 0.694222 0.988110 vt 0.904983 0.996338 vt 0.725010 0.951727 vt 0.622067 0.981026 vt 0.051828 0.986309 vt 0.904943 0.983038 vt 0.064577 0.937576 vt 0.637184 0.980903 vt 0.521252 0.950286 vt 0.521497 0.949244 vt 0.521497 0.951128 vt 0.063574 0.949400 vt 0.682096 0.981277 vt 0.635537 0.967048 vt 0.970632 0.104862 vt 0.996795 0.432690 vt 0.998536 0.429672 vt 0.998610 0.435939 vt 0.993438 0.311795 vt 0.970157 0.102302 vt 0.367949 0.988415 vt 0.368576 0.991233 vt 0.367417 0.991262 vt 0.997046 0.643495 vt 0.993991 0.640418 vt 0.996585 0.640864 vt 0.507698 0.988194 vt 0.511319 0.987720 vt 0.510625 0.989991 vt 0.004563 0.954962 vt 0.007016 0.956217 vt 0.007637 0.956641 vt 0.002462 0.963031 vt 0.001382 0.954478 vt 0.001645 0.959293 vt 0.367435 0.978750 vt 0.364462 0.980607 vt 0.364393 0.978509 vt 0.520345 0.996664 vt 0.522532 0.994324 vt 0.522601 0.996069 vt 0.509045 0.996757 vt 0.511541 0.997265 vt 0.883019 0.979244 vt 0.884746 0.980440 vt 0.881649 0.981116 vt 0.881070 0.979228 vt 0.881510 0.975097 vt 0.891274 0.982041 vt 0.892902 0.981899 vt 0.893375 0.983703 vt 0.883006 0.968430 vt 0.885222 0.968506 vt 0.011694 0.963039 vt 0.010029 0.955862 vt 0.012393 0.954538 vt 0.116828 0.989535 vt 0.117611 0.987578 vt 0.117755 0.989974 vt 0.786711 0.976640 vt 0.791180 0.976474 vt 0.789893 0.977801 vt 0.789066 0.952803 vt 0.790187 0.952563 vt 0.790026 0.957062 vt 0.783129 0.955008 vt 0.785055 0.957412 vt 0.785552 0.958531 vt 0.010901 0.949077 vt 0.780193 0.974439 vt 0.781642 0.964778 vt 0.782748 0.971152 vt 0.346534 0.983926 vt 0.348213 0.985481 vt 0.344127 0.989532 vt 0.904370 0.521895 vt 0.902773 0.522297 vt 0.904107 0.520119 vt 0.996022 0.646505 vt 0.994988 0.650795 vt 0.993312 0.645773 vt 0.367721 0.981084 vt 0.363621 0.986185 vt 0.896420 0.305748 vt 0.899225 0.310550 vt 0.894298 0.309832 vt 0.523755 0.989705 vt 0.521000 0.989526 vt 0.997107 0.650658 vt 0.367017 0.985824 vt 0.993916 0.642314 vt 0.295484 0.557442 vt 0.296324 0.555872 vt 0.296324 0.560056 vt 0.368762 0.981435 vt 0.364585 0.989297 vt 0.898756 0.217039 vt 0.892929 0.217640 vt 0.893846 0.213826 vt 0.011244 0.967502 vt 0.010816 0.972387 vt 0.003866 0.969025 vt 0.071938 0.992794 vt 0.073123 0.994087 vt 0.071893 0.996702 vt 0.888669 0.982006 vt 0.890805 0.983555 vt 0.894657 0.311672 vt 0.346060 0.991177 vt 0.899966 0.522089 vt 0.895125 0.524430 vt 0.898906 0.520942 vt 0.885607 0.977187 vt 0.889307 0.979935 vt 0.121070 0.982178 vt 0.127579 0.975743 vt 0.127499 0.980653 vt 0.119833 0.978729 vt 0.903630 0.526227 vt 0.892606 0.971395 vt 0.891532 0.974072 vt 0.891850 0.965803 vt 0.002076 0.972884 vt 0.000297 0.972119 vt 0.000985 0.969832 vt 0.892066 0.980069 vt 0.789123 0.973068 vt 0.782510 0.976095 vt 0.519888 0.986693 vt 0.342754 0.989293 vt 0.343039 0.987732 vt 0.343191 0.988248 vt 0.118990 0.981824 vt 0.368120 0.985378 vt 0.901220 0.527197 vt 0.121621 0.988878 vt 0.349064 0.987987 vt 0.351388 0.986270 vt 0.350031 0.988675 vt 0.004394 0.963187 vt 0.781999 0.959572 vt 0.784112 0.964884 vt 0.349821 0.985798 vt 0.781594 0.954705 vt 0.294114 0.959974 vt 0.295901 0.961099 vt 0.292692 0.966292 vt 0.012071 0.948122 vt 0.348487 0.992853 vt 0.522168 0.985890 vt 0.524439 0.989412 vt 0.791813 0.955063 vt 0.790380 0.964318 vt 0.506117 0.993126 vt 0.782502 0.977894 vt 0.073264 0.997094 vt 0.899951 0.525351 vt 0.899957 0.529873 vt 0.296314 0.766573 vt 0.296119 0.763625 vt 0.296314 0.760968 vt 0.296218 0.972975 vt 0.294604 0.972361 vt 0.293007 0.968966 vt 0.995028 0.652763 vt 0.887709 0.963032 vt 0.788312 0.956059 vt 0.295310 0.959463 vt 0.294320 0.958561 vt 0.791972 0.973213 vt 0.007394 0.971937 vt 0.004044 0.972909 vt 0.129698 0.975727 vt 0.899651 0.311488 vt 0.519728 0.994047 vt 0.001149 0.962381 vt 0.884014 0.981872 vt 0.363920 0.977601 vt 0.997450 0.653358 vt 0.994456 0.654110 vt 0.129535 0.987436 vt 0.896137 0.528118 vt 0.129874 0.979251 vt 0.782905 0.953084 vt 0.895257 0.212790 vt 0.898230 0.213136 vt 0.786917 0.957454 vt 0.292184 0.960063 vt 0.291651 0.962897 vt 0.290821 0.963021 vt 0.966235 0.366210 vt 0.965233 0.364256 vt 0.967720 0.365761 vt 0.343776 0.987287 vt 0.344055 0.985287 vt 0.013454 0.968840 vt 0.893375 0.981035 vt 0.893313 0.967676 vt 0.892364 0.964146 vt 0.008808 0.963066 vt 0.011587 0.973320 vt 0.891838 0.218893 vt 0.891574 0.216019 vt 0.013181 0.972092 vt 0.524281 0.996544 vt 0.788741 0.949953 vt 0.788353 0.950312 vt 0.009193 0.949275 vt 0.885388 0.962168 vt 0.364783 0.991546 vt 0.350274 0.992808 vt 0.577051 0.931443 vt 0.576744 0.931182 vt 0.577051 0.929141 vt 0.001545 0.949256 vt 0.351401 0.996903 vt 0.349537 0.996273 vt 0.780714 0.954932 vt 0.788309 0.954348 vt 0.519873 0.984331 vt 0.898867 0.530550 vt 0.781857 0.952547 vt 0.781232 0.950541 vt 0.791918 0.963601 vt 0.012472 0.959189 vt 0.012332 0.962957 vt 0.000306 0.950048 vt 0.351574 0.996304 vt 0.894470 0.220517 vt 0.898893 0.219531 vt 0.998133 0.058194 vt 0.998090 0.055375 vt 0.999023 0.053799 vt 0.897258 0.530060 vt 0.969152 0.360014 vt 0.967230 0.360424 vt 0.291363 0.967972 vt 0.779521 0.976708 vt 0.126899 0.989627 vt 0.290398 0.965554 vt 0.899317 0.214576 vt 0.072250 0.998097 vt 0.904168 0.529375 vt 0.900298 0.530275 vt 0.520791 0.984006 vt 0.000845 0.947657 vt 0.074210 0.989912 vt 0.071749 0.997862 vt 0.003339 0.951677 vt 0.004321 0.952395 vt 0.002809 0.945510 vt 0.968540 0.367499 vt 0.959758 0.374094 vt 0.959787 0.372486 vt 0.960378 0.374094 vt 0.735746 0.292937 vt 0.738100 0.296179 vt 0.735284 0.296461 vt 0.990312 0.043832 vt 0.992169 0.047099 vt 0.990667 0.047874 vt 0.991888 0.044791 vt 0.991597 0.039841 vt 0.993289 0.039112 vt 0.993307 0.838185 vt 0.992319 0.835572 vt 0.993637 0.835931 vt 0.786801 0.290072 vt 0.788248 0.292406 vt 0.788102 0.294206 vt 0.783844 0.291179 vt 0.742557 0.297832 vt 0.740110 0.295037 vt 0.743116 0.294375 vt 0.847989 0.956820 vt 0.848275 0.958856 vt 0.847757 0.958514 vt 0.781495 0.292843 vt 0.781781 0.289026 vt 0.779634 0.286568 vt 0.777910 0.290760 vt 0.777142 0.286286 vt 0.648549 0.992997 vt 0.650417 0.986404 vt 0.650701 0.993257 vt 0.732873 0.298926 vt 0.732427 0.291978 vt 0.780317 0.301501 vt 0.778079 0.304156 vt 0.778978 0.296386 vt 0.733198 0.286821 vt 0.731746 0.288204 vt 0.731195 0.285432 vt 0.724408 0.970810 vt 0.725317 0.976641 vt 0.724183 0.973056 vt 0.728445 0.970903 vt 0.725456 0.965831 vt 0.937884 0.080202 vt 0.937789 0.078597 vt 0.940778 0.079443 vt 0.741322 0.977594 vt 0.738652 0.977953 vt 0.738804 0.976396 vt 0.779198 0.307116 vt 0.777824 0.306611 vt 0.941976 0.092586 vt 0.938999 0.095244 vt 0.939158 0.092326 vt 0.994104 0.851095 vt 0.992631 0.851684 vt 0.992613 0.848881 vt 0.731751 0.279433 vt 0.739638 0.963830 vt 0.739362 0.960956 vt 0.742013 0.961594 vt 0.993546 0.044288 vt 0.070148 0.979881 vt 0.076119 0.977099 vt 0.076336 0.981222 vt 0.941156 0.095925 vt 0.789906 0.284590 vt 0.790419 0.287582 vt 0.961877 0.366471 vt 0.963603 0.363268 vt 0.964819 0.367078 vt 0.787987 0.287323 vt 0.790358 0.281546 vt 0.750304 0.983919 vt 0.752728 0.984221 vt 0.749472 0.984472 vt 0.988648 0.033872 vt 0.940418 0.086129 vt 0.937241 0.085768 vt 0.742301 0.964760 vt 0.737906 0.970662 vt 0.979223 0.778641 vt 0.986873 0.783144 vt 0.982289 0.785073 vt 0.740826 0.970258 vt 0.941930 0.082428 vt 0.789017 0.298163 vt 0.788694 0.302022 vt 0.780713 0.296554 vt 0.781949 0.282970 vt 0.990178 0.040055 vt 0.987535 0.035357 vt 0.741846 0.974208 vt 0.753812 0.986411 vt 0.073281 0.983395 vt 0.984259 0.789053 vt 0.995220 0.590884 vt 0.994099 0.590535 vt 0.994879 0.585848 vt 0.981481 0.773078 vt 0.983854 0.774607 vt 0.878070 0.582860 vt 0.878070 0.584368 vt 0.877548 0.584259 vt 0.753580 0.991881 vt 0.749379 0.988558 vt 0.644824 0.993304 vt 0.646082 0.989032 vt 0.743698 0.291445 vt 0.744249 0.293594 vt 0.733523 0.987794 vt 0.730590 0.990347 vt 0.729120 0.987258 vt 0.077151 0.975264 vt 0.073093 0.976957 vt 0.210214 0.993861 vt 0.210264 0.997188 vt 0.208770 0.995242 vt 0.994491 0.584194 vt 0.734999 0.976608 vt 0.728677 0.966844 vt 0.743619 0.303472 vt 0.744354 0.301096 vt 0.946172 0.103016 vt 0.947437 0.103008 vt 0.947397 0.104356 vt 0.654296 0.993375 vt 0.653894 0.984320 vt 0.733415 0.980878 vt 0.729362 0.978818 vt 0.992708 0.582286 vt 0.994935 0.579462 vt 0.780833 0.280857 vt 0.745181 0.279869 vt 0.745472 0.281628 vt 0.744033 0.286682 vt 0.960400 0.364901 vt 0.962103 0.361659 vt 0.735689 0.991480 vt 0.068993 0.984163 vt 0.068401 0.980212 vt 0.984228 0.585014 vt 0.985540 0.586278 vt 0.984659 0.586783 vt 0.081352 0.989066 vt 0.077536 0.989912 vt 0.077251 0.987513 vt 0.991961 0.034444 vt 0.991377 0.030501 vt 0.994442 0.028624 vt 0.482528 0.988011 vt 0.480880 0.992315 vt 0.480288 0.991616 vt 0.650293 0.983897 vt 0.982212 0.788090 vt 0.733785 0.291931 vt 0.741498 0.291887 vt 0.727257 0.965227 vt 0.986528 0.582812 vt 0.984481 0.582709 vt 0.081533 0.975215 vt 0.484637 0.987797 vt 0.484784 0.992220 vt 0.736114 0.988514 vt 0.073218 0.986165 vt 0.782811 0.290066 vt 0.733414 0.983215 vt 0.728638 0.984683 vt 0.735830 0.995385 vt 0.733711 0.995361 vt 0.731803 0.965130 vt 0.995034 0.577107 vt 0.990994 0.579138 vt 0.987466 0.578493 vt 0.485154 0.995059 vt 0.784615 0.306212 vt 0.788971 0.306634 vt 0.735489 0.966815 vt 0.722627 0.964240 vt 0.070411 0.978182 vt 0.736840 0.979816 vt 0.730159 0.301499 vt 0.732639 0.301041 vt 0.732003 0.303571 vt 0.995982 0.842465 vt 0.995669 0.848285 vt 0.990530 0.584257 vt 0.991744 0.586556 vt 0.654204 0.982449 vt 0.481895 0.988125 vt 0.988764 0.031226 vt 0.986494 0.032524 vt 0.987035 0.030880 vt 0.736523 0.974014 vt 0.736616 0.981332 vt 0.080996 0.979765 vt 0.081360 0.982639 vt 0.080799 0.983007 vt 0.989267 0.590153 vt 0.736976 0.969084 vt 0.781399 0.307116 vt 0.788285 0.307800 vt 0.645632 0.996005 vt 0.791207 0.302337 vt 0.791702 0.307033 vt 0.735004 0.306448 vt 0.736444 0.305986 vt 0.736554 0.308325 vt 0.725939 0.978071 vt 0.735171 0.299078 vt 0.733999 0.302596 vt 0.741132 0.286988 vt 0.742496 0.279810 vt 0.997714 0.850808 vt 0.995845 0.851509 vt 0.733721 0.281806 vt 0.941704 0.085659 vt 0.755663 0.988837 vt 0.756409 0.993155 vt 0.754950 0.994689 vt 0.753779 0.984674 vt 0.997602 0.844104 vt 0.995877 0.838266 vt 0.746538 0.994933 vt 0.747540 0.986923 vt 0.743855 0.277909 vt 0.741526 0.277971 vt 0.081009 0.986750 vt 0.983913 0.772583 vt 0.993909 0.842802 vt 0.988191 0.784881 vt 0.736084 0.982884 vt 0.788437 0.297094 vt 0.995080 0.836810 vt 0.989071 0.581234 vt 0.737786 0.278720 vt 0.733699 0.278807 vt 0.733768 0.278022 vt 0.790434 0.297363 vt 0.751627 0.995772 vt 0.747766 0.996152 vt 0.070168 0.985766 vt 0.986465 0.581019 vt 0.481118 0.994747 vt 0.069252 0.985362 vt 0.203625 0.914547 vt 0.202742 0.913885 vt 0.203625 0.910986 vt 0.209602 0.993181 vt 0.745267 0.992973 vt 0.790296 0.307715 vt 0.744699 0.306192 vt 0.745409 0.304616 vt 0.791606 0.281378 vt 0.648624 0.995844 vt 0.959994 0.359537 vt 0.791451 0.279523 vt 0.942566 0.099160 vt 0.942156 0.096490 vt 0.942645 0.096933 vt 0.644004 0.994762 vt 0.646838 0.985218 vt 0.984722 0.581796 vt 0.745326 0.990263 vt 0.483921 0.997710 vt 0.254874 0.993561 vt 0.255402 0.994742 vt 0.254524 0.994916 vt 0.742329 0.300838 vt 0.651683 0.995634 vt 0.782989 0.286470 vt 0.730557 0.993876 vt 0.782400 0.277976 vt 0.745342 0.307464 vt 0.313406 0.969774 vt 0.314061 0.966992 vt 0.315118 0.970736 vt 0.881257 0.945282 vt 0.888256 0.943739 vt 0.884078 0.944816 vt 0.939400 0.588611 vt 0.937533 0.590515 vt 0.937162 0.587735 vt 0.993485 0.264780 vt 0.996910 0.267486 vt 0.993671 0.266638 vt 0.960285 0.864619 vt 0.965282 0.864504 vt 0.964936 0.865574 vt 0.581538 0.946419 vt 0.580210 0.945972 vt 0.580867 0.944364 vt 0.313957 0.980808 vt 0.311459 0.981116 vt 0.312662 0.975195 vt 0.886254 0.944913 vt 0.460304 0.982309 vt 0.460563 0.987554 vt 0.455989 0.987514 vt 0.852048 0.938071 vt 0.851773 0.941874 vt 0.850432 0.940666 vt 0.974271 0.883371 vt 0.972818 0.881875 vt 0.975138 0.881271 vt 0.893396 0.933633 vt 0.895613 0.930259 vt 0.894863 0.936668 vt 0.290444 0.892872 vt 0.290739 0.891808 vt 0.290737 0.893998 vt 0.996514 0.252069 vt 0.997161 0.254381 vt 0.993421 0.251024 vt 0.997641 0.252955 vt 0.970375 0.864110 vt 0.577496 0.957635 vt 0.577471 0.955423 vt 0.578508 0.958194 vt 0.896139 0.933023 vt 0.454561 0.982829 vt 0.452824 0.987198 vt 0.451759 0.982450 vt 0.449885 0.987514 vt 0.974304 0.865534 vt 0.971301 0.865544 vt 0.972878 0.863521 vt 0.973025 0.872425 vt 0.326666 0.966942 vt 0.325087 0.966942 vt 0.327238 0.965569 vt 0.325592 0.972761 vt 0.326412 0.971073 vt 0.316401 0.974903 vt 0.852668 0.960549 vt 0.851775 0.961289 vt 0.850502 0.960375 vt 0.959114 0.864164 vt 0.958807 0.862435 vt 0.326412 0.971387 vt 0.326875 0.974212 vt 0.972842 0.876902 vt 0.970566 0.876767 vt 0.959585 0.874081 vt 0.959584 0.871706 vt 0.960514 0.876104 vt 0.848450 0.944356 vt 0.849119 0.947113 vt 0.318418 0.980744 vt 0.324970 0.975206 vt 0.313444 0.982467 vt 0.863414 0.930313 vt 0.858943 0.940997 vt 0.857161 0.940475 vt 0.461525 0.975730 vt 0.319306 0.971758 vt 0.366080 0.935827 vt 0.364511 0.939637 vt 0.362501 0.934194 vt 0.995739 0.260526 vt 0.992003 0.259455 vt 0.993496 0.253832 vt 0.968379 0.872258 vt 0.963078 0.872404 vt 0.963606 0.868613 vt 0.367592 0.940629 vt 0.808273 0.986396 vt 0.816383 0.986717 vt 0.809981 0.992036 vt 0.885516 0.941464 vt 0.882830 0.941063 vt 0.890951 0.940095 vt 0.582723 0.951400 vt 0.580414 0.950793 vt 0.363668 0.928775 vt 0.368020 0.932687 vt 0.193520 0.979290 vt 0.194488 0.978626 vt 0.195309 0.983150 vt 0.454977 0.975183 vt 0.929370 0.577039 vt 0.926190 0.584361 vt 0.926663 0.578300 vt 0.855105 0.929809 vt 0.853588 0.939710 vt 0.817167 0.984619 vt 0.956130 0.482450 vt 0.962425 0.496314 vt 0.959594 0.496152 vt 0.887907 0.926927 vt 0.884368 0.928152 vt 0.883926 0.925271 vt 0.460487 0.973681 vt 0.320300 0.968554 vt 0.817393 0.993978 vt 0.890372 0.946209 vt 0.928698 0.588773 vt 0.931918 0.590914 vt 0.578920 0.950740 vt 0.962424 0.862374 vt 0.965252 0.863416 vt 0.952228 0.481607 vt 0.950394 0.494977 vt 0.325331 0.979556 vt 0.925814 0.576254 vt 0.962555 0.879715 vt 0.961991 0.876617 vt 0.893737 0.951890 vt 0.993766 0.455942 vt 0.993186 0.452936 vt 0.995951 0.451460 vt 0.885861 0.956111 vt 0.886251 0.960484 vt 0.880686 0.947506 vt 0.856697 0.947662 vt 0.860350 0.953852 vt 0.853718 0.952969 vt 0.864434 0.931151 vt 0.861478 0.940760 vt 0.953081 0.498193 vt 0.948186 0.498785 vt 0.951919 0.497171 vt 0.953089 0.480677 vt 0.955767 0.481176 vt 0.192897 0.986364 vt 0.195277 0.988681 vt 0.937753 0.583978 vt 0.860619 0.947507 vt 0.863458 0.952946 vt 0.964294 0.866727 vt 0.998105 0.255915 vt 0.997006 0.260591 vt 0.948224 0.490635 vt 0.948612 0.493830 vt 0.947475 0.495912 vt 0.323610 0.982361 vt 0.924727 0.588372 vt 0.924972 0.576851 vt 0.957550 0.498461 vt 0.974739 0.883299 vt 0.317031 0.968485 vt 0.967595 0.882378 vt 0.895698 0.958724 vt 0.896244 0.957166 vt 0.997459 0.264580 vt 0.998070 0.267930 vt 0.382294 0.993997 vt 0.379620 0.991722 vt 0.381991 0.988288 vt 0.973542 0.883028 vt 0.364291 0.942633 vt 0.811530 0.984344 vt 0.993440 0.267079 vt 0.861021 0.961016 vt 0.857602 0.959960 vt 0.857383 0.959229 vt 0.891965 0.985435 vt 0.894506 0.986112 vt 0.890778 0.987125 vt 0.580432 0.956275 vt 0.885387 0.932797 vt 0.960470 0.868868 vt 0.854784 0.941676 vt 0.972552 0.862754 vt 0.581598 0.957843 vt 0.893146 0.990382 vt 0.367770 0.943012 vt 0.366227 0.944414 vt 0.929945 0.576422 vt 0.927953 0.575431 vt 0.974214 0.877266 vt 0.996073 0.268126 vt 0.928739 0.575375 vt 0.380051 0.988372 vt 0.381042 0.987574 vt 0.379231 0.990372 vt 0.992886 0.455797 vt 0.893117 0.937618 vt 0.893016 0.947905 vt 0.895278 0.952901 vt 0.449577 0.983887 vt 0.452838 0.976258 vt 0.368228 0.929316 vt 0.363785 0.927086 vt 0.366507 0.927780 vt 0.854589 0.926923 vt 0.855757 0.925150 vt 0.882498 0.927541 vt 0.958703 0.867737 vt 0.882108 0.946725 vt 0.892537 0.929286 vt 0.756761 0.854790 vt 0.756761 0.858045 vt 0.756409 0.856402 vt 0.855030 0.946390 vt 0.896507 0.944128 vt 0.897091 0.943546 vt 0.897131 0.945138 vt 0.886750 0.960088 vt 0.960137 0.879005 vt 0.864296 0.959888 vt 0.177037 0.966878 vt 0.176189 0.966050 vt 0.176510 0.962193 vt 0.583697 0.951623 vt 0.583263 0.949066 vt 0.383982 0.998670 vt 0.381275 0.995192 vt 0.578219 0.943793 vt 0.578889 0.947382 vt 0.865041 0.926964 vt 0.958539 0.484722 vt 0.583264 0.958415 vt 0.583822 0.959702 vt 0.939358 0.585477 vt 0.647283 0.313164 vt 0.646483 0.311785 vt 0.647283 0.311828 vt 0.894283 0.984850 vt 0.926072 0.590162 vt 0.851471 0.955924 vt 0.995099 0.458972 vt 0.891950 0.926148 vt 0.462973 0.982070 vt 0.850222 0.948212 vt 0.856438 0.947371 vt 0.893348 0.939358 vt 0.889784 0.942465 vt 0.851570 0.936352 vt 0.996432 0.458168 vt 0.974401 0.863451 vt 0.883677 0.936373 vt 0.193482 0.988928 vt 0.854113 0.961513 vt 0.894230 0.996366 vt 0.890798 0.996291 vt 0.890923 0.993410 vt 0.894495 0.925246 vt 0.891344 0.924922 vt 0.859918 0.944061 vt 0.818026 0.982440 vt 0.963404 0.498855 vt 0.193797 0.973576 vt 0.193226 0.976928 vt 0.191723 0.974039 vt 0.579511 0.943436 vt 0.815154 0.995184 vt 0.205506 0.950908 vt 0.205746 0.950062 vt 0.205746 0.951955 vt 0.862773 0.961888 vt 0.858152 0.947884 vt 0.949704 0.484861 vt 0.463158 0.988166 vt 0.993541 0.452107 vt 0.896115 0.927008 vt 0.463637 0.985606 vt 0.332623 0.979915 vt 0.331321 0.975375 vt 0.332255 0.974970 vt 0.929425 0.994546 vt 0.931528 0.995895 vt 0.928570 0.997338 vt 0.926136 0.995926 vt 0.926766 0.997518 vt 0.994533 0.174800 vt 0.996288 0.178846 vt 0.995234 0.180603 vt 0.358309 0.962306 vt 0.358899 0.956391 vt 0.361489 0.958175 vt 0.927277 0.983992 vt 0.924828 0.992912 vt 0.285975 0.957276 vt 0.283202 0.945103 vt 0.286349 0.942238 vt 0.360632 0.943478 vt 0.358204 0.942125 vt 0.284413 0.942352 vt 0.332273 0.969534 vt 0.331289 0.973977 vt 0.337441 0.966592 vt 0.338556 0.974353 vt 0.287330 0.972433 vt 0.284492 0.963953 vt 0.355864 0.952715 vt 0.351109 0.949459 vt 0.348304 0.955909 vt 0.354824 0.960398 vt 0.354164 0.938860 vt 0.360815 0.930218 vt 0.977501 0.250495 vt 0.973503 0.253012 vt 0.976528 0.249981 vt 0.998072 0.170220 vt 0.997882 0.173308 vt 0.996364 0.170321 vt 0.358789 0.928927 vt 0.360689 0.927362 vt 0.343824 0.979399 vt 0.289587 0.935849 vt 0.289515 0.941885 vt 0.287087 0.937960 vt 0.997263 0.866471 vt 0.996970 0.860961 vt 0.998585 0.861386 vt 0.344845 0.970462 vt 0.345484 0.974455 vt 0.406452 0.991377 vt 0.405883 0.983225 vt 0.408177 0.986798 vt 0.924986 0.995675 vt 0.289280 0.954311 vt 0.347420 0.975370 vt 0.345416 0.979747 vt 0.340722 0.965041 vt 0.344885 0.967675 vt 0.979012 0.235819 vt 0.979202 0.248256 vt 0.976213 0.261752 vt 0.978793 0.257263 vt 0.976134 0.263726 vt 0.347216 0.970105 vt 0.343449 0.980943 vt 0.287488 0.932754 vt 0.971424 0.244575 vt 0.972248 0.232429 vt 0.973980 0.226101 vt 0.993509 0.177939 vt 0.976536 0.257464 vt 0.973472 0.259455 vt 0.973898 0.264485 vt 0.976346 0.226583 vt 0.977867 0.228408 vt 0.999797 0.870360 vt 0.997408 0.870003 vt 0.997925 0.868854 vt 0.403877 0.981309 vt 0.401989 0.986202 vt 0.407608 0.979890 vt 0.290248 0.937799 vt 0.289863 0.962957 vt 0.335545 0.981317 vt 0.931718 0.993387 vt 0.349308 0.950128 vt 0.280552 0.945488 vt 0.976002 0.224171 vt 0.973047 0.251328 vt 0.411769 0.992878 vt 0.413776 0.993653 vt 0.977771 0.237142 vt 0.285906 0.972242 vt 0.923891 0.983322 vt 0.924802 0.982839 vt 0.281466 0.948152 vt 0.287199 0.974331 vt 0.925536 0.996853 vt 0.361948 0.947137 vt 0.289283 0.969722 vt 0.402434 0.993155 vt 0.401305 0.993492 vt 0.994903 0.181422 vt 0.993432 0.180346 vt 0.999079 0.857826 vt 0.996794 0.858487 vt 0.283312 0.958674 vt 0.286465 0.933418 vt 0.362076 0.928452 vt 0.361684 0.926961 vt 0.931744 0.984782 vt 0.941982 0.294703 vt 0.943047 0.297796 vt 0.937025 0.294919 vt 0.942216 0.310651 vt 0.943225 0.311012 vt 0.941589 0.312458 vt 0.994521 0.932058 vt 0.992714 0.936271 vt 0.992628 0.934331 vt 0.995075 0.934382 vt 0.967905 0.384181 vt 0.970176 0.384404 vt 0.970146 0.398489 vt 0.963359 0.378966 vt 0.961125 0.383721 vt 0.936848 0.310951 vt 0.936614 0.305015 vt 0.989269 0.854320 vt 0.993257 0.853585 vt 0.991927 0.856114 vt 0.992266 0.869321 vt 0.989734 0.867090 vt 0.965374 0.601179 vt 0.967486 0.594735 vt 0.965118 0.609220 vt 0.996288 0.935383 vt 0.995377 0.942119 vt 0.966348 0.407554 vt 0.965827 0.412146 vt 0.962267 0.404100 vt 0.967295 0.412171 vt 0.973487 0.607722 vt 0.972569 0.624361 vt 0.971684 0.609975 vt 0.974282 0.629568 vt 0.972582 0.631426 vt 0.964600 0.383574 vt 0.961539 0.385863 vt 0.966583 0.381518 vt 0.969441 0.593578 vt 0.974135 0.623195 vt 0.932001 0.295859 vt 0.929396 0.303883 vt 0.570399 0.951010 vt 0.563049 0.952201 vt 0.565440 0.939460 vt 0.571694 0.959493 vt 0.561046 0.959982 vt 0.570012 0.939419 vt 0.566927 0.926796 vt 0.569050 0.927304 vt 0.023806 0.990465 vt 0.022344 0.996451 vt 0.021803 0.991718 vt 0.965256 0.625433 vt 0.969272 0.625798 vt 0.969665 0.631562 vt 0.944121 0.299960 vt 0.932821 0.311058 vt 0.926588 0.302097 vt 0.562603 0.941335 vt 0.943586 0.295802 vt 0.927023 0.305117 vt 0.573750 0.952113 vt 0.986984 0.856877 vt 0.995894 0.932142 vt 0.995319 0.865244 vt 0.994120 0.870048 vt 0.392877 0.989968 vt 0.388424 0.991764 vt 0.388399 0.983676 vt 0.962144 0.391412 vt 0.967804 0.612238 vt 0.966482 0.371076 vt 0.967642 0.369921 vt 0.970171 0.374936 vt 0.565740 0.928580 vt 0.970360 0.636583 vt 0.971705 0.635623 vt 0.561028 0.954476 vt 0.391952 0.980783 vt 0.960939 0.396400 vt 0.967593 0.630270 vt 0.966380 0.627796 vt 0.935631 0.293452 vt 0.560155 0.953850 vt 0.974129 0.621865 vt 0.991863 0.943429 vt 0.930591 0.295497 vt 0.927991 0.298160 vt 0.568695 0.924541 vt 0.567437 0.924781 vt 0.968751 0.591633 vt 0.969676 0.592233 vt 0.972917 0.602247 vt 0.937759 0.312523 vt 0.987173 0.868519 vt 0.989341 0.870444 vt 0.574994 0.959551 vt 0.929157 0.309449 vt 0.988667 0.944554 vt 0.989990 0.939939 vt 0.398684 0.987000 vt 0.398802 0.991112 vt 0.965609 0.413712 vt 0.965117 0.374221 vt 0.400392 0.992608 vt 0.995270 0.854147 vt 0.394495 0.980250 vt 0.963252 0.409786 vt 0.571747 0.940458 vt 0.021585 0.989036 vt 0.966105 0.368825 vt 0.022156 0.986336 vt 0.023841 0.986418 vt 0.967877 0.592602 vt 0.969483 0.635649 vt 0.564375 0.961571 vt 0.387185 0.987907 vt 0.260545 0.974450 vt 0.260233 0.969652 vt 0.261692 0.968688 vt 0.658459 0.993900 vt 0.659652 0.996674 vt 0.656498 0.995479 vt 0.661808 0.994964 vt 0.661968 0.996359 vt 0.993870 0.972472 vt 0.995599 0.978388 vt 0.993837 0.977197 vt 0.336373 0.961775 vt 0.334265 0.956873 vt 0.337608 0.955941 vt 0.659886 0.983328 vt 0.662901 0.991881 vt 0.260745 0.949335 vt 0.261133 0.964414 vt 0.257978 0.961451 vt 0.339786 0.943077 vt 0.342545 0.942417 vt 0.259167 0.964244 vt 0.712592 0.966203 vt 0.718273 0.970041 vt 0.711855 0.974001 vt 0.261720 0.934242 vt 0.259188 0.942609 vt 0.346571 0.951238 vt 0.341559 0.953197 vt 0.347011 0.958992 vt 0.340229 0.960849 vt 0.347198 0.940518 vt 0.343377 0.930267 vt 0.980087 0.511634 vt 0.979170 0.512169 vt 0.976054 0.508726 vt 0.257930 0.947722 vt 0.257356 0.943377 vt 0.344831 0.928175 vt 0.718023 0.979288 vt 0.706895 0.979260 vt 0.718124 0.974345 vt 0.263319 0.970418 vt 0.263334 0.964550 vt 0.113571 0.979380 vt 0.115395 0.984445 vt 0.114234 0.984812 vt 0.705408 0.970401 vt 0.704972 0.974411 vt 0.616803 0.993099 vt 0.615154 0.988474 vt 0.617487 0.984954 vt 0.662940 0.994641 vt 0.263559 0.953018 vt 0.703272 0.975769 vt 0.705321 0.979682 vt 0.709240 0.964806 vt 0.705214 0.967628 vt 0.982418 0.526647 vt 0.982274 0.513958 vt 0.978444 0.500414 vt 0.978659 0.498655 vt 0.981615 0.505408 vt 0.702848 0.971249 vt 0.707343 0.980784 vt 0.261770 0.973874 vt 0.995075 0.961674 vt 0.996121 0.975159 vt 0.978784 0.504695 vt 0.975811 0.502639 vt 0.976203 0.497730 vt 0.980397 0.538488 vt 0.979812 0.537036 vt 0.260463 0.933906 vt 0.261466 0.932145 vt 0.116245 0.974898 vt 0.113988 0.976835 vt 0.113602 0.975521 vt 0.619557 0.983059 vt 0.621090 0.987805 vt 0.616332 0.981499 vt 0.333971 0.963337 vt 0.342330 0.928150 vt 0.336926 0.946402 vt 0.715198 0.980813 vt 0.343573 0.927062 vt 0.656134 0.993011 vt 0.255031 0.961017 vt 0.996398 0.960639 vt 0.611735 0.994318 vt 0.609438 0.995198 vt 0.617600 0.980353 vt 0.980963 0.524965 vt 0.663204 0.982390 vt 0.662263 0.981982 vt 0.256015 0.958124 vt 0.996624 0.978451 vt 0.996991 0.977050 vt 0.116119 0.987822 vt 0.113702 0.986831 vt 0.991229 0.970233 vt 0.620275 0.994282 vt 0.655495 0.985498 vt 0.977736 0.532436 vt 0.976563 0.510596 vt 0.193215 0.972167 vt 0.188262 0.971977 vt 0.194278 0.969061 vt 0.966166 0.357988 vt 0.967268 0.356459 vt 0.966825 0.358718 vt 0.964790 0.313690 vt 0.965144 0.315419 vt 0.963031 0.316590 vt 0.982475 0.176182 vt 0.980600 0.172092 vt 0.982947 0.173884 vt 0.968231 0.343333 vt 0.969733 0.329120 vt 0.970123 0.343493 vt 0.968759 0.529982 vt 0.967514 0.536360 vt 0.966888 0.528227 vt 0.963981 0.348756 vt 0.961167 0.343853 vt 0.193448 0.956241 vt 0.187848 0.961895 vt 0.188083 0.955985 vt 0.236489 0.992529 vt 0.239130 0.990626 vt 0.240515 0.993192 vt 0.239470 0.977480 vt 0.236945 0.979758 vt 0.982961 0.167276 vt 0.984477 0.172948 vt 0.965885 0.319997 vt 0.961923 0.323523 vt 0.967306 0.317823 vt 0.966757 0.512585 vt 0.968645 0.514914 vt 0.965767 0.534435 vt 0.961651 0.341769 vt 0.965027 0.344000 vt 0.967149 0.346018 vt 0.969899 0.499860 vt 0.183238 0.971047 vt 0.180631 0.963028 vt 0.950687 0.403363 vt 0.956580 0.392069 vt 0.958038 0.405196 vt 0.948689 0.411739 vt 0.959127 0.412583 vt 0.952043 0.391870 vt 0.956119 0.380276 vt 0.953703 0.379761 vt 0.978001 0.154255 vt 0.978183 0.151888 vt 0.982656 0.149985 vt 0.974566 0.530803 vt 0.970454 0.536601 vt 0.971128 0.531319 vt 0.195353 0.966902 vt 0.959993 0.407389 vt 0.972657 0.499823 vt 0.971360 0.497445 vt 0.184153 0.955892 vt 0.177825 0.964832 vt 0.961279 0.334604 vt 0.960365 0.328301 vt 0.675113 0.988793 vt 0.670345 0.992534 vt 0.672893 0.983358 vt 0.959022 0.393933 vt 0.194452 0.971728 vt 0.178259 0.961813 vt 0.946999 0.404423 vt 0.234082 0.989976 vt 0.984048 0.175959 vt 0.241322 0.976747 vt 0.242514 0.981480 vt 0.674847 0.993741 vt 0.972440 0.517312 vt 0.970156 0.351206 vt 0.968328 0.357307 vt 0.969489 0.540956 vt 0.967793 0.540224 vt 0.668463 0.983941 vt 0.186869 0.973463 vt 0.965840 0.526043 vt 0.181829 0.971418 vt 0.179228 0.968765 vt 0.954125 0.377080 vt 0.955672 0.377837 vt 0.973649 0.532934 vt 0.967278 0.507115 vt 0.974645 0.515558 vt 0.194456 0.955880 vt 0.190818 0.954457 vt 0.234402 0.978455 vt 0.237071 0.976512 vt 0.945161 0.411665 vt 0.180835 0.957346 vt 0.664596 0.994290 vt 0.665116 0.987716 vt 0.953059 0.378181 vt 0.965805 0.353340 vt 0.663437 0.994410 vt 0.242471 0.992565 vt 0.984556 0.160375 vt 0.977830 0.164833 vt 0.950073 0.392895 vt 0.975774 0.153018 vt 0.974212 0.155057 vt 0.974593 0.156282 vt 0.981750 0.162708 vt 0.970236 0.540952 vt 0.955697 0.414045 vt 0.977724 0.167365 vt 0.188149 0.974720 vt 0.185730 0.976597 vt 0.178376 0.976839 vt 0.033941 0.972703 vt 0.032849 0.976478 vt 0.032353 0.971264 vt 0.203482 0.982322 vt 0.201949 0.980904 vt 0.202804 0.977890 vt 0.979059 0.714993 vt 0.981061 0.709047 vt 0.981184 0.717634 vt 0.033687 0.978615 vt 0.030979 0.980611 vt 0.185015 0.980258 vt 0.189217 0.975870 vt 0.021423 0.970760 vt 0.022055 0.968292 vt 0.025235 0.969495 vt 0.023860 0.966518 vt 0.983238 0.697856 vt 0.984578 0.700488 vt 0.982033 0.702031 vt 0.109234 0.933033 vt 0.109874 0.931886 vt 0.109883 0.934338 vt 0.203180 0.964596 vt 0.199202 0.965861 vt 0.202911 0.958295 vt 0.987630 0.632500 vt 0.990611 0.621388 vt 0.988684 0.632552 vt 0.988195 0.622094 vt 0.991056 0.613083 vt 0.027874 0.985712 vt 0.023809 0.984016 vt 0.022245 0.975916 vt 0.198477 0.977369 vt 0.197158 0.970598 vt 0.200102 0.975244 vt 0.028005 0.979619 vt 0.983933 0.626732 vt 0.984306 0.624425 vt 0.986651 0.632958 vt 0.967885 0.591369 vt 0.968528 0.587512 vt 0.971411 0.588225 vt 0.200127 0.968431 vt 0.031191 0.984246 vt 0.184628 0.986445 vt 0.177713 0.980585 vt 0.244492 0.947927 vt 0.246402 0.938938 vt 0.248682 0.946326 vt 0.243632 0.950317 vt 0.245503 0.952618 vt 0.201896 0.971802 vt 0.252625 0.957016 vt 0.249506 0.956387 vt 0.250904 0.944625 vt 0.983679 0.729536 vt 0.981349 0.726088 vt 0.987930 0.615895 vt 0.977380 0.712664 vt 0.978703 0.705658 vt 0.987856 0.633860 vt 0.243160 0.953597 vt 0.188094 0.987220 vt 0.189061 0.979746 vt 0.247967 0.958673 vt 0.247234 0.933794 vt 0.247686 0.943124 vt 0.248617 0.933113 vt 0.992271 0.622761 vt 0.251693 0.962739 vt 0.970661 0.591589 vt 0.203126 0.955148 vt 0.204546 0.956995 vt 0.248007 0.932418 vt 0.984426 0.707146 vt 0.179399 0.975069 vt 0.177149 0.976057 vt 0.979177 0.723696 vt 0.196518 0.968598 vt 0.195801 0.966681 vt 0.185305 0.989184 vt 0.254271 0.955761 vt 0.031656 0.975089 vt 0.187842 0.973669 vt 0.984582 0.731332 vt 0.983629 0.731504 vt 0.291469 0.939307 vt 0.290394 0.935352 vt 0.291469 0.934071 vt 0.248966 0.963011 vt 0.249695 0.967333 vt 0.977585 0.714867 vt 0.204581 0.981158 vt 0.204419 0.982434 vt 0.984922 0.729941 vt 0.993271 0.717983 vt 0.995152 0.714983 vt 0.996697 0.720709 vt 0.983675 0.718351 vt 0.253624 0.946185 vt 0.248468 0.966753 vt 0.985675 0.618355 vt 0.984306 0.617813 vt 0.251928 0.965290 vt 0.997430 0.718269 vt 0.897131 0.950381 vt 0.896655 0.948776 vt 0.897131 0.947696 vt 0.178661 0.983867 vt 0.982416 0.696436 vt 0.200702 0.957493 vt 0.481334 0.981313 vt 0.482636 0.986532 vt 0.480739 0.985064 vt 0.527468 0.983618 vt 0.529773 0.981109 vt 0.534006 0.982208 vt 0.975489 0.662573 vt 0.977305 0.665588 vt 0.976108 0.669356 vt 0.481590 0.986910 vt 0.480744 0.986367 vt 0.533843 0.993295 vt 0.536760 0.982750 vt 0.536613 0.981355 vt 0.305248 0.994460 vt 0.307360 0.996440 vt 0.306142 0.997758 vt 0.975957 0.437872 vt 0.975024 0.434199 vt 0.976181 0.432828 vt 0.982181 0.434895 vt 0.982897 0.438267 vt 0.980923 0.438179 vt 0.534848 0.995077 vt 0.527714 0.994123 vt 0.529508 0.995326 vt 0.975043 0.428713 vt 0.976771 0.427167 vt 0.975516 0.431670 vt 0.481960 0.976410 vt 0.480338 0.980587 vt 0.981249 0.668785 vt 0.983049 0.660882 vt 0.983295 0.667211 vt 0.979971 0.641338 vt 0.979115 0.653164 vt 0.976585 0.653583 vt 0.490654 0.974111 vt 0.092679 0.971703 vt 0.091859 0.977958 vt 0.085401 0.977380 vt 0.083211 0.983568 vt 0.092352 0.983280 vt 0.087263 0.971752 vt 0.681716 0.305518 vt 0.679312 0.311367 vt 0.677836 0.304123 vt 0.089815 0.961146 vt 0.087759 0.963204 vt 0.088817 0.959511 vt 0.094543 0.979700 vt 0.095016 0.983939 vt 0.995371 0.019585 vt 0.996927 0.025176 vt 0.996034 0.026061 vt 0.083437 0.978306 vt 0.296337 0.717519 vt 0.296337 0.720883 vt 0.295645 0.719787 vt 0.980395 0.676607 vt 0.979549 0.676404 vt 0.976782 0.673276 vt 0.492511 0.972438 vt 0.494073 0.980228 vt 0.307619 0.991466 vt 0.979511 0.442743 vt 0.977226 0.440942 vt 0.307110 0.998111 vt 0.978908 0.451333 vt 0.982502 0.445727 vt 0.087577 0.960643 vt 0.981556 0.641587 vt 0.993810 0.020124 vt 0.992932 0.019085 vt 0.305355 0.996885 vt 0.977629 0.445736 vt 0.492657 0.986990 vt 0.493949 0.985525 vt 0.494041 0.986792 vt 0.974474 0.432532 vt 0.982565 0.426601 vt 0.981162 0.418040 vt 0.982225 0.419963 vt 0.981703 0.431358 vt 0.094293 0.974101 vt 0.085411 0.972397 vt 0.093338 0.970155 vt 0.082291 0.983086 vt 0.982860 0.442367 vt 0.481207 0.951221 vt 0.481207 0.953543 vt 0.480502 0.952471 vt 0.673722 0.311468 vt 0.974375 0.438010 vt 0.489931 0.971941 vt 0.483756 0.973484 vt 0.979540 0.417954 vt 0.978349 0.419184 vt 0.983188 0.651106 vt 0.535912 0.993526 vt 0.980454 0.416028 vt 0.981029 0.416095 vt 0.479974 0.981536 vt 0.983389 0.646991 vt 0.983364 0.426769 vt 0.085506 0.971107 vt 0.086412 0.969186 vt 0.977912 0.449787 vt 0.307498 0.987098 vt 0.303606 0.987311 vt 0.682468 0.310054 vt 0.681909 0.312529 vt 0.997707 0.027837 vt 0.537212 0.983496 vt 0.998928 0.926472 vt 0.998400 0.930976 vt 0.997624 0.929291 vt 0.307876 0.997732 vt 0.081910 0.983982 vt 0.489495 0.981087 vt 0.309770 0.989360 vt 0.682226 0.312911 vt 0.981597 0.434310 vt 0.983004 0.431144 vt 0.676025 0.303329 vt 0.968662 0.991228 vt 0.960889 0.989495 vt 0.967090 0.988737 vt 0.980514 0.188683 vt 0.981231 0.186117 vt 0.983029 0.191024 vt 0.986531 0.932009 vt 0.987353 0.933768 vt 0.984966 0.933364 vt 0.978896 0.088490 vt 0.978278 0.089051 vt 0.977176 0.083430 vt 0.975152 0.070667 vt 0.977284 0.067993 vt 0.977082 0.076440 vt 0.982976 0.193364 vt 0.986272 0.194112 vt 0.977626 0.059551 vt 0.978720 0.054719 vt 0.979808 0.055744 vt 0.985160 0.937144 vt 0.847221 0.939481 vt 0.848250 0.937249 vt 0.847903 0.940916 vt 0.985999 0.949940 vt 0.985060 0.956075 vt 0.981618 0.948292 vt 0.970024 0.989980 vt 0.987110 0.936500 vt 0.984441 0.942138 vt 0.979161 0.084409 vt 0.986078 0.425226 vt 0.986302 0.416840 vt 0.988441 0.426248 vt 0.970574 0.071435 vt 0.975278 0.061962 vt 0.973502 0.071083 vt 0.981613 0.936621 vt 0.982929 0.938885 vt 0.979548 0.943330 vt 0.970183 0.065975 vt 0.971950 0.079208 vt 0.972313 0.073202 vt 0.975181 0.081294 vt 0.982227 0.945209 vt 0.987394 0.197785 vt 0.965863 0.979161 vt 0.966381 0.985223 vt 0.959743 0.984765 vt 0.988891 0.436871 vt 0.987515 0.436579 vt 0.991844 0.429405 vt 0.497186 0.960942 vt 0.501737 0.962400 vt 0.499308 0.969893 vt 0.496118 0.958834 vt 0.498049 0.956356 vt 0.941826 0.096485 vt 0.941387 0.100894 vt 0.938158 0.101800 vt 0.504694 0.951496 vt 0.503865 0.964034 vt 0.501894 0.952334 vt 0.989262 0.420022 vt 0.986948 0.180881 vt 0.986394 0.178432 vt 0.987380 0.437969 vt 0.495293 0.955123 vt 0.969352 0.978252 vt 0.970432 0.985525 vt 0.500256 0.950132 vt 0.500843 0.965686 vt 0.500613 0.975143 vt 0.986358 0.437102 vt 0.985256 0.434609 vt 0.983760 0.428430 vt 0.987133 0.433045 vt 0.502620 0.973231 vt 0.502103 0.975696 vt 0.503331 0.945597 vt 0.104156 0.928568 vt 0.104658 0.925926 vt 0.104804 0.928649 vt 0.985149 0.959238 vt 0.986548 0.957986 vt 0.979653 0.053476 vt 0.980162 0.078342 vt 0.990416 0.181771 vt 0.991581 0.185684 vt 0.960997 0.990665 vt 0.958817 0.989855 vt 0.979057 0.945416 vt 0.978206 0.947697 vt 0.966883 0.976151 vt 0.984740 0.196921 vt 0.983558 0.189257 vt 0.988495 0.192027 vt 0.702386 0.936436 vt 0.702386 0.941847 vt 0.701266 0.940153 vt 0.500679 0.945794 vt 0.500359 0.941225 vt 0.959703 0.987241 vt 0.990784 0.197722 vt 0.987477 0.931947 vt 0.941197 0.103540 vt 0.937829 0.104896 vt 0.978888 0.065632 vt 0.505951 0.961413 vt 0.498801 0.942133 vt 0.991171 0.422828 vt 0.991889 0.422446 vt 0.503230 0.943253 vt 0.970490 0.991227 vt 0.979332 0.067522 vt 0.961102 0.981268 vt 0.982832 0.956769 vt 0.987825 0.687662 vt 0.988465 0.691388 vt 0.986604 0.692930 vt 0.983039 0.572467 vt 0.980639 0.577339 vt 0.982534 0.570873 vt 0.983283 0.564144 vt 0.981287 0.567163 vt 0.987670 0.693267 vt 0.988512 0.692691 vt 0.630902 0.983590 vt 0.633704 0.994097 vt 0.630895 0.994548 vt 0.633226 0.995401 vt 0.108956 0.923675 vt 0.110617 0.920775 vt 0.111523 0.922274 vt 0.948496 0.958915 vt 0.948807 0.963938 vt 0.947590 0.962598 vt 0.954734 0.961842 vt 0.953483 0.958553 vt 0.955387 0.957255 vt 0.631943 0.981786 vt 0.624807 0.982425 vt 0.626625 0.981290 vt 0.947464 0.967913 vt 0.948023 0.965162 vt 0.949335 0.969646 vt 0.987067 0.682722 vt 0.989142 0.687607 vt 0.977377 0.570361 vt 0.975792 0.569259 vt 0.975954 0.562564 vt 0.979804 0.543238 vt 0.982392 0.555270 vt 0.979876 0.554845 vt 0.978323 0.680832 vt 0.440991 0.968013 vt 0.446742 0.975543 vt 0.440334 0.974313 vt 0.447344 0.982122 vt 0.438603 0.979321 vt 0.446238 0.969583 vt 0.446480 0.958657 vt 0.447960 0.961256 vt 0.447853 0.957351 vt 0.436374 0.979248 vt 0.437664 0.974992 vt 0.448423 0.977092 vt 0.954031 0.962490 vt 0.979048 0.577986 vt 0.978231 0.578195 vt 0.975291 0.687463 vt 0.976528 0.679233 vt 0.110433 0.927207 vt 0.949844 0.955784 vt 0.952171 0.953935 vt 0.111673 0.920649 vt 0.951446 0.945365 vt 0.955013 0.950977 vt 0.448741 0.958784 vt 0.978236 0.543495 vt 0.981083 0.677984 vt 0.985226 0.679935 vt 0.978827 0.678618 vt 0.795721 0.986106 vt 0.794078 0.986250 vt 0.796170 0.984173 vt 0.109496 0.921679 vt 0.949918 0.950908 vt 0.976767 0.693781 vt 0.975423 0.693637 vt 0.975494 0.692276 vt 0.946900 0.964344 vt 0.025304 0.989269 vt 0.029184 0.987207 vt 0.027639 0.994943 vt 0.954947 0.970247 vt 0.954630 0.976913 vt 0.953639 0.978813 vt 0.954236 0.965408 vt 0.438930 0.969917 vt 0.448338 0.971355 vt 0.624448 0.992831 vt 0.982399 0.550367 vt 0.448473 0.981551 vt 0.955384 0.954348 vt 0.897131 0.934907 vt 0.896476 0.933632 vt 0.897131 0.932562 vt 0.033243 0.994234 vt 0.946827 0.958845 vt 0.952040 0.978901 vt 0.950818 0.977692 vt 0.976403 0.552699 vt 0.632973 0.983391 vt 0.953444 0.980794 vt 0.952661 0.980811 vt 0.112010 0.930701 vt 0.447736 0.967347 vt 0.448142 0.969452 vt 0.950560 0.945488 vt 0.109132 0.931416 vt 0.105599 0.930137 vt 0.024518 0.993580 vt 0.025049 0.996217 vt 0.795039 0.994716 vt 0.794941 0.991807 vt 0.796036 0.992702 vt 0.634163 0.993365 vt 0.206304 0.959516 vt 0.204956 0.956649 vt 0.205743 0.954993 vt 0.112317 0.921222 vt 0.448808 0.982672 vt 0.979731 0.687757 vt 0.024731 0.995889 vt 0.955441 0.965655 vt 0.031569 0.987023 vt 0.370579 0.981194 vt 0.371637 0.986523 vt 0.369984 0.984945 vt 0.980423 0.983532 vt 0.982728 0.981024 vt 0.986963 0.982122 vt 0.975082 0.614019 vt 0.976897 0.617036 vt 0.975701 0.620805 vt 0.370836 0.986792 vt 0.369989 0.986249 vt 0.986089 0.993728 vt 0.988154 0.993755 vt 0.989787 0.982272 vt 0.989568 0.981269 vt 0.982465 0.995241 vt 0.987281 0.995246 vt 0.298421 0.994464 vt 0.300534 0.996441 vt 0.299315 0.997758 vt 0.957042 0.105236 vt 0.956015 0.105217 vt 0.956565 0.102874 vt 0.756761 0.871316 vt 0.756437 0.870294 vt 0.756761 0.867937 vt 0.979967 0.286564 vt 0.980110 0.283826 vt 0.981407 0.283731 vt 0.974327 0.290125 vt 0.973394 0.286453 vt 0.974551 0.285082 vt 0.980670 0.994038 vt 0.973414 0.280968 vt 0.975141 0.279421 vt 0.973886 0.283924 vt 0.371206 0.976292 vt 0.369583 0.980468 vt 0.980843 0.620234 vt 0.982641 0.612330 vt 0.982888 0.618658 vt 0.979564 0.592786 vt 0.978707 0.604613 vt 0.976178 0.605031 vt 0.382796 0.986660 vt 0.380296 0.984833 vt 0.379899 0.973993 vt 0.920781 0.971075 vt 0.920358 0.977397 vt 0.913900 0.976818 vt 0.911711 0.983005 vt 0.920852 0.982717 vt 0.914257 0.972078 vt 0.918315 0.960584 vt 0.916259 0.962644 vt 0.917317 0.958949 vt 0.923043 0.979138 vt 0.923517 0.983377 vt 0.456621 0.989508 vt 0.458180 0.995102 vt 0.457287 0.995986 vt 0.911937 0.977743 vt 0.979988 0.628054 vt 0.979142 0.627851 vt 0.976377 0.624730 vt 0.381757 0.972320 vt 0.383318 0.980112 vt 0.300793 0.991465 vt 0.981267 0.290520 vt 0.977882 0.294997 vt 0.975600 0.293195 vt 0.300283 0.998111 vt 0.976828 0.302472 vt 0.980872 0.297981 vt 0.916076 0.960079 vt 0.981148 0.593033 vt 0.455064 0.990050 vt 0.454185 0.989010 vt 0.298528 0.996884 vt 0.975999 0.297991 vt 0.972844 0.284785 vt 0.990167 0.983410 vt 0.554489 0.988645 vt 0.552255 0.994501 vt 0.550531 0.986831 vt 0.981243 0.279604 vt 0.979532 0.270293 vt 0.980595 0.272218 vt 0.922793 0.973539 vt 0.921837 0.969590 vt 0.910791 0.982524 vt 0.979704 0.289360 vt 0.981231 0.294621 vt 0.206451 0.950062 vt 0.206451 0.952384 vt 0.205746 0.951312 vt 0.546662 0.994604 vt 0.972746 0.290264 vt 0.379176 0.971822 vt 0.373002 0.973366 vt 0.977909 0.270208 vt 0.976720 0.271434 vt 0.982781 0.602554 vt 0.978825 0.268282 vt 0.979399 0.268349 vt 0.369219 0.981417 vt 0.977253 0.304547 vt 0.976899 0.304305 vt 0.982982 0.598439 vt 0.300606 0.987068 vt 0.296848 0.987357 vt 0.555411 0.993187 vt 0.554851 0.995663 vt 0.915031 0.969788 vt 0.458959 0.997763 vt 0.988924 0.993904 vt 0.998832 0.456546 vt 0.998202 0.461217 vt 0.997528 0.459365 vt 0.383556 0.985510 vt 0.301050 0.997732 vt 0.910410 0.983420 vt 0.378739 0.980969 vt 0.302943 0.989359 vt 0.555169 0.996045 vt 0.548969 0.986462 vt 0.383158 0.672040 vt 0.389504 0.665286 vt 0.400673 0.676292 vt 0.937337 0.406249 vt 0.943165 0.410571 vt 0.931546 0.412702 vt 0.926480 0.389697 vt 0.933496 0.394825 vt 0.930855 0.387075 vt 0.916791 0.365648 vt 0.922198 0.352619 vt 0.928319 0.370788 vt 0.373793 0.666430 vt 0.382413 0.657410 vt 0.913815 0.408321 vt 0.922772 0.400015 vt 0.386840 0.654930 vt 0.381794 0.644007 vt 0.918967 0.387976 vt 0.905520 0.387468 vt 0.398224 0.688018 vt 0.375368 0.690261 vt 0.382297 0.699624 vt 0.365876 0.714902 vt 0.365777 0.725516 vt 0.353851 0.729010 vt 0.368804 0.738570 vt 0.338850 0.750230 vt 0.358037 0.773571 vt 0.368590 0.756749 vt 0.375458 0.772309 vt 0.375978 0.783971 vt 0.400196 0.802243 vt 0.386245 0.799666 vt 0.413505 0.825532 vt 0.415371 0.818050 vt 0.371885 0.680441 vt 0.349957 0.685071 vt 0.355463 0.678324 vt 0.355749 0.708968 vt 0.339089 0.723515 vt 0.354473 0.786037 vt 0.397992 0.821619 vt 0.387626 0.823293 vt 0.376773 0.821520 vt 0.405568 0.833829 vt 0.902778 0.400571 vt 0.904499 0.407368 vt 0.899003 0.391590 vt 0.355037 0.658645 vt 0.358122 0.665896 vt 0.365601 0.645463 vt 0.375997 0.637903 vt 0.326365 0.710143 vt 0.341720 0.685607 vt 0.325324 0.719837 vt 0.338303 0.775506 vt 0.326970 0.762656 vt 0.352008 0.799142 vt 0.337924 0.791186 vt 0.374845 0.803997 vt 0.312394 0.749301 vt 0.309502 0.770797 vt 0.347466 0.811977 vt 0.339729 0.815836 vt 0.325417 0.799646 vt 0.361852 0.820407 vt 0.354246 0.825498 vt 0.348109 0.831214 vt 0.341556 0.834654 vt 0.318676 0.797375 vt 0.330691 0.820846 vt 0.299158 0.751451 vt 0.273620 0.829395 vt 0.278592 0.834836 vt 0.272620 0.839733 vt 0.387233 0.704936 vt 0.380486 0.717364 vt 0.404044 0.695073 vt 0.415040 0.676204 vt 0.406022 0.672370 vt 0.414046 0.671211 vt 0.939354 0.423465 vt 0.947471 0.415990 vt 0.945759 0.421184 vt 0.941232 0.432688 vt 0.927375 0.429475 vt 0.927500 0.437606 vt 0.741034 0.916631 vt 0.738156 0.911655 vt 0.742464 0.905509 vt 0.739167 0.903229 vt 0.743234 0.912134 vt 0.744316 0.915757 vt 0.745912 0.918706 vt 0.745134 0.920604 vt 0.741427 0.923958 vt 0.744399 0.927840 vt 0.753869 0.929325 vt 0.753895 0.933232 vt 0.419070 0.674964 vt 0.414926 0.685160 vt 0.412678 0.685848 vt 0.408782 0.692669 vt 0.394639 0.695203 vt 0.394053 0.705156 vt 0.391030 0.706590 vt 0.398279 0.701662 vt 0.400410 0.701259 vt 0.387471 0.712900 vt 0.382379 0.719606 vt 0.378232 0.721151 vt 0.642550 0.995212 vt 0.637123 0.996145 vt 0.642356 0.992765 vt 0.281671 0.836842 vt 0.277625 0.846160 vt 0.283617 0.841679 vt 0.272730 0.853076 vt 0.277042 0.856069 vt 0.281214 0.858780 vt 0.277958 0.864638 vt 0.271832 0.863975 vt 0.269540 0.856121 vt 0.271494 0.879595 vt 0.277179 0.880469 vt 0.274086 0.882524 vt 0.845637 0.427571 vt 0.837614 0.424096 vt 0.843115 0.419363 vt 0.282242 0.872773 vt 0.279380 0.875243 vt 0.276820 0.891264 vt 0.271978 0.892869 vt 0.285675 0.916418 vt 0.319015 0.713580 vt 0.312432 0.721426 vt 0.325921 0.702975 vt 0.471833 0.986978 vt 0.463637 0.982211 vt 0.471818 0.978756 vt 0.348328 0.669799 vt 0.342071 0.671172 vt 0.348374 0.658628 vt 0.356482 0.644892 vt 0.912208 0.427267 vt 0.907398 0.441118 vt 0.903038 0.437230 vt 0.372157 0.632841 vt 0.364237 0.635763 vt 0.894976 0.449399 vt 0.896545 0.439900 vt 0.899310 0.432982 vt 0.904152 0.467419 vt 0.899582 0.474000 vt 0.899866 0.451225 vt 0.894910 0.475946 vt 0.884571 0.346434 vt 0.888353 0.348527 vt 0.862856 0.359970 vt 0.862859 0.355572 vt 0.868221 0.374379 vt 0.857996 0.380753 vt 0.846771 0.362976 vt 0.843957 0.390589 vt 0.839765 0.371163 vt 0.833744 0.406194 vt 0.820489 0.413752 vt 0.825660 0.386531 vt 0.828534 0.421058 vt 0.819301 0.426514 vt 0.832055 0.437490 vt 0.817326 0.436325 vt 0.833041 0.427198 vt 0.845043 0.256260 vt 0.864976 0.250518 vt 0.877427 0.253418 vt 0.846156 0.269249 vt 0.864133 0.496707 vt 0.865419 0.477918 vt 0.877510 0.486790 vt 0.877842 0.496133 vt 0.841770 0.245047 vt 0.855594 0.237261 vt 0.835032 0.255473 vt 0.554177 0.707882 vt 0.548984 0.696497 vt 0.557585 0.690015 vt 0.833274 0.244821 vt 0.837421 0.234639 vt 0.545191 0.707001 vt 0.551360 0.732913 vt 0.545177 0.737572 vt 0.534222 0.714876 vt 0.529292 0.728175 vt 0.529366 0.709782 vt 0.538433 0.690877 vt 0.534927 0.699514 vt 0.529962 0.696883 vt 0.536211 0.683882 vt 0.542615 0.684976 vt 0.552075 0.686164 vt 0.853916 0.513416 vt 0.847671 0.521714 vt 0.851779 0.505443 vt 0.856389 0.489450 vt 0.859858 0.505321 vt 0.547315 0.674082 vt 0.550839 0.677435 vt 0.844609 0.530492 vt 0.837656 0.523823 vt 0.838902 0.519494 vt 0.842615 0.501843 vt 0.835901 0.472828 vt 0.850780 0.475221 vt 0.826236 0.507977 vt 0.827963 0.505065 vt 0.829854 0.466274 vt 0.839791 0.463474 vt 0.818204 0.469554 vt 0.821982 0.455919 vt 0.826160 0.445772 vt 0.565915 0.669411 vt 0.569864 0.661585 vt 0.578471 0.663568 vt 0.571327 0.670205 vt 0.824225 0.488616 vt 0.836719 0.489791 vt 0.979416 0.800216 vt 0.981580 0.792092 vt 0.989314 0.790160 vt 0.588152 0.655830 vt 0.590576 0.649171 vt 0.813917 0.483929 vt 0.807088 0.479120 vt 0.807348 0.471968 vt 0.821425 0.477863 vt 0.813686 0.443039 vt 0.800430 0.446725 vt 0.789457 0.452154 vt 0.594458 0.649849 vt 0.602862 0.643466 vt 0.617929 0.638626 vt 0.643087 0.631432 vt 0.655132 0.628466 vt 0.655934 0.631721 vt 0.637791 0.629603 vt 0.633778 0.633769 vt 0.620719 0.635345 vt 0.649644 0.636832 vt 0.779916 0.418777 vt 0.787880 0.419858 vt 0.783354 0.424929 vt 0.636895 0.637669 vt 0.782580 0.441909 vt 0.789560 0.440563 vt 0.790115 0.427596 vt 0.798902 0.436339 vt 0.803553 0.428509 vt 0.792305 0.417963 vt 0.809080 0.414334 vt 0.816550 0.401140 vt 0.794500 0.408427 vt 0.805239 0.401710 vt 0.782588 0.410327 vt 0.663578 0.630420 vt 0.666925 0.627136 vt 0.681652 0.623837 vt 0.685812 0.619193 vt 0.798962 0.398958 vt 0.798692 0.388232 vt 0.815163 0.393263 vt 0.812987 0.383877 vt 0.801720 0.376729 vt 0.801104 0.372812 vt 0.811865 0.362968 vt 0.797672 0.373809 vt 0.803251 0.360265 vt 0.835195 0.355380 vt 0.820667 0.376896 vt 0.831101 0.377170 vt 0.821710 0.363676 vt 0.814047 0.351118 vt 0.807906 0.359564 vt 0.821531 0.353983 vt 0.827905 0.349374 vt 0.820110 0.347863 vt 0.807544 0.343575 vt 0.815042 0.341600 vt 0.731002 0.614021 vt 0.711132 0.613742 vt 0.733615 0.610531 vt 0.708337 0.609691 vt 0.714642 0.604536 vt 0.729926 0.606675 vt 0.704471 0.605790 vt 0.702526 0.613878 vt 0.686325 0.610808 vt 0.693167 0.611407 vt 0.669330 0.621924 vt 0.646087 0.625506 vt 0.298008 0.757755 vt 0.305479 0.776549 vt 0.637349 0.626963 vt 0.296337 0.744071 vt 0.300057 0.732602 vt 0.304929 0.726483 vt 0.622008 0.308855 vt 0.622008 0.312975 vt 0.618100 0.310741 vt 0.988212 0.660570 vt 0.985515 0.648754 vt 0.991650 0.654621 vt 0.992772 0.648257 vt 0.077800 0.995229 vt 0.081736 0.989912 vt 0.081910 0.995229 vt 0.464813 0.977639 vt 0.558270 0.664858 vt 0.999421 0.450748 vt 0.999421 0.456546 vt 0.997528 0.453388 vt 0.540877 0.673613 vt 0.531022 0.683762 vt 0.916288 0.428823 vt 0.525217 0.698821 vt 0.909975 0.443789 vt 0.909628 0.458738 vt 0.912819 0.467570 vt 0.909463 0.475694 vt 0.852467 0.413126 vt 0.844502 0.407190 vt 0.857456 0.405511 vt 0.862683 0.389860 vt 0.849816 0.399621 vt 0.848443 0.415284 vt 0.879693 0.237902 vt 0.878880 0.246425 vt 0.873377 0.235250 vt 0.868414 0.236791 vt 0.875312 0.229625 vt 0.878833 0.233841 vt 0.871114 0.231036 vt 0.890299 0.483272 vt 0.893015 0.487268 vt 0.889155 0.490011 vt 0.884725 0.257676 vt 0.882688 0.269305 vt 0.882783 0.255878 vt 0.888308 0.478147 vt 0.892234 0.480714 vt 0.876284 0.474456 vt 0.863892 0.463901 vt 0.853962 0.453413 vt 0.849943 0.447298 vt 0.841524 0.437630 vt 0.753239 0.596482 vt 0.750891 0.611992 vt 0.735650 0.596624 vt 0.725174 0.600229 vt 0.348325 0.841569 vt 0.342436 0.845302 vt 0.352018 0.853666 vt 0.352440 0.860762 vt 0.757835 0.602383 vt 0.756855 0.610682 vt 0.759311 0.617928 vt 0.751842 0.617686 vt 0.815826 0.305132 vt 0.812500 0.299688 vt 0.815846 0.284829 vt 0.818344 0.318815 vt 0.811656 0.321722 vt 0.817512 0.314657 vt 0.820878 0.298208 vt 0.820435 0.306727 vt 0.819386 0.308764 vt 0.818133 0.289405 vt 0.354134 0.865065 vt 0.349462 0.864955 vt 0.357853 0.863993 vt 0.358609 0.857609 vt 0.359631 0.862218 vt 0.356350 0.857566 vt 0.505452 0.903255 vt 0.505072 0.908294 vt 0.496281 0.906992 vt 0.484635 0.919947 vt 0.483077 0.916120 vt 0.493755 0.912633 vt 0.482218 0.920363 vt 0.822610 0.315991 vt 0.824057 0.321916 vt 0.821236 0.326108 vt 0.820086 0.313193 vt 0.494624 0.903748 vt 0.821239 0.282514 vt 0.817299 0.279103 vt 0.820819 0.278987 vt 0.501360 0.901390 vt 0.818952 0.340817 vt 0.824412 0.328139 vt 0.355242 0.849999 vt 0.511405 0.906208 vt 0.516441 0.912302 vt 0.513512 0.914904 vt 0.502855 0.917065 vt 0.500033 0.926295 vt 0.506862 0.922189 vt 0.505234 0.930799 vt 0.498949 0.932912 vt 0.824754 0.342672 vt 0.510613 0.924230 vt 0.843949 0.357145 vt 0.830315 0.345618 vt 0.832771 0.350553 vt 0.293629 0.773743 vt 0.287220 0.785127 vt 0.289481 0.769084 vt 0.882870 0.366215 vt 0.891703 0.353172 vt 0.516869 0.925755 vt 0.515216 0.929023 vt 0.366783 0.823833 vt 0.356412 0.831207 vt 0.293473 0.765555 vt 0.295696 0.762475 vt 0.295721 0.766916 vt 0.293676 0.760968 vt 0.516090 0.937711 vt 0.513282 0.937535 vt 0.513166 0.932048 vt 0.386921 0.824376 vt 0.295152 0.785786 vt 0.293138 0.784160 vt 0.294891 0.778350 vt 0.998683 0.365649 vt 0.996640 0.364394 vt 0.997559 0.361550 vt 0.129897 0.997124 vt 0.129001 0.997234 vt 0.130915 0.994559 vt 0.891414 0.358066 vt 0.894613 0.353155 vt 0.875273 0.377960 vt 0.871979 0.380437 vt 0.884128 0.366722 vt 0.867145 0.391512 vt 0.060242 0.995897 vt 0.055896 0.989214 vt 0.060527 0.986994 vt 0.056404 0.993805 vt 0.991797 0.168456 vt 0.990562 0.172995 vt 0.986151 0.171258 vt 0.288619 0.860463 vt 0.285790 0.865704 vt 0.289744 0.848155 vt 0.289879 0.838784 vt 0.289108 0.834379 vt 0.634174 0.988481 vt 0.641940 0.984995 vt 0.982031 0.634112 vt 0.974380 0.630392 vt 0.982712 0.629131 vt 0.180412 0.990368 vt 0.180412 0.996080 vt 0.177037 0.993036 vt 0.755066 0.313183 vt 0.750626 0.313183 vt 0.753917 0.308176 vt 0.269517 0.984816 vt 0.265300 0.988735 vt 0.265877 0.985555 vt 0.266304 0.982951 vt 0.275367 0.979495 vt 0.275625 0.985868 vt 0.753622 0.921054 vt 0.750143 0.917083 vt 0.882784 0.251166 vt 0.886461 0.242949 vt 0.274768 0.973607 vt 0.993286 0.702838 vt 0.986795 0.712098 vt 0.987233 0.703228 vt 0.994933 0.695752 vt 0.995346 0.704240 vt 0.748070 0.902775 vt 0.748150 0.906631 vt 0.941125 0.457229 vt 0.925469 0.448967 vt 0.939587 0.440534 vt 0.742732 0.893780 vt 0.747806 0.893747 vt 0.919141 0.325255 vt 0.930689 0.315781 vt 0.935168 0.326356 vt 0.941726 0.316170 vt 0.927910 0.346201 vt 0.927108 0.354449 vt 0.929007 0.333726 vt 0.914886 0.348824 vt 0.917359 0.334232 vt 0.846978 0.791184 vt 0.837200 0.785693 vt 0.846129 0.779515 vt 0.905490 0.335835 vt 0.906326 0.368454 vt 0.900757 0.350240 vt 0.859971 0.762534 vt 0.838985 0.762758 vt 0.828970 0.739148 vt 0.842109 0.734744 vt 0.844850 0.752682 vt 0.910410 0.906043 vt 0.914985 0.906902 vt 0.911352 0.915591 vt 0.828586 0.728731 vt 0.817245 0.726356 vt 0.831515 0.715918 vt 0.831528 0.698539 vt 0.821712 0.683331 vt 0.838964 0.682562 vt 0.848428 0.655741 vt 0.861488 0.651954 vt 0.838819 0.671829 vt 0.874222 0.628424 vt 0.859459 0.633486 vt 0.879761 0.630670 vt 0.876014 0.635496 vt 0.835882 0.772657 vt 0.819628 0.745901 vt 0.814943 0.769965 vt 0.803192 0.732878 vt 0.802839 0.707046 vt 0.818270 0.671572 vt 0.837480 0.652437 vt 0.866339 0.620869 vt 0.867965 0.621799 vt 0.897001 0.366034 vt 0.895116 0.348600 vt 0.897576 0.335855 vt 0.822275 0.787503 vt 0.819173 0.794647 vt 0.829282 0.806521 vt 0.998368 0.521401 vt 0.998368 0.531838 vt 0.993887 0.518584 vt 0.836728 0.810749 vt 0.843957 0.802853 vt 0.907743 0.325963 vt 0.791076 0.746831 vt 0.789883 0.737436 vt 0.802480 0.682813 vt 0.801903 0.667581 vt 0.815598 0.658923 vt 0.824344 0.637192 vt 0.810717 0.646561 vt 0.783709 0.743886 vt 0.776802 0.709590 vt 0.791188 0.695826 vt 0.773309 0.688620 vt 0.802951 0.643222 vt 0.816860 0.632757 vt 0.810915 0.627686 vt 0.804209 0.624611 vt 0.781891 0.662123 vt 0.793430 0.638553 vt 0.919373 0.907904 vt 0.920244 0.915015 vt 0.856498 0.755862 vt 0.849079 0.746850 vt 0.865362 0.755150 vt 0.862058 0.773482 vt 0.945759 0.493592 vt 0.939354 0.491459 vt 0.941232 0.481888 vt 0.927375 0.485486 vt 0.927500 0.477237 vt 0.939587 0.473971 vt 0.925616 0.480923 vt 0.738156 0.875864 vt 0.741034 0.870996 vt 0.742464 0.882231 vt 0.743234 0.875505 vt 0.742645 0.878929 vt 0.739167 0.884334 vt 0.744316 0.871857 vt 0.745912 0.868912 vt 0.745134 0.866919 vt 0.741431 0.862296 vt 0.744399 0.859495 vt 0.744365 0.882455 vt 0.753557 0.853621 vt 0.753869 0.857686 vt 0.873524 0.763298 vt 0.875724 0.772375 vt 0.870465 0.758256 vt 0.871802 0.760423 vt 0.855008 0.746347 vt 0.858791 0.748727 vt 0.495204 0.983078 vt 0.496666 0.977184 vt 0.497422 0.986592 vt 0.861673 0.749337 vt 0.848400 0.738639 vt 0.843439 0.732264 vt 0.840234 0.730043 vt 0.924974 0.907998 vt 0.922755 0.909879 vt 0.920294 0.898667 vt 0.919118 0.888657 vt 0.926374 0.902905 vt 0.915054 0.891869 vt 0.913723 0.880980 vt 0.919342 0.879816 vt 0.913030 0.865475 vt 0.915585 0.862490 vt 0.917849 0.866231 vt 0.919943 0.871921 vt 0.061942 0.788803 vt 0.068147 0.778872 vt 0.067745 0.792393 vt 0.072041 0.792201 vt 0.075516 0.794472 vt 0.077080 0.802621 vt 0.911335 0.862093 vt 0.913197 0.852263 vt 0.918253 0.853782 vt 0.927472 0.828963 vt 0.777062 0.736618 vt 0.790748 0.753842 vt 0.806816 0.769946 vt 0.799521 0.767283 vt 0.106324 0.987624 vt 0.098329 0.982441 vt 0.105653 0.978353 vt 0.097654 0.975680 vt 0.820292 0.776085 vt 0.807338 0.785146 vt 0.813347 0.786101 vt 0.820452 0.807733 vt 0.812575 0.795052 vt 0.912140 0.505720 vt 0.912983 0.514742 vt 0.906385 0.504967 vt 0.831525 0.814257 vt 0.906483 0.491777 vt 0.900932 0.491016 vt 0.895989 0.492563 vt 0.900897 0.504829 vt 0.956785 0.225930 vt 0.960723 0.232506 vt 0.957738 0.253567 vt 0.091656 0.857515 vt 0.081289 0.847613 vt 0.102169 0.862409 vt 0.086465 0.834081 vt 0.105722 0.860723 vt 0.065759 0.843483 vt 0.076549 0.827163 vt 0.052349 0.801112 vt 0.062651 0.816756 vt 0.039181 0.792985 vt 0.037075 0.783909 vt 0.046484 0.786797 vt 0.035441 0.771263 vt 0.049669 0.771252 vt 0.037513 0.780689 vt 0.044019 0.762770 vt 0.083253 0.733961 vt 0.081639 0.747483 vt 0.068888 0.735584 vt 0.074751 0.722009 vt 0.864976 0.279653 vt 0.876862 0.278311 vt 0.867966 0.294905 vt 0.855591 0.293350 vt 0.082199 0.715588 vt 0.094962 0.726282 vt 0.844122 0.276291 vt 0.841770 0.284669 vt 0.837420 0.295400 vt 0.829404 0.268602 vt 0.834232 0.278917 vt 0.557480 0.737666 vt 0.566923 0.754006 vt 0.557584 0.755088 vt 0.534319 0.734086 vt 0.548984 0.748610 vt 0.534927 0.745614 vt 0.529700 0.744150 vt 0.538433 0.754297 vt 0.536211 0.761345 vt 0.542615 0.760264 vt 0.083914 0.709500 vt 0.095002 0.717413 vt 0.070864 0.705888 vt 0.075192 0.705592 vt 0.547315 0.771289 vt 0.550843 0.767952 vt 0.553641 0.766561 vt 0.067505 0.689520 vt 0.059407 0.690807 vt 0.064517 0.684072 vt 0.056037 0.720035 vt 0.062157 0.708604 vt 0.054272 0.736894 vt 0.057712 0.746403 vt 0.048499 0.704114 vt 0.051744 0.695064 vt 0.565915 0.776171 vt 0.040628 0.752301 vt 0.568101 0.773699 vt 0.578471 0.782136 vt 0.044514 0.719940 vt 0.980236 0.000000 vt 0.986731 0.008451 vt 0.976351 0.011628 vt 0.040559 0.714677 vt 0.986410 0.021646 vt 0.588769 0.789975 vt 0.569864 0.784048 vt 0.035181 0.723367 vt 0.041024 0.730411 vt 0.038372 0.738096 vt 0.028491 0.734622 vt 0.032202 0.764346 vt 0.020324 0.759290 vt 0.010524 0.752791 vt 0.655132 0.817914 vt 0.643088 0.814960 vt 0.655919 0.814600 vt 0.637791 0.816801 vt 0.633778 0.812616 vt 0.620719 0.810968 vt 0.617930 0.807637 vt 0.621957 0.805822 vt 0.632514 0.808569 vt 0.012812 0.742693 vt 0.028811 0.727384 vt 0.655983 0.810289 vt 0.649888 0.809462 vt 0.009888 0.764395 vt 0.004380 0.765670 vt 0.009705 0.777358 vt 0.011752 0.786879 vt 0.007525 0.784686 vt 0.018325 0.769496 vt 0.022518 0.777581 vt 0.028197 0.791536 vt 0.116675 0.998000 vt 0.112155 0.990811 vt 0.116675 0.988380 vt 0.014122 0.796142 vt 0.024606 0.803397 vt 0.035631 0.804755 vt 0.000299 0.784883 vt 0.663578 0.815882 vt 0.020571 0.831062 vt 0.018207 0.815976 vt 0.021157 0.827329 vt 0.996727 0.000000 vt 0.999296 0.010014 vt 0.996710 0.012003 vt 0.666925 0.819157 vt 0.681651 0.822262 vt 0.685812 0.826890 vt 0.018370 0.805674 vt 0.002746 0.793331 vt 0.034537 0.812143 vt 0.030778 0.841502 vt 0.026772 0.844589 vt 0.044660 0.819461 vt 0.058970 0.835042 vt 0.050202 0.828780 vt 0.054356 0.850069 vt 0.039776 0.828435 vt 0.032328 0.821114 vt 0.040634 0.841383 vt 0.032353 0.853408 vt 0.046770 0.855611 vt 0.040231 0.850869 vt 0.025409 0.857575 vt 0.032573 0.863079 vt 0.037136 0.879277 vt 0.033888 0.886350 vt 0.713050 0.832400 vt 0.729864 0.831492 vt 0.733615 0.835286 vt 0.750891 0.833727 vt 0.751647 0.828052 vt 0.729925 0.839137 vt 0.693167 0.834600 vt 0.702526 0.832083 vt 0.708336 0.836223 vt 0.686325 0.835220 vt 0.704471 0.840089 vt 0.761677 0.701710 vt 0.763193 0.707967 vt 0.646088 0.820872 vt 0.769164 0.731879 vt 0.763943 0.726007 vt 0.987649 0.438681 vt 0.985036 0.450874 vt 0.983994 0.439570 vt 0.593164 0.805342 vt 0.590575 0.796693 vt 0.596294 0.803174 vt 0.579625 0.796931 vt 0.109816 0.984355 vt 0.111091 0.970332 vt 0.563351 0.788077 vt 0.558270 0.780634 vt 0.551459 0.780718 vt 0.540877 0.771678 vt 0.923807 0.516791 vt 0.920380 0.517738 vt 0.916288 0.506430 vt 0.531022 0.761392 vt 0.909975 0.491173 vt 0.525958 0.732210 vt 0.525217 0.746220 vt 0.068678 0.808274 vt 0.063322 0.800662 vt 0.081503 0.818481 vt 0.056045 0.784108 vt 0.878879 0.283968 vt 0.879692 0.292782 vt 0.873375 0.295725 vt 0.878832 0.297086 vt 0.875310 0.301535 vt 0.107651 0.730481 vt 0.112317 0.728837 vt 0.109779 0.732968 vt 0.870631 0.300133 vt 0.882783 0.274266 vt 0.162951 0.975821 vt 0.165489 0.979447 vt 0.161218 0.986457 vt 0.093926 0.738045 vt 0.106118 0.724098 vt 0.088255 0.746985 vt 0.071465 0.757178 vt 0.081327 0.755487 vt 0.067656 0.762751 vt 0.059084 0.771695 vt 0.203400 0.993654 vt 0.202628 0.996472 vt 0.195407 0.990459 vt 0.753239 0.849066 vt 0.732945 0.846563 vt 0.796692 0.617891 vt 0.804664 0.614022 vt 0.793281 0.633382 vt 0.814588 0.605673 vt 0.811042 0.617628 vt 0.756855 0.834970 vt 0.481636 0.950478 vt 0.484832 0.945179 vt 0.485151 0.965292 vt 0.759311 0.827715 vt 0.489937 0.952114 vt 0.489412 0.943562 vt 0.492725 0.950245 vt 0.487329 0.960846 vt 0.815985 0.593552 vt 0.809881 0.595924 vt 0.812244 0.591608 vt 0.819481 0.594804 vt 0.820792 0.601278 vt 0.818704 0.601548 vt 0.814483 0.598469 vt 0.371620 0.929876 vt 0.376691 0.930730 vt 0.372928 0.936378 vt 0.377596 0.922038 vt 0.392780 0.914541 vt 0.385513 0.931099 vt 0.383682 0.921098 vt 0.041545 0.886819 vt 0.039656 0.883654 vt 0.041696 0.883768 vt 0.040603 0.877343 vt 0.038024 0.889398 vt 0.389458 0.912067 vt 0.374683 0.919790 vt 0.380298 0.913453 vt 0.490589 0.967495 vt 0.492224 0.969694 vt 0.490277 0.970845 vt 0.370749 0.925573 vt 0.493916 0.964735 vt 0.492863 0.960589 vt 0.036347 0.864135 vt 0.038424 0.856907 vt 0.817908 0.609105 vt 0.396392 0.919362 vt 0.400776 0.931631 vt 0.400747 0.924963 vt 0.402908 0.930482 vt 0.389370 0.936344 vt 0.394880 0.931055 vt 0.397903 0.937218 vt 0.049479 0.859228 vt 0.046248 0.862053 vt 0.380691 0.940763 vt 0.062981 0.848937 vt 0.954255 0.268680 vt 0.958417 0.272209 vt 0.955920 0.276687 vt 0.052045 0.854539 vt 0.958627 0.277537 vt 0.954090 0.281887 vt 0.958337 0.263988 vt 0.951725 0.250669 vt 0.100691 0.843053 vt 0.109044 0.856438 vt 0.390221 0.946904 vt 0.377355 0.942960 vt 0.393974 0.946011 vt 0.390443 0.940417 vt 0.397510 0.944690 vt 0.820369 0.624666 vt 0.825276 0.630591 vt 0.818817 0.627003 vt 0.829023 0.633472 vt 0.838827 0.635064 vt 0.817080 0.621021 vt 0.402536 0.948754 vt 0.403163 0.946696 vt 0.960809 0.275300 vt 0.960542 0.270812 vt 0.836969 0.633318 vt 0.846248 0.632103 vt 0.849400 0.632610 vt 0.848561 0.631516 vt 0.961209 0.310555 vt 0.963718 0.310579 vt 0.962627 0.313150 vt 0.960235 0.230035 vt 0.393123 0.998876 vt 0.391762 0.995347 vt 0.393546 0.994697 vt 0.978209 0.807348 vt 0.976225 0.808735 vt 0.976744 0.806260 vt 0.391800 0.992799 vt 0.990155 0.636991 vt 0.990785 0.639960 vt 0.988358 0.638599 vt 0.767032 0.310643 vt 0.768961 0.313183 vt 0.766530 0.313183 vt 0.109037 0.851539 vt 0.995371 0.539482 vt 0.998529 0.532179 vt 0.998283 0.540474 vt 0.926688 0.822718 vt 0.932587 0.815674 vt 0.102203 0.842506 vt 0.092656 0.828867 vt 0.086288 0.816982 vt 0.060401 0.773899 vt 0.050866 0.781157 vt 0.929201 0.886014 vt 0.922816 0.885615 vt 0.925951 0.881869 vt 0.055959 0.780922 vt 0.957837 0.691221 vt 0.959129 0.695663 vt 0.953137 0.693218 vt 0.931615 0.895888 vt 0.959129 0.686343 vt 0.932351 0.905391 vt 0.196385 0.985606 vt 0.203577 0.983739 vt 0.203759 0.986019 vt 0.990919 0.478187 vt 0.987138 0.470314 vt 0.994408 0.477245 vt 0.995389 0.471630 vt 0.171527 0.984875 vt 0.175751 0.988814 vt 0.172492 0.988310 vt 0.165600 0.985994 vt 0.756225 0.860929 vt 0.753622 0.865742 vt 0.756100 0.856871 vt 0.751588 0.869800 vt 0.206451 0.948115 vt 0.206451 0.950062 vt 0.205585 0.948720 vt 0.172571 0.993854 vt 0.175183 0.988878 vt 0.175564 0.994533 vt 0.503482 0.986992 vt 0.505415 0.985517 vt 0.498030 0.990503 vt 0.505066 0.994187 vt 0.497371 0.994232 vt 0.879900 0.301923 vt 0.880602 0.305121 vt 0.878841 0.307973 vt 0.748151 0.880597 vt 0.886543 0.278718 vt 0.886567 0.282744 vt 0.887282 0.276241 vt 0.885923 0.265047 vt 0.925469 0.465981 vt 0.737858 0.893655 vt 0.372068 0.726448 vt 0.419234 0.822048 vt 0.418631 0.825095 vt 0.407182 0.832786 vt 0.330855 0.825988 vt 0.927606 0.426366 vt 0.925616 0.434034 vt 0.742644 0.908758 vt 0.739844 0.922187 vt 0.744366 0.905238 vt 0.418347 0.672343 vt 0.411203 0.689236 vt 0.985131 0.706413 vt 0.374287 0.760286 vt 0.284888 0.922810 vt 0.334499 0.688708 vt 0.477882 0.984628 vt 0.880185 0.344481 vt 0.829435 0.258846 vt 0.566923 0.691006 vt 0.983254 0.811828 vt 0.989630 0.803349 vt 0.818810 0.496185 vt 0.629435 0.637368 vt 0.621957 0.640438 vt 0.787510 0.458263 vt 0.697799 0.617993 vt 0.669733 0.628163 vt 0.660370 0.618558 vt 0.984548 0.659883 vt 0.993026 0.640161 vt 0.593164 0.640482 vt 0.596294 0.642739 vt 0.579625 0.648768 vt 0.476226 0.970250 vt 0.563351 0.657425 vt 0.551459 0.664662 vt 0.599578 0.994370 vt 0.595034 0.990256 vt 0.599578 0.988842 vt 0.923807 0.418938 vt 0.920380 0.417900 vt 0.525958 0.712837 vt 0.882590 0.242191 vt 0.879901 0.228969 vt 0.894855 0.485186 vt 0.277779 0.975937 vt 0.279830 0.986422 vt 0.870295 0.464684 vt 0.878436 0.472092 vt 0.863607 0.455624 vt 0.853513 0.451693 vt 0.857992 0.453675 vt 0.751626 0.591717 vt 0.758830 0.620908 vt 0.823651 0.299952 vt 0.813227 0.282691 vt 0.825904 0.318731 vt 0.488266 0.924742 vt 0.484437 0.923576 vt 0.823852 0.307494 vt 0.481289 0.915660 vt 0.483015 0.909906 vt 0.486755 0.907681 vt 0.823630 0.289496 vt 0.822758 0.280062 vt 0.824563 0.285148 vt 0.820192 0.344100 vt 0.496900 0.934187 vt 0.488957 0.927939 vt 0.504683 0.935454 vt 0.507649 0.934148 vt 0.290726 0.761134 vt 0.853286 0.357317 vt 0.354600 0.837555 vt 0.358172 0.833397 vt 0.363065 0.827001 vt 0.375054 0.823330 vt 0.384733 0.823802 vt 0.295621 0.805321 vt 0.963729 0.311798 vt 0.965171 0.309480 vt 0.966221 0.312014 vt 0.292008 0.811905 vt 0.295210 0.807784 vt 0.997207 0.366626 vt 0.993074 0.386972 vt 0.993479 0.390989 vt 0.991638 0.390408 vt 0.891027 0.349920 vt 0.993917 0.145182 vt 0.992120 0.143688 vt 0.994546 0.142333 vt 0.129475 0.994320 vt 0.770934 0.310700 vt 0.771425 0.313183 vt 0.768961 0.313183 vt 0.130099 0.990027 vt 0.996581 0.356445 vt 0.993794 0.357680 vt 0.993494 0.349327 vt 0.290418 0.929978 vt 0.844973 0.437011 vt 0.991797 0.177870 vt 0.635242 0.993497 vt 0.981210 0.638203 vt 0.976445 0.638649 vt 0.916003 0.522334 vt 0.921706 0.520328 vt 0.920650 0.524866 vt 0.268686 0.988184 vt 0.756225 0.925851 vt 0.756100 0.929930 vt 0.752541 0.917363 vt 0.981821 0.415365 vt 0.980809 0.415654 vt 0.981197 0.412927 vt 0.425480 0.994908 vt 0.427877 0.992315 vt 0.427523 0.997693 vt 0.987629 0.699409 vt 0.986874 0.695797 vt 0.878843 0.222761 vt 0.880604 0.225558 vt 0.886888 0.249908 vt 0.886568 0.246883 vt 0.887282 0.253557 vt 0.927986 0.457442 vt 0.999453 0.472187 vt 0.996040 0.465772 vt 0.999453 0.461575 vt 0.832442 0.726235 vt 0.879062 0.628395 vt 0.788950 0.659786 vt 0.994945 0.959442 vt 0.991555 0.954662 vt 0.994945 0.951780 vt 0.947471 0.498967 vt 0.608878 0.996745 vt 0.605724 0.993034 vt 0.608878 0.988842 vt 0.927606 0.488678 vt 0.739844 0.865225 vt 0.927522 0.491227 vt 0.931442 0.493816 vt 0.879524 0.773214 vt 0.876029 0.765762 vt 0.753776 0.850696 vt 0.749153 0.852901 vt 0.911428 0.889987 vt 0.836917 0.694633 vt 0.811515 0.779850 vt 0.837792 0.584621 vt 0.844625 0.583941 vt 0.844625 0.591306 vt 0.984990 0.045811 vt 0.979941 0.042318 vt 0.985956 0.035816 vt 0.552077 0.759029 vt 0.564403 0.760735 vt 0.056821 0.688558 vt 0.048442 0.742770 vt 0.983783 0.028075 vt 0.976968 0.021981 vt 0.595027 0.795640 vt 0.588129 0.783970 vt 0.602859 0.802581 vt 0.003876 0.779251 vt 0.644410 0.804346 vt 0.697798 0.827970 vt 0.022781 0.841173 vt 0.017576 0.829671 vt 0.029194 0.882523 vt 0.714642 0.841301 vt 0.998726 0.980871 vt 0.997228 0.978319 vt 0.998726 0.970785 vt 0.669330 0.824310 vt 0.660370 0.827649 vt 0.768552 0.682810 vt 0.637351 0.819416 vt 0.760080 0.715045 vt 0.991203 0.444536 vt 0.780352 0.312574 vt 0.781440 0.308247 vt 0.784408 0.309334 vt 0.992389 0.450960 vt 0.992643 0.459235 vt 0.291540 0.994956 vt 0.287255 0.994956 vt 0.287416 0.989713 vt 0.999398 0.386047 vt 0.997496 0.383290 vt 0.999398 0.380153 vt 0.967837 0.591573 vt 0.962964 0.591573 vt 0.966409 0.586281 vt 0.090421 0.828344 vt 0.882783 0.279022 vt 0.883235 0.288902 vt 0.105777 0.735263 vt 0.165926 0.973480 vt 0.096363 0.740308 vt 0.071205 0.758718 vt 0.757835 0.843182 vt 0.758830 0.824709 vt 0.755713 0.823475 vt 0.488378 0.941435 vt 0.369310 0.931391 vt 0.033007 0.890350 vt 0.492887 0.942578 vt 0.494757 0.944423 vt 0.487077 0.970325 vt 0.038620 0.863541 vt 0.043163 0.862148 vt 0.395787 0.948809 vt 0.959771 0.251933 vt 0.959464 0.259353 vt 0.977090 0.811722 vt 0.827779 0.313127 vt 0.825994 0.310895 vt 0.828648 0.312995 vt 0.827335 0.310289 vt 0.825845 0.306353 vt 0.112075 0.856561 vt 0.064344 0.769909 vt 0.978595 0.050715 vt 0.983109 0.050036 vt 0.932056 0.909981 vt 0.709821 0.309056 vt 0.710049 0.313148 vt 0.706769 0.313148 vt 0.979948 0.496522 vt 0.977884 0.494197 vt 0.979982 0.493023 vt 0.986175 0.478822 vt 0.991392 0.464980 vt 0.995998 0.463912 vt 0.833671 0.313189 vt 0.835180 0.308035 vt 0.838010 0.313189 vt 0.755066 0.308934 vt 0.759348 0.308533 vt 0.759348 0.313183 vt 0.175046 0.985571 vt 0.174553 0.982933 vt 0.174837 0.998632 vt 0.886460 0.286849 vt 0.990093 0.415947 vt 0.988708 0.413356 vt 0.990093 0.412410 vt 0.748070 0.884416 vt 0.117641 0.570358 vt 0.112195 0.580000 vt 0.110937 0.571255 vt 0.939220 0.289461 vt 0.940285 0.281270 vt 0.946934 0.292388 vt 0.109232 0.558402 vt 0.113505 0.552805 vt 0.117752 0.557819 vt 0.115334 0.563278 vt 0.097727 0.563792 vt 0.105341 0.554369 vt 0.942995 0.279861 vt 0.838763 0.817247 vt 0.818832 0.818894 vt 0.831777 0.814257 vt 0.806212 0.829088 vt 0.803938 0.824839 vt 0.817479 0.827395 vt 0.801618 0.838340 vt 0.072338 0.516955 vt 0.080356 0.518947 vt 0.076296 0.521782 vt 0.062505 0.566197 vt 0.077817 0.566021 vt 0.080636 0.569373 vt 0.067355 0.571997 vt 0.059335 0.575546 vt 0.049959 0.565269 vt 0.026001 0.493692 vt 0.034637 0.488445 vt 0.036034 0.494063 vt 0.182472 0.008419 vt 0.187021 0.020042 vt 0.174361 0.007039 vt 0.179108 0.003823 vt 0.191154 0.016739 vt 0.118964 0.550924 vt 0.120753 0.557048 vt 0.111916 0.547696 vt 0.117447 0.546430 vt 0.107767 0.537389 vt 0.730052 0.312842 vt 0.733158 0.308919 vt 0.733158 0.313190 vt 0.962495 0.100700 vt 0.962495 0.105102 vt 0.959862 0.102100 vt 0.766885 0.905232 vt 0.762860 0.892129 vt 0.769461 0.900142 vt 0.093733 0.577204 vt 0.105016 0.586789 vt 0.092670 0.586799 vt 0.088405 0.574446 vt 0.089381 0.565210 vt 0.078719 0.572847 vt 0.039840 0.563678 vt 0.036125 0.558226 vt 0.049775 0.561297 vt 0.034291 0.553260 vt 0.030096 0.557620 vt 0.019947 0.545341 vt 0.017667 0.555063 vt 0.018444 0.549585 vt 0.234844 0.022675 vt 0.240904 0.021375 vt 0.238834 0.032140 vt 0.249272 0.033912 vt 0.232054 0.031503 vt 0.005527 0.521628 vt 0.016774 0.525286 vt 0.007871 0.527876 vt 0.082277 0.576737 vt 0.073201 0.574124 vt 0.067060 0.577483 vt 0.059292 0.581111 vt 0.064253 0.586195 vt 0.071380 0.581510 vt 0.069203 0.593946 vt 0.076965 0.584994 vt 0.087986 0.586452 vt 0.079152 0.602731 vt 0.116096 0.523308 vt 0.104002 0.514473 vt 0.095875 0.533699 vt 0.063880 0.484939 vt 0.063917 0.502056 vt 0.054160 0.490046 vt 0.052141 0.481982 vt 0.043321 0.478612 vt 0.025636 0.486127 vt 0.030778 0.475595 vt 0.159917 0.006432 vt 0.166213 0.003325 vt 0.169256 0.010652 vt 0.183112 0.023115 vt 0.200130 0.032519 vt 0.203174 0.029875 vt 0.807693 0.836537 vt 0.821897 0.833036 vt 0.933859 0.280334 vt 0.931836 0.285936 vt 0.941596 0.276257 vt 0.768450 0.858060 vt 0.764819 0.862245 vt 0.770583 0.854534 vt 0.025965 0.497499 vt 0.020421 0.496419 vt 0.763424 0.880964 vt 0.767615 0.890746 vt 0.760080 0.884075 vt 0.769505 0.895372 vt 0.777527 0.902405 vt 0.774977 0.906277 vt 0.015720 0.520522 vt 0.019551 0.521292 vt 0.016357 0.533198 vt 0.012874 0.534335 vt 0.017156 0.529580 vt 0.020376 0.532283 vt 0.021207 0.542121 vt 0.028957 0.548207 vt 0.619928 0.916968 vt 0.613637 0.914706 vt 0.621454 0.909129 vt 0.048812 0.558459 vt 0.076656 0.563992 vt 0.619433 0.851874 vt 0.620527 0.859639 vt 0.618400 0.865956 vt 0.929330 0.284546 vt 0.926543 0.282278 vt 0.612393 0.863000 vt 0.604307 0.864415 vt 0.607365 0.871152 vt 0.619371 0.894349 vt 0.611091 0.890978 vt 0.033520 0.539909 vt 0.024701 0.518479 vt 0.032063 0.525210 vt 0.783058 0.844365 vt 0.793024 0.838317 vt 0.790960 0.843465 vt 0.785609 0.849779 vt 0.776540 0.848763 vt 0.761889 0.872758 vt 0.764829 0.873461 vt 0.841071 0.841484 vt 0.837513 0.830386 vt 0.843103 0.839063 vt 0.829732 0.838287 vt 0.917410 0.231277 vt 0.925739 0.224467 vt 0.923803 0.227704 vt 0.797155 0.848199 vt 0.782969 0.859469 vt 0.776989 0.852649 vt 0.778633 0.863465 vt 0.769008 0.864209 vt 0.776106 0.870946 vt 0.769630 0.873768 vt 0.764881 0.882070 vt 0.846708 0.560821 vt 0.859039 0.553374 vt 0.854346 0.564344 vt 0.877177 0.578484 vt 0.875251 0.581145 vt 0.869695 0.574345 vt 0.860262 0.569779 vt 0.868304 0.567575 vt 0.929505 0.257613 vt 0.941146 0.252348 vt 0.938325 0.273440 vt 0.605630 0.905877 vt 0.594861 0.883256 vt 0.808829 0.854602 vt 0.808749 0.845823 vt 0.826026 0.856651 vt 0.813537 0.863361 vt 0.969810 0.694619 vt 0.974293 0.688117 vt 0.974293 0.695623 vt 0.795967 0.874547 vt 0.791740 0.860529 vt 0.802065 0.867444 vt 0.786070 0.868411 vt 0.786745 0.876770 vt 0.784224 0.880835 vt 0.790493 0.894299 vt 0.778339 0.888204 vt 0.774528 0.882283 vt 0.031433 0.511181 vt 0.038299 0.510199 vt 0.033469 0.545219 vt 0.035973 0.543295 vt 0.613372 0.900507 vt 0.609931 0.913421 vt 0.941584 0.267267 vt 0.945750 0.237044 vt 0.947880 0.239025 vt 0.945485 0.268669 vt 0.949515 0.244760 vt 0.093923 0.538476 vt 0.088413 0.533690 vt 0.092635 0.531631 vt 0.830070 0.874425 vt 0.841160 0.878469 vt 0.818835 0.878862 vt 0.909161 0.258469 vt 0.916937 0.240115 vt 0.913828 0.249589 vt 0.805150 0.883553 vt 0.795463 0.886855 vt 0.803005 0.892801 vt 0.799732 0.894541 vt 0.775138 0.878442 vt 0.799054 0.897995 vt 0.078712 0.545238 vt 0.083329 0.539759 vt 0.086654 0.545558 vt 0.087592 0.550408 vt 0.083684 0.554143 vt 0.595965 0.873867 vt 0.933197 0.247176 vt 0.937155 0.239054 vt 0.942414 0.238085 vt 0.591228 0.908368 vt 0.597427 0.915679 vt 0.609302 0.917181 vt 0.040531 0.531414 vt 0.042172 0.527487 vt 0.901710 0.591599 vt 0.896292 0.585450 vt 0.901710 0.584111 vt 0.444103 0.929139 vt 0.440489 0.952739 vt 0.432740 0.948828 vt 0.984932 0.218466 vt 0.984932 0.222679 vt 0.982982 0.219893 vt 0.807702 0.898898 vt 0.813499 0.900020 vt 0.896302 0.274933 vt 0.893076 0.263338 vt 0.903085 0.249293 vt 0.864433 0.550403 vt 0.863056 0.545074 vt 0.868372 0.560706 vt 0.871612 0.535462 vt 0.877533 0.535957 vt 0.829495 0.885957 vt 0.825058 0.896588 vt 0.949695 0.230663 vt 0.947383 0.228025 vt 0.086777 0.525688 vt 0.070080 0.514967 vt 0.077245 0.524898 vt 0.087079 0.536082 vt 0.071502 0.532397 vt 0.069858 0.544108 vt 0.062784 0.531641 vt 0.063951 0.520463 vt 0.585279 0.895652 vt 0.584469 0.908136 vt 0.056816 0.537274 vt 0.045267 0.533176 vt 0.052919 0.524862 vt 0.441956 0.900916 vt 0.440788 0.905155 vt 0.432390 0.903470 vt 0.042208 0.524440 vt 0.432717 0.911891 vt 0.445971 0.918577 vt 0.815617 0.903767 vt 0.810758 0.902178 vt 0.888403 0.281775 vt 0.889883 0.289983 vt 0.887775 0.286117 vt 0.891937 0.291495 vt 0.833162 0.905835 vt 0.835099 0.897883 vt 0.841847 0.903036 vt 0.847146 0.882894 vt 0.067230 0.516007 vt 0.055575 0.521640 vt 0.058605 0.521970 vt 0.429630 0.908766 vt 0.428062 0.903231 vt 0.422540 0.927208 vt 0.524419 0.748336 vt 0.523033 0.749200 vt 0.523079 0.745732 vt 0.837252 0.908975 vt 0.910449 0.302683 vt 0.918863 0.299840 vt 0.914338 0.305731 vt 0.066844 0.511383 vt 0.074869 0.516564 vt 0.064252 0.512301 vt 0.064375 0.505755 vt 0.062711 0.516962 vt 0.060845 0.514206 vt 0.056044 0.517739 vt 0.427329 0.915891 vt 0.056703 0.511589 vt 0.068423 0.507866 vt 0.908466 0.304158 vt 0.896348 0.296189 vt 0.904584 0.298613 vt 0.065712 0.491224 vt 0.064114 0.487285 vt 0.419542 0.915356 vt 0.077711 0.611330 vt 0.072413 0.617166 vt 0.066301 0.605377 vt 0.077246 0.621736 vt 0.083208 0.619240 vt 0.082097 0.630225 vt 0.083591 0.625821 vt 0.080958 0.648940 vt 0.071257 0.635988 vt 0.091517 0.634479 vt 0.098836 0.641915 vt 0.094660 0.633254 vt 0.091629 0.648062 vt 0.089638 0.667932 vt 0.088825 0.654636 vt 0.096469 0.665011 vt 0.092337 0.683320 vt 0.088534 0.681296 vt 0.083392 0.669062 vt 0.084596 0.678564 vt 0.080739 0.674070 vt 0.074379 0.665426 vt 0.973271 0.857204 vt 0.974741 0.861517 vt 0.970448 0.858325 vt 0.932003 0.559042 vt 0.928105 0.554576 vt 0.931592 0.551918 vt 0.075028 0.670766 vt 0.068660 0.671214 vt 0.930543 0.562731 vt 0.928984 0.559856 vt 0.060115 0.660971 vt 0.064097 0.670528 vt 0.055440 0.663056 vt 0.059640 0.667556 vt 0.127550 0.685645 vt 0.130808 0.684327 vt 0.135259 0.689622 vt 0.601790 0.995958 vt 0.601420 0.998092 vt 0.599867 0.992724 vt 0.065655 0.668723 vt 0.067079 0.645190 vt 0.159281 0.011238 vt 0.079725 0.498164 vt 0.093784 0.506493 vt 0.099908 0.492245 vt 0.082946 0.478339 vt 0.130701 0.502255 vt 0.120908 0.511565 vt 0.127474 0.527553 vt 0.062643 0.468620 vt 0.167637 0.025818 vt 0.161336 0.017904 vt 0.182301 0.026920 vt 0.177320 0.034201 vt 0.169704 0.039732 vt 0.156716 0.025688 vt 0.199591 0.037688 vt 0.189650 0.038654 vt 0.183218 0.045752 vt 0.108340 0.453297 vt 0.179287 0.050309 vt 0.159530 0.049356 vt 0.182966 0.058216 vt 0.159198 0.072375 vt 0.151375 0.064051 vt 0.144276 0.094886 vt 0.174501 0.086448 vt 0.176633 0.122014 vt 0.157374 0.124818 vt 0.159210 0.161964 vt 0.176995 0.173089 vt 0.196074 0.164826 vt 0.154274 0.182293 vt 0.199737 0.181769 vt 0.187445 0.196405 vt 0.148625 0.201042 vt 0.177922 0.208322 vt 0.151125 0.242490 vt 0.134437 0.225510 vt 0.180278 0.232910 vt 0.142105 0.461397 vt 0.091191 0.440822 vt 0.071620 0.435392 vt 0.058613 0.443293 vt 0.045984 0.465371 vt 0.047455 0.438890 vt 0.116784 0.002121 vt 0.143998 0.008231 vt 0.118071 0.012205 vt 0.150059 0.017191 vt 0.120662 0.023858 vt 0.116853 0.046762 vt 0.144396 0.043584 vt 0.138842 0.066293 vt 0.125294 0.070208 vt 0.142007 0.112984 vt 0.113032 0.118740 vt 0.125814 0.099180 vt 0.142156 0.159870 vt 0.125202 0.210150 vt 0.100315 0.224300 vt 0.124884 0.246954 vt 0.097853 0.248345 vt 0.151742 0.302024 vt 0.171736 0.283936 vt 0.171237 0.296823 vt 0.800318 0.115658 vt 0.783983 0.105322 vt 0.804730 0.095479 vt 0.463637 0.969388 vt 0.467174 0.959183 vt 0.474166 0.968005 vt 0.783822 0.119486 vt 0.769412 0.113839 vt 0.743228 0.105872 vt 0.711282 0.115836 vt 0.711560 0.106038 vt 0.848289 0.876558 vt 0.153004 0.258830 vt 0.118612 0.266445 vt 0.137994 0.287036 vt 0.129923 0.306233 vt 0.104273 0.295063 vt 0.114377 0.286308 vt 0.793663 0.073662 vt 0.807373 0.073334 vt 0.780978 0.090687 vt 0.769844 0.079419 vt 0.760698 0.098309 vt 0.755179 0.090196 vt 0.728761 0.097058 vt 0.712029 0.096444 vt 0.711599 0.075016 vt 0.100417 0.648341 vt 0.101354 0.629960 vt 0.103218 0.634696 vt 0.100008 0.635936 vt 0.063675 0.595077 vt 0.255006 0.646042 vt 0.259681 0.641899 vt 0.263584 0.646854 vt 0.246659 0.645535 vt 0.251539 0.637089 vt 0.272052 0.638409 vt 0.269859 0.645083 vt 0.279159 0.629239 vt 0.282132 0.634912 vt 0.062235 0.628610 vt 0.060390 0.617209 vt 0.022794 0.563097 vt 0.034647 0.564098 vt 0.012450 0.558755 vt 0.014783 0.569744 vt 0.010406 0.567345 vt 0.251439 0.020829 vt 0.245215 0.018763 vt 0.122135 0.731574 vt 0.136419 0.722283 vt 0.122968 0.738756 vt 0.244655 0.624743 vt 0.245765 0.632160 vt 0.258451 0.631909 vt 0.266828 0.619875 vt 0.032756 0.568594 vt 0.039368 0.586550 vt 0.026313 0.586113 vt 0.012179 0.586284 vt 0.261293 0.026025 vt 0.280430 0.046635 vt 0.237256 0.041743 vt 0.239439 0.037195 vt 0.001394 0.535269 vt 0.002243 0.525824 vt 0.247663 0.618819 vt 0.248589 0.611100 vt 0.267018 0.602223 vt 0.271112 0.613464 vt 0.256561 0.605558 vt 0.029561 0.593999 vt 0.013127 0.592935 vt 0.286664 0.587208 vt 0.286500 0.595238 vt 0.280567 0.593287 vt 0.284726 0.038936 vt 0.241695 0.045595 vt 0.252040 0.056706 vt 0.608492 0.977682 vt 0.607858 0.983193 vt 0.602345 0.983232 vt 0.249261 0.604375 vt 0.254241 0.594450 vt 0.260563 0.595874 vt 0.286066 0.064648 vt 0.271360 0.065221 vt 0.263198 0.080017 vt 0.250342 0.072800 vt 0.254647 0.096450 vt 0.247044 0.078774 vt 0.249177 0.104968 vt 0.268790 0.086096 vt 0.277755 0.068955 vt 0.288184 0.073040 vt 0.288849 0.047972 vt 0.294678 0.060667 vt 0.283645 0.560790 vt 0.281732 0.575859 vt 0.276574 0.574423 vt 0.264646 0.587351 vt 0.265854 0.582594 vt 0.274114 0.586414 vt 0.256782 0.586746 vt 0.242600 0.603189 vt 0.246107 0.590549 vt 0.602306 0.976197 vt 0.596508 0.973302 vt 0.598839 0.984468 vt 0.595034 0.976319 vt 0.123367 0.721151 vt 0.136041 0.712545 vt 0.126162 0.708136 vt 0.059309 0.639888 vt 0.071039 0.655368 vt 0.133904 0.693909 vt 0.143129 0.711057 vt 0.144979 0.718145 vt 0.139438 0.725576 vt 0.241806 0.590296 vt 0.243162 0.584752 vt 0.941035 0.019789 vt 0.932282 0.019429 vt 0.936775 0.009761 vt 0.932688 0.030232 vt 0.939038 0.031822 vt 0.932466 0.039783 vt 0.938004 0.045602 vt 0.933180 0.045805 vt 0.154166 0.699287 vt 0.155569 0.706123 vt 0.150617 0.700856 vt 0.937623 0.054676 vt 0.140496 0.690416 vt 0.139122 0.692972 vt 0.163087 0.713837 vt 0.170588 0.714428 vt 0.171534 0.718689 vt 0.177249 0.718606 vt 0.177466 0.724589 vt 0.156757 0.724134 vt 0.151794 0.716541 vt 0.223434 0.039261 vt 0.214810 0.041319 vt 0.248723 0.057954 vt 0.247787 0.071040 vt 0.249126 0.061974 vt 0.514578 0.827393 vt 0.514349 0.821355 vt 0.516922 0.828922 vt 0.249004 0.118575 vt 0.250804 0.121282 vt 0.260844 0.098042 vt 0.253894 0.122020 vt 0.251930 0.137881 vt 0.241013 0.153894 vt 0.238304 0.151683 vt 0.244233 0.137456 vt 0.232364 0.162567 vt 0.368064 0.920139 vt 0.356405 0.921284 vt 0.362836 0.913618 vt 0.783832 0.947830 vt 0.791939 0.942740 vt 0.792041 0.947597 vt 0.230301 0.168789 vt 0.228048 0.163644 vt 0.787450 0.940951 vt 0.778923 0.940371 vt 0.784349 0.927865 vt 0.791446 0.929672 vt 0.229399 0.170753 vt 0.223926 0.167462 vt 0.777296 0.933966 vt 0.776600 0.925945 vt 0.786285 0.924072 vt 0.220472 0.151012 vt 0.239271 0.141391 vt 0.185764 0.097971 vt 0.201653 0.113380 vt 0.202579 0.125660 vt 0.191614 0.135140 vt 0.201977 0.134705 vt 0.203249 0.149899 vt 0.205827 0.038708 vt 0.227398 0.043938 vt 0.238308 0.048424 vt 0.224663 0.045746 vt 0.522107 0.836690 vt 0.519048 0.839394 vt 0.522874 0.846906 vt 0.520419 0.843820 vt 0.524129 0.841381 vt 0.247021 0.059846 vt 0.243752 0.058566 vt 0.245913 0.053666 vt 0.980924 0.222679 vt 0.982238 0.218598 vt 0.982928 0.222285 vt 0.241357 0.055407 vt 0.237946 0.051867 vt 0.228312 0.047454 vt 0.230310 0.912184 vt 0.236375 0.916662 vt 0.230709 0.924512 vt 0.220239 0.135542 vt 0.200794 0.050541 vt 0.216536 0.045190 vt 0.197440 0.057958 vt 0.203225 0.073212 vt 0.185742 0.073422 vt 0.200940 0.086046 vt 0.200242 0.099048 vt 0.239888 0.133038 vt 0.902376 0.542304 vt 0.917230 0.531358 vt 0.913089 0.542033 vt 0.903092 0.555191 vt 0.912108 0.554851 vt 0.215225 0.122047 vt 0.210371 0.130520 vt 0.210044 0.104603 vt 0.206789 0.057767 vt 0.212387 0.050023 vt 0.421915 0.913597 vt 0.060250 0.510245 vt 0.232575 0.930055 vt 0.241283 0.911758 vt 0.995400 0.761363 vt 0.993077 0.757890 vt 0.997893 0.755798 vt 0.953334 0.591573 vt 0.953577 0.586390 vt 0.957664 0.588117 vt 0.306065 0.408360 vt 0.312914 0.413304 vt 0.301677 0.419847 vt 0.318183 0.416105 vt 0.299764 0.433126 vt 0.300428 0.405524 vt 0.311170 0.427119 vt 0.905537 0.570673 vt 0.516350 0.778379 vt 0.515438 0.783527 vt 0.513672 0.783839 vt 0.245225 0.127946 vt 0.515267 0.796233 vt 0.248956 0.920475 vt 0.247066 0.928548 vt 0.241709 0.921465 vt 0.252004 0.914938 vt 0.258386 0.920191 vt 0.242826 0.914936 vt 0.312622 0.406602 vt 0.316620 0.410967 vt 0.134406 0.822885 vt 0.137164 0.817568 vt 0.139684 0.825108 vt 0.129906 0.819398 vt 0.130981 0.814251 vt 0.998989 0.808288 vt 0.998989 0.814153 vt 0.996825 0.809837 vt 0.131524 0.807549 vt 0.139971 0.811842 vt 0.131951 0.804097 vt 0.141147 0.802164 vt 0.144996 0.821283 vt 0.149647 0.826651 vt 0.303504 0.457744 vt 0.298104 0.456728 vt 0.228691 0.119662 vt 0.220724 0.127731 vt 0.233851 0.123968 vt 0.519941 0.786237 vt 0.517348 0.816200 vt 0.517595 0.821568 vt 0.892813 0.566307 vt 0.885032 0.564825 vt 0.881865 0.557080 vt 0.887291 0.553582 vt 0.901638 0.566741 vt 0.900642 0.568772 vt 0.149709 0.816297 vt 0.146300 0.811487 vt 0.150567 0.821496 vt 0.327192 0.429211 vt 0.317976 0.426226 vt 0.322680 0.419857 vt 0.315937 0.434744 vt 0.316259 0.441184 vt 0.305408 0.459766 vt 0.316210 0.447203 vt 0.307499 0.459696 vt 0.325058 0.441389 vt 0.158994 0.812966 vt 0.156244 0.818082 vt 0.334284 0.432501 vt 0.306374 0.470163 vt 0.313308 0.461130 vt 0.899388 0.574328 vt 0.894697 0.574463 vt 0.888774 0.570364 vt 0.903872 0.574335 vt 0.909194 0.572999 vt 0.906448 0.579129 vt 0.881063 0.570406 vt 0.878262 0.566988 vt 0.880607 0.563679 vt 0.812423 0.546791 vt 0.817849 0.540453 vt 0.815370 0.551302 vt 0.885111 0.573753 vt 0.887305 0.578872 vt 0.894154 0.579695 vt 0.912553 0.577138 vt 0.312616 0.470140 vt 0.305457 0.477127 vt 0.108122 0.435624 vt 0.145852 0.444379 vt 0.132954 0.423342 vt 0.149679 0.422354 vt 0.076931 0.415605 vt 0.097217 0.417532 vt 0.051560 0.422961 vt 0.061960 0.425889 vt 0.134029 0.399027 vt 0.152522 0.401711 vt 0.114386 0.421384 vt 0.085012 0.403646 vt 0.108619 0.392116 vt 0.067958 0.399434 vt 0.089802 0.385717 vt 0.076053 0.381880 vt 0.058763 0.410944 vt 0.054943 0.399445 vt 0.145743 0.381000 vt 0.159183 0.378187 vt 0.127880 0.380676 vt 0.099620 0.376044 vt 0.080678 0.371575 vt 0.060015 0.381323 vt 0.152810 0.369104 vt 0.142464 0.365306 vt 0.096367 0.354274 vt 0.100356 0.020048 vt 0.100487 0.003404 vt 0.095024 0.050223 vt 0.109458 0.069757 vt 0.110962 0.094968 vt 0.093471 0.109099 vt 0.091242 0.097287 vt 0.096619 0.085197 vt 0.093996 0.130934 vt 0.096432 0.144318 vt 0.113884 0.161813 vt 0.086497 0.178552 vt 0.092882 0.162119 vt 0.086260 0.192264 vt 0.112062 0.188948 vt 0.068154 0.240948 vt 0.079742 0.215626 vt 0.070918 0.263707 vt 0.096378 0.273686 vt 0.766821 0.053579 vt 0.080035 0.013226 vt 0.088258 0.004685 vt 0.088018 0.018776 vt 0.079009 0.052318 vt 0.065636 0.034995 vt 0.079322 0.018683 vt 0.061701 0.022630 vt 0.071200 0.111008 vt 0.070201 0.097916 vt 0.068923 0.131494 vt 0.078167 0.163878 vt 0.068508 0.150769 vt 0.062300 0.180650 vt 0.060366 0.166069 vt 0.061548 0.202808 vt 0.047091 0.235104 vt 0.056477 0.221635 vt 0.043608 0.261447 vt 0.047271 0.281403 vt 0.055161 0.301962 vt 0.109263 0.308062 vt 0.791471 0.049426 vt 0.794835 0.024979 vt 0.780136 0.030509 vt 0.753252 0.033177 vt 0.756643 0.021510 vt 0.239571 0.675020 vt 0.241410 0.658523 vt 0.243317 0.680917 vt 0.255296 0.662235 vt 0.262879 0.681432 vt 0.052224 0.032020 vt 0.060682 0.053801 vt 0.047859 0.038752 vt 0.080502 0.068012 vt 0.059528 0.073289 vt 0.076839 0.085711 vt 0.047491 0.085646 vt 0.049894 0.058576 vt 0.056274 0.104629 vt 0.047222 0.145593 vt 0.038513 0.110273 vt 0.038501 0.175914 vt 0.031820 0.170275 vt 0.039086 0.188593 vt 0.040937 0.196541 vt 0.037817 0.225261 vt 0.041788 0.206459 vt 0.037320 0.244723 vt 0.044715 0.299795 vt 0.568120 0.334217 vt 0.586123 0.336077 vt 0.568307 0.344460 vt 0.772759 0.014521 vt 0.756672 0.016327 vt 0.737196 0.022578 vt 0.743197 0.018101 vt 0.711064 0.013262 vt 0.722893 0.034590 vt 0.703303 0.034014 vt 0.054949 0.353547 vt 0.063777 0.345066 vt 0.072478 0.346641 vt 0.058530 0.362918 vt 0.076700 0.352865 vt 0.042171 0.054058 vt 0.029834 0.059621 vt 0.038905 0.074418 vt 0.027283 0.091117 vt 0.033358 0.147675 vt 0.019035 0.129319 vt 0.017993 0.142799 vt 0.042207 0.159336 vt 0.027847 0.187530 vt 0.028883 0.214130 vt 0.524928 0.413633 vt 0.526759 0.406436 vt 0.531820 0.430278 vt 0.028543 0.232675 vt 0.029725 0.248778 vt 0.031476 0.269847 vt 0.550498 0.358019 vt 0.561376 0.361163 vt 0.546832 0.374493 vt 0.580204 0.356726 vt 0.595699 0.345378 vt 0.602207 0.328487 vt 0.612207 0.338546 vt 0.587626 0.330796 vt 0.618828 0.326619 vt 0.610695 0.328102 vt 0.625340 0.326477 vt 0.624459 0.336428 vt 0.616977 0.319219 vt 0.619793 0.313871 vt 0.640115 0.337465 vt 0.144816 0.970016 vt 0.155861 0.958672 vt 0.149415 0.974214 vt 0.648439 0.325652 vt 0.649975 0.345478 vt 0.642755 0.376364 vt 0.641590 0.356763 vt 0.633193 0.376854 vt 0.606059 0.358761 vt 0.620899 0.375925 vt 0.607408 0.380110 vt 0.589056 0.370576 vt 0.591998 0.394646 vt 0.570823 0.390993 vt 0.552882 0.417359 vt 0.580675 0.409027 vt 0.579796 0.435565 vt 0.564224 0.441018 vt 0.547293 0.434776 vt 0.539829 0.463225 vt 0.556488 0.472055 vt 0.008142 0.184684 vt 0.018430 0.210954 vt 0.009614 0.178218 vt 0.014093 0.169178 vt 0.000000 0.161484 vt 0.015143 0.153644 vt 0.552177 0.489224 vt 0.535906 0.469885 vt 0.003011 0.149673 vt 0.022166 0.105639 vt 0.006312 0.136476 vt 0.012448 0.096590 vt 0.025675 0.069067 vt 0.106937 0.994482 vt 0.111126 0.987624 vt 0.111126 0.997897 vt 0.089401 0.344031 vt 0.090864 0.349526 vt 0.105272 0.346846 vt 0.117875 0.354538 vt 0.119035 0.351334 vt 0.128566 0.361197 vt 0.116817 0.367712 vt 0.133609 0.344281 vt 0.641954 0.411339 vt 0.657533 0.395627 vt 0.661688 0.376584 vt 0.622547 0.397178 vt 0.629979 0.411789 vt 0.604354 0.408260 vt 0.595953 0.417631 vt 0.616781 0.425898 vt 0.618523 0.440522 vt 0.602194 0.431169 vt 0.601141 0.442067 vt 0.586366 0.428883 vt 0.592226 0.441684 vt 0.590504 0.453244 vt 0.598323 0.452735 vt 0.584010 0.456384 vt 0.592446 0.486504 vt 0.570204 0.485392 vt 0.581431 0.508588 vt 0.566199 0.504410 vt 0.549851 0.503485 vt 0.568821 0.540986 vt 0.554279 0.536538 vt 0.004451 0.081244 vt 0.017260 0.071365 vt 0.089936 0.319373 vt 0.089640 0.324286 vt 0.072431 0.327269 vt 0.105547 0.312659 vt 0.109477 0.317398 vt 0.079586 0.335174 vt 0.068341 0.338149 vt 0.093840 0.330091 vt 0.112120 0.322090 vt 0.099199 0.330967 vt 0.163498 0.333715 vt 0.162299 0.349808 vt 0.119276 0.339420 vt 0.134772 0.332804 vt 0.129952 0.324780 vt 0.120449 0.329594 vt 0.104813 0.335176 vt 0.598747 0.583523 vt 0.588302 0.582186 vt 0.594112 0.571517 vt 0.756764 0.864364 vt 0.759756 0.854053 vt 0.759223 0.866624 vt 0.101357 0.333318 vt 0.647178 0.438973 vt 0.637515 0.423414 vt 0.651444 0.424966 vt 0.633165 0.429176 vt 0.640079 0.448390 vt 0.624055 0.456843 vt 0.603878 0.466837 vt 0.616785 0.485782 vt 0.597648 0.515330 vt 0.610269 0.519156 vt 0.581414 0.546079 vt 0.599851 0.554044 vt 0.615640 0.556706 vt 0.586635 0.557018 vt 0.602428 0.563933 vt 0.607424 0.573116 vt 0.629314 0.574140 vt 0.610726 0.579671 vt 0.606053 0.591094 vt 0.623013 0.586403 vt 0.615784 0.586054 vt 0.148058 0.325881 vt 0.154248 0.315637 vt 0.169075 0.319768 vt 0.634365 0.467593 vt 0.639302 0.502454 vt 0.622755 0.518939 vt 0.630405 0.553744 vt 0.646878 0.573028 vt 0.647778 0.468136 vt 0.647831 0.488140 vt 0.648508 0.512672 vt 0.640097 0.521715 vt 0.647644 0.539422 vt 0.642550 0.555806 vt 0.228327 0.181890 vt 0.226242 0.197843 vt 0.232768 0.194639 vt 0.208681 0.205517 vt 0.206021 0.213419 vt 0.193384 0.214794 vt 0.185230 0.267753 vt 0.176433 0.253913 vt 0.829305 0.151998 vt 0.805317 0.152475 vt 0.823019 0.142927 vt 0.802938 0.139358 vt 0.775525 0.124362 vt 0.744151 0.128495 vt 0.762296 0.128555 vt 0.728745 0.130753 vt 0.711773 0.144412 vt 0.218179 0.195605 vt 0.230999 0.208728 vt 0.213739 0.239101 vt 0.214758 0.252501 vt 0.206236 0.266305 vt 0.192123 0.298739 vt 0.777116 0.144261 vt 0.737644 0.142215 vt 0.724533 0.143878 vt 0.241678 0.202877 vt 0.238979 0.196792 vt 0.243586 0.209975 vt 0.239818 0.222347 vt 0.225637 0.234120 vt 0.228160 0.247439 vt 0.223216 0.243897 vt 0.241313 0.262395 vt 0.232833 0.272868 vt 0.219149 0.294768 vt 0.784770 0.172312 vt 0.798603 0.186385 vt 0.751910 0.148968 vt 0.730107 0.157962 vt 0.711191 0.157560 vt 0.780801 0.909358 vt 0.784321 0.917264 vt 0.778390 0.916424 vt 0.038720 0.891448 vt 0.045773 0.892890 vt 0.039818 0.894889 vt 0.249705 0.204189 vt 0.779616 0.909420 vt 0.777878 0.908975 vt 0.250593 0.234852 vt 0.040298 0.903533 vt 0.035291 0.914324 vt 0.259091 0.223438 vt 0.273775 0.208626 vt 0.253989 0.212373 vt 0.270970 0.203209 vt 0.247369 0.198080 vt 0.275577 0.214818 vt 0.041495 0.908892 vt 0.275550 0.228771 vt 0.250759 0.252717 vt 0.247018 0.246984 vt 0.050017 0.922440 vt 0.040476 0.920873 vt 0.042840 0.898069 vt 0.040121 0.904451 vt 0.769740 0.933758 vt 0.772145 0.927417 vt 0.059857 0.901795 vt 0.050761 0.891811 vt 0.048145 0.914370 vt 0.047202 0.928381 vt 0.998645 0.655083 vt 0.998645 0.661089 vt 0.996317 0.658540 vt 0.809035 0.293370 vt 0.808688 0.300462 vt 0.802599 0.294488 vt 0.077800 0.989912 vt 0.077800 0.997207 vt 0.074824 0.993522 vt 0.975078 0.485756 vt 0.972784 0.485669 vt 0.975708 0.475873 vt 0.769581 0.947295 vt 0.764878 0.944026 vt 0.778498 0.945937 vt 0.360375 0.902975 vt 0.356249 0.899083 vt 0.369168 0.887576 vt 0.368111 0.897111 vt 0.359567 0.909353 vt 0.355335 0.915191 vt 0.340497 0.925134 vt 0.349023 0.920951 vt 0.254745 0.141647 vt 0.255389 0.135475 vt 0.256653 0.106501 vt 0.208879 0.895124 vt 0.206451 0.900623 vt 0.207053 0.892149 vt 0.274286 0.087268 vt 0.285135 0.079301 vt 0.289260 0.546918 vt 0.279126 0.561264 vt 0.286222 0.545120 vt 0.272065 0.573657 vt 0.267681 0.577125 vt 0.252459 0.582507 vt 0.259593 0.581465 vt 0.153444 0.730101 vt 0.160184 0.734125 vt 0.220817 0.861278 vt 0.209460 0.881553 vt 0.220069 0.857421 vt 0.235411 0.851696 vt 0.232819 0.844460 vt 0.246223 0.839285 vt 0.240218 0.845501 vt 0.276253 0.562858 vt 0.268950 0.572840 vt 0.783640 0.996468 vt 0.783633 0.993049 vt 0.785837 0.993221 vt 0.252991 0.835182 vt 0.257930 0.834964 vt 0.251545 0.840298 vt 0.259446 0.837272 vt 0.785837 0.998538 vt 0.211808 0.884003 vt 0.212896 0.890151 vt 0.214365 0.881767 vt 0.212201 0.896775 vt 0.174837 0.915814 vt 0.172988 0.920345 vt 0.169941 0.916769 vt 0.168613 0.923634 vt 0.163546 0.927104 vt 0.156403 0.936695 vt 0.155397 0.935529 vt 0.149379 0.934322 vt 0.157731 0.922141 vt 0.147543 0.943983 vt 0.889289 0.580565 vt 0.828833 0.531635 vt 0.830414 0.531761 vt 0.826873 0.533475 vt 0.894409 0.060903 vt 0.884882 0.065642 vt 0.875296 0.055179 vt 0.899847 0.074106 vt 0.880497 0.070565 vt 0.890116 0.080505 vt 0.871986 0.062198 vt 0.873733 0.068061 vt 0.859736 0.066237 vt 0.868452 0.067381 vt 0.838028 0.064681 vt 0.851391 0.052701 vt 0.905542 0.094290 vt 0.880438 0.084937 vt 0.959643 0.054135 vt 0.957578 0.064352 vt 0.948790 0.059341 vt 0.949252 0.073681 vt 0.954723 0.079963 vt 0.949134 0.083789 vt 0.166461 0.728477 vt 0.265518 0.834304 vt 0.154216 0.734346 vt 0.157007 0.735668 vt 0.155495 0.737429 vt 0.246388 0.581761 vt 0.246411 0.584902 vt 0.175907 0.734813 vt 0.167917 0.734125 vt 0.930050 0.008798 vt 0.937460 0.991852 vt 0.937460 0.998368 vt 0.935094 0.996534 vt 0.168739 0.739258 vt 0.162739 0.743428 vt 0.266257 0.839581 vt 0.248953 0.857016 vt 0.255109 0.882986 vt 0.169971 0.750728 vt 0.159508 0.748065 vt 0.958346 0.981335 vt 0.958596 0.988950 vt 0.956118 0.985673 vt 0.155391 0.743361 vt 0.266027 0.846639 vt 0.260812 0.846056 vt 0.157419 0.745313 vt 0.156445 0.753306 vt 0.152103 0.747134 vt 0.154155 0.752519 vt 0.151770 0.754730 vt 0.263316 0.851251 vt 0.257367 0.853977 vt 0.260545 0.876988 vt 0.253642 0.893254 vt 0.254336 0.860014 vt 0.160184 0.755600 vt 0.157278 0.763091 vt 0.153539 0.765680 vt 0.266571 0.855086 vt 0.263707 0.849172 vt 0.266235 0.879325 vt 0.158005 0.773495 vt 0.146706 0.787987 vt 0.140827 0.782897 vt 0.249573 0.887633 vt 0.237584 0.883335 vt 0.247906 0.905799 vt 0.419283 0.890429 vt 0.413062 0.866933 vt 0.419283 0.865608 vt 0.250603 0.911412 vt 0.254106 0.903082 vt 0.260890 0.910101 vt 0.264704 0.899388 vt 0.261944 0.905142 vt 0.258885 0.894509 vt 0.268157 0.903616 vt 0.259505 0.916115 vt 0.240643 0.907324 vt 0.232179 0.899881 vt 0.805933 0.565273 vt 0.813865 0.570517 vt 0.802846 0.578393 vt 0.800918 0.571104 vt 0.296337 0.700016 vt 0.296337 0.703948 vt 0.295604 0.701458 vt 0.823853 0.540402 vt 0.819389 0.544983 vt 0.817389 0.549459 vt 0.816708 0.554176 vt 0.795353 0.572205 vt 0.795656 0.579451 vt 0.520999 0.827357 vt 0.522854 0.822569 vt 0.799114 0.565895 vt 0.801795 0.560258 vt 0.822686 0.589050 vt 0.820795 0.570409 vt 0.830025 0.590149 vt 0.790808 0.583669 vt 0.798971 0.587792 vt 0.962170 0.711600 vt 0.960692 0.703688 vt 0.962542 0.700979 vt 0.957664 0.727126 vt 0.955847 0.720898 vt 0.863161 0.049123 vt 0.857958 0.045218 vt 0.864459 0.044900 vt 0.872317 0.044727 vt 0.839183 0.069238 vt 0.848481 0.066979 vt 0.842825 0.069850 vt 0.836069 0.053754 vt 0.921263 0.541912 vt 0.918175 0.549833 vt 0.917434 0.541565 vt 0.227224 0.817612 vt 0.224029 0.813604 vt 0.230824 0.804690 vt 0.218629 0.820398 vt 0.210047 0.819573 vt 0.216613 0.815812 vt 0.215222 0.827981 vt 0.214699 0.823703 vt 0.878207 0.096270 vt 0.893372 0.104078 vt 0.884181 0.101084 vt 0.209144 0.813105 vt 0.869746 0.083108 vt 0.954789 0.094251 vt 0.950579 0.095541 vt 0.036858 0.923593 vt 0.042560 0.937435 vt 0.037291 0.929871 vt 0.283150 0.210268 vt 0.280702 0.203224 vt 0.056110 0.930529 vt 0.050864 0.945035 vt 0.283691 0.222980 vt 0.823786 0.254248 vt 0.814063 0.260487 vt 0.811186 0.243334 vt 0.262453 0.255016 vt 0.812153 0.215170 vt 0.820753 0.212218 vt 0.816643 0.235410 vt 0.805208 0.239887 vt 0.804161 0.225117 vt 0.807286 0.248630 vt 0.743059 0.162962 vt 0.735061 0.171926 vt 0.727121 0.181492 vt 0.718883 0.169442 vt 0.710396 0.179399 vt 0.710362 0.190010 vt 0.741314 0.193514 vt 0.727964 0.196945 vt 0.746257 0.186591 vt 0.762010 0.181449 vt 0.784275 0.188348 vt 0.753712 0.205254 vt 0.791025 0.206356 vt 0.802037 0.205394 vt 0.764564 0.212454 vt 0.785321 0.218543 vt 0.742347 0.208678 vt 0.847186 0.952735 vt 0.841597 0.958507 vt 0.845713 0.940408 vt 0.795423 0.234903 vt 0.791465 0.229073 vt 0.757089 0.221416 vt 0.734845 0.217303 vt 0.743431 0.223332 vt 0.724130 0.213021 vt 0.728409 0.209095 vt 0.827322 0.942081 vt 0.835880 0.954601 vt 0.793346 0.242364 vt 0.783165 0.233931 vt 0.352000 0.610618 vt 0.357106 0.605916 vt 0.367645 0.614160 vt 0.398675 0.625022 vt 0.379956 0.624567 vt 0.435798 0.605959 vt 0.415163 0.626714 vt 0.414829 0.615437 vt 0.961485 0.664553 vt 0.962794 0.677770 vt 0.950329 0.661470 vt 0.809440 0.261321 vt 0.807754 0.265927 vt 0.812879 0.276533 vt 0.808869 0.275175 vt 0.818800 0.272769 vt 0.596252 0.948800 vt 0.605417 0.942435 vt 0.604101 0.950962 vt 0.182884 0.990368 vt 0.182884 0.997805 vt 0.180412 0.992215 vt 0.040623 0.939951 vt 0.046015 0.949347 vt 0.802919 0.255625 vt 0.148395 0.798900 vt 0.153176 0.782661 vt 0.606389 0.938126 vt 0.604143 0.940816 vt 0.994190 0.926567 vt 0.994190 0.931431 vt 0.992515 0.929356 vt 0.805184 0.269113 vt 0.275912 0.988735 vt 0.275912 0.997484 vt 0.273750 0.995638 vt 0.014142 0.946133 vt 0.015899 0.953308 vt 0.013879 0.953780 vt 0.801507 0.276174 vt 0.609760 0.952672 vt 0.613550 0.946971 vt 0.614651 0.950030 vt 0.609193 0.942299 vt 0.608355 0.934853 vt 0.610572 0.938762 vt 0.613311 0.933673 vt 0.807594 0.284509 vt 0.348047 0.594039 vt 0.348205 0.597800 vt 0.344138 0.589527 vt 0.776389 0.313037 vt 0.776412 0.308060 vt 0.780352 0.313037 vt 0.211265 0.823961 vt 0.920581 0.003105 vt 0.923796 0.009048 vt 0.923944 0.014464 vt 0.871080 0.076506 vt 0.862445 0.078898 vt 0.958758 0.078597 vt 0.424282 0.597628 vt 0.434530 0.597767 vt 0.409802 0.604343 vt 0.393703 0.613714 vt 0.393163 0.606445 vt 0.997906 0.072940 vt 0.997906 0.089424 vt 0.993756 0.085210 vt 0.381331 0.599217 vt 0.400580 0.595686 vt 0.781006 0.246688 vt 0.774503 0.237661 vt 0.793845 0.242892 vt 0.802803 0.283910 vt 0.060712 0.932229 vt 0.614941 0.944184 vt 0.186785 0.950129 vt 0.181457 0.947431 vt 0.180926 0.943511 vt 0.797122 0.258466 vt 0.799135 0.266044 vt 0.197220 0.914703 vt 0.198442 0.916714 vt 0.192584 0.922066 vt 0.805458 0.279035 vt 0.801464 0.279083 vt 0.198116 0.931016 vt 0.179816 0.936874 vt 0.196653 0.936355 vt 0.189215 0.944298 vt 0.179464 0.933293 vt 0.197536 0.951754 vt 0.197295 0.941753 vt 0.202771 0.946692 vt 0.205055 0.953437 vt 0.795142 0.288073 vt 0.796604 0.281478 vt 0.798213 0.285378 vt 0.654032 0.909637 vt 0.662252 0.907235 vt 0.663437 0.912076 vt 0.653498 0.904528 vt 0.420695 0.590178 vt 0.410653 0.594857 vt 0.413877 0.588224 vt 0.403448 0.577526 vt 0.390741 0.590916 vt 0.350234 0.587332 vt 0.367666 0.589733 vt 0.393409 0.581970 vt 0.352653 0.575014 vt 0.347831 0.578852 vt 0.346705 0.574700 vt 0.055827 0.950401 vt 0.055827 0.955491 vt 0.053377 0.955418 vt 0.936550 0.564902 vt 0.933993 0.566961 vt 0.940273 0.059900 vt 0.942291 0.059082 vt 0.384057 0.321548 vt 0.388514 0.319699 vt 0.384449 0.324473 vt 0.374451 0.333001 vt 0.377557 0.331685 vt 0.372935 0.335810 vt 0.378691 0.339688 vt 0.371114 0.345628 vt 0.370148 0.340666 vt 0.366706 0.347082 vt 0.239022 0.706739 vt 0.241410 0.715274 vt 0.236781 0.718343 vt 0.231053 0.715352 vt 0.230163 0.734873 vt 0.737550 0.954006 vt 0.740966 0.952210 vt 0.741270 0.959637 vt 0.085839 0.624974 vt 0.086995 0.628884 vt 0.211644 0.730250 vt 0.214212 0.729294 vt 0.216418 0.735756 vt 0.218884 0.726309 vt 0.222863 0.752624 vt 0.081590 0.613603 vt 0.082473 0.602899 vt 0.222819 0.734059 vt 0.094354 0.627559 vt 0.952478 0.170644 vt 0.948479 0.170716 vt 0.950193 0.159355 vt 0.949291 0.155218 vt 0.942507 0.168926 vt 0.942459 0.163831 vt 0.384435 0.331269 vt 0.959184 0.157183 vt 0.958112 0.177407 vt 0.250103 0.458480 vt 0.249021 0.503079 vt 0.242724 0.510050 vt 0.263817 0.440247 vt 0.253078 0.432903 vt 0.255757 0.433194 vt 0.265608 0.508201 vt 0.256790 0.503951 vt 0.953492 0.105922 vt 0.944323 0.108372 vt 0.237876 0.787421 vt 0.235251 0.789910 vt 0.242343 0.742118 vt 0.252795 0.743943 vt 0.254031 0.778660 vt 0.273103 0.758396 vt 0.251125 0.718349 vt 0.242920 0.703911 vt 0.258640 0.718521 vt 0.266077 0.741065 vt 0.388047 0.338732 vt 0.394729 0.321535 vt 0.393036 0.344809 vt 0.389877 0.355643 vt 0.277594 0.470685 vt 0.265579 0.429904 vt 0.283609 0.435384 vt 0.288311 0.430642 vt 0.272251 0.517318 vt 0.282814 0.519059 vt 0.287628 0.519277 vt 0.287834 0.486749 vt 0.287376 0.454215 vt 0.395905 0.376367 vt 0.407250 0.537045 vt 0.416576 0.540804 vt 0.409173 0.545535 vt 0.416237 0.548732 vt 0.408216 0.556873 vt 0.414689 0.564788 vt 0.415976 0.572738 vt 0.408481 0.571963 vt 0.414848 0.579168 vt 0.422448 0.575790 vt 0.428637 0.583283 vt 0.427538 0.591354 vt 0.432782 0.586426 vt 0.421570 0.563465 vt 0.408839 0.529192 vt 0.417928 0.520320 vt 0.414361 0.530714 vt 0.421687 0.511512 vt 0.421685 0.524186 vt 0.416876 0.502591 vt 0.415819 0.516007 vt 0.413887 0.491252 vt 0.419261 0.494049 vt 0.409845 0.478021 vt 0.408968 0.469153 vt 0.413912 0.457069 vt 0.415885 0.471370 vt 0.410968 0.436621 vt 0.405478 0.456582 vt 0.401384 0.437836 vt 0.399783 0.428399 vt 0.404466 0.429977 vt 0.106937 0.992955 vt 0.106937 0.998514 vt 0.102307 0.993782 vt 0.282617 0.426183 vt 0.401312 0.407536 vt 0.435785 0.581848 vt 0.995000 0.048139 vt 0.995000 0.053465 vt 0.990836 0.048755 vt 0.427344 0.548476 vt 0.421742 0.552972 vt 0.417961 0.532987 vt 0.425869 0.537100 vt 0.423957 0.523794 vt 0.995207 0.813244 vt 0.996244 0.813554 vt 0.995364 0.814153 vt 0.415783 0.910883 vt 0.415489 0.913215 vt 0.414593 0.911949 vt 0.412905 0.938951 vt 0.413968 0.926684 vt 0.417941 0.912959 vt 0.951954 0.315091 vt 0.953265 0.342073 vt 0.949668 0.340171 vt 0.969338 0.897902 vt 0.971560 0.898684 vt 0.970173 0.902247 vt 0.410701 0.930008 vt 0.407146 0.943910 vt 0.409775 0.946098 vt 0.404798 0.950123 vt 0.413225 0.915758 vt 0.976523 0.923898 vt 0.975133 0.919697 vt 0.976995 0.901728 vt 0.662669 0.852332 vt 0.658088 0.865354 vt 0.653437 0.869345 vt 0.978270 0.897913 vt 0.978382 0.889699 vt 0.974785 0.889436 vt 0.973710 0.920469 vt 0.972429 0.910529 vt 0.994864 0.809320 vt 0.996188 0.810089 vt 0.995606 0.812329 vt 0.993872 0.811918 vt 0.954381 0.330522 vt 0.953671 0.313811 vt 0.956169 0.328365 vt 0.660387 0.850574 vt 0.659274 0.855692 vt 0.652550 0.862763 vt 0.648788 0.884010 vt 0.643810 0.886222 vt 0.961824 0.222587 vt 0.960077 0.221589 vt 0.961824 0.219448 vt 0.649055 0.895569 vt 0.645290 0.899485 vt 0.650165 0.909747 vt 0.642372 0.910976 vt 0.642185 0.896933 vt 0.971807 0.469931 vt 0.640218 0.885994 vt 0.643021 0.885076 vt 0.756527 0.883014 vt 0.758958 0.887720 vt 0.756584 0.887648 vt 0.641124 0.880535 vt 0.980924 0.218563 vt 0.980924 0.222679 vt 0.978844 0.219224 vt 0.353886 0.901116 vt 0.357457 0.904740 vt 0.347775 0.907895 vt 0.347690 0.916270 vt 0.343349 0.904330 vt 0.378051 0.999219 vt 0.374467 0.992846 vt 0.378096 0.988752 vt 0.352798 0.915141 vt 0.297534 0.515355 vt 0.300744 0.516451 vt 0.302179 0.520001 vt 0.336596 0.922340 vt 0.334990 0.918987 vt 0.153983 0.947503 vt 0.149409 0.946655 vt 0.336767 0.908907 vt 0.332714 0.913164 vt 0.333722 0.909162 vt 0.311771 0.520392 vt 0.305514 0.517682 vt 0.304722 0.512626 vt 0.311474 0.515502 vt 0.314609 0.520363 vt 0.739527 0.313190 vt 0.736340 0.313190 vt 0.738305 0.309108 vt 0.160742 0.947441 vt 0.158548 0.952532 vt 0.157166 0.942796 vt 0.163863 0.952550 vt 0.910690 0.582023 vt 0.895308 0.583033 vt 0.396189 0.400966 vt 0.391877 0.397055 vt 0.391758 0.379665 vt 0.385485 0.404726 vt 0.383216 0.424494 vt 0.377068 0.426032 vt 0.999335 0.043017 vt 0.995027 0.031675 vt 0.999335 0.028075 vt 0.401703 0.462249 vt 0.396873 0.471710 vt 0.396941 0.464392 vt 0.393418 0.451690 vt 0.393814 0.438555 vt 0.385716 0.435551 vt 0.392166 0.426760 vt 0.316175 0.948301 vt 0.321776 0.943954 vt 0.322271 0.955947 vt 0.311098 0.942197 vt 0.313301 0.934530 vt 0.405773 0.479659 vt 0.324967 0.964962 vt 0.406569 0.509386 vt 0.391957 0.567386 vt 0.391685 0.557556 vt 0.388511 0.549129 vt 0.403405 0.542637 vt 0.391590 0.543540 vt 0.399037 0.533118 vt 0.395400 0.519785 vt 0.404316 0.494215 vt 0.397984 0.509831 vt 0.393106 0.500638 vt 0.396362 0.492347 vt 0.379771 0.503027 vt 0.369494 0.492953 vt 0.389155 0.515583 vt 0.389349 0.527961 vt 0.245637 0.988841 vt 0.248971 0.995949 vt 0.245411 0.995949 vt 0.380392 0.547373 vt 0.386311 0.535969 vt 0.380196 0.561242 vt 0.370750 0.559426 vt 0.363147 0.578071 vt 0.353292 0.564257 vt 0.353354 0.548285 vt 0.362733 0.549103 vt 0.352208 0.553945 vt 0.359738 0.563813 vt 0.348154 0.550355 vt 0.414254 0.954060 vt 0.409396 0.951362 vt 0.412887 0.947528 vt 0.191216 0.992381 vt 0.195407 0.989580 vt 0.195407 0.995108 vt 0.347499 0.552978 vt 0.404659 0.954001 vt 0.414284 0.957888 vt 0.405812 0.957941 vt 0.969229 0.484288 vt 0.963880 0.475182 vt 0.966784 0.472028 vt 0.968828 0.467925 vt 0.621953 0.936792 vt 0.617819 0.940628 vt 0.618982 0.934692 vt 0.648133 0.917561 vt 0.646931 0.909563 vt 0.320751 0.513138 vt 0.631034 0.918538 vt 0.332494 0.512941 vt 0.326914 0.516746 vt 0.632756 0.892868 vt 0.621953 0.895019 vt 0.632989 0.887709 vt 0.624522 0.896195 vt 0.626001 0.899996 vt 0.316742 0.504061 vt 0.323601 0.509098 vt 0.310603 0.508903 vt 0.839328 0.984798 vt 0.845115 0.985140 vt 0.841295 0.990404 vt 0.846908 0.990265 vt 0.303791 0.508954 vt 0.309768 0.504796 vt 0.350358 0.901201 vt 0.343804 0.897121 vt 0.355392 0.892772 vt 0.354422 0.900557 vt 0.354608 0.907199 vt 0.342601 0.901378 vt 0.338521 0.904128 vt 0.546523 0.980336 vt 0.548151 0.975879 vt 0.555196 0.981298 vt 0.176891 0.953740 vt 0.555647 0.978824 vt 0.841104 0.313288 vt 0.838010 0.311430 vt 0.839896 0.309688 vt 0.315591 0.492991 vt 0.317632 0.487078 vt 0.318570 0.489627 vt 0.324687 0.484187 vt 0.340865 0.888556 vt 0.344913 0.881984 vt 0.347462 0.886609 vt 0.356909 0.884054 vt 0.361225 0.889149 vt 0.836362 0.988602 vt 0.312258 0.469494 vt 0.321059 0.478741 vt 0.313249 0.476700 vt 0.321753 0.460076 vt 0.325430 0.451368 vt 0.324199 0.466307 vt 0.329194 0.445707 vt 0.331223 0.457923 vt 0.329335 0.463131 vt 0.333437 0.438917 vt 0.340023 0.449314 vt 0.347886 0.443906 vt 0.341462 0.436852 vt 0.342879 0.460331 vt 0.343926 0.467603 vt 0.343398 0.473918 vt 0.333237 0.481441 vt 0.339597 0.880083 vt 0.338117 0.872636 vt 0.330841 0.487139 vt 0.341619 0.487505 vt 0.355140 0.873944 vt 0.361044 0.878756 vt 0.345195 0.495220 vt 0.339832 0.491178 vt 0.349401 0.493521 vt 0.904755 0.309070 vt 0.910207 0.306516 vt 0.910207 0.313132 vt 0.348345 0.488241 vt 0.350179 0.472050 vt 0.350233 0.468202 vt 0.992656 0.000000 vt 0.996385 0.004173 vt 0.988591 0.004310 vt 0.354758 0.489325 vt 0.355549 0.481015 vt 0.356667 0.474854 vt 0.356370 0.478227 vt 0.355220 0.471143 vt 0.347122 0.500160 vt 0.356433 0.494189 vt 0.356618 0.499270 vt 0.355193 0.502485 vt 0.322165 0.502703 vt 0.970028 0.046054 vt 0.970028 0.053476 vt 0.965352 0.050644 vt 0.330257 0.499629 vt 0.327657 0.502971 vt 0.327021 0.498550 vt 0.289351 0.815026 vt 0.292874 0.815575 vt 0.287482 0.820193 vt 0.346503 0.510858 vt 0.352826 0.514258 vt 0.339516 0.509939 vt 0.346912 0.503900 vt 0.337431 0.505442 vt 0.371949 0.506241 vt 0.366484 0.509687 vt 0.362956 0.495145 vt 0.360360 0.503854 vt 0.992982 0.505866 vt 0.993153 0.500603 vt 0.997157 0.496629 vt 0.358447 0.510038 vt 0.357935 0.513238 vt 0.295785 0.827802 vt 0.288007 0.824441 vt 0.294395 0.820580 vt 0.296119 0.817602 vt 0.359655 0.507371 vt 0.365902 0.515373 vt 0.881166 0.308374 vt 0.881166 0.312873 vt 0.878319 0.311298 vt 0.377986 0.513435 vt 0.370899 0.512775 vt 0.375516 0.520223 vt 0.366903 0.524843 vt 0.364124 0.516952 vt 0.357746 0.517328 vt 0.353171 0.519348 vt 0.356878 0.523965 vt 0.290763 0.827562 vt 0.361670 0.519749 vt 0.945421 0.354253 vt 0.948579 0.352766 vt 0.943165 0.360377 vt 0.956393 0.358505 vt 0.959417 0.364484 vt 0.956185 0.376586 vt 0.959184 0.353084 vt 0.360131 0.529855 vt 0.382934 0.522735 vt 0.356186 0.542431 vt 0.189135 0.823257 vt 0.185024 0.818783 vt 0.197019 0.823199 vt 0.181756 0.821171 vt 0.175925 0.817912 vt 0.174562 0.810479 vt 0.184114 0.805443 vt 0.198184 0.813973 vt 0.202498 0.804535 vt 0.197567 0.795094 vt 0.204400 0.793784 vt 0.179433 0.808913 vt 0.174364 0.807506 vt 0.350990 0.435801 vt 0.344942 0.435247 vt 0.335460 0.415987 vt 0.334302 0.425097 vt 0.329248 0.419721 vt 0.332183 0.417603 vt 0.293732 0.473090 vt 0.291332 0.480861 vt 0.293338 0.457988 vt 0.331854 0.414479 vt 0.343892 0.423855 vt 0.153922 0.811189 vt 0.145282 0.807066 vt 0.161834 0.807528 vt 0.144021 0.807853 vt 0.995885 0.928073 vt 0.997596 0.926851 vt 0.997596 0.931431 vt 0.181850 0.756732 vt 0.167017 0.809809 vt 0.180840 0.746947 vt 0.176334 0.740119 vt 0.194366 0.751776 vt 0.189927 0.742799 vt 0.201691 0.749515 vt 0.400054 0.972825 vt 0.401295 0.970035 vt 0.401295 0.974977 vt 0.183820 0.731597 vt 0.184167 0.725581 vt 0.191132 0.728584 vt 0.185973 0.724079 vt 0.934830 0.007371 vt 0.929599 0.004181 vt 0.402253 0.485498 vt 0.395666 0.486064 vt 0.883562 0.704545 vt 0.896053 0.702098 vt 0.887703 0.715342 vt 0.902399 0.709438 vt 0.915035 0.705604 vt 0.908227 0.715361 vt 0.370833 0.485936 vt 0.388226 0.480887 vt 0.448933 0.994736 vt 0.446095 0.994916 vt 0.446207 0.989314 vt 0.360863 0.485523 vt 0.355603 0.486317 vt 0.020544 0.965994 vt 0.020544 0.973335 vt 0.016126 0.971412 vt 0.361951 0.481765 vt 0.913824 0.530801 vt 0.908824 0.530268 vt 0.914694 0.524755 vt 0.360370 0.476988 vt 0.921126 0.702642 vt 0.920077 0.712629 vt 0.906578 0.522414 vt 0.924012 0.695990 vt 0.927975 0.704857 vt 0.931484 0.699518 vt 0.895348 0.727091 vt 0.898578 0.723370 vt 0.905110 0.735853 vt 0.913082 0.734959 vt 0.917979 0.728808 vt 0.270977 0.803652 vt 0.260393 0.810691 vt 0.268409 0.796878 vt 0.252089 0.801211 vt 0.248611 0.810933 vt 0.379695 0.437140 vt 0.375154 0.437469 vt 0.280039 0.795677 vt 0.274701 0.809750 vt 0.287220 0.797064 vt 0.283581 0.802535 vt 0.383435 0.443501 vt 0.386915 0.452614 vt 0.389141 0.463316 vt 0.287220 0.822992 vt 0.276920 0.819033 vt 0.283949 0.812156 vt 0.235770 0.818112 vt 0.820870 0.966270 vt 0.824062 0.956511 vt 0.824062 0.969982 vt 0.236401 0.828453 vt 0.251281 0.822982 vt 0.246202 0.817052 vt 0.262905 0.818843 vt 0.258623 0.826376 vt 0.247863 0.827696 vt 0.239457 0.824947 vt 0.268684 0.825090 vt 0.199899 0.782199 vt 0.173713 0.804294 vt 0.176446 0.795007 vt 0.200772 0.773108 vt 0.188431 0.768788 vt 0.202708 0.760431 vt 0.205492 0.762476 vt 0.922846 0.759202 vt 0.918273 0.754607 vt 0.921294 0.753637 vt 0.206002 0.777126 vt 0.205595 0.771414 vt 0.910729 0.748757 vt 0.946976 0.557410 vt 0.944291 0.557225 vt 0.943031 0.552720 vt 0.939939 0.550464 vt 0.946974 0.561412 vt 0.923701 0.555355 vt 0.920896 0.557505 vt 0.937850 0.539907 vt 0.941612 0.545081 vt 0.938424 0.547797 vt 0.941037 0.542261 vt 0.831457 0.047685 vt 0.834632 0.044791 vt 0.835623 0.046934 vt 0.998744 0.893881 vt 0.997233 0.890209 vt 0.998740 0.885345 vt 0.997791 0.883980 vt 0.843734 0.046066 vt 0.844690 0.044667 vt 0.851333 0.044844 vt 0.960052 0.106986 vt 0.959206 0.123089 vt 0.890591 0.044874 vt 0.203827 0.910986 vt 0.199861 0.902180 vt 0.206451 0.903752 vt 0.274441 0.792654 vt 0.262930 0.766026 vt 0.257898 0.796005 vt 0.900047 0.086362 vt 0.909631 0.075305 vt 0.911078 0.087298 vt 0.904109 0.066277 vt 0.903208 0.045105 vt 0.246894 0.801362 vt 0.242016 0.789560 vt 0.246898 0.777046 vt 0.235652 0.797311 vt 0.912922 0.079120 vt 0.463671 0.998403 vt 0.468102 0.995758 vt 0.468608 0.999630 vt 0.907434 0.065075 vt 0.468608 0.986978 vt 0.464483 0.994122 vt 0.073703 0.901357 vt 0.078768 0.896862 vt 0.078357 0.902124 vt 0.080911 0.909164 vt 0.094502 0.906348 vt 0.075060 0.909058 vt 0.107388 0.894168 vt 0.108067 0.901778 vt 0.104936 0.903317 vt 0.071844 0.914278 vt 0.074362 0.921955 vt 0.068025 0.920613 vt 0.257815 0.427377 vt 0.256097 0.428619 vt 0.063222 0.925680 vt 0.274256 0.432057 vt 0.085301 0.913458 vt 0.940400 0.065934 vt 0.756992 0.979094 vt 0.759539 0.983116 vt 0.756901 0.984466 vt 0.942896 0.564885 vt 0.940667 0.575321 vt 0.936770 0.570636 vt 0.838643 0.075728 vt 0.840127 0.075185 vt 0.838098 0.083060 vt 0.929985 0.072720 vt 0.926019 0.067420 vt 0.933339 0.067653 vt 0.678005 0.975649 vt 0.674199 0.978569 vt 0.677727 0.972507 vt 0.921592 0.060429 vt 0.922853 0.054994 vt 0.920268 0.051848 vt 0.226000 0.997077 vt 0.224956 0.992917 vt 0.227498 0.990072 vt 0.925954 0.049606 vt 0.918685 0.040554 vt 0.938688 0.557441 vt 0.933058 0.542305 vt 0.925704 0.546790 vt 0.924560 0.544289 vt 0.927497 0.548850 vt 0.936021 0.555657 vt 0.940894 0.552648 vt 0.920281 0.032984 vt 0.999245 0.402740 vt 0.997723 0.400703 vt 0.999245 0.397353 vt 0.199412 0.730676 vt 0.192920 0.726950 vt 0.198737 0.729150 vt 0.206339 0.734104 vt 0.205977 0.739697 vt 0.924944 0.776146 vt 0.931473 0.778049 vt 0.932762 0.789503 vt 0.933534 0.794624 vt 0.926262 0.767771 vt 0.914940 0.761207 vt 0.917642 0.773016 vt 0.910514 0.764253 vt 0.905434 0.754540 vt 0.905037 0.745125 vt 0.186976 0.736356 vt 0.181197 0.732746 vt 0.294659 0.328244 vt 0.294740 0.339792 vt 0.292328 0.317711 vt 0.296337 0.312659 vt 0.969328 0.887982 vt 0.649336 0.866169 vt 0.644028 0.876689 vt 0.286679 0.534077 vt 0.290654 0.539889 vt 0.934417 0.537248 vt 0.924978 0.541209 vt 0.927330 0.536988 vt 0.104505 0.625218 vt 0.392118 0.313632 vt 0.391722 0.316355 vt 0.389817 0.314524 vt 0.129947 0.562651 vt 0.134347 0.568717 vt 0.122973 0.564849 vt 0.862977 0.202052 vt 0.856348 0.202244 vt 0.860900 0.198323 vt 0.124046 0.914471 vt 0.116356 0.913203 vt 0.129213 0.910066 vt 0.129542 0.894516 vt 0.123290 0.891058 vt 0.115017 0.893711 vt 0.112317 0.906973 vt 0.123252 0.880032 vt 0.130251 0.875186 vt 0.118654 0.878567 vt 0.130357 0.866173 vt 0.195129 0.529053 vt 0.199892 0.531805 vt 0.192795 0.534578 vt 0.208020 0.529905 vt 0.213867 0.524561 vt 0.224476 0.532233 vt 0.154438 0.581738 vt 0.168181 0.587875 vt 0.150784 0.583761 vt 0.161613 0.591332 vt 0.151168 0.587707 vt 0.167261 0.597684 vt 0.179734 0.591889 vt 0.178677 0.595873 vt 0.181381 0.588292 vt 0.227816 0.525148 vt 0.231162 0.535536 vt 0.233253 0.529315 vt 0.472477 0.303474 vt 0.472486 0.293223 vt 0.477145 0.295959 vt 0.778597 0.972776 vt 0.778610 0.979974 vt 0.775954 0.977911 vt 0.127388 0.549920 vt 0.132429 0.551904 vt 0.128784 0.555939 vt 0.123100 0.558913 vt 0.141074 0.544221 vt 0.194685 0.827625 vt 0.199185 0.833590 vt 0.193100 0.830505 vt 0.485582 0.287060 vt 0.497184 0.272928 vt 0.492171 0.280767 vt 0.122440 0.573670 vt 0.118055 0.570665 vt 0.878241 0.220460 vt 0.879117 0.210553 vt 0.884780 0.218017 vt 0.866116 0.211869 vt 0.142079 0.585455 vt 0.139153 0.573149 vt 0.194964 0.590808 vt 0.211093 0.590066 vt 0.198289 0.586899 vt 0.213995 0.585145 vt 0.190953 0.594314 vt 0.535032 0.282004 vt 0.540093 0.286010 vt 0.534754 0.286738 vt 0.524140 0.271565 vt 0.529420 0.268116 vt 0.223352 0.576619 vt 0.230595 0.573562 vt 0.233473 0.579017 vt 0.226693 0.582508 vt 0.223720 0.567736 vt 0.235410 0.568785 vt 0.146347 0.589878 vt 0.159294 0.596402 vt 0.157910 0.605406 vt 0.153684 0.598552 vt 0.163513 0.603247 vt 0.138025 0.592093 vt 0.136121 0.585756 vt 0.145979 0.596325 vt 0.799947 0.975824 vt 0.804634 0.974447 vt 0.806789 0.982339 vt 0.147151 0.604108 vt 0.149839 0.610486 vt 0.137582 0.614716 vt 0.807161 0.958030 vt 0.123208 0.545302 vt 0.154648 0.525046 vt 0.153425 0.545503 vt 0.173607 0.538520 vt 0.167465 0.521743 vt 0.180097 0.523055 vt 0.218159 0.515326 vt 0.482528 0.282248 vt 0.464642 0.292750 vt 0.477288 0.280227 vt 0.494075 0.270242 vt 0.132510 0.875881 vt 0.135866 0.901460 vt 0.863943 0.189862 vt 0.870255 0.191385 vt 0.870695 0.198514 vt 0.133351 0.913601 vt 0.136099 0.913910 vt 0.149894 0.835445 vt 0.146237 0.839687 vt 0.143030 0.842334 vt 0.477805 0.300806 vt 0.481562 0.295857 vt 0.168381 0.831049 vt 0.179401 0.828804 vt 0.178720 0.833643 vt 0.183640 0.834666 vt 0.188406 0.833824 vt 0.191618 0.840565 vt 0.226815 0.563822 vt 0.221885 0.561827 vt 0.221078 0.575191 vt 0.221626 0.571522 vt 0.213901 0.581647 vt 0.204793 0.584275 vt 0.183171 0.586018 vt 0.156917 0.580720 vt 0.876099 0.195651 vt 0.683791 0.909358 vt 0.692740 0.910300 vt 0.699802 0.921311 vt 0.688343 0.915209 vt 0.695902 0.854981 vt 0.700254 0.856639 vt 0.693860 0.859240 vt 0.202760 0.574625 vt 0.218415 0.572993 vt 0.219191 0.558167 vt 0.135126 0.863500 vt 0.134797 0.855872 vt 0.138173 0.848982 vt 0.142067 0.848927 vt 0.161778 0.834300 vt 0.159960 0.830889 vt 0.140525 0.912004 vt 0.869393 0.183490 vt 0.865141 0.184650 vt 0.881988 0.180051 vt 0.837152 0.179014 vt 0.836703 0.165830 vt 0.842124 0.171603 vt 0.140490 0.857713 vt 0.149553 0.854181 vt 0.151864 0.862640 vt 0.152876 0.849400 vt 0.152414 0.839352 vt 0.159907 0.845905 vt 0.381792 0.881964 vt 0.377013 0.886720 vt 0.375435 0.881472 vt 0.384616 0.894712 vt 0.392171 0.881943 vt 0.395767 0.889641 vt 0.063728 0.996988 vt 0.061024 0.988838 vt 0.063956 0.986798 vt 0.505951 0.994232 vt 0.505951 0.998308 vt 0.504428 0.995724 vt 0.406917 0.904223 vt 0.409517 0.910123 vt 0.402662 0.903510 vt 0.153283 0.895913 vt 0.869449 0.176174 vt 0.865025 0.179584 vt 0.877246 0.147025 vt 0.140094 0.880493 vt 0.675955 0.900760 vt 0.687591 0.902563 vt 0.685840 0.868334 vt 0.691406 0.882624 vt 0.674783 0.891530 vt 0.152405 0.882166 vt 0.141932 0.876591 vt 0.157385 0.871887 vt 0.140709 0.868969 vt 0.158758 0.856229 vt 0.163383 0.863650 vt 0.167083 0.855850 vt 0.170749 0.852817 vt 0.167199 0.843884 vt 0.177312 0.845696 vt 0.184890 0.857316 vt 0.170940 0.842673 vt 0.376965 0.898338 vt 0.204810 0.567687 vt 0.296049 0.900899 vt 0.291154 0.888982 vt 0.295875 0.883623 vt 0.201964 0.579957 vt 0.199366 0.576810 vt 0.693703 0.873014 vt 0.880063 0.146201 vt 0.875180 0.143583 vt 0.176928 0.908053 vt 0.171293 0.897845 vt 0.163146 0.884341 vt 0.839997 0.151831 vt 0.850144 0.145992 vt 0.845632 0.157382 vt 0.171151 0.875689 vt 0.173510 0.869265 vt 0.186349 0.866642 vt 0.185284 0.870616 vt 0.178194 0.863339 vt 0.189691 0.865438 vt 0.988730 0.048028 vt 0.990836 0.053465 vt 0.986199 0.053465 vt 0.156489 0.554767 vt 0.158736 0.561636 vt 0.152953 0.560454 vt 0.885021 0.171828 vt 0.876934 0.162421 vt 0.886649 0.160567 vt 0.671014 0.867018 vt 0.690069 0.860801 vt 0.190674 0.563088 vt 0.196564 0.561409 vt 0.205516 0.920841 vt 0.206451 0.914431 vt 0.206451 0.921463 vt 0.291540 0.991040 vt 0.295737 0.989713 vt 0.294466 0.993300 vt 0.204261 0.562977 vt 0.207194 0.560375 vt 0.200797 0.545920 vt 0.208173 0.551111 vt 0.204605 0.560659 vt 0.199230 0.556584 vt 0.206004 0.542595 vt 0.222220 0.540918 vt 0.222422 0.551889 vt 0.207228 0.512846 vt 0.207822 0.507759 vt 0.209332 0.509658 vt 0.191673 0.872932 vt 0.792551 0.959469 vt 0.794255 0.949156 vt 0.794718 0.957142 vt 0.794718 0.966496 vt 0.854063 0.116272 vt 0.842978 0.126271 vt 0.853499 0.110037 vt 0.193251 0.879275 vt 0.187352 0.874152 vt 0.853641 0.120020 vt 0.843105 0.128729 vt 0.369480 0.906047 vt 0.866908 0.119258 vt 0.852991 0.126720 vt 0.844995 0.133154 vt 0.999648 0.583003 vt 0.996198 0.591280 vt 0.995394 0.581189 vt 0.180285 0.893669 vt 0.193066 0.892269 vt 0.879687 0.138115 vt 0.883504 0.136931 vt 0.159099 0.540958 vt 0.154344 0.547214 vt 0.152154 0.543958 vt 0.887566 0.140094 vt 0.882692 0.148165 vt 0.887317 0.132549 vt 0.888047 0.151549 vt 0.174817 0.549499 vt 0.167215 0.564078 vt 0.177264 0.555123 vt 0.181130 0.562773 vt 0.184136 0.547304 vt 0.188232 0.552618 vt 0.193407 0.553301 vt 0.167107 0.998688 vt 0.165691 0.993831 vt 0.166994 0.990543 vt 0.864625 0.106289 vt 0.858472 0.106886 vt 0.872230 0.112505 vt 0.878285 0.111405 vt 0.876354 0.123123 vt 0.865645 0.126581 vt 0.172135 0.538265 vt 0.177498 0.535239 vt 0.180301 0.536537 vt 0.180343 0.541384 vt 0.181961 0.543807 vt 0.187521 0.548977 vt 0.196319 0.554347 vt 0.950210 0.003209 vt 0.955156 0.001758 vt 0.955462 0.010687 vt 0.946407 0.014735 vt 0.945989 0.028329 vt 0.964561 0.024982 vt 0.958719 0.046872 vt 0.523582 0.773575 vt 0.523037 0.770742 vt 0.524357 0.766985 vt 0.886948 0.112890 vt 0.884566 0.110697 vt 0.181839 0.531177 vt 0.183762 0.532128 vt 0.190904 0.542573 vt 0.188204 0.544873 vt 0.189601 0.533536 vt 0.185063 0.538954 vt 0.962532 0.012894 vt 0.965248 0.014289 vt 0.184574 0.528092 vt 0.189371 0.527163 vt 0.198138 0.512277 vt 0.135278 0.622829 vt 0.136681 0.630950 vt 0.130884 0.632740 vt 0.123262 0.638667 vt 0.124133 0.634092 vt 0.117613 0.635032 vt 0.742779 0.978197 vt 0.742779 0.983791 vt 0.738412 0.980741 vt 0.105612 0.637098 vt 0.109166 0.633863 vt 0.113297 0.638539 vt 0.620927 0.967453 vt 0.615616 0.976188 vt 0.613766 0.964321 vt 0.101653 0.672369 vt 0.096597 0.682950 vt 0.106342 0.673769 vt 0.101399 0.682011 vt 0.992932 0.018765 vt 0.991447 0.023144 vt 0.988361 0.021653 vt 0.106498 0.679353 vt 0.115686 0.673899 vt 0.112851 0.678524 vt 0.927693 0.519944 vt 0.931481 0.515199 vt 0.931240 0.522322 vt 0.118404 0.681418 vt 0.114541 0.682463 vt 0.122511 0.682510 vt 0.129935 0.675293 vt 0.133067 0.679037 vt 0.865131 0.583343 vt 0.866096 0.582871 vt 0.866096 0.584305 vt 0.452955 0.769141 vt 0.454238 0.771745 vt 0.446646 0.776230 vt 0.107340 0.658435 vt 0.121949 0.680270 vt 0.130079 0.658114 vt 0.463004 0.299363 vt 0.453332 0.295125 vt 0.455794 0.286492 vt 0.186499 0.515086 vt 0.203341 0.515104 vt 0.166816 0.507130 vt 0.188693 0.500031 vt 0.147824 0.501750 vt 0.140992 0.515801 vt 0.139896 0.528292 vt 0.225391 0.502167 vt 0.226467 0.513938 vt 0.451582 0.305512 vt 0.439889 0.311401 vt 0.439801 0.297578 vt 0.444559 0.287481 vt 0.450992 0.278523 vt 0.461900 0.278197 vt 0.463728 0.264374 vt 0.471458 0.269669 vt 0.476422 0.276438 vt 0.483728 0.265056 vt 0.474523 0.260141 vt 0.176141 0.467207 vt 0.453443 0.253850 vt 0.476985 0.246405 vt 0.473414 0.254341 vt 0.467481 0.216030 vt 0.436581 0.206000 vt 0.468594 0.178608 vt 0.449039 0.175148 vt 0.450054 0.136959 vt 0.467779 0.125954 vt 0.477889 0.102495 vt 0.490565 0.117574 vt 0.444742 0.116396 vt 0.438839 0.097824 vt 0.435166 0.077604 vt 0.441163 0.057871 vt 0.468181 0.090668 vt 0.470501 0.067208 vt 0.489227 0.084680 vt 0.219342 0.464830 vt 0.210419 0.498931 vt 0.224162 0.477252 vt 0.412422 0.309233 vt 0.411541 0.293887 vt 0.414980 0.253457 vt 0.416497 0.278665 vt 0.431876 0.235820 vt 0.438104 0.259676 vt 0.418085 0.231400 vt 0.433834 0.187089 vt 0.417868 0.201282 vt 0.432390 0.139679 vt 0.404846 0.181550 vt 0.443102 0.042577 vt 0.466626 0.047243 vt 0.446589 0.021263 vt 0.442752 0.005113 vt 0.464489 0.019784 vt 0.622470 0.117538 vt 0.636466 0.104852 vt 0.638490 0.118518 vt 0.618776 0.138134 vt 0.606010 0.113989 vt 0.653146 0.113065 vt 0.641561 0.089764 vt 0.662042 0.097657 vt 0.679618 0.105449 vt 0.702249 0.107922 vt 0.408748 0.035996 vt 0.406316 0.054697 vt 0.421077 0.002338 vt 0.422005 0.013805 vt 0.399757 0.006783 vt 0.612980 0.096068 vt 0.625315 0.070429 vt 0.640213 0.072150 vt 0.695889 0.096449 vt 0.668241 0.090316 vt 0.194590 0.899556 vt 0.182205 0.913205 vt 0.199648 0.903522 vt 0.432757 0.726453 vt 0.419320 0.716501 vt 0.425402 0.710441 vt 0.154031 0.613611 vt 0.914320 0.106786 vt 0.896173 0.107021 vt 0.904265 0.106410 vt 0.910656 0.105297 vt 0.921511 0.113859 vt 0.907384 0.119912 vt 0.178746 0.598431 vt 0.135497 0.646005 vt 0.127759 0.648992 vt 0.197599 0.597731 vt 0.212234 0.594973 vt 0.204028 0.602516 vt 0.212312 0.600424 vt 0.210740 0.608644 vt 0.547460 0.282256 vt 0.539436 0.270388 vt 0.539183 0.256489 vt 0.452917 0.734824 vt 0.444593 0.747843 vt 0.434597 0.742786 vt 0.434970 0.715694 vt 0.425746 0.706718 vt 0.911997 0.123000 vt 0.935068 0.124593 vt 0.200654 0.628926 vt 0.559577 0.278448 vt 0.579408 0.265349 vt 0.579765 0.269272 vt 0.901277 0.141706 vt 0.919024 0.136993 vt 0.913437 0.148261 vt 0.930992 0.159785 vt 0.922975 0.150836 vt 0.579638 0.256502 vt 0.899932 0.153386 vt 0.906649 0.159383 vt 0.923914 0.166373 vt 0.931543 0.177061 vt 0.555598 0.220179 vt 0.547062 0.247384 vt 0.545524 0.235374 vt 0.559470 0.215196 vt 0.547690 0.198237 vt 0.563806 0.211758 vt 0.542553 0.202549 vt 0.578480 0.234068 vt 0.569235 0.236463 vt 0.582360 0.228910 vt 0.588340 0.241213 vt 0.591367 0.247147 vt 0.590824 0.254598 vt 0.910694 0.167285 vt 0.916363 0.166709 vt 0.926587 0.178265 vt 0.455682 0.733402 vt 0.439335 0.754109 vt 0.452581 0.739270 vt 0.434750 0.754666 vt 0.107849 0.651070 vt 0.116453 0.656221 vt 0.122548 0.665934 vt 0.439810 0.777068 vt 0.437084 0.773443 vt 0.447267 0.767913 vt 0.452389 0.749383 vt 0.459539 0.743794 vt 0.465686 0.738877 vt 0.893760 0.158984 vt 0.894289 0.149619 vt 0.898642 0.163206 vt 0.956644 0.872226 vt 0.949407 0.876540 vt 0.948308 0.862202 vt 0.954590 0.860420 vt 0.957425 0.859405 vt 0.948080 0.852818 vt 0.953561 0.846915 vt 0.948770 0.846867 vt 0.953195 0.838019 vt 0.957857 0.833557 vt 0.488921 0.742881 vt 0.495775 0.741958 vt 0.490753 0.747070 vt 0.479631 0.747860 vt 0.472189 0.738293 vt 0.457674 0.751104 vt 0.470742 0.755979 vt 0.465160 0.761353 vt 0.513679 0.264319 vt 0.522313 0.261939 vt 0.513809 0.266112 vt 0.521182 0.258460 vt 0.531984 0.258694 vt 0.543068 0.242214 vt 0.539473 0.220913 vt 0.543341 0.226919 vt 0.933965 0.639922 vt 0.933541 0.629991 vt 0.935352 0.632716 vt 0.541887 0.178643 vt 0.535281 0.159506 vt 0.543801 0.162182 vt 0.529897 0.146977 vt 0.540054 0.154403 vt 0.322569 0.874832 vt 0.331569 0.875178 vt 0.326328 0.881767 vt 0.457420 0.946020 vt 0.449765 0.940683 vt 0.460739 0.943419 vt 0.521317 0.130779 vt 0.524121 0.137981 vt 0.519237 0.136962 vt 0.450991 0.935446 vt 0.461844 0.939924 vt 0.462076 0.933536 vt 0.456825 0.925033 vt 0.453050 0.920995 vt 0.460750 0.912894 vt 0.461808 0.922235 vt 0.512119 0.149376 vt 0.530655 0.157984 vt 0.479402 0.230662 vt 0.495452 0.188735 vt 0.494862 0.175959 vt 0.478588 0.204389 vt 0.483458 0.165532 vt 0.487257 0.134958 vt 0.494888 0.150643 vt 0.508635 0.261167 vt 0.519901 0.256649 vt 0.531978 0.253632 vt 0.539416 0.247950 vt 0.541692 0.243539 vt 0.936339 0.619167 vt 0.939614 0.625577 vt 0.935367 0.622435 vt 0.936817 0.637348 vt 0.937802 0.612806 vt 0.940660 0.619292 vt 0.532725 0.250728 vt 0.939668 0.605589 vt 0.937683 0.598625 vt 0.939655 0.592369 vt 0.872675 0.840185 vt 0.869562 0.842123 vt 0.869761 0.836209 vt 0.516580 0.128945 vt 0.512110 0.164847 vt 0.879400 0.814312 vt 0.875317 0.832805 vt 0.872443 0.825802 vt 0.492202 0.254408 vt 0.503563 0.260214 vt 0.492955 0.232675 vt 0.494440 0.218076 vt 0.492343 0.203868 vt 0.493937 0.166221 vt 0.502573 0.170945 vt 0.031602 0.933787 vt 0.021496 0.931784 vt 0.008185 0.918513 vt 0.023656 0.919222 vt 0.506699 0.179187 vt 0.514558 0.174985 vt 0.503333 0.202388 vt 0.501198 0.214218 vt 0.531696 0.166713 vt 0.497845 0.231330 vt 0.492195 0.246738 vt 0.510807 0.258150 vt 0.997837 0.415497 vt 0.999259 0.409749 vt 0.999259 0.415729 vt 0.880985 0.844045 vt 0.881138 0.847317 vt 0.870449 0.854130 vt 0.882585 0.833076 vt 0.883653 0.839656 vt 0.877310 0.838726 vt 0.496759 0.385828 vt 0.501091 0.378797 vt 0.508454 0.388659 vt 0.505769 0.374555 vt 0.493364 0.390555 vt 0.514004 0.400816 vt 0.510786 0.404680 vt 0.518620 0.187513 vt 0.023608 0.907617 vt 0.031979 0.919600 vt 0.539281 0.174940 vt 0.538748 0.175414 vt 0.537036 0.171469 vt 0.539443 0.199096 vt 0.540224 0.186465 vt 0.936522 0.671315 vt 0.935431 0.661710 vt 0.941406 0.677151 vt 0.937959 0.644556 vt 0.932795 0.650364 vt 0.932747 0.641332 vt 0.122753 0.996610 vt 0.119572 0.991954 vt 0.122753 0.990027 vt 0.899308 0.834490 vt 0.892874 0.839765 vt 0.889930 0.834280 vt 0.893228 0.828695 vt 0.492147 0.384495 vt 0.494910 0.379126 vt 0.452455 0.639758 vt 0.457492 0.636916 vt 0.455517 0.644368 vt 0.460324 0.648648 vt 0.452742 0.651930 vt 0.468182 0.644224 vt 0.460649 0.657317 vt 0.463820 0.634013 vt 0.468539 0.638456 vt 0.495891 0.400138 vt 0.939402 0.664854 vt 0.942292 0.665541 vt 0.945523 0.669782 vt 0.947550 0.673571 vt 0.015682 0.907516 vt 0.002748 0.914676 vt 0.027422 0.903918 vt 0.023951 0.904777 vt 0.516085 0.430707 vt 0.513613 0.420262 vt 0.520302 0.435151 vt 0.474786 0.643399 vt 0.496751 0.414687 vt 0.496320 0.418226 vt 0.484881 0.415964 vt 0.513481 0.437328 vt 0.522563 0.444384 vt 0.504988 0.419195 vt 0.011026 0.902773 vt 0.017720 0.898941 vt 0.021075 0.901958 vt 0.026855 0.900394 vt 0.023244 0.897064 vt 0.570332 0.915880 vt 0.574458 0.920794 vt 0.572051 0.921391 vt 0.002993 0.900729 vt 0.007949 0.898285 vt 0.010390 0.894034 vt 0.017047 0.891712 vt 0.526083 0.184936 vt 0.529662 0.174329 vt 0.532957 0.176002 vt 0.034435 0.897909 vt 0.029788 0.896260 vt 0.520475 0.447191 vt 0.515019 0.446039 vt 0.167198 0.428823 vt 0.187992 0.456921 vt 0.197745 0.441254 vt 0.208716 0.457770 vt 0.215952 0.439906 vt 0.229393 0.445709 vt 0.232822 0.460512 vt 0.170160 0.408089 vt 0.194681 0.422028 vt 0.213966 0.412138 vt 0.228355 0.432241 vt 0.225312 0.412907 vt 0.236116 0.446994 vt 0.234426 0.407254 vt 0.369123 0.305738 vt 0.350013 0.280877 vt 0.379883 0.302557 vt 0.193263 0.401444 vt 0.204680 0.395297 vt 0.221216 0.399036 vt 0.182906 0.374035 vt 0.199875 0.357710 vt 0.345863 0.289639 vt 0.326205 0.280494 vt 0.339762 0.274349 vt 0.397762 0.285023 vt 0.394769 0.309734 vt 0.382724 0.280523 vt 0.391537 0.250197 vt 0.398461 0.230961 vt 0.403090 0.205752 vt 0.388798 0.199220 vt 0.387351 0.151121 vt 0.405707 0.137546 vt 0.380511 0.116227 vt 0.383151 0.076743 vt 0.407860 0.072657 vt 0.415316 0.089146 vt 0.402392 0.110214 vt 0.368443 0.090232 vt 0.379275 0.048246 vt 0.388168 0.021818 vt 0.642208 0.042219 vt 0.658477 0.057151 vt 0.679710 0.057573 vt 0.696080 0.045308 vt 0.370935 0.235497 vt 0.375984 0.252884 vt 0.359813 0.254239 vt 0.361392 0.271997 vt 0.372975 0.160568 vt 0.370339 0.201754 vt 0.359065 0.171011 vt 0.353772 0.134819 vt 0.366304 0.122027 vt 0.357139 0.059835 vt 0.354175 0.076617 vt 0.343699 0.043376 vt 0.355006 0.017441 vt 0.340795 0.027326 vt 0.618608 0.025852 vt 0.635966 0.018399 vt 0.614845 0.072050 vt 0.662915 0.031618 vt 0.674197 0.033396 vt 0.685037 0.028188 vt 0.268687 0.670353 vt 0.341425 0.253299 vt 0.341778 0.196111 vt 0.344797 0.162104 vt 0.338240 0.070037 vt 0.328952 0.088874 vt 0.328212 0.062836 vt 0.765489 0.367448 vt 0.756568 0.374295 vt 0.755024 0.355583 vt 0.680770 0.017696 vt 0.673912 0.017715 vt 0.666215 0.021263 vt 0.334026 0.234186 vt 0.319474 0.230522 vt 0.347097 0.230463 vt 0.328421 0.200656 vt 0.328128 0.158097 vt 0.318395 0.120101 vt 0.333730 0.123096 vt 0.321575 0.144400 vt 0.319637 0.091663 vt 0.318599 0.072946 vt 0.767582 0.399516 vt 0.766086 0.428632 vt 0.755308 0.403133 vt 0.773331 0.390984 vt 0.729672 0.369668 vt 0.732813 0.355870 vt 0.739637 0.345605 vt 0.727644 0.336305 vt 0.710230 0.338142 vt 0.711023 0.352568 vt 0.651841 0.006245 vt 0.660154 0.007402 vt 0.647895 0.025841 vt 0.690339 0.329329 vt 0.663706 0.337824 vt 0.674166 0.326556 vt 0.686065 0.321523 vt 0.679521 0.318151 vt 0.661537 0.326022 vt 0.657882 0.338454 vt 0.668413 0.371469 vt 0.683206 0.338404 vt 0.677631 0.376689 vt 0.684200 0.356287 vt 0.691196 0.382441 vt 0.702189 0.367037 vt 0.698216 0.336106 vt 0.711102 0.402446 vt 0.720855 0.385670 vt 0.721427 0.407125 vt 0.725724 0.416600 vt 0.748138 0.428128 vt 0.756506 0.456591 vt 0.745117 0.479728 vt 0.733940 0.446203 vt 0.771703 0.453648 vt 0.764665 0.476445 vt 0.749758 0.491907 vt 0.307401 0.154431 vt 0.297439 0.163658 vt 0.296337 0.157936 vt 0.308562 0.158224 vt 0.312292 0.176090 vt 0.312931 0.191013 vt 0.315269 0.201724 vt 0.661017 0.414346 vt 0.668177 0.396796 vt 0.687563 0.406183 vt 0.675505 0.422185 vt 0.697066 0.417376 vt 0.682649 0.443310 vt 0.708195 0.432929 vt 0.729689 0.431815 vt 0.696784 0.463775 vt 0.716706 0.452607 vt 0.726307 0.480601 vt 0.713502 0.496515 vt 0.732583 0.502531 vt 0.748068 0.533309 vt 0.732908 0.538211 vt 0.716134 0.540700 vt 0.729071 0.556902 vt 0.713238 0.560795 vt 0.719534 0.575432 vt 0.181453 0.348723 vt 0.209956 0.347902 vt 0.222429 0.360276 vt 0.211506 0.357707 vt 0.704532 0.583571 vt 0.706795 0.575031 vt 0.661249 0.429174 vt 0.654696 0.448177 vt 0.665331 0.461913 vt 0.679167 0.486037 vt 0.700605 0.512061 vt 0.683493 0.519553 vt 0.695363 0.544327 vt 0.700173 0.560917 vt 0.694653 0.573116 vt 0.691588 0.579606 vt 0.680683 0.556535 vt 0.686784 0.586266 vt 0.671461 0.574985 vt 0.697659 0.591056 vt 0.183021 0.321539 vt 0.201696 0.337970 vt 0.657003 0.502326 vt 0.657969 0.520068 vt 0.662733 0.562688 vt 0.651008 0.580534 vt 0.653587 0.540034 vt 0.522723 0.120327 vt 0.516975 0.101623 vt 0.508839 0.103594 vt 0.532644 0.101699 vt 0.523705 0.105300 vt 0.533171 0.097532 vt 0.493476 0.092645 vt 0.507193 0.093091 vt 0.475604 0.034671 vt 0.614852 0.152722 vt 0.598296 0.141430 vt 0.678463 0.128057 vt 0.664727 0.126065 vt 0.693616 0.130608 vt 0.509098 0.067957 vt 0.592442 0.152918 vt 0.596369 0.169071 vt 0.635409 0.149032 vt 0.646842 0.123504 vt 0.655285 0.130342 vt 0.648973 0.143567 vt 0.685327 0.139250 vt 0.701131 0.147448 vt 0.704426 0.140688 vt 0.533052 0.090514 vt 0.516698 0.079527 vt 0.525937 0.060086 vt 0.531220 0.078360 vt 0.521551 0.049752 vt 0.513162 0.056419 vt 0.501003 0.056311 vt 0.502675 0.043772 vt 0.521501 0.032960 vt 0.624638 0.180794 vt 0.663053 0.152144 vt 0.680950 0.153607 vt 0.690604 0.160293 vt 0.999737 0.500853 vt 0.999737 0.507806 vt 0.997157 0.501592 vt 0.467944 0.924570 vt 0.538488 0.096988 vt 0.538691 0.103231 vt 0.534981 0.103554 vt 0.461222 0.906890 vt 0.456886 0.906149 vt 0.538303 0.071326 vt 0.544971 0.088368 vt 0.534814 0.090551 vt 0.530740 0.060910 vt 0.538423 0.049382 vt 0.535897 0.064390 vt 0.529528 0.065155 vt 0.547163 0.106260 vt 0.533074 0.110355 vt 0.553473 0.078066 vt 0.546787 0.062084 vt 0.553528 0.100680 vt 0.570350 0.100800 vt 0.570054 0.096966 vt 0.559814 0.089028 vt 0.943106 0.921401 vt 0.942382 0.942513 vt 0.936780 0.928632 vt 0.468538 0.936521 vt 0.471346 0.933870 vt 0.955531 0.932940 vt 0.949354 0.940290 vt 0.993839 0.535070 vt 0.993839 0.542007 vt 0.991086 0.537674 vt 0.682222 0.281106 vt 0.681157 0.287532 vt 0.672721 0.283510 vt 0.958693 0.941411 vt 0.997252 0.161408 vt 0.997252 0.168456 vt 0.994267 0.165085 vt 0.481207 0.939763 vt 0.476608 0.934832 vt 0.472051 0.944728 vt 0.480863 0.946109 vt 0.323869 0.892455 vt 0.329010 0.885833 vt 0.331598 0.898353 vt 0.332663 0.907902 vt 0.323064 0.886044 vt 0.318855 0.880121 vt 0.312516 0.873884 vt 0.119326 0.928287 vt 0.117099 0.936114 vt 0.113348 0.927781 vt 0.548770 0.192733 vt 0.848289 0.853565 vt 0.850573 0.859091 vt 0.848652 0.862033 vt 0.555298 0.202965 vt 0.851658 0.873236 vt 0.850134 0.873573 vt 0.999068 0.786635 vt 0.997500 0.779808 vt 0.999068 0.779632 vt 0.937515 0.206348 vt 0.928954 0.192192 vt 0.931773 0.191027 vt 0.922934 0.180457 vt 0.919678 0.181002 vt 0.897549 0.166996 vt 0.470711 0.730633 vt 0.467235 0.733691 vt 0.861882 0.894163 vt 0.854218 0.871155 vt 0.859119 0.882173 vt 0.582198 0.863580 vt 0.574922 0.874869 vt 0.574187 0.865409 vt 0.574991 0.853349 vt 0.583755 0.851201 vt 0.873268 0.909999 vt 0.860916 0.896912 vt 0.878469 0.906961 vt 0.874211 0.900149 vt 0.926679 0.191280 vt 0.885403 0.914972 vt 0.888421 0.912008 vt 0.897358 0.915935 vt 0.853928 0.857488 vt 0.854448 0.864112 vt 0.137194 0.945351 vt 0.142112 0.949326 vt 0.139039 0.952410 vt 0.132780 0.947904 vt 0.122679 0.933496 vt 0.130738 0.941037 vt 0.123663 0.944115 vt 0.124329 0.932437 vt 0.124701 0.927091 vt 0.128256 0.935732 vt 0.577973 0.917122 vt 0.583607 0.924240 vt 0.579165 0.922736 vt 0.881546 0.022251 vt 0.894346 0.029198 vt 0.878365 0.035781 vt 0.846019 0.025407 vt 0.871955 0.032239 vt 0.860050 0.040527 vt 0.859659 0.023580 vt 0.868363 0.022618 vt 0.496879 0.849317 vt 0.489683 0.858528 vt 0.486181 0.844030 vt 0.512726 0.995065 vt 0.518770 0.987002 vt 0.518770 0.997333 vt 0.987969 0.380079 vt 0.987156 0.391285 vt 0.982092 0.382799 vt 0.491313 0.833883 vt 0.491529 0.820052 vt 0.502541 0.825515 vt 0.498196 0.809047 vt 0.505469 0.805099 vt 0.501167 0.799280 vt 0.507112 0.791257 vt 0.505530 0.787691 vt 0.509957 0.782831 vt 0.483217 0.734284 vt 0.474810 0.733378 vt 0.907721 0.169216 vt 0.901298 0.171134 vt 0.474695 0.724159 vt 0.472285 0.726587 vt 0.479998 0.727667 vt 0.489550 0.725943 vt 0.495971 0.736841 vt 0.500120 0.741583 vt 0.504153 0.737773 vt 0.833586 0.308299 vt 0.829305 0.313189 vt 0.830699 0.307973 vt 0.484462 0.726479 vt 0.479571 0.723156 vt 0.902995 0.919830 vt 0.908997 0.912847 vt 0.907095 0.921465 vt 0.400037 0.977294 vt 0.401295 0.974977 vt 0.401295 0.978530 vt 0.902271 0.910520 vt 0.896447 0.911084 vt 0.899870 0.913001 vt 0.890539 0.901543 vt 0.884724 0.897722 vt 0.893574 0.880400 vt 0.893242 0.862764 vt 0.494912 0.715262 vt 0.476378 0.716167 vt 0.477343 0.708805 vt 0.480686 0.715666 vt 0.909649 0.906379 vt 0.903622 0.903060 vt 0.900841 0.898362 vt 0.899655 0.886139 vt 0.905107 0.859626 vt 0.901280 0.855957 vt 0.486234 0.706827 vt 0.909536 0.895331 vt 0.908492 0.856859 vt 0.472443 0.691480 vt 0.469535 0.665385 vt 0.479258 0.688089 vt 0.466405 0.668800 vt 0.453113 0.655622 vt 0.464691 0.686506 vt 0.904824 0.852562 vt 0.909975 0.854202 vt 0.909082 0.850854 vt 0.452410 0.658220 vt 0.545652 0.865439 vt 0.532546 0.859780 vt 0.894846 0.851632 vt 0.888467 0.848748 vt 0.891400 0.843267 vt 0.899064 0.846013 vt 0.903913 0.843716 vt 0.900417 0.838695 vt 0.872460 0.870741 vt 0.878099 0.870252 vt 0.291954 0.639874 vt 0.296337 0.632841 vt 0.296337 0.658460 vt 0.985887 0.880847 vt 0.979141 0.868007 vt 0.978577 0.860271 vt 0.569386 0.883195 vt 0.562824 0.892522 vt 0.559689 0.882805 vt 0.568543 0.878438 vt 0.573159 0.885985 vt 0.553236 0.883496 vt 0.550880 0.876474 vt 0.544886 0.878288 vt 0.539257 0.873479 vt 0.571893 0.912497 vt 0.566748 0.909195 vt 0.569846 0.906167 vt 0.573177 0.911783 vt 0.567612 0.901155 vt 0.570187 0.898312 vt 0.570284 0.893344 vt 0.554392 0.893182 vt 0.552366 0.895630 vt 0.548326 0.888589 vt 0.555055 0.897108 vt 0.548019 0.871695 vt 0.538965 0.871794 vt 0.943219 0.615839 vt 0.940683 0.610794 vt 0.945179 0.607113 vt 0.325680 0.945239 vt 0.332714 0.956030 vt 0.330803 0.959399 vt 0.839711 0.021173 vt 0.843031 0.020846 vt 0.838116 0.025266 vt 0.846304 0.037647 vt 0.835611 0.038347 vt 0.332695 0.940321 vt 0.330558 0.929676 vt 0.332587 0.931944 vt 0.850736 0.042311 vt 0.326849 0.937941 vt 0.330067 0.945172 vt 0.497403 0.857060 vt 0.496506 0.861920 vt 0.503114 0.863828 vt 0.486227 0.861328 vt 0.504210 0.870089 vt 0.508266 0.864143 vt 0.510529 0.867445 vt 0.509515 0.858136 vt 0.054136 0.963684 vt 0.060768 0.962167 vt 0.058614 0.977526 vt 0.063887 0.978650 vt 0.937818 0.820399 vt 0.936958 0.828292 vt 0.934427 0.826472 vt 0.933526 0.910935 vt 0.937204 0.898215 vt 0.941521 0.912344 vt 0.579932 0.102188 vt 0.595049 0.250002 vt 0.605573 0.259316 vt 0.595704 0.263342 vt 0.531017 0.041424 vt 0.595474 0.215375 vt 0.605233 0.213061 vt 0.596684 0.220934 vt 0.603154 0.232478 vt 0.556778 0.054032 vt 0.608568 0.241039 vt 0.612773 0.247410 vt 0.564468 0.058072 vt 0.566957 0.073316 vt 0.613336 0.198021 vt 0.602826 0.198695 vt 0.615227 0.230473 vt 0.615724 0.239245 vt 0.629437 0.193527 vt 0.640047 0.173974 vt 0.646826 0.183373 vt 0.676282 0.176221 vt 0.686498 0.175460 vt 0.694986 0.180388 vt 0.692929 0.197367 vt 0.703245 0.170108 vt 0.680263 0.192940 vt 0.669125 0.194953 vt 0.643422 0.199765 vt 0.623226 0.212483 vt 0.618736 0.203568 vt 0.638359 0.220755 vt 0.623055 0.224658 vt 0.656385 0.214014 vt 0.654855 0.203708 vt 0.671537 0.209729 vt 0.684346 0.219408 vt 0.710636 0.198979 vt 0.627565 0.230971 vt 0.651677 0.221883 vt 0.652498 0.226140 vt 0.636828 0.228437 vt 0.517264 0.594711 vt 0.508215 0.598591 vt 0.516141 0.590549 vt 0.665231 0.220130 vt 0.475127 0.613259 vt 0.495853 0.613235 vt 0.483107 0.619528 vt 0.696773 0.212838 vt 0.682999 0.216764 vt 0.625758 0.240553 vt 0.511136 0.582686 vt 0.517173 0.585707 vt 0.505163 0.591290 vt 0.478202 0.600970 vt 0.458313 0.608878 vt 0.460862 0.619821 vt 0.609529 0.267394 vt 0.600257 0.271258 vt 0.581611 0.083186 vt 0.570238 0.092212 vt 0.572111 0.086382 vt 0.591245 0.097798 vt 0.591133 0.094079 vt 0.929711 0.087626 vt 0.930223 0.083953 vt 0.936970 0.082617 vt 0.625825 0.249462 vt 0.615689 0.257117 vt 0.467489 0.649233 vt 0.473304 0.649446 vt 0.480770 0.648755 vt 0.950811 0.904794 vt 0.944905 0.905939 vt 0.946319 0.888704 vt 0.610629 0.274299 vt 0.606776 0.275635 vt 0.617398 0.256948 vt 0.613409 0.268344 vt 0.927664 0.100552 vt 0.922875 0.101873 vt 0.925642 0.090863 vt 0.929187 0.092070 vt 0.956076 0.901895 vt 0.948677 0.887097 vt 0.940345 0.886322 vt 0.942509 0.883980 vt 0.521406 0.565377 vt 0.524928 0.569971 vt 0.517609 0.570545 vt 0.202138 0.862395 vt 0.203187 0.886048 vt 0.199677 0.878239 vt 0.062616 0.955939 vt 0.508156 0.813801 vt 0.508122 0.809120 vt 0.444414 0.594591 vt 0.460139 0.596752 vt 0.486215 0.583399 vt 0.476745 0.593839 vt 0.466513 0.585742 vt 0.498553 0.582278 vt 0.677663 0.295039 vt 0.683140 0.294074 vt 0.683963 0.296765 vt 0.809192 0.947462 vt 0.799012 0.937896 vt 0.817775 0.951597 vt 0.919403 0.090984 vt 0.925758 0.086643 vt 0.797930 0.927458 vt 0.802924 0.923357 vt 0.797840 0.931557 vt 0.819116 0.917692 vt 0.813711 0.914027 vt 0.676633 0.298306 vt 0.682090 0.302073 vt 0.677978 0.301139 vt 0.674091 0.301684 vt 0.806163 0.928995 vt 0.814320 0.930478 vt 0.814590 0.936015 vt 0.669684 0.296211 vt 0.668884 0.300181 vt 0.666130 0.294252 vt 0.672628 0.289338 vt 0.667354 0.285296 vt 0.586445 0.990904 vt 0.586445 0.996564 vt 0.583459 0.991678 vt 0.515223 0.883572 vt 0.513709 0.875585 vt 0.519984 0.885206 vt 0.456732 0.587907 vt 0.445793 0.586395 vt 0.451813 0.582503 vt 0.458330 0.569249 vt 0.474657 0.578260 vt 0.513005 0.562784 vt 0.469382 0.570512 vt 0.496808 0.570257 vt 0.507179 0.551709 vt 0.517338 0.560617 vt 0.819537 0.931498 vt 0.816927 0.941105 vt 0.924652 0.537066 vt 0.924881 0.532974 vt 0.102296 0.683476 vt 0.100071 0.683752 vt 0.989260 0.025152 vt 0.992932 0.028075 vt 0.987067 0.023244 vt 0.933283 0.507314 vt 0.935888 0.509256 vt 0.929935 0.511585 vt 0.818406 0.310651 vt 0.816610 0.311580 vt 0.815539 0.310266 vt 0.955846 0.832815 vt 0.404296 0.318496 vt 0.399177 0.317801 vt 0.395915 0.313443 vt 0.414121 0.326056 vt 0.404045 0.320848 vt 0.424245 0.337615 vt 0.414934 0.334023 vt 0.410291 0.326319 vt 0.423460 0.332626 vt 0.428765 0.337722 vt 0.987941 0.954715 vt 0.991555 0.951910 vt 0.988039 0.957845 vt 0.991249 0.959442 vt 0.428707 0.786633 vt 0.431663 0.780983 vt 0.441047 0.792191 vt 0.122733 0.631350 vt 0.119362 0.632028 vt 0.453526 0.781752 vt 0.456038 0.780727 vt 0.456271 0.788285 vt 0.126412 0.628187 vt 0.450940 0.790005 vt 0.447912 0.782537 vt 0.130429 0.623620 vt 0.134599 0.613591 vt 0.940660 0.701303 vt 0.948793 0.695823 vt 0.940618 0.705747 vt 0.939025 0.706211 vt 0.937042 0.709408 vt 0.936764 0.703927 vt 0.945877 0.712637 vt 0.943812 0.714484 vt 0.943736 0.715257 vt 0.945545 0.722471 vt 0.719693 0.948129 vt 0.720510 0.957030 vt 0.718448 0.957375 vt 0.293606 0.760354 vt 0.291383 0.758901 vt 0.290745 0.752854 vt 0.404296 0.323948 vt 0.404905 0.329370 vt 0.954091 0.715282 vt 0.242237 0.341252 vt 0.241821 0.355725 vt 0.238984 0.336285 vt 0.252891 0.394743 vt 0.247953 0.395998 vt 0.243993 0.355792 vt 0.255824 0.398376 vt 0.255029 0.419814 vt 0.263180 0.413330 vt 0.258860 0.347993 vt 0.953813 0.746735 vt 0.947810 0.767698 vt 0.938435 0.764537 vt 0.933885 0.759992 vt 0.460932 0.817331 vt 0.471599 0.844358 vt 0.468196 0.844830 vt 0.454841 0.841987 vt 0.438116 0.809761 vt 0.449842 0.847045 vt 0.423162 0.786583 vt 0.430523 0.816600 vt 0.435202 0.840740 vt 0.985340 0.725938 vt 0.993068 0.712401 vt 0.993068 0.734643 vt 0.292883 0.727854 vt 0.288934 0.709339 vt 0.293296 0.706154 vt 0.294241 0.745073 vt 0.291637 0.744319 vt 0.295515 0.760996 vt 0.405112 0.335986 vt 0.276699 0.382876 vt 0.282697 0.417532 vt 0.264627 0.422888 vt 0.286743 0.398896 vt 0.286395 0.416019 vt 0.282852 0.333345 vt 0.287945 0.333307 vt 0.287548 0.365785 vt 0.444313 0.539941 vt 0.438316 0.532212 vt 0.448003 0.531734 vt 0.448489 0.550816 vt 0.438622 0.545396 vt 0.444228 0.560333 vt 0.452068 0.565389 vt 0.448083 0.574155 vt 0.439416 0.589576 vt 0.436100 0.537903 vt 0.430363 0.529244 vt 0.434201 0.551086 vt 0.445154 0.568337 vt 0.439705 0.573185 vt 0.438294 0.563658 vt 0.427991 0.517998 vt 0.440051 0.524615 vt 0.436541 0.527167 vt 0.426910 0.523004 vt 0.497789 0.557765 vt 0.429245 0.514142 vt 0.424059 0.501513 vt 0.422801 0.471961 vt 0.421392 0.454493 vt 0.420256 0.434983 vt 0.104971 0.987624 vt 0.287543 0.423562 vt 0.434673 0.559034 vt 0.961064 0.992315 vt 0.960277 0.993251 vt 0.960193 0.991691 vt 0.959949 0.620922 vt 0.961030 0.613146 vt 0.964109 0.637871 vt 0.961414 0.637912 vt 0.954432 0.446313 vt 0.958066 0.444385 vt 0.957594 0.451411 vt 0.953837 0.452558 vt 0.951978 0.446252 vt 0.959107 0.603268 vt 0.955818 0.601748 vt 0.954619 0.611811 vt 0.950998 0.600642 vt 0.959477 0.635043 vt 0.956857 0.619024 vt 0.971743 0.949168 vt 0.973897 0.972019 vt 0.970682 0.953626 vt 0.968869 0.937391 vt 0.976737 0.945335 vt 0.975751 0.966823 vt 0.972607 0.936528 vt 0.701411 0.948899 vt 0.702386 0.946925 vt 0.702386 0.951238 vt 0.977174 0.967503 vt 0.977167 0.973378 vt 0.961005 0.995765 vt 0.959690 0.996504 vt 0.958592 0.478983 vt 0.959083 0.462252 vt 0.960531 0.468154 vt 0.733991 0.921024 vt 0.730025 0.906571 vt 0.736827 0.924834 vt 0.728316 0.913127 vt 0.722103 0.894809 vt 0.722780 0.888424 vt 0.923340 0.105297 vt 0.921284 0.104984 vt 0.923340 0.102535 vt 0.662726 0.294128 vt 0.729271 0.878351 vt 0.725878 0.875212 vt 0.722752 0.877298 vt 0.724759 0.863107 vt 0.522314 0.866173 vt 0.515778 0.870057 vt 0.522103 0.855632 vt 0.477943 0.989563 vt 0.479676 0.984072 vt 0.479722 0.991054 vt 0.722031 0.889390 vt 0.719509 0.888086 vt 0.999345 0.093936 vt 0.996828 0.098438 vt 0.996398 0.094253 vt 0.719559 0.893792 vt 0.317382 0.894323 vt 0.320961 0.890655 vt 0.299596 0.876283 vt 0.311372 0.887225 vt 0.306970 0.890742 vt 0.316334 0.880123 vt 0.312317 0.878297 vt 0.658158 0.958991 vt 0.660788 0.961354 vt 0.654278 0.959595 vt 0.654487 0.955538 vt 0.659212 0.953568 vt 0.119692 0.923024 vt 0.300388 0.886155 vt 0.296337 0.881881 vt 0.297355 0.885870 vt 0.742819 0.313190 vt 0.739527 0.313190 vt 0.741143 0.309242 vt 0.125830 0.916975 vt 0.129334 0.921784 vt 0.034340 0.893850 vt 0.290826 0.392182 vt 0.415815 0.386257 vt 0.408259 0.373870 vt 0.408330 0.352870 vt 0.290614 0.690395 vt 0.422750 0.392049 vt 0.433831 0.416819 vt 0.426968 0.463636 vt 0.426432 0.447154 vt 0.427935 0.429613 vt 0.434533 0.427477 vt 0.416624 0.428661 vt 0.424503 0.418525 vt 0.869917 0.947276 vt 0.876680 0.951452 vt 0.876492 0.963609 vt 0.877181 0.939549 vt 0.932747 0.596573 vt 0.927287 0.603333 vt 0.925724 0.592183 vt 0.872763 0.933826 vt 0.879085 0.927354 vt 0.466780 0.556101 vt 0.454405 0.540161 vt 0.455962 0.529962 vt 0.460470 0.533151 vt 0.464988 0.537596 vt 0.450424 0.525367 vt 0.435525 0.505020 vt 0.449294 0.511657 vt 0.432787 0.489921 vt 0.443593 0.502953 vt 0.445305 0.492766 vt 0.458221 0.495077 vt 0.453738 0.505842 vt 0.439737 0.485801 vt 0.465526 0.478470 vt 0.494768 0.999181 vt 0.489933 0.992922 vt 0.494768 0.988168 vt 0.455662 0.524885 vt 0.463673 0.522326 vt 0.296257 0.932092 vt 0.294553 0.940576 vt 0.291800 0.935095 vt 0.471937 0.533453 vt 0.476456 0.546724 vt 0.464362 0.546595 vt 0.484665 0.540740 vt 0.496944 0.543120 vt 0.500971 0.531509 vt 0.503300 0.541634 vt 0.509488 0.538117 vt 0.489473 0.529989 vt 0.498237 0.526434 vt 0.503778 0.526884 vt 0.960514 0.596740 vt 0.960619 0.592916 vt 0.506591 0.528253 vt 0.506549 0.524951 vt 0.952139 0.592834 vt 0.957841 0.591608 vt 0.950934 0.596768 vt 0.322929 0.905720 vt 0.319737 0.896383 vt 0.314357 0.898784 vt 0.518497 0.855729 vt 0.511801 0.866337 vt 0.511962 0.870828 vt 0.731342 0.857031 vt 0.728858 0.865156 vt 0.993958 0.207036 vt 0.998145 0.210717 vt 0.995123 0.212859 vt 0.650161 0.939857 vt 0.653197 0.949332 vt 0.647466 0.949357 vt 0.737242 0.854337 vt 0.724906 0.850749 vt 0.710742 0.863052 vt 0.644661 0.930363 vt 0.651918 0.935092 vt 0.909295 0.583767 vt 0.911517 0.591599 vt 0.906577 0.591599 vt 0.705466 0.876015 vt 0.707600 0.872214 vt 0.713063 0.880319 vt 0.658035 0.937951 vt 0.659230 0.946510 vt 0.889944 0.994991 vt 0.884035 0.991707 vt 0.889253 0.989760 vt 0.880890 0.995365 vt 0.313967 0.893908 vt 0.307452 0.897901 vt 0.889870 0.985236 vt 0.318176 0.887997 vt 0.318015 0.894598 vt 0.998951 0.340673 vt 0.997106 0.339838 vt 0.998881 0.334717 vt 0.878582 0.982881 vt 0.876588 0.985575 vt 0.870183 0.980074 vt 0.135840 0.916610 vt 0.129698 0.917009 vt 0.871711 0.977904 vt 0.878764 0.975526 vt 0.519867 0.459181 vt 0.514251 0.457424 vt 0.520707 0.461496 vt 0.517743 0.462503 vt 0.520047 0.462065 vt 0.302401 0.900421 vt 0.304552 0.906392 vt 0.514025 0.460149 vt 0.507287 0.460446 vt 0.506551 0.456759 vt 0.308594 0.913003 vt 0.311131 0.908389 vt 0.319031 0.902281 vt 0.321618 0.909234 vt 0.502210 0.439544 vt 0.509792 0.430920 vt 0.508445 0.450480 vt 0.495781 0.425676 vt 0.501864 0.432911 vt 0.493281 0.435491 vt 0.482889 0.426440 vt 0.490826 0.422184 vt 0.481585 0.434103 vt 0.478447 0.417789 vt 0.481902 0.411161 vt 0.641359 0.955551 vt 0.643540 0.955794 vt 0.643827 0.961635 vt 0.476794 0.438926 vt 0.476666 0.432036 vt 0.480736 0.445148 vt 0.486547 0.443159 vt 0.485195 0.452535 vt 0.497443 0.456677 vt 0.501332 0.461426 vt 0.496219 0.466910 vt 0.491146 0.464953 vt 0.324666 0.916397 vt 0.317834 0.921673 vt 0.302824 0.920076 vt 0.993872 0.807919 vt 0.993872 0.814153 vt 0.989630 0.811728 vt 0.490925 0.469227 vt 0.484811 0.467659 vt 0.485672 0.473664 vt 0.477914 0.452680 vt 0.477825 0.438851 vt 0.481123 0.438488 vt 0.475340 0.446650 vt 0.884602 0.615426 vt 0.883130 0.609228 vt 0.891655 0.609832 vt 0.478642 0.470588 vt 0.479511 0.478134 vt 0.914743 0.987527 vt 0.923768 0.984118 vt 0.923304 0.994779 vt 0.883025 0.603971 vt 0.886627 0.604746 vt 0.473007 0.457444 vt 0.474216 0.462235 vt 0.481269 0.485766 vt 0.659370 0.934742 vt 0.662481 0.936590 vt 0.990003 0.960098 vt 0.980019 0.972633 vt 0.978727 0.966707 vt 0.659165 0.926445 vt 0.655063 0.928639 vt 0.655894 0.924163 vt 0.245411 0.995258 vt 0.242961 0.994471 vt 0.245394 0.988841 vt 0.490379 0.493558 vt 0.491359 0.484961 vt 0.496814 0.486879 vt 0.507128 0.486238 vt 0.492071 0.478569 vt 0.483111 0.494134 vt 0.479307 0.490414 vt 0.997252 0.677629 vt 0.991269 0.685891 vt 0.989240 0.681955 vt 0.007293 0.994467 vt 0.003725 0.995182 vt 0.007293 0.991714 vt 0.467346 0.491750 vt 0.467978 0.504884 vt 0.473661 0.493555 vt 0.470606 0.497962 vt 0.476311 0.499905 vt 0.479096 0.497773 vt 0.476692 0.507970 vt 0.484103 0.498285 vt 0.489277 0.498821 vt 0.487149 0.504600 vt 0.016120 0.966652 vt 0.016120 0.973323 vt 0.013865 0.967730 vt 0.481107 0.501682 vt 0.477248 0.500596 vt 0.949558 0.438521 vt 0.712514 0.885632 vt 0.960777 0.434236 vt 0.947471 0.432451 vt 0.960854 0.416229 vt 0.485715 0.510947 vt 0.493743 0.521685 vt 0.461786 0.510844 vt 0.457404 0.517698 vt 0.506219 0.643386 vt 0.515950 0.639318 vt 0.512113 0.647643 vt 0.517362 0.649035 vt 0.473148 0.438769 vt 0.974304 0.222679 vt 0.974332 0.216386 vt 0.977302 0.219940 vt 0.600993 0.313144 vt 0.605447 0.308616 vt 0.605447 0.313193 vt 0.520555 0.659010 vt 0.515007 0.668622 vt 0.521393 0.670370 vt 0.502325 0.657611 vt 0.498027 0.653842 vt 0.493696 0.651960 vt 0.472541 0.425390 vt 0.467542 0.418223 vt 0.473782 0.417196 vt 0.492508 0.653609 vt 0.492736 0.655193 vt 0.474999 0.396871 vt 0.476828 0.394352 vt 0.480248 0.403087 vt 0.202233 0.856494 vt 0.204380 0.861027 vt 0.200494 0.858473 vt 0.470020 0.406180 vt 0.472769 0.650947 vt 0.479562 0.676305 vt 0.466704 0.652454 vt 0.464962 0.654927 vt 0.465678 0.664553 vt 0.468843 0.669744 vt 0.473701 0.676817 vt 0.490541 0.699486 vt 0.486010 0.699768 vt 0.491582 0.694868 vt 0.290654 0.526480 vt 0.291506 0.508726 vt 0.295484 0.531459 vt 0.483000 0.676724 vt 0.497067 0.700374 vt 0.507903 0.733145 vt 0.504095 0.706749 vt 0.519395 0.712673 vt 0.432213 0.480783 vt 0.438652 0.479566 vt 0.438922 0.474459 vt 0.918517 0.593561 vt 0.907663 0.605736 vt 0.923870 0.612782 vt 0.909734 0.613892 vt 0.900909 0.616995 vt 0.896963 0.611075 vt 0.461779 0.472314 vt 0.462852 0.466159 vt 0.284219 0.995947 vt 0.286997 0.989898 vt 0.287255 0.997147 vt 0.471433 0.469132 vt 0.472183 0.478407 vt 0.469293 0.465317 vt 0.469663 0.458719 vt 0.997138 0.894614 vt 0.989068 0.899151 vt 0.991792 0.891415 vt 0.895821 0.618438 vt 0.892907 0.619732 vt 0.520392 0.651039 vt 0.907926 0.629533 vt 0.903381 0.629591 vt 0.440260 0.460857 vt 0.431958 0.458760 vt 0.439461 0.455727 vt 0.919822 0.618271 vt 0.926687 0.617450 vt 0.922838 0.629938 vt 0.914792 0.632419 vt 0.453505 0.871585 vt 0.469261 0.870593 vt 0.460191 0.875255 vt 0.579208 0.997077 vt 0.583204 0.986853 vt 0.583204 0.997916 vt 0.441104 0.427878 vt 0.439209 0.414939 vt 0.445974 0.426677 vt 0.441256 0.870953 vt 0.449459 0.877474 vt 0.447982 0.434462 vt 0.445026 0.441475 vt 0.438363 0.875376 vt 0.431302 0.873881 vt 0.429839 0.866668 vt 0.445243 0.890924 vt 0.439601 0.882648 vt 0.451057 0.883885 vt 0.439160 0.435188 vt 0.431801 0.446016 vt 0.455105 0.892446 vt 0.448492 0.900916 vt 0.412092 0.405911 vt 0.414833 0.397633 vt 0.414236 0.422659 vt 0.480776 0.873118 vt 0.964292 0.695117 vt 0.959129 0.686343 vt 0.964950 0.686598 vt 0.490274 0.875794 vt 0.482118 0.881425 vt 0.466555 0.883886 vt 0.491719 0.879814 vt 0.483224 0.884009 vt 0.492177 0.659534 vt 0.516824 0.681649 vt 0.522426 0.687099 vt 0.485642 0.652563 vt 0.506417 0.692193 vt 0.498818 0.692933 vt 0.484553 0.663868 vt 0.517530 0.690694 vt 0.518708 0.703706 vt 0.521900 0.701478 vt 0.521965 0.692726 vt 0.921152 0.652763 vt 0.924636 0.643885 vt 0.943811 0.516879 vt 0.946394 0.516944 vt 0.942658 0.521368 vt 0.939619 0.523566 vt 0.835411 0.020511 vt 0.981597 0.493128 vt 0.981597 0.496569 vt 0.979982 0.494611 vt 0.831419 0.042085 vt 0.835782 0.042648 vt 0.455658 0.861795 vt 0.456307 0.865570 vt 0.464340 0.864474 vt 0.898070 0.005472 vt 0.905045 0.002728 vt 0.898938 0.016311 vt 0.904024 0.023917 vt 0.909510 0.014892 vt 0.465987 0.849055 vt 0.468842 0.861779 vt 0.474607 0.852284 vt 0.482037 0.854470 vt 0.912798 0.011084 vt 0.912038 0.003338 vt 0.917401 0.010416 vt 0.908042 0.000329 vt 0.471230 0.848273 vt 0.489493 0.998166 vt 0.485649 0.995827 vt 0.489493 0.994853 vt 0.099839 0.923865 vt 0.094198 0.927623 vt 0.094583 0.922920 vt 0.087057 0.924434 vt 0.088382 0.918737 vt 0.519887 0.916816 vt 0.520561 0.909408 vt 0.524812 0.920255 vt 0.081169 0.926230 vt 0.955957 0.826873 vt 0.542607 0.976287 vt 0.545184 0.972580 vt 0.545555 0.978961 vt 0.942205 0.509319 vt 0.935973 0.503631 vt 0.840007 0.014533 vt 0.838520 0.014085 vt 0.948858 0.825357 vt 0.945451 0.820346 vt 0.956130 0.819813 vt 0.941484 0.825751 vt 0.941393 0.843234 vt 0.935528 0.841085 vt 0.943639 0.512387 vt 0.938203 0.516702 vt 0.932934 0.531738 vt 0.924390 0.529918 vt 0.938169 0.526301 vt 0.925474 0.527382 vt 0.937762 0.534149 vt 0.935577 0.518427 vt 0.940522 0.521381 vt 0.935804 0.859779 vt 0.932723 0.845441 vt 0.943899 0.869809 vt 0.376696 0.963129 vt 0.382757 0.955776 vt 0.382565 0.962912 vt 0.376962 0.957188 vt 0.370228 0.962339 vt 0.522268 0.723927 vt 0.512944 0.734138 vt 0.926171 0.689989 vt 0.929975 0.680764 vt 0.928500 0.695123 vt 0.926428 0.674684 vt 0.921002 0.668162 vt 0.930996 0.668199 vt 0.931077 0.644242 vt 0.927390 0.656733 vt 0.960071 0.445803 vt 0.395222 0.315718 vt 0.287911 0.317192 vt 0.247099 0.346921 vt 0.118170 0.584422 vt 0.114751 0.583657 vt 0.119590 0.581711 vt 0.272911 0.334090 vt 0.292652 0.550217 vt 0.291200 0.543087 vt 0.295484 0.532920 vt 0.742039 0.057311 vt 0.256088 0.647100 vt 0.115641 0.577811 vt 0.114355 0.583158 vt 0.841295 0.824576 vt 0.841738 0.833910 vt 0.063527 0.508062 vt 0.058042 0.502706 vt 0.051242 0.497746 vt 0.049275 0.569329 vt 0.479101 0.978431 vt 0.477882 0.973190 vt 0.479555 0.970749 vt 0.763252 0.905302 vt 0.389543 0.992799 vt 0.389543 0.998275 vt 0.387155 0.995494 vt 0.080989 0.588931 vt 0.279785 0.988735 vt 0.279999 0.997508 vt 0.276007 0.996324 vt 0.043380 0.495121 vt 0.021320 0.499361 vt 0.781373 0.907560 vt 0.608135 0.858546 vt 0.619540 0.924591 vt 0.832979 0.550933 vt 0.840602 0.556715 vt 0.830678 0.552091 vt 0.942587 0.274383 vt 0.928459 0.266017 vt 0.920767 0.222761 vt 0.847266 0.550098 vt 0.847280 0.543453 vt 0.852707 0.544856 vt 0.766366 0.886836 vt 0.943755 0.272773 vt 0.603940 0.861072 vt 0.803988 0.848674 vt 0.873047 0.569045 vt 0.612650 0.929945 vt 0.878262 0.531358 vt 0.449138 0.907371 vt 0.034777 0.503687 vt 0.980405 0.228628 vt 0.988867 0.222761 vt 0.988877 0.249322 vt 0.433245 0.955115 vt 0.429475 0.950769 vt 0.995130 0.415524 vt 0.991010 0.413470 vt 0.995130 0.409331 vt 0.901655 0.291437 vt 0.068175 0.519540 vt 0.047241 0.524714 vt 0.424169 0.945025 vt 0.426126 0.949685 vt 0.523448 0.755266 vt 0.996888 0.477262 vt 0.998915 0.482345 vt 0.997130 0.480142 vt 0.845549 0.893176 vt 0.064042 0.520589 vt 0.052546 0.522112 vt 0.911291 0.292526 vt 0.061571 0.484790 vt 0.061403 0.494380 vt 0.290952 0.871105 vt 0.296041 0.862322 vt 0.294516 0.881969 vt 0.926551 0.549930 vt 0.942892 0.814007 vt 0.943854 0.810072 vt 0.945669 0.814007 vt 0.133741 0.686119 vt 0.600835 0.992862 vt 0.036153 0.462045 vt 0.848033 0.979928 vt 0.840525 0.972417 vt 0.848033 0.962130 vt 0.814140 0.123388 vt 0.047395 0.571054 vt 0.112657 0.741504 vt 0.289916 0.623232 vt 0.015131 0.559977 vt 0.281035 0.033562 vt 0.006273 0.541295 vt 0.295811 0.050306 vt 0.288396 0.579462 vt 0.250664 0.588687 vt 0.996981 0.140977 vt 0.992575 0.137394 vt 0.996097 0.130489 vt 0.391762 0.998669 vt 0.389543 0.996322 vt 0.391762 0.992799 vt 0.176597 0.715029 vt 0.182988 0.720385 vt 0.941099 0.036988 vt 0.161079 0.705138 vt 0.154338 0.721502 vt 0.216830 0.035527 vt 0.364528 0.907582 vt 0.367720 0.914028 vt 0.789788 0.920089 vt 0.229173 0.918621 vt 0.992879 0.767878 vt 0.990153 0.762442 vt 0.992879 0.760136 vt 0.231479 0.906805 vt 0.954737 0.725792 vt 0.229435 0.900621 vt 0.209927 0.086219 vt 0.297759 0.442296 vt 0.246901 0.123896 vt 0.511572 0.800634 vt 0.245923 0.086580 vt 0.967399 0.807338 vt 0.967399 0.814221 vt 0.964138 0.811728 vt 0.251936 0.926397 vt 0.262913 0.920005 vt 0.222229 0.113419 vt 0.230833 0.128781 vt 0.523418 0.784424 vt 0.521628 0.790647 vt 0.518574 0.797659 vt 0.879437 0.558443 vt 0.308631 0.479209 vt 0.063260 0.367859 vt 0.736307 0.034790 vt 0.725427 0.054320 vt 0.773741 0.009164 vt 0.757694 0.010406 vt 0.715863 0.018479 vt 0.986172 0.598799 vt 0.992329 0.597759 vt 0.992824 0.612253 vt 0.745756 0.000000 vt 0.719265 0.010315 vt 0.726202 0.009816 vt 0.538898 0.983938 vt 0.544588 0.994276 vt 0.537224 0.997166 vt 0.535431 0.393778 vt 0.063636 0.334688 vt 0.084311 0.344484 vt 0.296337 0.658461 vt 0.296181 0.668706 vt 0.292868 0.664974 vt 0.163341 0.358454 vt 0.574515 0.559403 vt 0.003164 0.089841 vt 0.112317 0.931863 vt 0.112317 0.946428 vt 0.110192 0.949082 vt 0.113525 0.325681 vt 0.293105 0.680153 vt 0.757281 0.878995 vt 0.478718 0.946590 vt 0.774027 0.157724 vt 0.244564 0.198991 vt 0.760765 0.941912 vt 0.062224 0.893271 vt 0.812025 0.298743 vt 0.976225 0.814213 vt 0.972119 0.811254 vt 0.976225 0.805684 vt 0.760954 0.949156 vt 0.145293 0.940069 vt 0.270384 0.573426 vt 0.150131 0.727539 vt 0.225368 0.864991 vt 0.232159 0.842479 vt 0.245993 0.844329 vt 0.176781 0.918874 vt 0.157565 0.937371 vt 0.264346 0.831453 vt 0.956341 0.991413 vt 0.165250 0.760346 vt 0.268439 0.900029 vt 0.131412 0.800306 vt 0.137102 0.790498 vt 0.231638 0.883714 vt 0.967221 0.712038 vt 0.967365 0.739554 vt 0.291194 0.578418 vt 0.295742 0.560056 vt 0.295742 0.585154 vt 0.817302 0.565167 vt 0.802954 0.577260 vt 0.787453 0.582670 vt 0.792815 0.578054 vt 0.161149 0.932303 vt 0.163788 0.928777 vt 0.161856 0.935150 vt 0.819849 0.535498 vt 0.213979 0.895784 vt 0.778296 0.587146 vt 0.957478 0.711506 vt 0.850821 0.048041 vt 0.923865 0.531358 vt 0.835444 0.050181 vt 0.923764 0.549439 vt 0.667965 0.970581 vt 0.663649 0.973269 vt 0.921598 0.064894 vt 0.923333 0.073663 vt 0.952252 0.102650 vt 0.275192 0.200990 vt 0.054620 0.927848 vt 0.824094 0.265274 vt 0.273190 0.245128 vt 0.815008 0.201501 vt 0.366230 0.619513 vt 0.956247 0.685939 vt 0.290307 0.219745 vt 0.295465 0.208662 vt 0.578297 0.992462 vt 0.578617 0.997893 vt 0.577357 0.987495 vt 0.966579 0.997641 vt 0.964205 0.996062 vt 0.966638 0.991691 vt 0.146592 0.811238 vt 0.152692 0.811392 vt 0.601507 0.933780 vt 0.810824 0.290302 vt 0.612832 0.930540 vt 0.341025 0.597204 vt 0.880440 0.101356 vt 0.887855 0.105143 vt 0.064222 0.983664 vt 0.067616 0.988162 vt 0.065459 0.992121 vt 0.959862 0.073497 vt 0.956430 0.082792 vt 0.795591 0.251219 vt 0.811911 0.282940 vt 0.053091 0.947514 vt 0.615203 0.936309 vt 0.177037 0.941895 vt 0.808415 0.280738 vt 0.809364 0.277433 vt 0.204172 0.921084 vt 0.978025 0.883980 vt 0.800063 0.296358 vt 0.202848 0.940520 vt 0.085075 0.680677 vt 0.083087 0.679536 vt 0.971274 0.855032 vt 0.969848 0.857037 vt 0.974741 0.852512 vt 0.954805 0.103586 vt 0.953403 0.105236 vt 0.953422 0.103539 vt 0.112105 0.583166 vt 0.094585 0.589035 vt 0.090698 0.590545 vt 0.374950 0.354868 vt 0.737425 0.957107 vt 0.085637 0.622183 vt 0.091778 0.629531 vt 0.737884 0.946513 vt 0.739117 0.936972 vt 0.741051 0.950939 vt 0.945215 0.167847 vt 0.740915 0.933596 vt 0.238984 0.515602 vt 0.243428 0.486165 vt 0.939780 0.112561 vt 0.291118 0.623904 vt 0.296337 0.610583 vt 0.296337 0.632841 vt 0.382490 0.353071 vt 0.247109 0.694285 vt 0.254565 0.701569 vt 0.249093 0.685174 vt 0.251037 0.686273 vt 0.428371 0.562117 vt 0.950524 0.345760 vt 0.954427 0.349894 vt 0.948044 0.346456 vt 0.663280 0.854718 vt 0.701420 0.953556 vt 0.702386 0.951238 vt 0.702386 0.955534 vt 0.974220 0.926311 vt 0.643973 0.879945 vt 0.955968 0.346891 vt 0.641529 0.876995 vt 0.791892 0.288979 vt 0.998268 0.142383 vt 0.998268 0.148074 vt 0.995776 0.145206 vt 0.759526 0.898258 vt 0.757755 0.898350 vt 0.971536 0.464157 vt 0.054979 0.914293 vt 0.759433 0.883356 vt 0.758287 0.879380 vt 0.375575 0.988211 vt 0.352728 0.898782 vt 0.290654 0.473653 vt 0.271902 0.765316 vt 0.276423 0.784192 vt 0.321950 0.931304 vt 0.879761 0.712214 vt 0.325426 0.931216 vt 0.409719 0.497965 vt 0.395062 0.539147 vt 0.836568 0.583104 vt 0.837792 0.591306 vt 0.830848 0.590511 vt 0.394781 0.528802 vt 0.393633 0.534240 vt 0.991690 0.248861 vt 0.988867 0.243910 vt 0.991690 0.241396 vt 0.346543 0.562692 vt 0.415542 0.941982 vt 0.344991 0.549317 vt 0.411471 0.959188 vt 0.205081 0.916406 vt 0.200269 0.914573 vt 0.359447 0.889802 vt 0.350879 0.896734 vt 0.971606 0.494094 vt 0.617000 0.944090 vt 0.653580 0.920727 vt 0.640605 0.922783 vt 0.621743 0.930587 vt 0.915315 0.583033 vt 0.917230 0.591165 vt 0.911902 0.591165 vt 0.847755 0.980142 vt 0.357927 0.893790 vt 0.848107 0.994877 vt 0.172285 0.992467 vt 0.172223 0.998344 vt 0.170461 0.993239 vt 0.559625 0.965941 vt 0.312783 0.490395 vt 0.312595 0.492883 vt 0.313276 0.493250 vt 0.324898 0.487953 vt 0.338722 0.894528 vt 0.865103 0.985983 vt 0.864837 0.996538 vt 0.859415 0.984591 vt 0.349007 0.464896 vt 0.337862 0.882560 vt 0.339503 0.867166 vt 0.349498 0.870751 vt 0.931904 0.701478 vt 0.987314 0.010230 vt 0.996492 0.017070 vt 0.992143 0.016707 vt 0.262477 0.998630 vt 0.260239 0.997651 vt 0.262477 0.993396 vt 0.317923 0.500288 vt 0.323337 0.497161 vt 0.338673 0.497708 vt 0.995839 0.287583 vt 0.998380 0.281973 vt 0.998380 0.288757 vt 0.361056 0.875759 vt 0.346905 0.506774 vt 0.169787 0.988814 vt 0.169786 0.997509 vt 0.167305 0.993786 vt 0.362396 0.502364 vt 0.997157 0.513664 vt 0.993811 0.511123 vt 0.352088 0.504511 vt 0.939900 0.813505 vt 0.936991 0.814007 vt 0.937161 0.810386 vt 0.995519 0.216942 vt 0.998129 0.216928 vt 0.998129 0.222751 vt 0.956644 0.349878 vt 0.417293 0.949150 vt 0.356994 0.532599 vt 0.173769 0.808889 vt 0.352856 0.442646 vt 0.961646 0.993921 vt 0.964205 0.991691 vt 0.964205 0.998253 vt 0.294538 0.480847 vt 0.294538 0.458892 vt 0.143739 0.802531 vt 0.178996 0.731721 vt 0.190548 0.725829 vt 0.907069 0.701461 vt 0.365720 0.481425 vt 0.449034 0.982918 vt 0.358761 0.473343 vt 0.905042 0.528424 vt 0.364044 0.474995 vt 0.368753 0.475859 vt 0.925515 0.711800 vt 0.921616 0.726030 vt 0.201700 0.818508 vt 0.386397 0.469240 vt 0.886681 0.719820 vt 0.374352 0.446121 vt 0.282453 0.784213 vt 0.285490 0.790990 vt 0.277200 0.826244 vt 0.834991 0.057341 vt 0.835504 0.069375 vt 0.927558 0.105297 vt 0.925348 0.105297 vt 0.925576 0.102827 vt 0.829305 0.044871 vt 0.917401 0.080045 vt 0.237480 0.792316 vt 0.072192 0.891440 vt 0.112317 0.920299 vt 0.112317 0.890774 vt 0.261442 0.430037 vt 0.283791 0.426172 vt 0.759920 0.989864 vt 0.759920 0.976910 vt 0.940665 0.073054 vt 0.917480 0.047754 vt 0.944224 0.561583 vt 0.985337 0.473324 vt 0.985503 0.486554 vt 0.977627 0.470099 vt 0.978296 0.461575 vt 0.975861 0.476202 vt 0.985229 0.492164 vt 0.976654 0.483464 vt 0.918723 0.000083 vt 0.852619 0.197654 vt 0.862220 0.187255 vt 0.853655 0.191933 vt 0.181398 0.539327 vt 0.195365 0.838124 vt 0.736340 0.313190 vt 0.733158 0.313190 vt 0.733326 0.309083 vt 0.126526 0.575074 vt 0.867190 0.222030 vt 0.130552 0.578637 vt 0.144466 0.576509 vt 0.529982 0.283244 vt 0.779107 0.995912 vt 0.781487 0.993049 vt 0.781487 0.998436 vt 0.168606 0.601762 vt 0.887277 0.215184 vt 0.884196 0.206988 vt 0.139884 0.594394 vt 0.229365 0.517072 vt 0.461451 0.307049 vt 0.216079 0.530545 vt 0.230026 0.539357 vt 0.197586 0.844128 vt 0.701883 0.864093 vt 0.699834 0.878695 vt 0.698856 0.906988 vt 0.701020 0.913156 vt 0.830245 0.173897 vt 0.382774 0.866836 vt 0.388175 0.875454 vt 0.161915 0.838768 vt 0.170913 0.832529 vt 0.401315 0.895439 vt 0.391993 0.898633 vt 0.684065 0.912968 vt 0.148220 0.549613 vt 0.370985 0.899831 vt 0.151826 0.568121 vt 0.888153 0.168377 vt 0.206619 0.535037 vt 0.219032 0.519723 vt 0.960850 0.048300 vt 0.958143 0.053267 vt 0.213030 0.509185 vt 0.848289 0.936955 vt 0.847280 0.932605 vt 0.848289 0.930549 vt 0.197257 0.880309 vt 0.191880 0.872783 vt 0.852425 0.125335 vt 0.999648 0.576449 vt 0.166479 0.543754 vt 0.664918 0.880172 vt 0.663437 0.869245 vt 0.944814 0.003365 vt 0.942810 0.022626 vt 0.963947 0.043373 vt 0.963434 0.047564 vt 0.164803 0.992684 vt 0.889061 0.121908 vt 0.191468 0.515554 vt 0.195854 0.511061 vt 0.870248 0.106211 vt 0.891185 0.115921 vt 0.614926 0.957753 vt 0.621384 0.955385 vt 0.619055 0.980353 vt 0.621386 0.974814 vt 0.926248 0.524461 vt 0.055827 0.953851 vt 0.058585 0.950401 vt 0.058585 0.954924 vt 0.773867 0.313184 vt 0.771425 0.313184 vt 0.772080 0.310700 vt 0.448657 0.772656 vt 0.443334 0.778113 vt 0.495649 0.265430 vt 0.444619 0.238522 vt 0.452340 0.230181 vt 0.233566 0.478136 vt 0.404692 0.017795 vt 0.605130 0.074275 vt 0.103789 0.642170 vt 0.105041 0.629449 vt 0.423403 0.728755 vt 0.901029 0.115488 vt 0.918561 0.107133 vt 0.930803 0.114153 vt 0.041902 0.999088 vt 0.038508 0.990022 vt 0.041902 0.988746 vt 0.188646 0.623243 vt 0.192268 0.602308 vt 0.569651 0.255594 vt 0.527483 0.263022 vt 0.898552 0.129902 vt 0.987741 0.481641 vt 0.994638 0.481631 vt 0.993591 0.491493 vt 0.935625 0.167028 vt 0.138611 0.656169 vt 0.457574 0.732328 vt 0.892511 0.164845 vt 0.952531 0.882117 vt 0.479980 0.754221 vt 0.468600 0.763065 vt 0.540728 0.229437 vt 0.933250 0.635674 vt 0.546504 0.179408 vt 0.449379 0.946278 vt 0.524664 0.109934 vt 0.939584 0.633950 vt 0.940697 0.614505 vt 0.509047 0.167919 vt 0.500987 0.247143 vt 0.506504 0.254107 vt 0.881402 0.842637 vt 0.943621 0.593855 vt 0.877989 0.851905 vt 0.975389 0.865209 vt 0.940792 0.679450 vt 0.538364 0.214559 vt 0.888155 0.826087 vt 0.903880 0.834556 vt 0.472863 0.633045 vt 0.521133 0.421907 vt 0.513048 0.197405 vt 0.029087 0.905042 vt 0.939415 0.653781 vt 0.000507 0.912828 vt 0.487236 0.405425 vt 0.490817 0.397007 vt 0.485594 0.639064 vt 0.003585 0.903578 vt 0.176453 0.387574 vt 0.229175 0.383490 vt 0.346449 0.101234 vt 0.329656 0.042795 vt 0.688458 0.009171 vt 0.322154 0.250564 vt 0.307288 0.144961 vt 0.310771 0.103199 vt 0.776628 0.422136 vt 0.711407 0.330406 vt 0.669474 0.007976 vt 0.681062 0.008972 vt 0.698295 0.009026 vt 0.765445 0.492052 vt 0.766071 0.502495 vt 0.750438 0.499210 vt 0.759547 0.515256 vt 0.997766 0.071969 vt 0.991351 0.067249 vt 0.997766 0.053476 vt 0.305415 0.209134 vt 0.310500 0.237395 vt 0.279297 0.654117 vt 0.289121 0.666807 vt 0.273733 0.667654 vt 0.323366 0.264239 vt 0.289402 0.655788 vt 0.306663 0.268517 vt 0.315559 0.266207 vt 0.742511 0.555833 vt 0.287747 0.681679 vt 0.279502 0.683326 vt 0.217279 0.347001 vt 0.305814 0.261694 vt 0.714358 0.584973 vt 0.454517 0.912444 vt 0.491284 0.030508 vt 0.524928 0.651260 vt 0.522869 0.644902 vt 0.524587 0.644266 vt 0.998769 0.496629 vt 0.965491 0.498967 vt 0.963519 0.496485 vt 0.965491 0.494525 vt 0.460940 0.900916 vt 0.524928 0.632841 vt 0.759540 0.922630 vt 0.756458 0.910733 vt 0.759348 0.904843 vt 0.473168 0.929563 vt 0.517276 0.891082 vt 0.524812 0.856464 vt 0.048126 0.997404 vt 0.043943 0.993355 vt 0.048126 0.988746 vt 0.302092 0.871421 vt 0.307436 0.865838 vt 0.303531 0.865608 vt 0.547356 0.164765 vt 0.572697 0.216804 vt 0.578146 0.221336 vt 0.935316 0.207569 vt 0.936534 0.196912 vt 0.909239 0.172319 vt 0.872205 0.911677 vt 0.898287 0.919674 vt 0.142681 0.953845 vt 0.888088 0.012947 vt 0.490043 0.812140 vt 0.980220 0.373922 vt 0.986871 0.368177 vt 0.502826 0.841875 vt 0.833671 0.313189 vt 0.999532 0.879778 vt 0.996769 0.875593 vt 0.999601 0.870753 vt 0.472486 0.703272 vt 0.905178 0.891430 vt 0.985907 0.852659 vt 0.547817 0.884627 vt 0.939617 0.638052 vt 0.559884 0.904158 vt 0.529677 0.868063 vt 0.550380 0.867105 vt 0.943491 0.629905 vt 0.506572 0.851605 vt 0.061670 0.986798 vt 0.518201 0.986902 vt 0.508150 0.981900 vt 0.517662 0.981932 vt 0.509882 0.792029 vt 0.511114 0.785468 vt 0.505994 0.984975 vt 0.575035 0.077235 vt 0.598804 0.205703 vt 0.845120 0.919610 vt 0.832526 0.930796 vt 0.504604 0.603624 vt 0.494156 0.607343 vt 0.677265 0.222891 vt 0.962620 0.640161 vt 0.964607 0.652963 vt 0.935681 0.100614 vt 0.586714 0.086596 vt 0.930858 0.090882 vt 0.676771 0.286325 vt 0.617513 0.274948 vt 0.917809 0.096631 vt 0.919906 0.094048 vt 0.925912 0.079243 vt 0.924136 0.081687 vt 0.511114 0.863033 vt 0.996640 0.359687 vt 0.996640 0.366923 vt 0.993623 0.360067 vt 0.386013 0.962108 vt 0.400543 0.998407 vt 0.398171 0.994244 vt 0.400543 0.992799 vt 0.866211 0.309935 vt 0.868971 0.308047 vt 0.868971 0.312873 vt 0.702317 0.981151 vt 0.698159 0.968823 vt 0.702317 0.964682 vt 0.642148 0.243823 vt 0.626549 0.242141 vt 0.645579 0.236802 vt 0.799260 0.941151 vt 0.795060 0.932771 vt 0.921419 0.083368 vt 0.821185 0.911813 vt 0.820598 0.956329 vt 0.823120 0.948592 vt 0.683427 0.299288 vt 0.818742 0.924777 vt 0.968848 0.931530 vt 0.512969 0.553946 vt 0.513026 0.547497 vt 0.511644 0.543283 vt 0.123293 0.590538 vt 0.133755 0.595203 vt 0.131153 0.596536 vt 0.416993 0.326585 vt 0.418368 0.327914 vt 0.891324 0.217282 vt 0.886977 0.219201 vt 0.423241 0.347585 vt 0.420174 0.778665 vt 0.718546 0.961112 vt 0.720355 0.961473 vt 0.953943 0.697325 vt 0.252330 0.420396 vt 0.416097 0.349819 vt 0.427191 0.373906 vt 0.296337 0.384687 vt 0.296289 0.411560 vt 0.291503 0.396360 vt 0.415368 0.352663 vt 0.411392 0.353370 vt 0.288491 0.730624 vt 0.402169 0.343027 vt 0.423389 0.489826 vt 0.962013 0.639930 vt 0.956900 0.477814 vt 0.974884 0.971220 vt 0.977049 0.965033 vt 0.977220 0.957310 vt 0.958693 0.993928 vt 0.721663 0.898170 vt 0.683963 0.311681 vt 0.686706 0.310097 vt 0.686706 0.313119 vt 0.734348 0.926370 vt 0.727251 0.891290 vt 0.719285 0.897548 vt 0.728254 0.881667 vt 0.731867 0.865441 vt 0.018542 0.995740 vt 0.020991 0.992754 vt 0.020991 0.998416 vt 0.734442 0.870825 vt 0.478418 0.981722 vt 0.999233 0.098259 vt 0.997884 0.090916 vt 0.269139 0.972535 vt 0.266824 0.972535 vt 0.267685 0.968599 vt 0.935749 0.214163 vt 0.936000 0.221186 vt 0.931077 0.219493 vt 0.662857 0.952500 vt 0.115322 0.923687 vt 0.648932 0.951765 vt 0.316228 0.896658 vt 0.433922 0.862612 vt 0.425720 0.837002 vt 0.433943 0.466119 vt 0.867564 0.960180 vt 0.865313 0.952503 vt 0.427537 0.476376 vt 0.880322 0.964066 vt 0.430262 0.496820 vt 0.293725 0.919347 vt 0.003114 0.997408 vt 0.000000 0.990873 vt 0.003114 0.989544 vt 0.596531 0.308320 vt 0.596531 0.313193 vt 0.591740 0.309815 vt 0.961712 0.608786 vt 0.941546 0.991852 vt 0.941546 0.996490 vt 0.938719 0.995894 vt 0.524287 0.847399 vt 0.311023 0.902723 vt 0.993127 0.203662 vt 0.997874 0.216928 vt 0.715355 0.853091 vt 0.643881 0.936611 vt 0.702386 0.877171 vt 0.663212 0.945172 vt 0.885185 0.986125 vt 0.868793 0.984364 vt 0.865653 0.981139 vt 0.872191 0.985372 vt 0.866425 0.978352 vt 0.144655 0.914634 vt 0.878048 0.965373 vt 0.977974 0.496593 vt 0.975708 0.493965 vt 0.977886 0.493023 vt 0.325174 0.905718 vt 0.322741 0.901943 vt 0.851237 0.586637 vt 0.847884 0.590608 vt 0.844625 0.583941 vt 0.643827 0.949432 vt 0.303294 0.914872 vt 0.301572 0.912345 vt 0.301344 0.925243 vt 0.986213 0.980987 vt 0.990026 0.976668 vt 0.474620 0.453104 vt 0.879761 0.614074 vt 0.919947 0.998573 vt 0.916419 0.994238 vt 0.880830 0.611479 vt 0.991620 0.694833 vt 0.989530 0.689952 vt 0.994896 0.690188 vt 0.487420 0.480212 vt 0.663437 0.932689 vt 0.324488 0.908462 vt 0.324701 0.919338 vt 0.224956 0.990072 vt 0.224956 0.996061 vt 0.221694 0.991543 vt 0.498380 0.490466 vt 0.475460 0.485312 vt 0.756902 0.966953 vt 0.759920 0.964667 vt 0.756453 0.972059 vt 0.478019 0.486109 vt 0.997011 0.685555 vt 0.003196 0.989544 vt 0.961357 0.442478 vt 0.963604 0.428207 vt 0.963200 0.439564 vt 0.498753 0.645475 vt 0.467880 0.425299 vt 0.473336 0.399438 vt 0.480059 0.395301 vt 0.483434 0.396467 vt 0.969185 0.991691 vt 0.969185 0.998236 vt 0.966638 0.996033 vt 0.479547 0.392205 vt 0.468487 0.651103 vt 0.957948 0.952196 vt 0.956096 0.957240 vt 0.956558 0.944170 vt 0.958228 0.945089 vt 0.958228 0.962949 vt 0.995552 0.665899 vt 0.999353 0.661089 vt 0.999353 0.676666 vt 0.829112 0.277433 vt 0.829132 0.304311 vt 0.825558 0.293936 vt 0.998554 0.053119 vt 0.995027 0.047299 vt 0.998554 0.043017 vt 0.895620 0.603569 vt 0.478406 0.467923 vt 0.995335 0.902503 vt 0.996049 0.883980 vt 0.930479 0.606745 vt 0.446794 0.460398 vt 0.463203 0.878407 vt 0.439808 0.428119 vt 0.438622 0.445560 vt 0.458624 0.898959 vt 0.471972 0.889271 vt 0.919555 0.659055 vt 0.916518 0.658957 vt 0.918050 0.653476 vt 0.941012 0.531290 vt 0.834942 0.032447 vt 0.946375 0.512572 vt 0.935505 0.102414 vt 0.936907 0.102233 vt 0.936907 0.105297 vt 0.954737 0.766544 vt 0.206345 0.889811 vt 0.484337 0.851146 vt 0.471246 0.848946 vt 0.907354 0.025142 vt 0.486882 0.987300 vt 0.103444 0.931537 vt 0.517441 0.907787 vt 0.524812 0.891082 vt 0.256930 0.425697 vt 0.074147 0.928460 vt 0.255184 0.424267 vt 0.068116 0.931953 vt 0.273295 0.420695 vt 0.260321 0.422037 vt 0.542522 0.971106 vt 0.545555 0.965941 vt 0.939759 0.498967 vt 0.837945 0.006677 vt 0.506380 0.975251 vt 0.509270 0.970036 vt 0.936885 0.832637 vt 0.938089 0.837907 vt 0.188281 0.990992 vt 0.189767 0.998050 vt 0.187246 0.995167 vt 0.927217 0.525350 vt 0.989035 0.838148 vt 0.982940 0.814257 vt 0.989694 0.825545 vt 0.945093 0.883980 vt 0.980064 0.827846 vt 0.387155 0.970745 vt 0.921284 0.105297 vt 0.919391 0.104057 vt 0.921284 0.102248 vt 0.384966 0.951762 vt 0.998528 0.391602 vt 0.999242 0.397353 vt 0.997685 0.394216 vt 0.522480 0.729515 vt 0.921749 0.679674 vt 0.932747 0.657092 vt 0.203581 0.842214 vt 0.206451 0.861729 vt 0.977882 0.934254 vt 0.725595 0.910549 vt 0.290955 0.312659 vt 0.104677 0.625253 vn -0.9810 -0.0808 -0.1765 vn -0.9809 -0.0810 -0.1768 vn -0.9809 -0.0810 -0.1767 vn 0.9960 -0.0832 0.0331 vn 1.0000 0.0000 0.0000 vn 0.9963 0.0676 -0.0523 vn -0.9924 -0.0341 -0.1181 vn -0.9904 0.0006 -0.1384 vn -0.9832 0.0080 -0.1825 vn -0.9848 -0.0088 -0.1737 vn -0.9842 0.0017 -0.1768 vn 0.9810 -0.0807 -0.1765 vn 0.9809 -0.0809 -0.1767 vn -0.9960 -0.0832 0.0331 vn -1.0000 -0.0000 0.0000 vn -0.9963 0.0676 -0.0523 vn 0.9924 -0.0341 -0.1180 vn 0.9904 0.0007 -0.1384 vn 0.9832 0.0080 -0.1824 vn 0.9843 0.0017 -0.1768 vn 0.9848 -0.0088 -0.1736 vn -0.3094 0.5070 -0.8045 vn 0.1673 0.2057 -0.9642 vn -0.5881 0.1546 -0.7939 vn -0.2476 0.0092 -0.9688 vn -0.9855 0.1633 -0.0452 vn 0.0840 0.9735 -0.2127 vn 0.7784 0.5996 -0.1860 vn -0.9934 -0.0584 0.0985 vn -0.7435 -0.0950 0.6620 vn 0.3381 -0.0737 0.9382 vn 0.1897 -0.5985 0.7784 vn 0.7161 -0.2906 0.6347 vn -0.9552 -0.2949 -0.0235 vn -0.5920 -0.7223 0.3576 vn -0.7367 -0.4847 0.4715 vn -0.2295 -0.2915 -0.9286 vn -0.3379 -0.2364 -0.9110 vn 0.2251 0.1414 -0.9640 vn -0.4168 -0.8945 -0.1616 vn -0.7721 -0.3737 -0.5140 vn 0.8674 -0.2651 -0.4212 vn 0.9032 -0.2277 0.3639 vn 0.5772 -0.7744 0.2592 vn -0.6719 -0.6469 0.3606 vn 0.4661 0.4289 0.7738 vn 0.7651 0.2628 -0.5878 vn 0.8558 0.5166 0.0259 vn 0.9657 0.2597 -0.0003 vn 0.9942 0.0954 0.0505 vn -0.0275 0.7783 0.6273 vn -0.2090 0.1645 0.9640 vn -0.7691 0.5991 0.2224 vn 0.5837 0.3220 -0.7454 vn 0.0648 -0.0761 -0.9950 vn 0.3034 0.0211 0.9526 vn -0.2717 0.0111 0.9623 vn 0.7824 0.0460 -0.6210 vn -0.2173 -0.2248 0.9499 vn 0.3692 -0.1352 -0.9195 vn -0.1333 0.1538 0.9791 vn 0.7893 0.3352 0.5144 vn 0.6289 0.1994 0.7515 vn 0.8645 0.0932 0.4940 vn -0.6907 -0.0926 0.7172 vn -0.8003 -0.2927 -0.5233 vn -0.0364 -0.7959 -0.6043 vn -0.7930 -0.0668 -0.6056 vn -0.2063 0.7295 -0.6521 vn 0.1137 0.1947 -0.9742 vn -0.6806 0.3373 -0.6504 vn -0.7609 -0.5835 0.2837 vn -0.6265 -0.6605 -0.4137 vn 0.2510 -0.9672 -0.0398 vn 0.1058 0.0449 0.9934 vn -0.0518 -0.5298 0.8465 vn 0.6610 0.0810 0.7460 vn -0.1158 0.2541 -0.9602 vn 0.1961 -0.3288 -0.9238 vn -0.2205 -0.5817 -0.7829 vn -0.7837 0.1052 0.6122 vn -0.4384 -0.6158 0.6547 vn -0.7846 0.0164 0.6198 vn -0.9293 0.0669 0.3632 vn -0.9861 0.1074 -0.1270 vn 0.7143 0.4212 0.5589 vn 0.0153 0.8082 0.5887 vn 0.3724 0.2614 0.8905 vn -0.8072 0.5058 0.3044 vn -0.5769 0.8151 0.0523 vn -0.3007 0.2602 -0.9175 vn -0.4984 0.0268 -0.8666 vn -0.7122 0.1787 -0.6788 vn -0.2970 0.2985 0.9070 vn -0.2056 -0.9743 0.0922 vn 0.7122 -0.5991 0.3658 vn 0.3008 -0.5643 0.7688 vn 0.8773 -0.4236 -0.2255 vn -0.1098 -0.9463 -0.3042 vn 0.7522 0.1724 -0.6359 vn 0.7172 0.2677 -0.6434 vn 0.9890 0.0966 0.1123 vn 0.2151 0.0375 0.9759 vn 0.8601 0.3950 -0.3228 vn -0.8285 0.2021 0.5222 vn -0.9971 0.0663 0.0365 vn 0.9842 0.1726 0.0398 vn -0.0726 0.2355 -0.9692 vn -0.1780 -0.6509 0.7380 vn -0.1590 -0.9868 -0.0319 vn 0.9807 0.1740 0.0891 vn 0.0728 0.1042 0.9919 vn 0.6425 0.0466 0.7649 vn 0.7605 -0.3007 -0.5755 vn -0.4934 -0.0024 0.8698 vn 0.4192 0.2816 -0.8631 vn 0.4326 -0.4898 -0.7570 vn 0.3405 -0.3683 -0.8651 vn -0.8523 0.1558 -0.4994 vn -0.5564 0.2425 -0.7947 vn 0.4265 0.8714 -0.2423 vn 0.8300 0.2541 0.4966 vn 0.3705 0.2183 -0.9028 vn -0.8162 0.0736 -0.5731 vn -0.5191 0.1514 0.8412 vn -0.4412 0.0401 0.8965 vn -0.9593 0.1814 -0.2162 vn -0.9071 0.2698 -0.3231 vn -0.3165 0.0143 0.9485 vn 0.4081 -0.9128 0.0129 vn -0.1547 -0.9721 -0.1765 vn 0.8588 -0.0426 0.5105 vn -0.4664 -0.5829 0.6653 vn -0.7055 -0.6844 0.1842 vn 0.0375 -0.9849 -0.1688 vn 0.2439 -0.9436 0.2238 vn -0.1740 -0.7277 0.6635 vn -0.1395 0.2440 -0.9597 vn -0.0550 0.1987 -0.9785 vn -0.6214 0.0779 -0.7796 vn -0.8315 0.1602 0.5319 vn -0.8102 -0.0334 0.5852 vn -0.5436 -0.0109 0.8393 vn -0.8791 0.0840 0.4691 vn -0.9955 0.0951 -0.0053 vn -0.5209 0.6197 -0.5870 vn -0.7874 0.4324 0.4393 vn -0.5638 0.7840 0.2599 vn 0.3323 -0.9307 -0.1528 vn 0.1960 -0.4722 -0.8594 vn 0.2867 -0.4575 -0.8417 vn 0.8124 -0.4241 -0.4002 vn 0.4480 -0.3478 -0.8236 vn 0.8358 0.2911 -0.4655 vn 0.6679 0.0980 -0.7378 vn 0.7365 0.5135 -0.4403 vn 0.9592 0.2816 0.0232 vn -0.0941 -0.4800 0.8722 vn 0.2728 -0.5228 0.8077 vn 0.2234 0.0603 0.9729 vn 0.4244 0.2037 -0.8823 vn -0.0833 -0.8947 -0.4389 vn -0.1408 -0.9749 -0.1728 vn 0.7820 -0.6164 0.0919 vn 0.0105 -0.9666 0.2562 vn 0.5666 -0.4393 0.6972 vn 0.9888 0.1362 -0.0612 vn 0.3556 0.0665 0.9323 vn 0.6850 0.0066 0.7285 vn 0.1114 0.8048 0.5830 vn 0.1660 0.4329 0.8860 vn 0.5064 0.8593 -0.0719 vn -0.6173 0.2078 0.7588 vn -0.6740 -0.6005 -0.4303 vn -0.9901 0.0698 0.1217 vn -0.2185 -0.5188 -0.8265 vn 0.2170 0.1732 0.9607 vn 0.7908 0.1492 0.5937 vn -0.3116 0.0598 0.9483 vn 0.9505 0.2098 0.2290 vn -0.8848 0.1512 -0.4407 vn 0.0580 -0.9968 -0.0542 vn 0.2728 -0.9584 0.0843 vn -0.1841 0.0256 0.9826 vn -0.6661 0.0996 -0.7392 vn -0.9192 0.0850 -0.3844 vn 0.2976 0.1976 -0.9340 vn 0.2666 0.1890 -0.9451 vn -0.9862 0.1507 -0.0682 vn -0.9340 0.2851 -0.2154 vn -0.7605 0.1528 -0.6310 vn -0.4109 0.1370 0.9013 vn -0.2696 0.3494 -0.8974 vn -0.4897 0.1852 -0.8520 vn 0.9781 -0.0011 0.2083 vn -0.2989 -0.9434 0.1436 vn -0.6906 0.2025 -0.6943 vn 0.2617 0.5576 -0.7878 vn 0.5607 0.2668 -0.7839 vn -0.1093 0.2407 -0.9644 vn 0.2694 0.0006 -0.9630 vn 0.9834 0.1793 -0.0294 vn -0.1569 0.9817 -0.1083 vn -0.7730 0.5908 -0.2309 vn 0.6878 -0.0334 0.7251 vn 0.9885 -0.0759 0.1311 vn -0.3419 -0.0846 0.9359 vn -0.6715 -0.1475 0.7261 vn -0.2085 -0.5867 0.7825 vn 0.9519 -0.3044 -0.0347 vn 0.7973 -0.3979 0.4539 vn 0.5610 -0.6895 0.4581 vn 0.3391 -0.3352 -0.8790 vn -0.2616 0.1339 -0.9558 vn 0.2738 -0.1663 -0.9473 vn 0.3554 -0.9316 -0.0766 vn 0.6845 -0.5207 -0.5103 vn -0.8930 -0.2643 -0.3642 vn -0.5871 -0.7631 0.2702 vn -0.8957 -0.2424 0.3729 vn 0.5652 -0.6716 0.4790 vn -0.4789 0.3956 0.7837 vn -0.6479 0.2996 -0.7003 vn -0.9423 0.3231 -0.0872 vn -0.8772 0.4769 0.0563 vn -0.9881 0.1084 0.1091 vn 0.0198 0.7796 0.6260 vn 0.1428 0.1691 0.9752 vn 0.8444 0.4842 0.2292 vn -0.0620 -0.0891 -0.9941 vn 0.2438 -0.0567 0.9682 vn -0.2453 0.1087 0.9633 vn -0.7908 0.0484 -0.6101 vn 0.2278 -0.2651 0.9369 vn -0.3349 -0.1930 -0.9223 vn 0.1004 0.1767 0.9791 vn -0.7398 0.3937 0.5457 vn -0.8894 0.1942 0.4137 vn -0.5960 0.0429 0.8018 vn 0.6876 -0.0852 0.7211 vn 0.8033 -0.2754 -0.5281 vn 0.0206 -0.8025 -0.5963 vn -0.7035 0.3118 -0.6387 vn 0.8606 0.0021 -0.5093 vn 0.7233 -0.6178 0.3087 vn -0.2604 -0.9651 -0.0262 vn 0.5413 -0.6874 -0.4842 vn -0.0860 0.0361 0.9956 vn -0.6553 0.0948 0.7494 vn 0.0177 -0.4994 0.8662 vn 0.0714 0.2551 -0.9643 vn 0.2743 -0.4793 -0.8337 vn -0.2547 -0.3287 -0.9094 vn 0.7692 0.0814 0.6338 vn 0.3426 -0.6542 0.6742 vn 0.7827 0.0170 0.6221 vn 0.9916 0.0705 -0.1087 vn 0.9289 0.0781 0.3619 vn -0.7158 0.5401 0.4427 vn -0.4778 0.2844 0.8311 vn 0.0469 0.7551 0.6539 vn 0.4427 0.5020 -0.7430 vn 0.5010 0.8651 -0.0243 vn 0.8117 0.5067 0.2906 vn 0.2817 0.2296 -0.9316 vn 0.6019 0.2523 -0.7577 vn 0.4978 0.0656 -0.8648 vn -0.6680 0.1685 -0.7248 vn -0.9816 0.1843 0.0493 vn -0.8036 0.4739 -0.3600 vn 0.2224 0.2501 0.9424 vn 0.2019 -0.9757 0.0850 vn -0.3018 -0.5650 0.7679 vn -0.7249 -0.5976 0.3427 vn -0.8785 -0.4225 -0.2232 vn 0.0789 -0.9334 -0.3499 vn -0.6999 0.1877 -0.6891 vn -0.9986 0.0182 0.0487 vn -0.2418 0.0413 0.9694 vn -0.5321 0.7903 -0.3039 vn 0.0359 0.1607 -0.9864 vn 0.8362 0.2156 0.5043 vn 0.9980 0.0496 -0.0380 vn -0.9921 0.1248 -0.0163 vn 0.0935 0.2192 -0.9712 vn 0.1161 -0.9925 -0.0389 vn 0.2053 -0.7284 0.6536 vn -0.1203 0.1388 0.9830 vn -0.6685 0.0556 0.7417 vn -0.7205 -0.3323 -0.6086 vn 0.5139 -0.0531 0.8562 vn -0.4040 0.2936 -0.8663 vn -0.3500 -0.4035 -0.8454 vn -0.3518 -0.3927 -0.8497 vn 0.8663 0.1591 -0.4735 vn 0.5682 0.2427 -0.7863 vn -0.8701 0.1102 0.4805 vn -0.3403 0.2132 -0.9158 vn 0.7274 0.0652 -0.6831 vn 0.4912 0.1657 0.8551 vn 0.3364 0.0312 0.9412 vn 0.9662 0.1651 -0.1979 vn 0.9100 0.2589 -0.3238 vn 0.2873 0.0345 0.9572 vn -0.4751 -0.8780 0.0582 vn 0.1850 -0.9758 -0.1168 vn -0.9013 -0.0079 0.4330 vn 0.4499 -0.6072 0.6549 vn -0.0309 -0.9842 -0.1742 vn 0.7155 -0.6931 0.0878 vn -0.3322 -0.9131 0.2365 vn 0.2066 -0.6825 0.7010 vn 0.1002 0.2500 -0.9630 vn 0.6489 0.1444 -0.7471 vn 0.1086 0.1674 -0.9799 vn 0.8563 0.1410 0.4969 vn 0.5227 -0.0042 0.8525 vn 0.8143 0.0006 0.5804 vn 0.9981 0.0589 0.0166 vn 0.8753 0.1091 0.4711 vn 0.5146 0.6251 -0.5869 vn 0.5084 0.8434 0.1740 vn 0.7897 0.4274 0.4400 vn -0.3116 -0.9314 -0.1880 vn -0.2940 -0.4394 -0.8488 vn -0.1784 -0.3998 -0.8991 vn -0.5720 0.1676 -0.8029 vn -0.9748 0.2230 -0.0014 vn -0.7154 0.5447 -0.4377 vn -0.4068 0.2351 -0.8827 vn -0.6325 -0.3528 -0.6895 vn -0.8688 0.1934 -0.4558 vn 0.0573 -0.5377 0.8412 vn -0.1699 0.0429 0.9845 vn -0.3239 -0.4503 0.8321 vn 0.1094 -0.9025 -0.4165 vn 0.1857 -0.9522 -0.2426 vn -0.5909 -0.8042 0.0647 vn -0.0013 -0.9651 0.2620 vn -0.5732 -0.4495 0.6851 vn -0.9945 0.0384 -0.0974 vn -0.3848 0.0582 0.9212 vn -0.7493 0.0345 0.6614 vn -0.0452 0.8277 0.5593 vn -0.5087 0.8583 -0.0670 vn -0.2840 0.4206 0.8617 vn 0.6132 0.1999 0.7642 vn 0.6511 -0.5645 -0.5073 vn 0.9922 0.0600 0.1089 vn 0.2972 -0.4384 -0.8482 vn -0.2413 0.2127 0.9468 vn -0.7707 0.1017 0.6290 vn 0.2937 0.0608 0.9539 vn -0.9305 -0.3543 -0.0934 vn -0.9232 0.2334 0.3054 vn 0.8816 0.1317 -0.4532 vn -0.0360 -0.9973 -0.0644 vn -0.2551 -0.9664 0.0318 vn 0.2267 0.0020 0.9740 vn 0.6447 0.1128 -0.7561 vn 0.9408 -0.0025 -0.3390 vn -0.2203 0.1973 -0.9553 vn -0.2397 0.1856 -0.9530 vn 0.9887 0.1383 -0.0575 vn 0.9429 0.2643 -0.2029 vn 0.8111 0.1237 -0.5717 vn 0.4001 0.1536 0.9035 vn 0.2402 0.3006 -0.9230 vn 0.4445 0.2590 -0.8575 vn -0.9695 0.0937 0.2267 vn 0.3336 -0.9383 0.0907 vn 0.6413 0.0812 -0.7630 vn 0.2849 0.8868 0.3640 vn -0.7580 0.4919 0.4283 vn -0.2841 0.2348 0.9296 vn -0.1619 0.3584 0.9194 vn 0.3542 0.7518 0.5562 vn -0.1875 0.7803 -0.5967 vn 0.1620 0.9848 0.0624 vn 0.1898 0.6491 -0.7366 vn -0.6749 0.2970 -0.6755 vn -0.1679 0.2968 -0.9401 vn -0.1667 -0.1053 -0.9804 vn 0.6732 -0.4333 0.5992 vn 0.1669 -0.0977 0.9811 vn 0.2545 -0.3562 0.8991 vn 0.7688 -0.2108 -0.6037 vn 0.5380 0.4118 -0.7355 vn 0.7989 0.5520 -0.2387 vn 0.7166 -0.4151 0.5606 vn 0.2986 -0.3259 0.8970 vn 0.1771 -0.5505 0.8159 vn 0.4856 0.1102 0.8672 vn 0.6193 0.6598 0.4256 vn -0.0609 0.9742 0.2174 vn -0.5360 -0.1368 0.8331 vn -0.9926 -0.0658 0.1020 vn -0.9971 -0.0729 -0.0203 vn -0.1251 -0.2454 -0.9613 vn -0.7479 -0.0654 -0.6605 vn -0.5174 -0.3672 -0.7730 vn 0.8390 -0.3900 -0.3795 vn 0.5300 -0.2585 -0.8077 vn -0.9079 -0.1649 0.3854 vn -0.6301 0.7759 0.0306 vn 0.9796 -0.2008 -0.0080 vn 0.9703 -0.1649 -0.1769 vn -0.7774 -0.5569 0.2926 vn -0.4964 -0.2470 -0.8322 vn -0.5279 -0.8155 -0.2371 vn -0.2225 -0.5130 0.8290 vn 0.0732 -0.8161 0.5732 vn 0.8054 -0.0238 -0.5922 vn 0.5298 -0.5888 -0.6105 vn -0.1004 0.1759 -0.9793 vn -0.1603 0.5877 0.7930 vn 0.2261 0.7069 -0.6702 vn -0.3239 0.3672 -0.8719 vn 0.7731 -0.5432 0.3275 vn -0.7880 -0.1209 -0.6037 vn -0.1777 -0.3488 0.9202 vn -0.3922 0.9111 -0.1272 vn -0.9413 0.1582 -0.2982 vn 0.9239 -0.3010 0.2364 vn 0.0746 0.9487 0.3072 vn -0.9207 -0.0620 -0.3854 vn -0.7851 0.2081 -0.5833 vn 0.9600 -0.2755 -0.0493 vn -0.4505 0.1431 -0.8813 vn 0.2484 0.2393 -0.9386 vn 0.1299 -0.0257 -0.9912 vn -0.0417 0.1625 -0.9858 vn 0.2950 0.0055 -0.9555 vn -0.7631 0.1388 -0.6312 vn -0.8165 -0.5464 0.1864 vn -0.8810 -0.2952 0.3699 vn -0.7946 0.1098 0.5972 vn -0.7285 0.0954 0.6784 vn -0.1140 -0.1837 0.9764 vn -0.1655 -0.2943 0.9413 vn -0.2588 0.6200 -0.7407 vn 0.3428 -0.9334 0.1059 vn 0.9651 0.1356 0.2240 vn -0.3453 0.8889 0.3010 vn -0.4279 -0.7254 -0.5392 vn -0.7501 -0.6568 -0.0771 vn -0.0411 0.2645 -0.9635 vn 0.1319 0.0993 -0.9863 vn -0.6772 0.2092 -0.7054 vn -0.4146 -0.0274 -0.9096 vn -0.5418 0.7899 -0.2873 vn -0.7626 0.4805 0.4331 vn 0.2160 0.8698 0.4436 vn 0.9750 -0.1538 0.1601 vn 0.9182 -0.0790 -0.3882 vn 0.7514 0.2053 -0.6270 vn 0.0597 0.1057 0.9926 vn 0.5594 0.4315 0.7077 vn -0.1634 0.9666 0.1973 vn 0.9175 -0.3369 0.2113 vn 0.9614 -0.0960 -0.2579 vn 0.8269 -0.0810 -0.5565 vn 0.2646 0.9633 0.0445 vn 0.8118 0.5578 0.1728 vn -0.5757 -0.6579 0.4855 vn -0.9283 -0.2318 0.2906 vn -0.9225 -0.2192 -0.3176 vn 0.5958 -0.4681 0.6526 vn 0.1515 -0.4639 0.8729 vn 0.1517 -0.5920 0.7916 vn -0.4191 -0.7030 0.5746 vn 0.1085 -0.8343 0.5405 vn -0.0318 -0.2153 -0.9760 vn -1.0000 0.0034 -0.0002 vn -0.0811 0.3233 -0.9428 vn -0.2957 0.9247 0.2396 vn -0.4993 0.2715 0.8228 vn -0.3348 0.1502 0.9302 vn 0.5562 -0.4964 0.6665 vn 0.8627 0.4843 -0.1456 vn 0.0435 0.7440 -0.6667 vn -0.9452 0.0332 -0.3249 vn -0.6297 0.0346 -0.7761 vn 0.6557 -0.6209 -0.4295 vn -0.3824 -0.3147 0.8688 vn -0.6654 -0.2888 0.6883 vn -0.1585 -0.4679 0.8695 vn 0.8304 -0.3173 0.4580 vn 0.7991 -0.3232 0.5070 vn 0.4800 0.3131 -0.8195 vn 0.4879 0.1533 -0.8593 vn 0.4468 0.7354 -0.5094 vn 0.5611 0.0356 -0.8270 vn 0.4765 0.7643 0.4345 vn -0.4232 0.3901 0.8178 vn -0.3485 0.9282 -0.1302 vn 0.3379 -0.9304 0.1417 vn -0.3334 -0.5187 0.7873 vn -0.8598 0.1020 -0.5004 vn -0.6508 0.2463 -0.7182 vn -0.9347 -0.0487 0.3521 vn -0.0219 0.2646 -0.9641 vn 0.3607 0.7443 -0.5621 vn -0.8979 0.0054 -0.4401 vn -0.2742 0.1931 -0.9421 vn -0.2828 -0.1793 -0.9423 vn 0.6756 -0.1459 -0.7227 vn 0.4616 -0.7723 -0.4365 vn -0.1497 0.3042 -0.9408 vn -0.7946 0.2714 -0.5431 vn -0.4357 0.5034 -0.7461 vn 0.2497 0.5982 0.7614 vn 0.5713 0.2559 0.7798 vn 0.8182 0.5660 0.1006 vn 0.9412 -0.0544 -0.3334 vn 0.4149 0.0362 -0.9091 vn -0.9701 -0.2115 0.1189 vn -0.6318 -0.7239 0.2771 vn -0.6864 -0.2789 0.6717 vn 0.8213 -0.4624 0.3341 vn 0.3569 -0.3242 0.8761 vn 0.2297 -0.8450 0.4830 vn 0.4942 0.8527 -0.1694 vn 0.4870 -0.2879 0.8246 vn 0.0594 0.1136 0.9918 vn -0.5362 0.8229 0.1878 vn 0.4208 0.1843 -0.8882 vn -0.3285 -0.2280 0.9166 vn -0.0340 -0.4614 0.8865 vn -0.9816 0.1610 0.1031 vn 0.8216 0.1207 -0.5571 vn -0.5932 0.6086 0.5270 vn -0.8408 0.2893 0.4575 vn -0.4367 -0.7586 -0.4835 vn -0.8016 0.0338 0.5969 vn 0.9828 -0.1517 0.1052 vn 0.8140 -0.2205 0.5374 vn 0.9608 0.1180 0.2510 vn -0.3047 0.6374 -0.7077 vn 0.8611 0.2837 -0.4220 vn 0.2553 0.3873 -0.8859 vn -0.2670 0.8969 0.3525 vn 0.3619 0.2790 0.8895 vn 0.7460 0.4693 0.4726 vn -0.2607 0.7860 0.5606 vn 0.1397 0.4101 0.9013 vn 0.1191 0.8630 -0.4909 vn -0.1512 0.6727 -0.7243 vn -0.1620 0.9850 0.0602 vn 0.6297 0.3423 -0.6973 vn 0.1972 -0.1507 -0.9687 vn 0.1435 0.2369 -0.9609 vn -0.7190 -0.3398 0.6062 vn -0.2653 -0.4087 0.8732 vn -0.1566 -0.0926 0.9833 vn 0.5531 -0.0331 0.8324 vn 0.9890 -0.1460 0.0238 vn 0.9894 -0.0487 0.1366 vn 0.5698 -0.8013 -0.1820 vn 0.5345 -0.2861 -0.7953 vn 0.7617 -0.5700 0.3081 vn -0.6723 -0.2212 -0.7065 vn -0.8297 0.5133 -0.2193 vn -0.6502 0.4395 -0.6197 vn -0.6299 -0.3388 0.6989 vn -0.2229 -0.6196 0.7526 vn -0.2780 -0.3415 0.8978 vn -0.4993 0.1059 0.8599 vn 0.1134 0.9651 0.2360 vn -0.6113 0.6807 0.4038 vn 0.0951 -0.2895 -0.9524 vn 0.4610 -0.2859 -0.8401 vn 0.7367 -0.0514 -0.6743 vn -0.8384 -0.3904 -0.3804 vn -0.6487 -0.1640 -0.7432 vn 0.9269 -0.1384 0.3489 vn 0.7132 0.6998 0.0400 vn -0.9275 -0.2177 -0.3040 vn -0.9740 -0.2096 0.0859 vn -0.8260 -0.0329 -0.5627 vn 0.2066 0.1591 -0.9654 vn -0.4576 -0.5946 -0.6611 vn 0.1693 0.5765 0.7994 vn -0.2364 0.6876 -0.6865 vn 0.3162 0.3700 -0.8736 vn -0.7792 -0.4477 0.4386 vn 0.7870 -0.0336 -0.6160 vn 0.1543 -0.3575 0.9211 vn 0.3883 0.9129 -0.1259 vn 0.9345 0.1411 -0.3267 vn -0.8886 -0.4273 0.1665 vn -0.0788 0.9525 0.2941 vn 0.7661 0.2307 -0.5999 vn 0.9257 -0.0788 -0.3700 vn -0.9514 -0.3077 -0.0079 vn 0.2174 0.3447 -0.9132 vn -0.3174 0.2048 -0.9259 vn 0.0476 0.1281 -0.9906 vn -0.1434 -0.0238 -0.9894 vn 0.8507 -0.4791 0.2163 vn 0.1808 -0.5122 0.8396 vn 0.0682 -0.7795 0.6227 vn -0.3032 0.0097 -0.9529 vn 0.7313 0.2151 -0.6472 vn 0.8693 -0.3091 0.3857 vn 0.8141 0.0820 0.5749 vn 0.0949 -0.1265 0.9874 vn 0.1758 -0.2533 0.9513 vn 0.1867 0.5915 -0.7844 vn -0.2207 -0.9675 0.1234 vn -0.9631 0.1264 0.2377 vn 0.3462 0.8880 0.3025 vn 0.0747 -0.1675 -0.9830 vn 0.1243 0.3263 -0.9371 vn 0.5322 -0.6961 -0.4819 vn -0.1459 0.0882 -0.9854 vn 0.4430 0.0995 -0.8910 vn 0.6910 0.2754 -0.6684 vn -0.9792 -0.1414 -0.1452 vn -0.8140 0.5773 0.0642 vn -0.8419 0.3759 -0.3872 vn 0.6311 0.7313 -0.2586 vn -0.1856 0.8964 0.4025 vn 0.7615 0.4722 0.4441 vn -0.9745 -0.1555 0.1616 vn -0.7645 0.2619 -0.5890 vn -0.8156 0.2105 -0.5389 vn -0.0658 0.1083 0.9919 vn 0.2468 0.9475 0.2034 vn -0.6424 0.4562 0.6157 vn -0.2273 0.9738 -0.0023 vn 0.6025 -0.5752 0.5533 vn 0.9184 -0.3096 -0.2465 vn 0.9536 -0.1451 0.2640 vn -0.5638 -0.3356 0.7546 vn -0.1795 -0.5934 0.7846 vn -0.1558 -0.4700 0.8688 vn -0.7949 0.1256 -0.5936 vn -0.6297 -0.5891 -0.5064 vn 0.4658 -0.6971 0.5451 vn -0.1591 -0.7850 0.5988 vn 0.7482 -0.6611 -0.0560 vn 0.9994 -0.0131 -0.0313 vn 0.0607 0.3117 -0.9482 vn 0.3228 0.9147 0.2430 vn 0.3642 0.1366 0.9212 vn 0.4938 0.2674 0.8274 vn -0.6019 -0.4223 0.6778 vn -0.0071 0.7256 -0.6881 vn 0.9433 0.1468 -0.2976 vn 0.5436 0.1286 -0.8295 vn 0.4604 -0.3664 0.8086 vn 0.1836 -0.4170 0.8902 vn 0.6430 -0.3583 0.6768 vn -0.9022 -0.2394 0.3589 vn -0.5387 0.1494 -0.8292 vn -0.4072 0.2254 -0.8851 vn -0.4345 0.7303 -0.5272 vn -0.4853 0.1148 -0.8668 vn 0.8120 0.1446 -0.5655 vn 0.8199 0.0631 -0.5690 vn -0.4557 0.8016 0.3869 vn 0.3398 0.3173 0.8853 vn 0.3426 0.9294 -0.1373 vn -0.8168 -0.3354 0.4693 vn -0.8789 -0.4542 0.1455 vn 0.3295 -0.5160 0.7907 vn 0.6145 0.2716 -0.7407 vn 0.9504 -0.1207 0.2866 vn -0.0543 -0.9922 0.1121 vn 0.0033 0.1928 -0.9812 vn -0.3709 0.7328 -0.5705 vn 0.8964 0.0237 -0.4427 vn 0.2683 -0.1719 -0.9479 vn 0.2604 0.1841 -0.9478 vn -0.4354 -0.7981 -0.4164 vn -0.7221 -0.1468 -0.6760 vn 0.1845 0.2517 -0.9500 vn 0.3593 0.5540 -0.7510 vn 0.8192 0.2847 -0.4978 vn -0.3223 0.5230 0.7890 vn -0.6646 0.7307 -0.1562 vn -0.6245 0.1789 0.7603 vn -0.9448 -0.0661 -0.3210 vn -0.4143 0.1430 -0.8988 vn 0.9764 -0.2148 0.0229 vn 0.6587 -0.2967 0.6914 vn 0.6334 -0.7227 0.2766 vn -0.8202 -0.3689 0.4373 vn -0.2220 -0.8351 0.5034 vn -0.3876 -0.3178 0.8653 vn 0.4753 0.8481 0.2340 vn -0.4764 -0.2877 0.8308 vn -0.0427 0.0721 0.9965 vn -0.4964 0.1029 -0.8619 vn 0.3253 -0.2356 0.9158 vn 0.0342 -0.4613 0.8866 vn 0.9822 0.1591 0.0998 vn -0.8317 0.1132 -0.5436 vn 0.8556 0.1815 0.4848 vn 0.6013 0.6062 0.5205 vn 0.4335 -0.7445 -0.5077 vn 0.8180 -0.0645 0.5715 vn 0.2686 0.6886 -0.6736 vn -0.9793 -0.1425 0.1435 vn -0.7765 -0.3493 0.5244 vn -0.9505 0.1697 0.2601 vn -0.2083 0.3298 -0.9208 vn -0.8618 0.3536 -0.3637 vn -0.9185 0.2242 -0.3258 vn -0.9145 0.3338 -0.2285 vn -0.5540 0.3457 -0.7573 vn -0.8732 0.2429 0.4226 vn -0.9464 0.1028 0.3061 vn -0.5839 -0.0321 0.8112 vn -0.1604 -0.8206 0.5485 vn -0.6478 -0.7020 -0.2959 vn 0.1888 -0.9359 -0.2974 vn -0.6549 -0.7392 -0.1572 vn -0.5745 -0.7316 -0.3669 vn 0.2448 -0.9460 -0.2125 vn -0.0163 -0.0347 -0.9993 vn 0.3092 -0.7811 -0.5425 vn -0.4979 -0.4074 -0.7656 vn -0.8874 0.4426 0.1291 vn -0.9938 0.1095 0.0189 vn 0.4698 0.1416 -0.8714 vn 0.0352 0.1339 -0.9904 vn 0.1979 0.2051 -0.9585 vn -0.1371 -0.0316 0.9901 vn -0.3262 0.0467 0.9441 vn -0.7360 -0.0487 0.6752 vn -0.0589 -0.9737 -0.2201 vn 0.5796 -0.7875 -0.2095 vn 0.3994 -0.9162 0.0332 vn 0.2119 -0.0419 0.9764 vn 0.3625 0.0786 0.9287 vn 0.6683 0.0176 0.7437 vn 0.9013 0.0766 0.4264 vn -0.0529 -0.8112 0.5824 vn 0.6815 -0.3966 0.6151 vn 0.2483 -0.1041 0.9631 vn 0.7113 0.0232 0.7025 vn 0.3484 -0.8995 -0.2636 vn 0.0933 -0.7849 -0.6126 vn 0.8594 0.3470 0.3755 vn 0.7252 0.5811 -0.3692 vn 0.8026 0.4918 -0.3376 vn -0.5896 0.4975 -0.6362 vn 0.5360 0.5914 -0.6025 vn -0.4155 0.2156 -0.8837 vn 0.1343 0.4982 -0.8566 vn -0.5083 0.6650 -0.5472 vn 0.3530 0.5763 -0.7371 vn 0.0296 -0.9778 -0.2074 vn 0.0760 -0.9351 -0.3460 vn -0.1745 -0.9637 -0.2018 vn 0.1373 -0.9587 -0.2490 vn 0.1916 -0.6747 -0.7127 vn -0.2022 -0.9271 -0.3157 vn 0.9656 0.2026 0.1630 vn 0.9446 0.0911 0.3152 vn 0.9843 0.1360 -0.1128 vn 0.2650 -0.9247 -0.2734 vn -0.6965 0.5920 -0.4056 vn -0.8901 0.3222 0.3223 vn -0.9559 0.1567 -0.2484 vn -0.9894 0.0246 0.1431 vn 0.1974 0.4803 0.8546 vn -0.2183 0.8687 0.4446 vn 0.0044 1.0000 -0.0013 vn -0.9349 -0.2756 -0.2238 vn -0.3060 0.9507 0.0496 vn -0.6634 0.4184 0.6204 vn 0.2683 0.3807 0.8849 vn 0.1352 -0.8389 0.5273 vn 0.6135 0.2563 -0.7470 vn -0.1021 -0.2963 0.9496 vn -0.2083 0.3663 -0.9069 vn 0.2064 0.3020 -0.9307 vn -0.1460 0.4004 -0.9046 vn -0.2228 0.2728 0.9359 vn 0.3548 0.9340 0.0425 vn 0.9391 0.3276 -0.1039 vn -0.8664 -0.3702 0.3351 vn 0.7486 -0.6085 -0.2634 vn 0.7099 0.1371 -0.6908 vn 0.9846 -0.0502 -0.1672 vn -0.5916 0.4642 0.6592 vn -0.6885 0.2139 -0.6929 vn 0.1552 0.0695 -0.9854 vn 0.7772 0.1899 -0.6000 vn 0.8373 0.4380 0.3272 vn 0.8365 0.3199 0.4448 vn 0.2317 0.2042 0.9511 vn 0.9323 -0.2606 0.2506 vn 0.5551 0.6560 0.5113 vn -0.2713 0.3206 0.9075 vn 0.3707 0.9282 0.0306 vn -0.3387 0.8736 0.3495 vn 0.8615 0.5020 0.0759 vn -0.3094 0.8221 -0.4779 vn 0.7959 -0.5985 -0.0909 vn 0.5756 -0.2113 -0.7899 vn -0.7954 0.1095 -0.5961 vn -0.5320 0.3045 -0.7901 vn -0.3332 0.2449 -0.9105 vn -0.9182 0.1637 -0.3608 vn -0.8521 0.0721 0.5184 vn -0.6557 0.1110 0.7468 vn -0.9690 0.2315 0.0865 vn -0.9970 0.0760 0.0129 vn -0.9926 0.0934 -0.0772 vn 0.6846 0.1919 -0.7032 vn 0.6029 0.2438 -0.7597 vn 0.9602 0.2459 -0.1324 vn -0.7768 -0.5367 0.3294 vn -0.7459 -0.6451 -0.1657 vn 0.0109 -0.9404 0.3398 vn -0.1807 -0.8816 -0.4361 vn 0.3524 -0.9256 -0.1378 vn 0.1364 -0.9421 0.3063 vn -0.0112 -0.7698 0.6381 vn -0.6300 -0.7435 -0.2241 vn -0.3792 -0.6784 -0.6292 vn 0.2296 -0.9732 0.0112 vn -0.8034 0.5954 0.0055 vn 0.9443 0.2596 0.2024 vn 0.8941 0.3790 -0.2386 vn 0.1538 0.1000 -0.9830 vn 0.5218 0.2716 -0.8087 vn -0.2962 -0.0478 0.9539 vn -0.0090 -0.0637 0.9979 vn -0.0802 -0.0340 0.9962 vn 0.3121 0.0530 0.9486 vn 0.6775 0.0581 0.7332 vn 0.7977 0.2306 0.5572 vn -0.3489 0.3037 -0.8866 vn -0.8858 0.0255 -0.4634 vn 0.5331 -0.1029 0.8398 vn -0.0245 -0.9795 -0.2001 vn 0.6987 -0.7137 0.0487 vn 0.4391 -0.8951 0.0779 vn 0.2327 0.1316 0.9636 vn 0.2094 -0.0924 0.9734 vn 0.4034 -0.5878 0.7013 vn -0.8859 0.0683 0.4588 vn -0.3610 -0.1535 0.9198 vn -0.3648 -0.4879 0.7930 vn -0.7238 0.5664 0.3941 vn -0.3601 0.3619 0.8598 vn -0.5351 0.4290 0.7277 vn 0.5581 -0.8219 -0.1140 vn -0.5186 -0.7812 -0.3475 vn 0.4414 -0.7962 -0.4139 vn 0.0394 -0.3655 -0.9300 vn 0.2774 -0.3912 -0.8775 vn -0.9850 0.1280 -0.1160 vn -0.4190 -0.1901 -0.8879 vn 0.8888 -0.4138 0.1969 vn 0.7491 0.4622 0.4745 vn 0.6566 0.6850 -0.3156 vn 0.7737 0.6319 0.0446 vn -0.0077 0.1945 0.9809 vn -0.4244 0.1742 0.8886 vn 0.0244 0.1307 -0.9911 vn 0.3190 0.3397 -0.8848 vn -0.3936 0.4730 -0.7883 vn 0.2916 0.7053 -0.6461 vn -0.8305 0.5483 -0.0983 vn 0.1132 -0.9885 -0.0998 vn 0.1509 -0.9640 -0.2191 vn -0.0577 -0.9817 -0.1816 vn 0.2441 -0.4849 -0.8398 vn -0.0279 -0.9624 -0.2703 vn 0.1550 -0.9753 -0.1572 vn 0.9056 0.2845 0.3146 vn 0.8256 0.0659 0.5604 vn 0.9952 0.0976 0.0108 vn 0.2355 -0.9664 -0.1031 vn 0.8089 0.3804 0.4484 vn 0.2587 0.5868 0.7673 vn 0.6850 0.4091 0.6029 vn -0.6040 0.5193 -0.6045 vn -0.9436 0.3162 0.0980 vn -0.0060 -0.8949 0.4463 vn 0.8131 0.1884 -0.5509 vn 0.9421 -0.3315 -0.0496 vn 0.5607 -0.5442 -0.6240 vn -0.2883 0.9571 -0.0281 vn -0.0011 0.4578 0.8890 vn 0.0294 0.3026 -0.9527 vn -0.2471 0.3833 -0.8900 vn 0.4107 0.4640 -0.7849 vn -0.3642 -0.0877 0.9272 vn 0.3040 0.3010 -0.9039 vn 0.0136 0.3463 -0.9380 vn 0.2291 0.8071 -0.5441 vn 0.1888 0.9818 0.0227 vn -0.0657 -0.3682 0.9274 vn -0.9482 0.1297 -0.2898 vn 0.8369 -0.1894 0.5135 vn -0.1125 0.8920 0.4378 vn -0.1818 0.9833 0.0114 vn 0.3908 0.2077 -0.8967 vn 0.0964 0.1865 -0.9777 vn 0.7498 0.6617 0.0009 vn -0.3938 0.9169 0.0648 vn 0.2258 0.8842 0.4089 vn 0.1771 0.4644 0.8677 vn 0.7024 0.6599 0.2669 vn -0.7110 0.4831 0.5109 vn -0.1345 0.6204 -0.7726 vn -0.8285 0.0858 -0.5534 vn -0.6671 0.2257 -0.7100 vn -0.2545 0.1325 -0.9579 vn -0.3684 0.2715 -0.8891 vn -0.9168 -0.0046 -0.3994 vn -0.8870 0.4256 -0.1791 vn -0.9323 0.3468 0.1030 vn -0.8295 0.0614 0.5551 vn -0.8026 0.0918 0.5894 vn -0.9870 0.1605 -0.0003 vn -0.9876 0.0435 0.1507 vn 0.7309 0.1898 -0.6556 vn 0.7136 0.2689 -0.6469 vn 0.9558 0.2876 -0.0619 vn -0.6527 -0.7350 0.1838 vn -0.7570 -0.5885 -0.2840 vn 0.0410 -0.9383 -0.3433 vn 0.9713 0.1602 0.1759 vn 0.9265 0.3662 -0.0871 vn 0.3180 0.1317 -0.9389 vn 0.3923 0.2231 -0.8923 vn -0.2472 0.7294 -0.6378 vn -0.7279 0.5213 -0.4455 vn 0.3861 0.1081 0.9161 vn 0.6897 0.2402 0.6831 vn 0.8122 0.2692 0.5175 vn 0.9268 0.0961 0.3631 vn -0.9105 -0.0597 0.4091 vn 0.4206 -0.1217 0.8990 vn 0.8140 0.1848 0.5507 vn -0.0630 -0.9783 -0.1972 vn 0.5826 -0.8096 -0.0716 vn 0.3939 -0.9126 0.1092 vn 0.1372 0.1205 -0.9832 vn -0.0528 0.1715 -0.9838 vn -0.1500 -0.0487 0.9875 vn -0.0422 -0.0644 0.9970 vn 0.2749 0.0567 0.9598 vn -0.5396 0.1413 -0.8300 vn -0.1992 -0.5633 -0.8019 vn -0.7744 -0.4701 -0.4235 vn -0.7561 -0.5453 -0.3618 vn 0.1493 -0.9718 -0.1824 vn 0.5221 -0.4756 0.7080 vn -0.0439 -0.9216 0.3857 vn 0.8301 -0.5304 0.1721 vn -0.4475 -0.5584 0.6986 vn 0.0014 -0.9429 0.3331 vn -0.1251 -0.5192 0.8454 vn 0.3008 -0.8866 0.3514 vn -0.1346 -0.9310 0.3393 vn 0.8905 0.4532 -0.0411 vn 0.5999 0.2794 -0.7497 vn -0.4111 -0.9069 -0.0922 vn 0.2972 -0.9546 0.0190 vn -0.4523 0.1649 0.8765 vn -0.4714 -0.0669 0.8794 vn -0.4879 0.3021 0.8189 vn -0.0061 0.3457 0.9383 vn -0.7013 0.4042 0.5872 vn -0.2260 0.9741 0.0029 vn 0.1584 0.9803 0.1183 vn 0.0515 -0.9933 -0.1032 vn 0.0634 -0.9978 -0.0181 vn 0.0934 -0.9762 -0.1956 vn -0.2142 -0.9568 -0.1966 vn -0.0722 -0.9709 -0.2283 vn 0.4292 0.3287 -0.8412 vn -0.2251 0.5964 -0.7705 vn 0.4983 0.5422 -0.6765 vn 0.1922 0.0122 -0.9813 vn 0.3367 -0.7480 -0.5720 vn 0.1436 -0.5192 -0.8425 vn 0.3647 -0.9270 -0.0872 vn -0.0160 0.3453 -0.9383 vn 0.0114 0.3653 0.9308 vn -0.1314 -0.6843 0.7172 vn 0.2043 0.3967 0.8949 vn -0.4745 0.0328 0.8796 vn -0.6793 -0.0524 0.7319 vn -0.2195 -0.0977 0.9707 vn -0.3988 0.9167 -0.0263 vn 0.3592 0.2719 -0.8928 vn 0.0679 0.2830 -0.9567 vn 0.2760 0.6937 -0.6653 vn 0.0513 0.4237 -0.9044 vn -0.7643 0.4378 -0.4734 vn -0.1887 0.3856 -0.9032 vn 0.8158 0.3488 0.4612 vn 0.5534 0.6450 0.5270 vn 0.6760 0.3627 0.6414 vn -0.0069 -0.2982 0.9545 vn 0.2573 0.9421 0.2152 vn 0.3744 -0.8993 -0.2261 vn -0.4769 0.8442 0.2448 vn -0.0803 0.1785 -0.9807 vn -0.8667 0.0590 -0.4952 vn 0.7917 -0.6107 -0.0158 vn 0.8406 0.1545 -0.5191 vn 0.9955 -0.0481 0.0820 vn -0.9133 0.2018 0.3536 vn -0.9972 0.0546 -0.0507 vn -0.9747 0.1119 -0.1937 vn 0.3926 0.0311 -0.9192 vn 0.1477 -0.6806 -0.7176 vn -0.9248 0.3532 -0.1413 vn 0.8040 0.5881 0.0875 vn 0.9097 -0.3838 0.1586 vn 0.3464 -0.8522 -0.3922 vn -0.8446 -0.3570 -0.3991 vn -0.7136 0.4829 -0.5075 vn 0.0675 0.9472 0.3135 vn 0.9663 0.2394 0.0944 vn 0.7295 0.6155 0.2983 vn 0.4671 0.8172 0.3375 vn -0.7347 0.4220 0.5312 vn 0.8187 -0.0929 0.5666 vn 0.7664 0.5636 -0.3082 vn 0.8032 -0.2973 -0.5162 vn -0.1979 -0.9335 -0.2989 vn 0.4636 0.6203 -0.6327 vn 0.9384 0.2510 -0.2374 vn 0.5424 0.2871 -0.7896 vn 0.9088 0.3190 -0.2689 vn 0.8587 0.2445 0.4504 vn 0.5294 0.0577 0.8464 vn 0.9332 0.0613 0.3542 vn 0.6991 -0.6590 0.2773 vn -0.2932 -0.9280 -0.2299 vn 0.6325 -0.7140 -0.3002 vn 0.6691 -0.7285 -0.1470 vn -0.2576 -0.9504 -0.1746 vn 0.5559 -0.7304 -0.3969 vn 0.0213 -0.0267 -0.9994 vn 0.4599 -0.3053 -0.8338 vn -0.2893 -0.8061 -0.5162 vn 0.8456 0.5332 -0.0239 vn 0.9943 0.1065 0.0080 vn 0.8162 0.4102 0.4069 vn -0.9911 0.1048 -0.0824 vn -0.9172 0.3854 -0.1005 vn -0.7452 0.1865 -0.6403 vn -0.4477 0.2646 -0.8541 vn -0.2221 0.1465 -0.9639 vn 0.1226 0.2370 -0.9638 vn 0.6355 -0.0619 0.7696 vn 0.0529 -0.9738 -0.2212 vn -0.3102 -0.9478 0.0741 vn -0.6471 -0.7523 -0.1242 vn 0.3143 -0.0112 0.9493 vn -0.2831 -0.0030 0.9591 vn -0.2140 -0.0425 0.9759 vn -0.8445 0.2851 0.4534 vn -0.6909 0.0031 0.7229 vn -0.0199 -0.8444 0.5353 vn -0.6089 -0.4084 0.6800 vn -0.2081 -0.1636 0.9643 vn -0.8341 0.0360 0.5504 vn -0.7788 -0.5777 -0.2444 vn -0.1140 -0.6348 -0.7642 vn 0.0157 -0.9509 -0.3092 vn -0.0928 -0.8091 -0.5804 vn -0.8144 0.5713 -0.1022 vn -0.6341 0.6516 -0.4163 vn 0.7572 0.6393 0.1338 vn -0.5691 0.4988 -0.6537 vn 0.4606 0.5022 -0.7319 vn 0.3625 0.2488 -0.8982 vn -0.1378 0.5018 -0.8539 vn -0.3118 0.6972 -0.6455 vn 0.5419 0.6943 -0.4736 vn 0.3340 0.3827 0.8614 vn -0.0741 -0.9371 -0.3411 vn -0.0179 -0.9718 -0.2350 vn 0.2250 -0.9475 -0.2272 vn 0.1861 -0.0146 0.9824 vn 0.0824 -0.2901 0.9535 vn -0.1141 -0.9681 -0.2229 vn -0.1936 -0.9497 -0.2461 vn -0.8521 0.3458 0.3930 vn -0.7387 0.5546 0.3832 vn 0.8191 0.4691 0.3301 vn 0.7535 0.5622 -0.3407 vn 0.9755 0.1285 -0.1784 vn 0.9857 0.0134 0.1679 vn -0.1961 0.5019 0.8424 vn -0.0170 0.9997 -0.0164 vn 0.2173 0.8805 0.4214 vn 0.9371 -0.2814 -0.2065 vn 0.2894 0.9512 0.1072 vn -0.2330 0.4387 0.8679 vn -0.1431 -0.8551 0.4983 vn 0.2112 0.3703 -0.9046 vn -0.2553 0.2458 -0.9351 vn -0.2078 0.9775 0.0366 vn 0.1919 0.2617 0.9459 vn 0.1652 -0.7333 0.6596 vn -0.9866 -0.0711 -0.1468 vn -0.7011 0.1167 -0.7034 vn 0.6715 0.2021 -0.7130 vn -0.1962 0.0480 -0.9794 vn -0.1775 0.1841 0.9667 vn 0.3181 0.8460 0.4280 vn -0.4144 0.8564 0.3081 vn -0.9413 -0.2365 0.2408 vn 0.2792 0.3170 0.9064 vn -0.4039 0.3415 0.8487 vn -0.8540 0.5186 0.0423 vn 0.2885 0.8285 -0.4799 vn -0.8244 -0.5626 0.0627 vn -0.6034 -0.3546 -0.7143 vn -0.9919 0.0774 0.1009 vn 0.8571 0.1668 -0.4875 vn 0.3334 0.2060 -0.9200 vn 0.7951 0.2891 -0.5331 vn 0.7814 -0.0118 0.6240 vn 0.9913 0.1221 0.0496 vn 0.6702 0.0966 0.7359 vn 0.9971 0.0638 0.0404 vn 0.9981 0.0292 -0.0543 vn 0.7604 -0.5856 0.2808 vn 0.0054 -0.9263 0.3768 vn 0.7338 -0.6574 -0.1716 vn -0.3506 -0.9283 -0.1241 vn 0.1516 -0.8845 -0.4412 vn -0.1446 -0.9311 0.3348 vn 0.0662 -0.7457 0.6630 vn 0.5359 -0.7741 -0.3371 vn -0.2724 -0.9622 -0.0050 vn 0.6112 -0.7032 -0.3632 vn 0.3607 -0.6858 -0.6322 vn 0.6695 0.7389 0.0766 vn 0.9388 0.3115 -0.1472 vn -0.9644 0.1770 0.1965 vn -0.9080 0.3526 -0.2263 vn -0.9842 0.1662 -0.0603 vn -0.5826 0.2215 -0.7820 vn -0.2143 0.1714 -0.9616 vn -0.1353 0.1408 -0.9807 vn -0.3090 -0.0335 0.9505 vn -0.7468 0.2808 0.6029 vn -0.7597 0.1099 0.6409 vn 0.8843 0.1089 -0.4540 vn 0.3642 0.2451 -0.8985 vn -0.4842 -0.1174 0.8670 vn -0.0308 -0.9867 -0.1595 vn -0.4140 -0.9101 0.0162 vn -0.6974 -0.7144 0.0570 vn 0.3916 -0.0775 0.9169 vn 0.1194 -0.0531 0.9914 vn 0.0037 -0.0475 0.9989 vn -0.2196 0.0898 0.9714 vn -0.1884 -0.1633 0.9684 vn -0.5409 -0.5385 0.6461 vn 0.9124 0.0170 0.4089 vn 0.3568 -0.0590 0.9323 vn 0.4580 -0.4491 0.7672 vn 0.6088 0.4096 0.6794 vn 0.5107 0.4396 0.7389 vn 0.2875 0.4123 0.8645 vn -0.5570 -0.8234 -0.1085 vn -0.4225 -0.8222 -0.3815 vn -0.2675 -0.4055 -0.8741 vn -0.0064 -0.3303 -0.9439 vn 0.9843 0.1277 -0.1217 vn 0.4249 -0.1944 -0.8841 vn -0.8028 -0.5208 0.2904 vn 0.8467 0.5288 -0.0600 vn 0.2791 -0.0884 0.9562 vn -0.0146 0.2352 0.9718 vn 0.4068 0.1205 0.9056 vn -0.2445 0.4458 -0.8611 vn -0.6674 0.6562 -0.3520 vn 0.2423 0.5032 -0.8295 vn -0.1505 -0.9641 -0.2188 vn -0.1033 -0.9874 -0.1198 vn 0.0982 -0.9775 -0.1867 vn -0.2430 -0.4706 -0.8482 vn 0.0250 -0.9743 -0.2238 vn -0.1063 -0.9781 -0.1792 vn -0.9078 0.1750 0.3810 vn -0.8816 0.0503 0.4693 vn -0.2331 -0.9649 -0.1212 vn -0.8082 0.4362 0.3957 vn -0.6716 0.4147 0.6139 vn -0.2069 0.5760 0.7908 vn 0.0016 -0.8934 0.4493 vn -0.0089 0.4955 0.8686 vn 0.0134 0.9995 -0.0297 vn -0.8002 0.2004 -0.5652 vn -0.5265 -0.4282 -0.7344 vn -0.9250 -0.3716 -0.0800 vn 0.3405 0.9369 -0.0790 vn -0.6490 0.2192 -0.7285 vn 0.0107 0.3076 -0.9514 vn -0.3972 0.3703 -0.8397 vn 0.3509 0.4330 -0.8303 vn 0.0122 0.3470 -0.9378 vn -0.2970 0.3237 -0.8983 vn -0.0706 0.9969 0.0335 vn 0.0530 -0.3579 0.9323 vn -0.3357 0.5897 0.7345 vn -0.1448 0.9807 -0.1315 vn 0.9268 0.0735 -0.3683 vn -0.8341 -0.2876 0.4708 vn -0.9967 0.0783 -0.0196 vn 0.3508 0.9266 0.1355 vn 0.7748 0.3773 -0.5073 vn -0.3943 0.2026 -0.8964 vn -0.0852 0.1568 -0.9839 vn -0.0911 0.1842 -0.9787 vn -0.8184 0.5592 -0.1326 vn 0.8070 0.3482 0.4769 vn 0.1925 0.1912 -0.9625 vn 0.1660 0.9721 0.1656 vn -0.8159 0.3937 0.4234 vn 0.5847 0.5381 -0.6072 vn -0.7751 0.3033 -0.5543 vn -0.7355 0.6407 0.2203 vn 0.6914 0.4672 0.5512 vn -0.6388 0.7223 -0.2650 vn 0.1130 0.6808 -0.7237 vn 0.8268 0.0799 -0.5569 vn 0.2332 0.0918 -0.9681 vn 0.6486 0.2339 -0.7243 vn 0.4023 0.1808 -0.8975 vn 0.9288 -0.0149 -0.3703 vn 0.9417 0.3341 -0.0404 vn 0.8194 0.5454 -0.1765 vn 0.7975 -0.0661 0.5997 vn 0.9974 0.0696 -0.0160 vn 0.8172 0.0802 0.5707 vn 0.9725 0.0846 0.2172 vn 0.7041 -0.6857 0.1845 vn -0.0571 -0.9360 -0.3473 vn 0.7383 -0.5752 -0.3521 vn -0.9856 0.1644 0.0407 vn -0.9244 0.3649 -0.1107 vn -0.6743 0.2173 -0.7058 vn -0.3853 0.2336 -0.8927 vn -0.2696 0.1171 -0.9558 vn 0.2306 0.7019 -0.6739 vn 0.6764 0.5801 -0.4539 vn -0.3793 -0.0264 0.9249 vn -0.7909 0.3492 0.5025 vn -0.6726 0.3891 0.6295 vn -0.9252 0.2228 0.3073 vn 0.9137 -0.1066 0.3922 vn -0.7064 0.2307 0.6692 vn -0.4088 -0.1333 0.9029 vn 0.0037 -0.9858 -0.1678 vn -0.4622 -0.8807 -0.1038 vn -0.6389 -0.7683 0.0401 vn 0.0325 0.1776 -0.9836 vn -0.1059 0.1641 -0.9807 vn 0.1267 -0.0516 0.9906 vn -0.2573 0.1268 0.9580 vn 0.0220 -0.0640 0.9977 vn 0.1454 -0.9037 0.4028 vn -0.3766 -0.4395 0.8155 vn -0.5191 -0.7858 0.3362 vn 0.4744 -0.4736 0.7421 vn -0.0542 -0.9379 0.3427 vn 0.1721 -0.5300 0.8303 vn 0.1104 -0.8945 0.4333 vn -0.3314 -0.9120 0.2418 vn -0.8477 0.5225 0.0914 vn -0.6562 0.2923 -0.6956 vn 0.4734 -0.7471 -0.4666 vn -0.3124 -0.9483 0.0566 vn 0.4483 -0.0997 0.8883 vn 0.4617 0.1511 0.8741 vn 0.4904 0.3041 0.8167 vn 0.7103 0.3811 0.5918 vn 0.0123 0.3997 0.9166 vn 0.2297 0.9724 0.0420 vn -0.1980 0.9749 0.1021 vn -0.0721 -0.9965 -0.0412 vn -0.0569 -0.9932 -0.1013 vn -0.0935 -0.9736 -0.2084 vn 0.1818 -0.9734 -0.1398 vn 0.0846 -0.9769 -0.1965 vn -0.2795 0.4389 -0.8539 vn -0.4621 0.4929 -0.7373 vn 0.2043 0.6394 -0.7412 vn -0.2712 -0.0276 -0.9621 vn -0.2308 -0.7276 -0.6460 vn -0.3294 -0.7775 -0.5358 vn -0.3222 -0.9463 -0.0279 vn -0.3218 -0.8971 0.3026 vn 0.0096 0.3680 -0.9298 vn 0.0585 0.3807 0.9229 vn -0.1774 0.3993 0.8995 vn 0.4533 0.0422 0.8904 vn 0.2214 -0.0393 0.9744 vn 0.6303 -0.1478 0.7622 vn 0.4407 0.8951 -0.0680 vn -0.0330 0.2739 -0.9612 vn -0.3681 0.2723 -0.8890 vn -0.8236 -0.3754 0.4252 vn -0.2777 0.6815 -0.6771 vn -0.0411 0.4203 -0.9064 vn 0.1916 0.3147 -0.9297 vn 0.7815 0.4172 -0.4639 vn 0.8862 0.1080 -0.4505 vn 0.7317 -0.4611 -0.5019 vn -0.8161 0.4100 0.4074 vn -0.6867 0.3645 0.6290 vn -0.5855 0.6177 0.5250 vn -0.3518 -0.9080 -0.2276 vn 0.0456 -0.3410 0.9390 vn -0.4680 0.6333 -0.6164 vn -0.7952 0.6021 0.0710 vn -0.1686 0.9493 0.2653 vn -0.4773 -0.8437 -0.2459 vn 0.4846 0.8401 0.2439 vn 0.5081 0.1816 -0.8419 vn -0.0536 0.2779 -0.9591 vn -0.8054 -0.5834 -0.1049 vn -0.9944 -0.0527 0.0921 vn -0.8592 0.1832 -0.4778 vn 0.8418 0.2833 0.4595 vn 0.9608 0.1116 -0.2537 vn 0.9945 0.1041 -0.0124 vn -0.4066 0.0230 -0.9133 vn -0.1238 -0.6740 -0.7283 vn 0.9359 0.3104 -0.1668 vn -0.9783 0.2008 -0.0506 vn -0.8039 0.3123 -0.5062 vn -0.9343 -0.3209 0.1549 vn -0.3535 -0.8529 -0.3841 vn 0.8496 -0.2566 -0.4608 vn 0.4267 -0.4038 -0.8093 vn 0.3681 -0.9150 -0.1653 vn 0.6623 0.4242 -0.6176 vn -0.0026 -0.1368 -0.9906 vn -0.0883 0.9631 0.2541 vn -0.9686 0.2169 0.1218 vn -0.7744 0.5777 0.2581 vn -0.5734 0.7869 0.2279 vn 0.7291 0.4245 0.5368 vn -0.8360 -0.1980 0.5118 vn -0.7205 0.5101 -0.4698 vn -0.7902 -0.1872 -0.5836 vn 0.2221 0.9523 0.2091 vn -0.6561 0.7387 -0.1544 vn -0.7560 0.5205 0.3969 vn 0.0274 0.9621 0.2712 vn -0.5256 0.5922 -0.6107 vn -0.8059 0.5914 -0.0295 vn -0.9633 -0.2549 -0.0845 vn -0.9525 -0.1909 -0.2372 vn -0.5296 -0.5485 -0.6470 vn -0.8646 -0.2937 0.4078 vn -0.7295 -0.1099 0.6751 vn 0.2682 0.8309 0.4876 vn 0.2414 0.9459 0.2166 vn -0.1798 0.9759 0.1238 vn -0.1965 0.0208 -0.9803 vn 0.0070 0.1534 -0.9881 vn 0.3655 0.3069 -0.8787 vn -0.7152 -0.0845 -0.6938 vn -0.6183 0.1644 -0.7685 vn 0.0995 0.2341 0.9671 vn -0.3681 0.6535 0.6614 vn 0.7542 0.3204 0.5732 vn 0.5376 -0.1733 0.8252 vn 0.0695 0.6564 0.7512 vn -0.5014 0.3547 0.7892 vn 0.5613 -0.2227 0.7971 vn -0.0992 -0.1726 0.9800 vn -0.9651 -0.1965 -0.1733 vn -0.6937 0.7197 0.0285 vn 0.2146 0.7837 -0.5829 vn -0.0195 0.5655 -0.8245 vn 0.3046 0.9484 -0.0885 vn -0.8654 -0.2751 0.4187 vn 0.7761 0.5606 0.2889 vn 0.6275 -0.2124 0.7491 vn 0.9468 -0.2338 0.2212 vn 0.6347 -0.7688 0.0779 vn -0.7572 -0.6526 -0.0298 vn 0.8246 0.4104 -0.3893 vn 0.9991 -0.0220 -0.0365 vn 0.8548 -0.0924 -0.5107 vn -0.5564 -0.7551 -0.3468 vn -0.5937 -0.6199 0.5131 vn 0.0004 0.9963 0.0855 vn -0.0605 0.9814 0.1823 vn -0.2702 0.9614 0.0523 vn -0.1539 -0.1537 0.9760 vn -0.4128 -0.1516 0.8981 vn -0.5144 -0.3259 0.7932 vn 0.3699 0.8141 -0.4477 vn -0.2353 0.9674 0.0940 vn -0.0469 0.9844 0.1694 vn 0.1180 0.9758 0.1842 vn -0.8743 -0.3135 -0.3705 vn -0.2873 -0.3833 -0.8778 vn -0.1738 0.2804 -0.9440 vn -0.6439 -0.6347 0.4272 vn 0.5263 -0.8138 0.2465 vn 0.0864 -0.5804 0.8097 vn -0.8415 -0.0565 -0.5373 vn -0.9887 -0.1418 -0.0485 vn -0.3343 -0.6374 0.6942 vn 0.2378 -0.3568 0.9034 vn -0.0880 -0.4868 0.8690 vn -0.8447 -0.1584 0.5113 vn 0.4949 0.0266 -0.8685 vn -0.5166 -0.7002 0.4928 vn -0.0757 -0.9133 -0.4002 vn -0.2476 0.5314 0.8101 vn 0.0846 0.0516 -0.9951 vn 0.4691 0.1093 -0.8764 vn 0.0583 -0.9671 -0.2476 vn 0.1867 0.1483 -0.9712 vn -0.4973 -0.1573 0.8532 vn 0.9097 0.3702 0.1884 vn 0.8725 0.0643 0.4844 vn -0.8043 -0.4231 -0.4172 vn -0.1362 0.1620 -0.9774 vn -0.0502 -0.8778 -0.4764 vn -0.4509 0.0238 -0.8922 vn 0.1747 -0.5444 -0.8204 vn 0.4569 0.3003 -0.8373 vn -0.4761 -0.0524 -0.8778 vn 0.4401 0.8945 0.0780 vn -0.9793 -0.1254 -0.1588 vn 0.9779 -0.1541 0.1413 vn 0.9137 0.0325 -0.4051 vn 0.8272 -0.1389 -0.5445 vn 0.9457 -0.0462 -0.3218 vn 0.6924 -0.1126 -0.7127 vn 0.0802 0.0020 -0.9968 vn 0.4717 0.0700 -0.8790 vn -0.5507 -0.3887 -0.7387 vn -0.0876 -0.5146 -0.8529 vn -0.6330 -0.4376 -0.6386 vn 0.9125 -0.1616 0.3759 vn 0.8825 -0.1023 0.4590 vn 0.3769 -0.3527 0.8565 vn -0.1401 -0.3047 0.9421 vn 0.9601 -0.2314 -0.1568 vn 0.9459 -0.1198 0.3015 vn 0.5094 -0.7520 -0.4183 vn 0.4309 -0.6415 -0.6347 vn 0.3932 -0.1856 -0.9005 vn -0.8936 -0.1217 -0.4321 vn -0.6095 -0.4828 0.6288 vn 0.5936 -0.5301 0.6055 vn 0.4364 -0.7659 0.4721 vn -0.1939 -0.0329 -0.9805 vn -0.6406 0.2436 -0.7282 vn -0.7930 -0.1210 -0.5971 vn 0.9423 -0.1490 0.2996 vn 0.9559 -0.1700 0.2395 vn 0.8561 -0.4988 0.1349 vn 0.1476 0.9538 0.2615 vn -0.7689 0.6391 -0.0197 vn -0.8287 0.4301 0.3581 vn -0.1020 0.7518 0.6515 vn -0.1714 -0.0676 0.9829 vn 0.0070 0.7851 0.6194 vn 0.1649 0.9418 0.2930 vn -0.4967 0.8294 -0.2559 vn -0.4622 0.8240 0.3277 vn -0.1932 0.1080 -0.9752 vn -0.6042 -0.1658 -0.7794 vn -0.4779 0.6283 -0.6139 vn -0.9704 -0.2410 0.0135 vn -0.8818 -0.3156 -0.3505 vn 0.9643 -0.2344 -0.1230 vn 0.8324 0.2507 -0.4943 vn 0.9748 0.1126 0.1925 vn 0.4629 0.1838 -0.8672 vn 0.3093 0.1223 -0.9431 vn -0.9846 -0.1503 -0.0895 vn -0.8724 -0.0552 -0.4857 vn -0.9479 -0.2910 0.1292 vn -0.7463 -0.1471 0.6492 vn -0.4572 -0.3873 0.8006 vn 0.2516 0.2590 0.9325 vn 0.2377 -0.1390 0.9613 vn -0.1868 0.0317 0.9819 vn 0.6912 -0.0471 0.7211 vn 0.5403 -0.3101 0.7823 vn -0.9466 -0.3203 0.0367 vn -0.7601 -0.3402 0.5537 vn -0.6934 -0.2380 0.6801 vn 0.0315 0.1137 -0.9930 vn 0.1682 0.4863 -0.8575 vn 0.0696 0.0992 -0.9926 vn -0.4110 -0.3224 -0.8527 vn -0.0306 0.9591 0.2813 vn -0.8811 0.4723 -0.0245 vn -0.3830 0.0795 0.9203 vn -0.0512 0.9775 0.2045 vn -0.1668 0.9559 0.2417 vn 0.6445 0.6778 0.3538 vn 0.4597 0.8666 -0.1940 vn 0.6319 0.6939 0.3453 vn 0.8503 -0.2413 0.4677 vn 0.5618 0.3428 0.7529 vn 0.4055 -0.3202 0.8562 vn 0.2914 0.8597 0.4195 vn -0.3866 -0.7225 0.5733 vn -0.3196 -0.6172 0.7190 vn -0.3570 -0.6822 0.6381 vn -0.9188 -0.3906 0.0577 vn -0.8120 0.2084 -0.5452 vn 0.3429 0.2733 -0.8987 vn -0.2244 -0.1248 -0.9665 vn 0.3695 0.1189 -0.9216 vn -0.8430 -0.5227 0.1270 vn 0.3137 -0.5090 -0.8016 vn 0.5557 -0.8313 -0.0095 vn -0.1693 -0.8980 -0.4062 vn -0.0674 0.6155 0.7853 vn -0.0966 0.9309 0.3523 vn -0.1066 0.9563 0.2723 vn -0.3411 0.9134 0.2221 vn -0.0412 -0.3724 0.9272 vn -0.3127 -0.3068 0.8989 vn -0.0813 0.9742 0.2103 vn -0.0808 0.7170 -0.6924 vn 0.1195 0.9680 -0.2209 vn 0.1156 0.3848 -0.9158 vn -0.8621 -0.3200 -0.3929 vn -0.9162 -0.3995 0.0311 vn -0.9246 -0.1383 -0.3549 vn -0.6962 -0.1737 -0.6965 vn -0.3548 -0.7976 0.4878 vn -0.1566 -0.6122 0.7751 vn 0.0338 -0.4149 -0.9092 vn -0.3304 -0.1035 -0.9382 vn -0.0923 -0.0997 -0.9907 vn 0.0448 -0.3915 0.9191 vn 0.0867 -0.0085 0.9962 vn -0.4009 -0.6618 0.6335 vn -0.0578 -0.8305 0.5540 vn -0.0367 0.0026 0.9993 vn -0.2615 -0.0227 0.9649 vn 0.8306 0.1009 -0.5476 vn 0.3005 0.5612 -0.7712 vn 0.3229 0.2818 -0.9035 vn 0.0703 0.4236 -0.9031 vn 0.1010 -0.6536 -0.7501 vn 0.0328 0.1302 -0.9909 vn 0.4147 0.1044 -0.9040 vn 0.4668 -0.7078 0.5302 vn 0.6326 0.0582 -0.7723 vn 0.3573 -0.2491 -0.9002 vn 0.1212 -0.9856 0.1180 vn -0.8156 -0.5783 0.0191 vn 0.7067 0.5380 -0.4595 vn 0.8406 -0.0169 -0.5414 vn 0.3942 0.1554 -0.9058 vn 0.6240 0.1705 -0.7626 vn 0.8510 0.0034 -0.5252 vn -0.3391 -0.8127 -0.4738 vn 0.2039 -0.9413 0.2690 vn -0.6813 -0.6497 -0.3373 vn 0.3329 -0.7687 0.5461 vn 0.5104 -0.5801 -0.6348 vn -0.1862 -0.1017 -0.9772 vn 0.6607 0.0516 -0.7489 vn 0.9895 -0.1381 -0.0419 vn 0.4411 -0.5322 -0.7226 vn -0.8977 0.3722 -0.2359 vn 0.6361 -0.3209 0.7017 vn 0.8082 -0.5870 0.0474 vn 0.1264 0.7671 -0.6290 vn 0.8138 0.4184 0.4034 vn -0.0538 -0.9026 0.4270 vn 0.9977 -0.0001 -0.0684 vn 0.5156 -0.7923 0.3263 vn 0.9325 0.3608 0.0153 vn 0.9990 -0.0332 -0.0295 vn 0.9277 0.0472 0.3703 vn 0.1037 -0.4152 0.9038 vn -0.5921 -0.0592 -0.8037 vn 0.7840 -0.5882 0.1986 vn -0.6873 -0.1596 -0.7086 vn -0.2535 -0.3011 -0.9193 vn -0.6477 0.1665 -0.7435 vn -0.9321 -0.0080 0.3621 vn -0.6152 -0.1797 0.7676 vn -0.2843 0.0604 0.9568 vn 0.7188 0.1464 0.6797 vn 0.4306 -0.8934 -0.1281 vn 0.9355 -0.1686 0.3106 vn -0.3987 -0.5295 0.7488 vn -0.0534 -0.1100 0.9925 vn 0.2677 0.9378 0.2213 vn -0.3499 0.9343 -0.0687 vn -0.3580 0.9143 -0.1893 vn -0.2233 0.2233 0.9488 vn -0.0704 0.3425 0.9369 vn 0.1045 0.8817 0.4601 vn -0.1307 0.4019 -0.9063 vn -0.7479 0.1923 -0.6354 vn -0.0063 0.8781 -0.4784 vn -0.2383 0.0629 -0.9691 vn -0.5489 -0.2560 -0.7957 vn 0.2869 0.5346 -0.7949 vn 0.1487 0.0982 -0.9840 vn 0.3962 0.0059 -0.9182 vn -0.9174 -0.2714 -0.2911 vn -0.9611 -0.1967 0.1937 vn -0.9413 0.2276 -0.2493 vn 0.3711 -0.4667 0.8028 vn 0.3324 0.1753 0.9267 vn 0.9562 -0.2830 -0.0745 vn 0.7074 -0.2945 -0.6425 vn 0.8933 0.1860 -0.4091 vn -0.4306 -0.0271 0.9021 vn -0.9866 -0.1617 0.0201 vn 0.5616 0.6547 0.5060 vn 0.6799 0.6285 0.3778 vn -0.0105 0.9996 0.0260 vn 0.2366 0.6570 0.7158 vn -0.1935 0.6822 0.7051 vn 0.2539 0.8685 0.4258 vn 0.6752 0.6877 -0.2668 vn -0.0779 0.9885 0.1298 vn 0.3012 -0.1780 -0.9368 vn 0.0847 0.3678 -0.9260 vn 0.0124 0.2127 -0.9770 vn -0.2020 0.3876 -0.8994 vn 0.5589 -0.0622 0.8269 vn 0.0923 -0.0335 0.9952 vn 0.3908 -0.2320 0.8907 vn 0.5143 -0.5042 -0.6938 vn 0.8952 0.4280 0.1244 vn -0.1652 -0.2455 -0.9552 vn -0.9224 0.3801 -0.0688 vn -0.4650 -0.2158 0.8586 vn -0.8236 -0.1308 0.5519 vn 0.8344 0.4337 0.3400 vn -0.4640 0.7595 0.4558 vn 0.3845 0.3394 -0.8584 vn 0.6375 0.1190 0.7612 vn 0.2292 0.2122 0.9500 vn 0.0032 0.1216 -0.9926 vn -0.7900 -0.5949 -0.1482 vn -0.5241 -0.8327 0.1788 vn -0.9612 -0.0119 -0.2755 vn 0.6348 0.2171 -0.7415 vn 0.0774 -0.4548 -0.8872 vn -0.0447 0.9248 0.3779 vn -0.0592 0.9851 0.1616 vn -0.2288 0.9671 0.1110 vn -0.0074 0.9996 -0.0285 vn 0.0997 -0.1578 0.9824 vn -0.0512 -0.1944 0.9796 vn 0.0304 0.0792 0.9964 vn 0.4933 -0.0646 -0.8675 vn -0.1495 0.1812 -0.9720 vn 0.3645 0.2746 -0.8898 vn 0.6362 0.5059 0.5825 vn 0.9538 0.1322 0.2699 vn 0.1540 0.9840 -0.0890 vn 0.1124 0.6609 -0.7420 vn 0.3757 0.8395 0.3925 vn 0.0258 -0.8914 -0.4525 vn 0.1950 -0.7842 -0.5891 vn -0.2247 0.2332 -0.9461 vn -0.6400 -0.7323 0.2327 vn 0.1103 -0.6632 0.7403 vn 0.1762 -0.6224 0.7626 vn -0.4445 -0.0764 -0.8925 vn -0.7184 -0.2755 -0.6388 vn -0.3191 -0.8320 0.4538 vn -0.0697 -0.7725 0.6311 vn 0.8593 0.0317 0.5105 vn 0.7207 -0.1347 -0.6801 vn -0.1131 0.1669 -0.9795 vn -0.0582 -0.6100 0.7903 vn 0.0327 -0.1153 0.9928 vn 0.2342 0.9458 0.2250 vn 0.5799 -0.8145 0.0169 vn -0.0015 -0.8733 0.4873 vn 0.2951 -0.9187 -0.2625 vn 0.9282 -0.3691 0.0471 vn 0.9682 0.2065 -0.1413 vn -0.3089 -0.1280 -0.9424 vn 0.1933 -0.8050 -0.5609 vn 0.8400 -0.1228 -0.5285 vn 0.7054 -0.2765 0.6527 vn 0.6764 -0.7330 -0.0715 vn -0.6541 0.3345 -0.6784 vn -0.7190 0.0299 -0.6944 vn -0.4311 -0.8375 -0.3358 vn -0.8499 -0.1187 -0.5135 vn -0.8197 -0.2493 -0.5157 vn 0.0515 -0.8153 0.5768 vn 0.9710 -0.0959 0.2191 vn -0.3817 -0.3357 -0.8611 vn -0.9073 0.1949 -0.3725 vn -0.7104 0.6981 -0.0897 vn 0.0555 0.8701 -0.4898 vn 0.8791 -0.1528 0.4515 vn 0.5452 -0.5423 -0.6392 vn -0.1609 -0.9017 -0.4012 vn 0.7675 0.4240 -0.4808 vn -0.3652 0.9265 -0.0904 vn 0.9562 -0.2378 -0.1705 vn -0.9357 -0.1396 -0.3240 vn -0.7314 -0.4769 0.4875 vn -0.8594 -0.1526 -0.4880 vn -0.9272 0.1553 -0.3409 vn -0.1692 0.9767 0.1323 vn 0.7022 0.5545 0.4466 vn 0.6647 0.7303 -0.1573 vn -0.2205 0.9594 0.1759 vn 0.6870 0.7266 0.0019 vn 0.5367 0.8261 -0.1717 vn -0.5538 -0.0160 -0.8325 vn -0.9154 0.1176 -0.3850 vn -0.3778 0.2449 -0.8929 vn 0.9228 -0.2694 -0.2753 vn 0.4357 -0.6695 -0.6016 vn 0.9655 -0.1927 -0.1751 vn 0.9052 -0.2395 0.3511 vn 0.8919 -0.2718 0.3615 vn 0.5906 -0.1637 0.7902 vn -0.2823 0.8261 0.4877 vn 0.2313 0.9710 0.0600 vn -0.2131 0.9567 0.1982 vn -0.3900 0.9028 0.1813 vn -0.1630 0.7334 -0.6599 vn -0.5755 0.6298 -0.5216 vn 0.1956 0.0021 -0.9807 vn 0.1314 0.2256 -0.9653 vn -0.1356 0.2895 0.9475 vn 0.3572 0.6643 0.6566 vn -0.6994 0.4259 0.5739 vn -0.5634 -0.1150 0.8182 vn -0.0516 0.6772 0.7340 vn 0.4368 0.3351 0.8348 vn -0.5373 -0.1555 0.8289 vn 0.0248 -0.2319 0.9724 vn 0.7430 -0.0435 -0.6679 vn 0.9738 -0.1683 -0.1528 vn 0.7614 -0.0829 -0.6429 vn 0.6722 0.3917 -0.6283 vn 0.3944 -0.0814 -0.9153 vn -0.0355 0.6469 -0.7618 vn -0.7947 0.5126 0.3250 vn -0.8034 -0.1467 -0.5770 vn -0.8254 -0.4217 0.3753 vn -0.9330 -0.1783 0.3126 vn -0.6252 -0.2153 0.7502 vn -0.6060 -0.7954 -0.0100 vn -0.9431 -0.2379 0.2322 vn 0.7632 -0.6422 -0.0716 vn -0.7018 0.2556 -0.6649 vn -0.8175 -0.0649 -0.5722 vn -0.9968 -0.0600 -0.0533 vn -0.3310 -0.1670 -0.9287 vn 0.2173 0.2620 -0.9403 vn 0.5791 -0.7012 -0.4158 vn 0.6029 -0.6048 0.5203 vn 0.0009 0.9982 0.0601 vn 0.0489 0.9776 0.2049 vn 0.2268 0.9625 0.1486 vn 0.1619 -0.0660 0.9846 vn 0.5261 -0.3245 0.7861 vn 0.4219 -0.1615 0.8921 vn -0.0492 0.8240 -0.5644 vn 0.1965 0.9804 0.0107 vn -0.0081 0.9844 0.1759 vn -0.1089 0.9760 0.1884 vn 0.8926 -0.2917 -0.3439 vn 0.3182 -0.3459 -0.8827 vn 0.6388 -0.6212 0.4540 vn -0.0582 -0.5687 0.8205 vn -0.5712 -0.8068 0.1509 vn 0.8442 -0.2074 -0.4943 vn 0.8868 0.3534 -0.2977 vn 0.9948 -0.0792 -0.0636 vn 0.3102 -0.6622 0.6821 vn 0.1130 -0.5040 0.8563 vn -0.2151 -0.3367 0.9167 vn 0.8720 -0.2602 0.4145 vn 0.5162 -0.6922 0.5044 vn 0.0739 -0.9094 -0.4094 vn 0.2486 0.5125 0.8219 vn -0.1465 0.0771 -0.9862 vn -0.4746 0.0448 -0.8791 vn -0.0495 -0.9691 -0.2417 vn 0.4890 -0.1697 0.8556 vn -0.8990 -0.0337 0.4366 vn -0.8936 0.4466 0.0464 vn 0.8034 -0.4462 -0.3944 vn 0.1111 -0.8900 -0.4422 vn 0.1368 0.1164 -0.9837 vn 0.3447 0.0746 -0.9358 vn -0.2454 0.2078 -0.9469 vn -0.1654 -0.5614 -0.8109 vn 0.9509 -0.2933 -0.0983 vn -0.9799 -0.1491 0.1323 vn -0.7716 -0.2605 -0.5804 vn -0.9527 -0.0521 -0.2994 vn -0.6777 -0.1255 -0.7245 vn -0.0823 0.0378 -0.9959 vn 0.5150 -0.5069 -0.6912 vn 0.2874 -0.5122 -0.8094 vn -0.3853 -0.3569 0.8510 vn -0.8968 -0.1157 0.4271 vn 0.1299 -0.3179 0.9392 vn -0.9393 -0.2335 0.2515 vn -0.6175 -0.6904 -0.3770 vn -0.4999 -0.5608 -0.6600 vn -0.4103 -0.0541 -0.9103 vn 0.6254 -0.4860 0.6105 vn 0.9149 -0.1771 -0.3628 vn -0.4703 -0.7104 0.5237 vn 0.1851 -0.0742 -0.9799 vn 0.8041 -0.1404 -0.5777 vn 0.6409 0.2457 -0.7272 vn -0.9646 0.1020 0.2433 vn -0.8878 -0.4452 0.1164 vn -0.9572 -0.2446 0.1545 vn -0.1803 0.9687 0.1707 vn 0.7709 0.4325 0.4676 vn 0.7718 0.6356 -0.0182 vn 0.1046 0.7448 0.6591 vn 0.0200 0.8071 0.5900 vn 0.1834 -0.0822 0.9796 vn -0.1961 0.9519 0.2353 vn 0.4597 0.8265 0.3250 vn 0.5851 0.7900 -0.1832 vn 0.9702 -0.2419 0.0135 vn 0.8959 -0.2758 -0.3484 vn -0.9575 -0.2092 -0.1984 vn -0.9719 0.0627 0.2271 vn -0.8540 0.2888 -0.4327 vn -0.4696 0.1859 -0.8631 vn -0.3068 0.1223 -0.9439 vn 0.9860 -0.1362 -0.0965 vn 0.9023 -0.0285 -0.4301 vn 0.9520 -0.2824 0.1181 vn 0.7228 -0.0790 0.6865 vn 0.4540 -0.3599 0.8151 vn -0.3200 0.3186 0.8922 vn 0.2047 0.0307 0.9783 vn -0.2030 -0.0956 0.9745 vn -0.7459 -0.0385 0.6649 vn -0.5174 -0.3405 0.7851 vn 0.9202 -0.3894 0.0404 vn 0.7842 -0.2337 0.5749 vn 0.6651 -0.3300 0.6699 vn -0.9081 -0.1699 0.3827 vn -0.4221 -0.4134 0.8068 vn -0.4550 -0.0798 0.8869 vn -0.0319 0.1194 -0.9923 vn -0.1137 0.5099 -0.8527 vn -0.0677 -0.0292 -0.9973 vn 0.0285 0.9591 0.2816 vn 0.8423 0.5384 -0.0255 vn 0.2965 0.0812 0.9516 vn 0.0801 0.9814 0.1746 vn -0.6448 0.6779 0.3531 vn 0.1753 0.9373 0.3013 vn -0.3900 0.9013 -0.1887 vn -0.6683 0.6878 0.2835 vn -0.4385 0.3296 0.8361 vn -0.2931 0.8595 0.4188 vn 0.3435 -0.7529 0.5615 vn 0.3835 -0.7015 0.6007 vn 0.3530 -0.5989 0.7188 vn 0.9221 -0.3866 0.0165 vn 0.7786 0.2128 -0.5903 vn -0.3636 0.2032 -0.9091 vn -0.4281 0.2082 -0.8794 vn 0.2480 -0.0952 -0.9641 vn 0.8261 -0.5507 0.1194 vn -0.3596 -0.5192 -0.7753 vn 0.1671 -0.8867 -0.4310 vn -0.5463 -0.8376 0.0043 vn 0.0956 0.5875 0.8036 vn 0.1047 0.9264 0.3618 vn 0.0961 0.9512 0.2934 vn 0.3282 0.8910 0.3137 vn 0.0354 -0.0721 0.9968 vn 0.2951 -0.3390 0.8933 vn 0.0275 0.9686 0.2472 vn 0.8472 -0.3560 -0.3943 vn 0.9111 -0.1266 -0.3922 vn 0.9477 -0.3187 0.0162 vn 0.7405 -0.1896 -0.6447 vn 0.3721 -0.7929 0.4825 vn 0.1527 -0.5858 0.7960 vn 0.3203 -0.0699 -0.9447 vn -0.0405 -0.4056 -0.9131 vn -0.0250 -0.3994 0.9164 vn 0.3883 -0.6559 0.6473 vn 0.1007 -0.8225 0.5598 vn 0.0460 0.0081 0.9989 vn 0.2852 -0.1079 0.9524 vn -0.8353 0.0592 -0.5465 vn -0.3102 0.5582 -0.7696 vn -0.0598 0.4701 -0.8806 vn -0.2406 0.3038 -0.9219 vn -0.1067 -0.6654 -0.7389 vn 0.0018 0.1205 -0.9927 vn 0.0104 0.0797 -0.9968 vn -0.3643 0.0400 -0.9304 vn -0.5809 -0.6643 0.4704 vn -0.7109 0.0332 -0.7025 vn 0.5105 0.0177 -0.8597 vn 0.4030 -0.2375 -0.8839 vn -0.3425 -0.2846 -0.8954 vn -0.1221 -0.9869 0.1055 vn 0.8073 -0.5571 0.1944 vn -0.6958 0.5392 -0.4745 vn -0.4803 0.2439 -0.8425 vn -0.8197 0.0039 -0.5727 vn -0.7911 -0.1133 -0.6011 vn -0.6818 0.1004 -0.7246 vn -0.2801 -0.9192 0.2769 vn 0.2943 -0.8354 -0.4643 vn 0.6606 -0.5862 -0.4689 vn -0.3979 -0.7351 0.5489 vn -0.4545 -0.5385 -0.7095 vn 0.1625 -0.0841 -0.9831 vn -0.6222 -0.7332 0.2744 vn -0.9944 -0.0019 -0.1055 vn -0.6560 0.0677 -0.7517 vn -0.4441 -0.4902 -0.7499 vn -0.9866 -0.1572 -0.0449 vn 0.8991 0.3036 -0.3153 vn 0.0265 0.7011 -0.7125 vn -0.6401 -0.4257 0.6396 vn -0.8306 -0.5567 0.0145 vn -0.0346 0.9608 -0.2750 vn -0.1126 0.7543 -0.6467 vn -0.8047 0.5243 0.2786 vn -0.0946 0.4205 -0.9024 vn 0.5038 0.6220 -0.5994 vn 0.0537 -0.8988 0.4351 vn -0.5004 -0.7972 0.3378 vn -0.9991 -0.0407 -0.0077 vn -0.9372 0.3438 0.0586 vn -0.9380 0.1350 0.3192 vn -0.0808 -0.4147 0.9064 vn -0.8347 -0.5443 0.0835 vn 0.6516 -0.0474 -0.7571 vn 0.7938 -0.1154 -0.5971 vn 0.7156 0.2020 -0.6686 vn 0.3705 -0.2150 -0.9036 vn -0.6676 0.2183 0.7118 vn -0.9464 0.3181 0.0564 vn -0.7715 -0.6327 -0.0675 vn 0.6627 -0.3058 0.6836 vn 0.1700 -0.0363 0.9848 vn 0.3012 -0.5468 0.7812 vn -0.2681 0.9376 0.2216 vn 0.3800 0.9031 -0.2001 vn 0.3726 0.9266 -0.0514 vn 0.1625 0.2240 0.9610 vn -0.1018 0.8858 0.4527 vn 0.0174 0.2975 0.9546 vn 0.1809 0.4359 -0.8817 vn -0.0066 0.8440 -0.5363 vn 0.7203 0.1709 -0.6723 vn 0.2958 -0.0046 -0.9552 vn 0.6391 -0.2302 -0.7339 vn -0.8369 -0.4314 0.3369 vn -0.2546 0.5295 -0.8092 vn -0.3908 -0.0212 -0.9202 vn -0.1525 0.1068 -0.9825 vn 0.9397 -0.2459 -0.2378 vn 0.9200 0.2315 -0.3162 vn 0.9625 -0.1214 0.2426 vn -0.3855 -0.4578 0.8012 vn -0.3295 0.1447 0.9330 vn -0.9828 -0.1603 0.0916 vn -0.8841 0.1794 -0.4315 vn -0.6975 -0.3236 -0.6393 vn -0.2162 0.1556 0.9639 vn 0.8253 -0.5467 0.1417 vn 0.8374 -0.1865 0.5138 vn -0.6369 0.6847 0.3544 vn 0.0512 0.9948 0.0876 vn -0.6138 0.6919 0.3801 vn -0.2661 0.6483 0.7133 vn 0.1886 0.6845 0.7042 vn -0.3553 0.7990 0.4852 vn 0.1715 0.9743 0.1458 vn -0.6566 0.7330 -0.1776 vn -0.3492 0.1010 -0.9316 vn -0.0779 0.3706 -0.9255 vn 0.0607 0.1550 -0.9860 vn 0.2563 0.3748 -0.8910 vn -0.5519 -0.0676 0.8311 vn -0.0859 -0.0318 0.9958 vn -0.3595 -0.2389 0.9021 vn -0.3193 -0.5798 -0.7495 vn -0.2293 -0.4607 -0.8574 vn -0.7001 -0.5418 -0.4650 vn 0.1749 -0.2597 -0.9497 vn 0.9337 0.3504 -0.0731 vn 0.5037 0.7559 0.4182 vn 0.5989 0.0513 0.7992 vn -0.7388 0.1340 0.6604 vn -0.2400 0.1664 0.9564 vn 0.6300 -0.0089 0.7766 vn -0.0138 0.1242 -0.9922 vn -0.1659 -0.1864 -0.9684 vn 0.8158 -0.5555 -0.1609 vn 0.9519 0.0217 -0.3057 vn 0.6210 -0.7573 0.2021 vn -0.5692 0.1990 -0.7978 vn 0.0749 -0.4470 -0.8914 vn 0.0630 0.9189 0.3895 vn 0.1267 0.9801 0.1530 vn -0.0197 0.9752 0.2205 vn 0.0054 0.9999 -0.0157 vn -0.1038 -0.1423 0.9844 vn -0.0432 0.0592 0.9973 vn 0.0510 -0.2006 0.9784 vn -0.4915 -0.0707 -0.8680 vn -0.2265 0.2808 -0.9326 vn 0.1680 0.2449 -0.9549 vn -0.6742 0.5823 0.4542 vn -0.9392 0.1518 0.3079 vn -0.1119 0.6302 -0.7683 vn -0.1484 0.9803 -0.1302 vn -0.2598 0.8910 0.3724 vn -0.1115 -0.7729 -0.6246 vn 0.0032 -0.8870 -0.4618 vn 0.2283 0.2446 -0.9424 vn 0.3554 -0.7334 0.5795 vn -0.1074 -0.6016 0.7915 vn -0.1421 -0.6336 0.7605 vn 0.6969 -0.2391 -0.6762 vn 0.3537 -0.1394 -0.9249 vn -0.4670 0.0784 -0.8808 vn 0.3327 -0.8302 0.4473 vn 0.0890 -0.7672 0.6352 vn -0.9155 0.0661 0.3968 vn -0.6899 -0.1774 -0.7018 vn 0.0813 0.2106 -0.9742 vn -0.9854 0.1035 -0.1353 vn 0.0442 -0.6157 0.7868 vn 0.0274 -0.1253 0.9917 vn -0.2328 0.9185 0.3195 vn -0.5878 -0.8008 0.1154 vn -0.0384 -0.8460 0.5318 vn -0.3276 -0.9182 -0.2227 vn -0.0149 0.1453 0.9893 vn -0.9261 -0.3732 0.0548 vn 0.3057 -0.1352 -0.9425 vn -0.1764 -0.8218 -0.5418 vn -0.8430 0.0085 -0.5379 vn -0.6723 -0.7376 -0.0627 vn -0.7118 -0.2709 0.6480 vn 0.7230 -0.5409 -0.4297 vn 0.7839 -0.1159 -0.6100 vn 0.9617 -0.1476 -0.2309 vn 0.7289 -0.1294 -0.6723 vn 0.6676 0.3396 -0.6626 vn 0.1234 -0.9407 0.3161 vn 0.4040 -0.8219 -0.4016 vn 0.8401 -0.1148 -0.5302 vn 0.7438 -0.4839 0.4611 vn 0.1277 -0.8067 0.5770 vn -0.5193 0.4398 -0.7328 vn 0.4572 -0.3646 -0.8112 vn 0.9046 0.2023 -0.3751 vn 0.7307 0.6713 -0.1239 vn 0.1683 -0.1806 0.9690 vn -0.0493 0.8353 -0.5475 vn -0.8120 -0.2396 0.5322 vn -0.8810 0.3398 0.3292 vn 0.8167 -0.5746 -0.0526 vn 0.1825 -0.8764 -0.4457 vn -0.9343 -0.3451 -0.0891 vn -0.7512 0.4456 -0.4869 vn 0.3018 0.9507 -0.0711 vn -0.9743 -0.1898 -0.1211 vn -0.9687 0.1219 0.2162 vn 0.9437 -0.1097 -0.3120 vn -0.5806 -0.6724 -0.4591 vn -0.9739 -0.1841 0.1331 vn -0.6778 -0.2895 -0.6759 vn 0.2903 -0.5639 0.7731 vn -0.1555 -0.1103 0.9816 vn -0.5148 -0.3024 0.8022 vn -0.2030 -0.8860 0.4169 vn -0.8261 -0.5319 0.1860 vn 0.1027 0.2886 -0.9519 vn -0.6205 0.4686 -0.6288 vn -0.1557 0.9731 -0.1696 vn -0.0885 0.0789 0.9929 vn -0.7242 0.0492 0.6878 vn 0.6414 -0.5347 0.5502 vn -0.0741 -0.9972 0.0080 vn -0.9572 0.2263 0.1802 vn -0.9063 0.0317 -0.4215 vn -0.9336 -0.0138 0.3579 vn -0.4932 0.2361 0.8373 vn 0.1898 0.0971 0.9770 vn -0.9115 -0.1305 -0.3900 vn -0.5254 -0.0955 -0.8455 vn -0.3629 -0.3829 -0.8496 vn -0.7753 0.5492 0.3121 vn -0.8680 0.3716 -0.3293 vn 0.3109 -0.0063 0.9504 vn 0.6137 -0.0829 0.7852 vn 0.7066 -0.2043 0.6775 vn 0.2786 -0.1845 0.9425 vn 0.7937 0.1869 0.5788 vn -0.1037 0.4669 0.8782 vn 0.9528 0.1631 0.2560 vn 0.7594 0.2157 -0.6138 vn 0.8690 0.3282 -0.3703 vn -0.7597 0.0489 -0.6485 vn -0.5234 0.2856 -0.8028 vn 0.8574 0.4996 0.1233 vn 0.1152 0.8898 0.4416 vn -0.0963 -0.2785 -0.9556 vn 0.3208 0.1350 -0.9375 vn -0.2035 0.1352 -0.9697 vn -0.2931 0.1709 -0.9407 vn 0.1151 -0.1067 -0.9876 vn 0.0658 -0.0297 -0.9974 vn -0.2212 0.1863 -0.9573 vn 0.2200 0.1811 -0.9585 vn -0.8057 0.0856 0.5861 vn 0.7322 0.0173 -0.6809 vn 0.7205 -0.5364 -0.4395 vn 0.8960 -0.3890 0.2142 vn 0.2177 -0.9278 -0.3031 vn 0.5360 0.4886 -0.6884 vn 0.9963 0.0524 0.0687 vn 0.9610 0.2331 -0.1486 vn 0.6027 0.3826 -0.7003 vn 0.9897 0.1213 -0.0760 vn -0.6003 0.2113 -0.7713 vn 0.5724 -0.2631 -0.7766 vn 0.1088 -0.6347 -0.7650 vn 0.2960 -0.1982 -0.9344 vn -0.5285 -0.4649 -0.7103 vn -0.4201 -0.9073 0.0162 vn -0.9506 -0.3096 -0.0225 vn -0.3705 0.9288 -0.0070 vn -0.3986 0.4045 -0.8231 vn -0.9094 0.4157 0.0111 vn 0.1425 0.6192 -0.7722 vn -0.9258 0.3001 0.2301 vn -0.5025 -0.0512 0.8631 vn -0.7815 0.0750 0.6193 vn -0.6297 -0.2501 -0.7354 vn -0.9641 0.2082 -0.1647 vn -0.6250 0.1930 -0.7564 vn -0.2859 -0.2557 -0.9235 vn -0.1520 -0.2599 -0.9536 vn -0.3943 -0.1535 0.9061 vn -0.6140 -0.5507 0.5654 vn -0.0584 -0.6366 0.7690 vn 0.4919 -0.6773 0.5471 vn 0.2347 -0.5209 0.8207 vn 0.3446 0.3367 -0.8763 vn 0.6757 0.5332 -0.5089 vn 0.5168 0.2499 -0.8189 vn -0.9643 0.1459 0.2212 vn -0.7660 0.2367 -0.5977 vn -0.3961 0.4725 0.7873 vn 0.8222 0.2087 0.5296 vn 0.9477 0.0731 0.3108 vn 0.9624 0.2194 0.1601 vn 0.4582 -0.1264 0.8798 vn 0.8855 -0.2510 0.3909 vn -0.9598 0.2651 -0.0917 vn -0.6106 0.2179 -0.7614 vn -0.9098 0.1655 0.3806 vn 0.7916 0.5712 0.2171 vn 0.6895 0.2347 0.6852 vn 0.3328 -0.1241 -0.9348 vn -0.2281 -0.2623 -0.9376 vn 0.0272 -0.0514 0.9983 vn 0.3537 -0.0566 0.9336 vn 0.4381 0.1651 0.8836 vn 0.0377 -0.1959 0.9799 vn -0.1761 0.1296 0.9758 vn 0.3825 0.4889 0.7840 vn -0.1724 0.2564 -0.9511 vn 0.2651 0.1404 -0.9539 vn -0.0055 0.1632 -0.9866 vn 0.6340 0.1284 -0.7626 vn 0.9732 0.1664 -0.1586 vn 0.9244 -0.1429 -0.3536 vn 0.0710 -0.9970 0.0322 vn 0.7059 -0.6990 -0.1146 vn -0.3815 0.2420 -0.8921 vn 0.3441 0.9339 0.0972 vn -0.5943 0.1448 -0.7911 vn -0.8925 0.0452 -0.4488 vn 0.8823 0.2752 -0.3818 vn -0.9015 -0.0960 0.4221 vn -0.0862 0.2524 -0.9638 vn -0.9161 -0.0494 -0.3979 vn -0.9771 -0.0441 -0.2082 vn -0.9865 -0.0558 -0.1540 vn 0.5950 -0.6682 -0.4466 vn 0.5988 -0.2584 -0.7581 vn 0.9651 -0.2079 0.1591 vn -0.2971 -0.5552 0.7769 vn 0.5266 -0.3126 0.7905 vn 0.1853 -0.1360 0.9732 vn 0.1630 -0.8826 0.4409 vn 0.7398 -0.6316 0.2319 vn -0.0115 0.3148 -0.9491 vn 0.0589 0.9981 -0.0162 vn 0.5078 0.5999 -0.6183 vn 0.7097 -0.0030 0.7045 vn 0.1332 0.0865 0.9873 vn -0.6256 -0.5339 0.5688 vn -0.0344 -0.9992 -0.0211 vn 0.9606 0.2375 0.1444 vn 0.9337 -0.0137 0.3577 vn 0.9515 0.0040 -0.3077 vn 0.5270 0.1776 0.8311 vn -0.1495 0.1950 0.9693 vn 0.9089 -0.2516 -0.3325 vn 0.5012 -0.0881 -0.8608 vn 0.4891 -0.3912 -0.7796 vn 0.7773 0.5449 0.3144 vn 0.9126 0.2399 -0.3310 vn -0.6700 -0.0377 0.7414 vn -0.3121 -0.0207 0.9498 vn -0.7913 -0.0952 0.6040 vn -0.3627 -0.2477 0.8984 vn -0.7819 0.2276 0.5804 vn 0.1727 0.4620 0.8699 vn -0.9592 0.1423 0.2443 vn -0.8988 0.3120 -0.3080 vn -0.6621 0.3089 -0.6828 vn 0.7762 0.0386 -0.6293 vn 0.4075 0.2125 -0.8881 vn -0.5272 0.7522 0.3952 vn 0.1099 -0.2679 -0.9572 vn -0.3137 0.1139 -0.9427 vn 0.2029 0.1542 -0.9670 vn 0.2110 0.2012 -0.9565 vn -0.1249 -0.1306 -0.9835 vn -0.0383 -0.0978 -0.9945 vn -0.2150 0.0482 -0.9754 vn 0.2458 0.1806 -0.9523 vn 0.7063 0.2023 0.6784 vn -0.7908 -0.1060 -0.6028 vn -0.5935 -0.6018 -0.5344 vn -0.9421 -0.2615 0.2101 vn -0.2211 -0.9234 -0.3138 vn -0.4361 0.5196 -0.7347 vn -0.9947 0.0426 0.0936 vn -0.8494 0.5028 -0.1603 vn -0.5695 0.4794 -0.6677 vn -0.9608 0.2473 -0.1251 vn 0.5722 0.1993 -0.7956 vn -0.6162 -0.3381 -0.7113 vn -0.2936 -0.1966 -0.9355 vn -0.0815 -0.6449 -0.7599 vn 0.4704 -0.5420 -0.6964 vn 0.9458 -0.3169 -0.0706 vn 0.4619 -0.8824 0.0892 vn 0.3487 0.9370 -0.0213 vn 0.8563 0.5162 0.0177 vn 0.5355 0.3981 -0.7448 vn -0.1505 0.5899 -0.7933 vn 0.9337 0.2604 0.2458 vn 0.7737 0.1108 0.6238 vn 0.4593 0.0720 0.8854 vn -0.9781 0.1634 0.1292 vn -0.9112 -0.2062 0.3567 vn -0.7536 0.1665 0.6359 vn 0.6435 -0.2524 -0.7226 vn 0.6345 0.1461 -0.7590 vn 0.9423 0.2689 -0.1993 vn 0.1449 -0.2842 -0.9478 vn 0.2116 -0.1932 -0.9581 vn 0.4857 -0.1328 0.8640 vn 0.0295 -0.6165 0.7868 vn 0.5171 -0.6219 0.5881 vn -0.5137 -0.6618 0.5460 vn -0.2690 -0.4701 0.8406 vn -0.3007 0.3374 -0.8920 vn -0.7759 0.3856 -0.4994 vn 0.9374 0.1896 0.2922 vn 0.7904 0.2769 -0.5465 vn 0.3932 0.4798 0.7844 vn -0.7303 0.2343 0.6417 vn -0.9567 0.2805 0.0774 vn -0.5092 -0.2194 0.8322 vn 0.5880 0.1415 -0.7964 vn 0.9196 0.3734 -0.1221 vn 0.9039 0.1744 0.3906 vn -0.6819 0.5630 0.4669 vn -0.3518 -0.1948 -0.9156 vn 0.1856 -0.2512 -0.9500 vn -0.0564 -0.0592 0.9966 vn -0.3617 0.1859 0.9136 vn -0.3823 -0.0469 0.9229 vn -0.0329 -0.2043 0.9784 vn 0.2047 0.0612 0.9769 vn 0.1982 0.2614 -0.9447 vn 0.0119 0.1891 -0.9819 vn -0.2719 0.1238 -0.9543 vn -0.7096 0.2137 -0.6714 vn -0.9071 -0.1643 -0.3876 vn -0.9695 0.1674 -0.1792 vn -0.0544 -0.9979 0.0347 vn -0.3482 0.9266 0.1417 vn 0.8130 0.0391 -0.5809 vn 0.3121 0.1885 -0.9312 vn -0.7024 -0.6995 -0.1316 vn 0.3761 0.2397 -0.8950 vn -0.8977 0.2367 -0.3716 vn 0.8746 0.0218 0.4843 vn -0.0789 0.1910 -0.9784 vn -0.6380 0.3357 -0.6930 vn 0.9161 -0.0494 -0.3979 vn 0.9771 -0.0440 -0.2080 vn -0.9639 -0.0037 -0.2661 vn 0.9865 -0.0558 -0.1538 vn 0.9640 -0.0038 -0.2659 vn 0.1605 0.7892 -0.5927 vn -0.4546 0.4892 -0.7443 vn -0.7233 0.5996 -0.3425 vn -0.6310 0.5790 0.5163 vn -0.1588 0.1013 0.9821 vn -0.1850 0.9296 0.3187 vn -0.0646 -0.8408 -0.5375 vn -0.6797 -0.5146 -0.5227 vn 0.2478 0.0312 -0.9683 vn 0.9754 -0.1963 0.0999 vn 0.9449 -0.0085 -0.3273 vn 0.8829 -0.1016 -0.4585 vn -0.8431 0.0615 0.5342 vn -0.0016 -0.1981 0.9802 vn -0.4508 0.5134 -0.7302 vn 0.3100 0.2253 -0.9237 vn 0.9935 -0.0273 0.1107 vn 0.9182 0.2770 -0.2831 vn 0.4081 0.5472 0.7308 vn 0.4788 0.8750 0.0720 vn 0.7300 -0.4172 -0.5414 vn 0.9649 -0.2077 -0.1608 vn -0.2177 -0.3250 0.9203 vn -0.7087 -0.1370 0.6921 vn -0.3916 -0.5602 0.7300 vn 0.7140 0.0396 -0.6990 vn 0.2522 0.0834 -0.9641 vn 0.2647 0.1993 -0.9435 vn -0.0766 -0.9141 0.3982 vn -0.6612 -0.7308 0.1697 vn 0.2079 -0.6030 0.7702 vn 0.3547 -0.2667 0.8961 vn 0.7747 -0.5497 0.3125 vn 0.8356 -0.0068 0.5494 vn -0.7553 -0.1650 -0.6343 vn -0.4877 0.2005 -0.8497 vn -0.1939 0.1823 -0.9639 vn 0.4698 0.0183 0.8826 vn 0.8202 -0.3212 0.4734 vn 0.5283 -0.8482 -0.0386 vn 0.7048 -0.2497 0.6640 vn 0.1458 0.1520 -0.9776 vn -0.3800 0.4545 -0.8056 vn -0.9261 0.3331 -0.1771 vn -0.9881 -0.0426 -0.1475 vn -0.4546 0.1088 -0.8841 vn -0.8786 0.2043 -0.4316 vn 0.4177 0.1042 -0.9026 vn -0.9595 -0.0330 0.2797 vn -0.8231 -0.4432 0.3550 vn -0.4737 0.3554 -0.8058 vn -0.9502 0.2809 -0.1350 vn -0.9500 -0.2046 -0.2360 vn 0.2650 0.3615 0.8939 vn 0.1563 0.5469 -0.8225 vn 0.0546 0.9549 -0.2918 vn 0.4636 0.6916 -0.5539 vn 0.4109 -0.3242 0.8521 vn 0.8720 -0.1520 0.4652 vn 0.4979 0.2262 0.8372 vn 0.6935 -0.4550 0.5586 vn 0.9744 -0.2223 0.0340 vn 0.2926 0.7716 0.5649 vn 0.8976 0.3713 0.2378 vn -0.1434 0.1689 0.9751 vn -0.5812 0.0274 -0.8133 vn 0.4131 -0.2375 -0.8792 vn -0.4911 -0.6313 -0.6002 vn -0.8688 0.2298 -0.4386 vn -0.7300 0.3383 -0.5938 vn -0.9420 -0.0148 -0.3353 vn -0.6688 -0.4888 0.5602 vn -0.5975 -0.5112 0.6177 vn -0.8953 0.1312 0.4258 vn -0.8166 0.4955 0.2960 vn -0.2677 -0.3164 0.9101 vn -0.7872 -0.1005 0.6085 vn -0.5867 0.2767 -0.7611 vn -0.9704 -0.1225 -0.2083 vn -0.9164 0.0433 -0.3980 vn 0.4361 0.3869 -0.8124 vn 0.9205 0.1628 -0.3551 vn 0.4788 0.1374 -0.8671 vn 0.6247 -0.7792 0.0511 vn 0.9107 -0.2219 -0.3483 vn 0.8469 -0.3713 0.3806 vn -0.3692 0.5732 -0.7315 vn 0.3683 -0.6220 0.6910 vn 0.1607 -0.4786 0.8632 vn -0.1071 -0.4776 0.8720 vn -0.3695 -0.4912 0.7888 vn -0.1646 0.2879 -0.9434 vn 0.2064 0.2803 -0.9375 vn -0.4214 -0.5967 0.6829 vn -0.1172 -0.9849 -0.1278 vn -0.2465 0.3054 -0.9198 vn -0.9121 -0.3039 0.2752 vn -0.6973 0.2408 -0.6752 vn -0.8299 0.4076 -0.3809 vn 0.2175 0.0754 -0.9732 vn -0.9842 -0.1765 0.0164 vn -0.9449 0.1197 -0.3047 vn -0.8622 -0.4399 0.2514 vn 0.2603 0.2941 -0.9196 vn -0.9167 -0.1659 -0.3635 vn -0.2845 0.9262 0.2473 vn -0.4978 0.5982 -0.6279 vn -0.8261 -0.3711 0.4241 vn -0.8959 -0.2951 0.3319 vn -0.8274 -0.3732 0.4197 vn 0.6500 -0.0568 -0.7578 vn -0.2486 0.6568 -0.7119 vn -0.1444 0.9852 -0.0924 vn 0.7387 0.5618 -0.3724 vn 0.5228 0.4575 -0.7193 vn 0.6398 0.5682 0.5175 vn 0.2056 0.8961 0.3933 vn 0.1070 0.1440 0.9838 vn 0.1524 -0.7970 -0.5844 vn -0.5415 -0.3214 -0.7769 vn 0.6966 -0.4974 -0.5171 vn -0.6090 -0.7905 0.0644 vn -0.9691 -0.2046 -0.1378 vn -0.9616 -0.2279 0.1526 vn -0.9146 -0.0823 -0.3959 vn -0.9312 -0.0929 -0.3525 vn 0.8433 0.0521 0.5349 vn 0.0487 -0.2279 0.9725 vn -0.9941 -0.0331 0.1037 vn -0.4375 0.5596 0.7038 vn -0.9260 0.3630 -0.1035 vn -0.1742 0.0291 -0.9843 vn 0.2883 -0.2972 0.9102 vn 0.3964 -0.5699 0.7198 vn 0.7805 -0.1627 0.6036 vn -0.6967 -0.1007 -0.7103 vn -0.2257 0.2066 -0.9520 vn -0.2398 0.0802 -0.9675 vn -0.2141 0.5048 -0.8363 vn -0.7617 -0.0690 -0.6442 vn -0.3723 0.2459 -0.8950 vn -0.2523 -0.5749 0.7784 vn -0.3332 -0.3864 0.8601 vn -0.7737 -0.0352 0.6326 vn -0.8525 -0.4184 0.3134 vn 0.7726 -0.0563 -0.6323 vn 0.2570 0.0722 -0.9637 vn 0.4625 0.1429 -0.8751 vn -0.3975 -0.0856 0.9136 vn -0.6039 -0.2559 0.7548 vn -0.8657 -0.3787 0.3272 vn -0.0328 0.1451 -0.9889 vn 0.4514 0.4682 -0.7596 vn 0.4180 0.5053 -0.7549 vn 0.9243 0.3255 -0.1992 vn 0.1475 -0.9101 0.3873 vn 0.9745 0.0408 -0.2206 vn 0.4560 0.0092 -0.8900 vn 0.9034 0.1922 -0.3833 vn 0.7899 -0.4716 0.3921 vn 0.9689 -0.0453 0.2433 vn 0.4440 0.3476 -0.8259 vn 0.9497 0.2623 -0.1709 vn 0.9503 -0.2030 -0.2359 vn 0.5842 -0.5828 0.5648 vn -0.2629 0.3978 0.8790 vn -0.1787 0.5507 -0.8154 vn -0.5817 0.6155 -0.5318 vn -0.0476 0.9551 -0.2923 vn -0.4601 -0.3275 0.8253 vn -0.5079 0.2209 0.8326 vn -0.9007 -0.0601 0.4303 vn -0.6765 -0.4598 0.5753 vn -0.9868 -0.1597 0.0257 vn -0.3054 0.7479 0.5894 vn -0.9000 0.3710 0.2287 vn 0.1298 0.1728 0.9764 vn 0.5263 0.0939 -0.8451 vn 0.5309 -0.5912 -0.6072 vn -0.4435 -0.3317 -0.8326 vn 0.8581 0.2224 -0.4628 vn 0.9452 -0.0264 -0.3254 vn 0.7309 0.2536 -0.6336 vn 0.6976 -0.4629 0.5470 vn 0.8994 0.1237 0.4192 vn 0.6824 -0.3984 0.6129 vn 0.8502 0.4495 0.2739 vn 0.2304 -0.3318 0.9148 vn 0.7711 -0.2142 0.5996 vn 0.5909 0.1961 -0.7826 vn 0.9054 0.0572 -0.4207 vn 0.9678 -0.1172 -0.2228 vn -0.4089 0.4143 -0.8131 vn -0.8987 0.1198 -0.4218 vn -0.4599 0.1616 -0.8731 vn -0.6054 -0.7943 0.0510 vn -0.8067 -0.4892 0.3316 vn -0.9534 -0.1262 -0.2740 vn 0.3781 0.5997 -0.7053 vn -0.3659 -0.6238 0.6907 vn 0.1195 -0.4876 0.8648 vn -0.1640 -0.4823 0.8605 vn 0.3637 -0.5322 0.7645 vn 0.4466 -0.6571 0.6073 vn 0.1114 -0.9792 -0.1697 vn 0.8985 -0.3645 0.2448 vn 0.8382 0.3905 -0.3806 vn 0.7618 0.2282 -0.6063 vn -0.2438 0.0803 -0.9665 vn 0.9532 0.0329 -0.3005 vn 0.9955 -0.0942 0.0076 vn 0.8710 -0.4695 0.1446 vn 0.1114 0.2973 -0.9483 vn -0.3042 0.2836 -0.9094 vn 0.2836 0.3387 -0.8971 vn 0.8865 -0.1611 -0.4337 vn 0.2922 0.9343 0.2042 vn 0.6012 0.5815 -0.5481 vn -0.2109 0.2294 -0.9502 vn 0.8747 -0.2787 0.3965 vn 0.9340 -0.2321 0.2717 vn 0.7384 -0.4673 0.4862 vn -0.6363 0.0787 -0.7674 vn 0.2712 0.6617 -0.6990 vn 0.1533 0.5484 -0.8220 vn 0.0287 0.9640 -0.2642 vn 0.4653 0.6685 -0.5802 vn 0.4121 -0.3249 0.8513 vn 0.4947 0.2350 0.8367 vn 0.6934 -0.4555 0.5584 vn 0.9744 -0.2224 0.0340 vn 0.3623 0.7574 0.5432 vn 0.9077 0.3430 0.2416 vn -0.2808 0.0542 0.9582 vn -0.1973 0.5549 0.8082 vn -0.7378 -0.2551 0.6250 vn -0.8157 0.5747 0.0662 vn -0.5810 0.0272 -0.8134 vn 0.4129 -0.2376 -0.8793 vn -0.4912 -0.6314 -0.6000 vn -0.9673 -0.1184 0.2242 vn -0.8324 -0.4331 0.3457 vn -0.5338 -0.4968 0.6843 vn -0.6001 -0.4656 0.6505 vn -0.9312 -0.2287 0.2838 vn -0.8689 0.2298 -0.4384 vn -0.7349 0.3399 -0.5869 vn -0.9429 -0.0181 -0.3327 vn -0.2586 -0.3336 0.9066 vn -0.5637 0.2957 -0.7713 vn -0.9680 -0.1198 -0.2203 vn -0.9017 0.0583 -0.4284 vn 0.4368 0.3865 -0.8123 vn 0.9205 0.1627 -0.3552 vn 0.4770 0.1368 -0.8682 vn 0.6243 -0.7795 0.0502 vn 0.9107 -0.2218 -0.3484 vn 0.8409 -0.3745 0.3908 vn -0.4980 0.8666 0.0302 vn -0.2743 0.6009 -0.7508 vn -0.3691 0.5731 -0.7317 vn 0.3235 -0.6370 0.6997 vn 0.1645 -0.4780 0.8628 vn -0.0798 -0.4633 0.8826 vn -0.4411 -0.5996 0.6678 vn -0.1173 -0.9849 -0.1272 vn -0.1367 0.2300 -0.9635 vn -0.2465 0.3053 -0.9198 vn -0.8158 0.4251 -0.3922 vn 0.2182 0.0732 -0.9732 vn -0.9841 -0.1771 0.0168 vn -0.9453 0.1184 -0.3040 vn -0.8625 -0.4392 0.2514 vn 0.2602 0.2943 -0.9196 vn -0.9167 -0.1658 -0.3636 vn 0.2357 0.2734 -0.9326 vn -0.9945 -0.1013 -0.0265 vn -0.8273 -0.3733 0.4197 vn 0.6558 -0.0608 -0.7524 vn -0.2542 0.6566 -0.7101 vn -0.7229 -0.1198 0.6805 vn -0.5546 -0.0888 0.8274 vn -0.6933 -0.1989 0.6926 vn -0.4708 -0.2360 0.8501 vn -0.1859 -0.2109 0.9597 vn -0.3626 -0.4957 0.7892 vn -0.0985 -0.4821 0.8706 vn 0.0373 0.0163 0.9992 vn 0.1745 -0.2020 0.9637 vn 0.0048 -0.4439 0.8960 vn -0.7590 -0.2795 0.5881 vn -0.7024 -0.1458 0.6966 vn -0.5379 -0.0861 0.8386 vn -0.3444 -0.0245 0.9385 vn -0.1312 -0.0445 0.9904 vn -0.1254 -0.0493 0.9909 vn -0.7625 -0.0278 0.6464 vn -0.8518 0.0952 0.5152 vn -0.8047 0.3649 0.4683 vn -0.8420 0.2108 0.4966 vn -0.8182 0.0268 0.5744 vn -0.8907 -0.1331 0.4346 vn -0.6929 -0.0108 0.7210 vn -0.8799 -0.2726 0.3892 vn -0.8528 -0.2393 0.4641 vn -0.7986 -0.2221 0.5594 vn -0.5381 -0.0772 0.8393 vn -0.8091 -0.1373 0.5714 vn -0.5913 -0.1952 0.7825 vn -0.8382 -0.1114 0.5338 vn -0.8298 0.3339 0.4472 vn -0.6609 -0.2456 0.7091 vn -0.7865 -0.1860 0.5889 vn -0.9440 -0.0850 0.3188 vn -0.8292 -0.3474 0.4380 vn -0.9305 0.0430 0.3638 vn -0.9116 -0.1429 0.3854 vn -0.9172 -0.1522 0.3682 vn -0.9324 -0.0405 0.3591 vn -0.9803 0.1274 0.1511 vn -0.9598 0.2807 0.0068 vn -0.3379 0.6934 -0.6365 vn -0.3395 -0.2355 0.9106 vn -0.6252 -0.2409 0.7423 vn -0.1563 -0.3304 0.9308 vn -0.8506 -0.3237 0.4144 vn -0.8027 -0.3154 0.5061 vn -0.7871 -0.2906 0.5441 vn -0.9539 -0.2061 0.2183 vn -0.8746 -0.4463 0.1894 vn -0.9341 -0.2158 0.2845 vn -0.9164 -0.3270 0.2307 vn -0.9230 -0.3338 0.1915 vn -0.9620 -0.0545 0.2675 vn -0.9624 -0.2477 0.1114 vn -0.9230 -0.0628 0.3795 vn -0.9439 -0.3169 0.0925 vn -0.8996 -0.3157 -0.3017 vn -0.9808 -0.0490 0.1890 vn -0.9861 -0.1553 0.0597 vn -0.9374 -0.2540 -0.2380 vn -0.9510 -0.0293 0.3079 vn -0.9157 -0.0292 0.4007 vn -0.9326 -0.2065 0.2959 vn -0.9439 -0.2904 -0.1573 vn -0.6928 -0.2616 -0.6720 vn -0.7985 -0.3061 -0.5184 vn -0.7932 -0.4457 -0.4149 vn -0.7574 0.4278 0.4932 vn -0.3947 0.8128 0.4285 vn -0.5300 0.4214 0.7358 vn -0.8925 0.2390 0.3825 vn -0.7461 0.3171 0.5855 vn -0.7592 -0.2834 0.5859 vn -0.5559 -0.5225 0.6465 vn -0.4641 -0.1850 0.8663 vn -0.3316 -0.4510 0.8287 vn -0.0844 -0.4478 0.8901 vn -0.1881 0.0863 0.9783 vn 0.0489 0.3129 0.9485 vn 0.0726 -0.3033 0.9501 vn 0.0348 0.7363 0.6757 vn 0.1525 0.7136 0.6837 vn -0.3063 0.7079 0.6364 vn -0.4576 0.6213 0.6361 vn -0.5644 0.3032 0.7678 vn -0.0495 0.8172 0.5742 vn -0.4636 0.6456 0.6069 vn -0.6369 0.4252 0.6431 vn -0.4440 0.7027 0.5560 vn -0.8497 0.1028 0.5171 vn -0.5878 0.6946 0.4148 vn -0.8836 0.2770 0.3775 vn -0.7245 0.6078 0.3249 vn -0.4388 0.8631 0.2502 vn -0.4439 0.8008 0.4021 vn -0.5761 0.7530 0.3180 vn -0.0546 0.9311 0.3606 vn -0.0107 0.6971 0.7169 vn 0.2951 0.8649 0.4060 vn -0.2393 0.5313 0.8127 vn 0.2541 0.7657 0.5909 vn 0.4611 0.8013 0.3812 vn 0.5819 0.6251 0.5203 vn 0.0944 0.4447 0.8907 vn -0.4944 -0.0141 0.8691 vn 0.7005 0.4181 0.5783 vn 0.2505 0.2112 0.9448 vn 0.6798 0.7300 0.0700 vn 0.8322 0.5168 0.2009 vn 0.6995 0.5245 0.4853 vn 0.6292 0.0618 0.7747 vn 0.2603 -0.0810 0.9621 vn -0.7796 -0.6254 0.0332 vn -0.7240 -0.6889 -0.0365 vn -0.7172 -0.6907 -0.0926 vn -0.7274 -0.6809 -0.0852 vn -0.5303 -0.8365 -0.1380 vn -0.7490 -0.6172 0.2409 vn -0.6928 -0.7194 -0.0499 vn -0.6764 -0.7297 0.1003 vn -0.5291 -0.7506 0.3958 vn -0.1797 -0.9209 0.3460 vn -0.4024 -0.5477 0.7335 vn -0.0128 -0.9107 0.4128 vn 0.0515 -0.6313 0.7738 vn -0.1097 -0.6334 0.7660 vn 0.0592 -0.2773 0.9590 vn 0.1820 0.9573 -0.2245 vn 0.6274 0.7650 -0.1454 vn 0.7966 0.3327 -0.5048 vn 0.3215 0.6063 -0.7273 vn 0.9467 0.2077 -0.2461 vn 0.9211 0.2783 -0.2724 vn 0.8934 0.2337 -0.3836 vn 0.8848 0.4083 -0.2245 vn 0.8842 0.3908 -0.2558 vn 0.8727 0.4588 -0.1669 vn 0.7801 0.4379 -0.4468 vn 0.8665 0.3600 -0.3457 vn 0.7576 0.5738 -0.3111 vn 0.7782 0.3941 -0.4890 vn 0.8797 0.3631 -0.3072 vn 0.8760 0.0829 -0.4751 vn 0.6971 0.6777 -0.2341 vn 0.1787 0.5230 -0.8334 vn 0.4849 0.5836 -0.6513 vn 0.1795 0.8053 -0.5650 vn -0.0610 0.5473 -0.8347 vn 0.7961 0.1833 -0.5768 vn 0.9025 0.2654 -0.3391 vn 0.8392 0.3122 -0.4452 vn 0.6229 0.4534 -0.6375 vn 0.4072 0.3759 -0.8324 vn 0.0783 0.3249 -0.9425 vn 0.1582 0.0017 -0.9874 vn 0.2298 -0.2877 -0.9297 vn 0.4834 -0.1081 -0.8687 vn 0.5680 0.1927 -0.8002 vn 0.0637 -0.3034 -0.9507 vn -0.0362 -0.0101 -0.9993 vn -0.0658 -0.3414 -0.9376 vn 0.0047 -0.5396 -0.8419 vn -0.0056 -0.7921 -0.6104 vn 0.0074 -0.8220 -0.5695 vn 0.3947 -0.4565 -0.7974 vn 0.1763 -0.5110 -0.8413 vn 0.1666 -0.7967 -0.5809 vn 0.2006 -0.8133 -0.5462 vn 0.5701 -0.4430 -0.6919 vn 0.7539 -0.1779 -0.6325 vn 0.7932 0.0214 -0.6086 vn 0.9049 0.0517 -0.4224 vn 0.1098 -0.8569 -0.5036 vn 0.5472 -0.6107 -0.5725 vn 0.7893 -0.2601 -0.5563 vn 0.8919 -0.0539 -0.4491 vn 0.8721 -0.0838 -0.4820 vn 0.9534 0.1764 -0.2449 vn 0.3933 -0.7375 -0.5490 vn 0.7738 -0.2740 -0.5711 vn 0.7870 -0.1981 -0.5843 vn 0.9394 0.1230 -0.3201 vn 0.7610 -0.3145 -0.5674 vn 0.7919 -0.2971 -0.5335 vn 0.9052 0.0547 -0.4215 vn -0.0346 -0.8702 -0.4915 vn 0.5377 -0.4532 -0.7109 vn 0.7494 -0.1461 -0.6458 vn 0.8953 -0.1121 -0.4311 vn 0.6854 -0.2161 -0.6953 vn 0.5761 -0.4676 -0.6704 vn -0.0269 -0.8775 -0.4788 vn 0.5649 -0.6356 -0.5263 vn 0.8365 -0.2881 -0.4661 vn 0.8555 -0.1489 -0.4960 vn 0.8587 -0.2639 -0.4393 vn 0.7896 -0.3621 -0.4954 vn -0.0280 -0.9343 -0.3553 vn 0.3338 -0.7766 -0.5342 vn 0.4322 -0.3293 -0.8395 vn -0.1100 -0.2708 -0.9563 vn 0.4993 -0.0684 -0.8637 vn -0.2545 -0.5999 -0.7585 vn 0.3141 -0.5386 -0.7818 vn -0.2394 -0.8223 -0.5162 vn 0.6994 -0.1710 -0.6940 vn 0.7498 0.1892 -0.6340 vn 0.6965 -0.3359 -0.6341 vn 0.8284 -0.2351 -0.5084 vn 0.8487 -0.0507 -0.5264 vn 0.8777 -0.0832 -0.4719 vn 0.8273 0.2190 -0.5172 vn 0.8032 0.3157 -0.5052 vn 0.7944 0.3964 -0.4602 vn 0.7807 0.3813 -0.4952 vn 0.8212 0.3282 -0.4669 vn 0.8713 0.3874 -0.3011 vn 0.5295 0.1429 -0.8362 vn 0.0278 0.0384 -0.9989 vn 0.7246 0.2488 -0.6427 vn 0.0915 -0.0056 -0.9958 vn 0.8699 0.3401 -0.3573 vn 0.8656 0.3632 -0.3448 vn 0.9060 0.3041 -0.2944 vn 0.8734 0.2454 -0.4206 vn 0.6917 0.1155 -0.7128 vn 0.9660 0.1715 -0.1936 vn 0.1785 -0.0963 -0.9792 vn 0.5177 -0.1262 -0.8462 vn 0.7617 0.6406 -0.0971 vn 0.9237 0.2992 -0.2393 vn 0.8936 0.4378 -0.0987 vn 0.9374 0.3399 -0.0759 vn 0.9997 -0.0249 0.0068 vn 0.9207 -0.0300 -0.3892 vn 0.9405 0.2644 0.2135 vn 0.8084 0.5227 0.2708 vn 0.9043 0.1069 0.4133 vn 0.7800 -0.2546 -0.5717 vn 0.9374 -0.3379 -0.0843 vn 0.0673 -0.2678 -0.9611 vn -0.3146 -0.2225 -0.9228 vn -0.7218 -0.2915 -0.6278 vn -0.4929 -0.2162 -0.8428 vn -0.3944 -0.1907 -0.8989 vn -0.4845 -0.1962 -0.8525 vn -0.5833 -0.3339 -0.7404 vn -0.5313 -0.8073 -0.2567 vn -0.3049 -0.9037 -0.3006 vn -0.1997 -0.8944 -0.4002 vn -0.2399 -0.9240 -0.2979 vn -0.1213 -0.9802 -0.1567 vn 0.0184 -0.9866 -0.1620 vn 0.0205 -0.9753 -0.2200 vn 0.0229 -0.9809 -0.1933 vn 0.9027 0.4050 0.1450 vn 0.9574 0.1527 0.2453 vn 0.9139 0.3885 0.1174 vn 0.2327 0.9691 0.0822 vn 0.3787 0.8610 -0.3395 vn 0.5303 0.7477 -0.3997 vn 0.6375 0.5875 -0.4984 vn 0.3452 0.9377 0.0405 vn 0.3171 0.9471 -0.0494 vn 0.7263 0.6670 -0.1661 vn -0.2880 0.9489 -0.1286 vn 0.0989 0.9503 -0.2952 vn 0.2304 0.8877 -0.3987 vn 0.6523 0.7190 -0.2399 vn 0.2976 0.9522 0.0682 vn 0.7766 0.5720 -0.2641 vn 0.8984 0.4252 -0.1095 vn 0.8831 0.4604 -0.0902 vn 0.4519 0.8602 0.2363 vn 0.8174 0.5633 -0.1207 vn -0.6255 0.0140 -0.7801 vn -0.1619 -0.1075 -0.9809 vn -0.8043 -0.3077 -0.5083 vn -0.9173 -0.3979 0.0160 vn -0.9611 -0.1780 -0.2110 vn -0.8914 0.1459 -0.4291 vn -0.4990 0.4973 -0.7097 vn -0.2808 0.1799 -0.9427 vn 0.1065 0.3903 -0.9145 vn 0.4629 -0.1650 -0.8709 vn 0.9148 -0.0504 -0.4007 vn 0.7052 0.2654 -0.6575 vn -0.0259 0.8706 -0.4912 vn 0.4405 0.7908 -0.4250 vn -0.2085 0.7582 -0.6177 vn -0.7475 0.5488 -0.3743 vn -0.6780 0.7181 0.1571 vn -0.5324 0.3812 0.7558 vn -0.2869 0.7779 0.5591 vn -0.9245 0.2890 0.2486 vn 0.0130 0.3984 0.9171 vn 0.1570 0.8019 0.5765 vn 0.5449 0.3024 0.7821 vn 0.5623 0.6919 0.4528 vn 0.3444 0.4432 0.8276 vn 0.9423 0.1643 0.2917 vn 0.7835 0.6210 -0.0220 vn 0.9708 -0.2391 -0.0181 vn 0.0256 0.9997 0.0050 vn -0.3165 0.9481 -0.0292 vn 0.8945 -0.2341 0.3808 vn 0.7033 -0.0104 0.7108 vn -0.8356 -0.0995 0.5402 vn -0.1534 0.2099 0.9656 vn 0.2556 0.1585 0.9537 vn 0.4345 0.1754 0.8834 vn 0.3171 0.4021 0.8590 vn 0.6499 0.3701 0.6638 vn 0.6361 0.0140 0.7715 vn 0.2133 0.5727 0.7915 vn 0.6091 0.7083 -0.3570 vn 0.1289 0.8432 0.5218 vn 0.5226 0.8001 0.2945 vn -0.1771 0.8973 -0.4043 vn 0.9546 0.0305 0.2962 vn 0.9274 0.3728 0.0301 vn -0.7608 -0.0921 0.6424 vn -0.5751 0.3625 0.7334 vn -0.8456 0.5132 0.1470 vn -0.8770 0.0617 0.4765 vn -0.0061 0.9885 -0.1510 vn -0.3629 0.8844 0.2935 vn -0.5592 0.5772 -0.5951 vn -0.5671 0.5765 0.5883 vn 0.1935 0.9649 0.1775 vn 0.4058 0.6416 0.6509 vn 0.3869 -0.1330 0.9125 vn 0.9320 0.0112 0.3623 vn 0.5451 0.8317 0.1055 vn 0.5704 0.7987 0.1916 vn 0.4757 0.8737 0.1022 vn 0.5533 0.8273 0.0971 vn -0.1242 0.9486 0.2912 vn 0.5090 0.8410 0.1837 vn -0.0309 0.9848 0.1710 vn 0.4656 0.8849 -0.0084 vn 0.0161 0.9969 0.0768 vn 0.2573 0.9504 -0.1746 vn 0.2526 0.9484 0.1918 vn 0.1261 0.9837 0.1285 vn 0.0069 0.8926 0.4507 vn -0.0689 0.3179 0.9456 vn -0.0050 0.9362 0.3514 vn 0.6761 -0.1493 0.7215 vn 0.7254 -0.1195 0.6779 vn 0.6989 -0.1886 0.6899 vn 0.7694 -0.0334 0.6379 vn 0.3722 -0.4773 0.7960 vn 0.1022 -0.4693 0.8771 vn 0.4955 -0.2226 0.8396 vn 0.2495 -0.0354 0.9677 vn 0.4576 -0.0537 0.8875 vn 0.7474 -0.2959 0.5948 vn 0.5278 -0.0843 0.8452 vn 0.0273 0.0040 0.9996 vn 0.2365 -0.0605 0.9697 vn 0.8513 0.0906 0.5168 vn 0.8319 0.1892 0.5218 vn 0.7391 0.4990 0.4526 vn 0.8038 0.3631 0.4713 vn 0.8153 -0.0283 0.5783 vn 0.5936 0.2129 0.7761 vn 0.8918 -0.1290 0.4337 vn 0.6972 -0.0081 0.7168 vn 0.7999 -0.2088 0.5626 vn 0.8542 -0.2416 0.4603 vn 0.5375 -0.0704 0.8403 vn 0.8360 -0.1141 0.5367 vn 0.6065 -0.1785 0.7748 vn 0.8089 -0.1370 0.5717 vn 0.8196 0.3380 0.4627 vn 0.9316 -0.0486 0.3601 vn 0.2746 0.2005 0.9404 vn 0.6682 -0.2133 0.7128 vn 0.7833 -0.1920 0.5913 vn 0.9321 0.0407 0.3600 vn 0.9306 -0.1040 0.3509 vn 0.9098 -0.1429 0.3896 vn 0.8812 -0.2647 0.3917 vn 0.9127 -0.1628 0.3748 vn 0.9240 -0.0691 0.3760 vn 0.3875 0.6912 -0.6099 vn 0.6772 0.7352 0.0278 vn 0.3048 -0.3155 0.8986 vn 0.5984 -0.2531 0.7602 vn 0.7992 -0.3262 0.5049 vn 0.8522 -0.3178 0.4157 vn 0.7726 -0.3356 0.5390 vn 0.8247 -0.3478 0.4460 vn 0.9540 -0.2060 0.2180 vn 0.9332 -0.2159 0.2872 vn 0.9151 -0.3121 0.2554 vn 0.9651 -0.2423 0.0989 vn 0.9640 -0.0642 0.2581 vn 0.9509 -0.0256 0.3084 vn 0.9788 -0.0669 0.1937 vn 0.7828 -0.6217 0.0270 vn 0.9461 -0.3095 0.0952 vn 0.9287 -0.3184 0.1903 vn 0.8930 -0.3100 -0.3264 vn 0.9863 -0.1547 0.0575 vn 0.9097 -0.0694 0.4094 vn 0.9376 -0.1880 0.2926 vn 0.9422 -0.2943 -0.1602 vn 0.6654 -0.2456 -0.7050 vn 0.7949 -0.3098 -0.5217 vn 0.3845 0.6595 0.6459 vn 0.8494 0.1107 0.5161 vn 0.8828 0.2818 0.3760 vn 0.7794 0.3331 0.5307 vn 0.5520 -0.4986 0.6683 vn 0.3333 -0.4525 0.8271 vn 0.0848 -0.4298 0.8989 vn 0.1861 0.0828 0.9790 vn -0.0446 0.3191 0.9467 vn 0.0515 0.7298 0.6817 vn 0.1046 0.9081 0.4056 vn -0.1231 -0.2752 0.9535 vn -0.1359 0.6889 0.7120 vn 0.2190 0.7352 0.6415 vn 0.4444 0.6135 0.6528 vn 0.4885 -0.1887 0.8519 vn 0.6055 0.2562 0.7535 vn 0.2922 0.8840 0.3649 vn 0.4799 0.6298 0.6107 vn 0.1058 0.8155 0.5691 vn 0.6695 0.3988 0.6266 vn 0.7561 -0.2599 0.6006 vn 0.4692 0.7373 0.4861 vn 0.4164 0.6327 0.6529 vn 0.6642 0.6524 0.3650 vn 0.7247 0.5698 0.3875 vn 0.4420 0.8705 0.2165 vn 0.5663 0.7256 0.3909 vn 0.4218 0.8338 0.3562 vn 0.4401 0.8126 0.3822 vn 0.0429 0.9448 0.3249 vn -0.0285 0.7535 0.6569 vn -0.2501 0.7646 0.5940 vn -0.2978 0.8583 0.4179 vn 0.1693 0.5879 0.7910 vn -0.0818 0.4190 0.9043 vn -0.5796 0.6263 0.5214 vn 0.4913 -0.0187 0.8708 vn -0.2544 0.1957 0.9471 vn -0.6944 0.3867 0.6068 vn -0.6953 0.5634 0.4462 vn -0.8046 0.5511 0.2212 vn -0.6223 0.0836 0.7783 vn -0.2609 -0.0939 0.9608 vn 0.7217 -0.6915 -0.0306 vn 0.6991 -0.7083 -0.0980 vn 0.8716 -0.4422 0.2116 vn 0.6893 -0.7150 -0.1168 vn 0.5462 -0.8297 -0.1153 vn 0.7191 -0.6482 0.2504 vn 0.6588 -0.7282 0.1889 vn 0.6638 -0.7425 -0.0892 vn 0.3944 -0.8654 0.3092 vn 0.5434 -0.5219 0.6575 vn 0.1469 -0.9142 0.3778 vn 0.2391 -0.5987 0.7645 vn -0.2126 0.9657 -0.1493 vn -0.3533 0.5850 -0.7300 vn -0.8001 0.3379 -0.4956 vn -0.9376 0.2210 -0.2686 vn -0.6238 0.7633 -0.1681 vn -0.8836 0.2707 -0.3821 vn -0.9227 0.2775 -0.2675 vn -0.8825 0.4381 -0.1712 vn -0.8778 0.4219 -0.2267 vn -0.7828 0.4386 -0.4415 vn -0.7780 0.3940 -0.4893 vn -0.7533 0.5867 -0.2971 vn -0.8079 0.1939 -0.5564 vn -0.8837 0.3515 -0.3091 vn -0.9072 -0.0069 -0.4206 vn -0.9090 0.2621 -0.3241 vn -0.8984 0.4252 -0.1102 vn -0.9577 0.1716 -0.2309 vn -0.9103 0.0549 -0.4102 vn -0.3664 0.6178 -0.6958 vn -0.1760 0.8061 -0.5650 vn -0.6409 0.5929 -0.4875 vn -0.6306 0.4568 -0.6274 vn -0.7977 0.1908 -0.5721 vn -0.8241 0.3188 -0.4681 vn -0.2330 0.4852 -0.8428 vn -0.4206 0.4350 -0.7962 vn -0.5532 0.2037 -0.8077 vn -0.1878 0.2323 -0.9544 vn -0.5108 -0.1171 -0.8517 vn -0.0212 -0.5271 -0.8495 vn -0.2173 -0.2383 -0.9466 vn -0.1727 -0.5332 -0.8282 vn -0.0982 -0.8214 -0.5618 vn -0.3789 -0.3951 -0.8369 vn -0.1838 -0.7960 -0.5768 vn -0.5747 -0.4470 -0.6855 vn -0.7940 -0.0051 -0.6079 vn -0.0856 -0.8453 -0.5275 vn -0.5530 -0.6009 -0.5771 vn -0.7879 -0.2611 -0.5577 vn -0.7638 -0.1795 -0.6200 vn -0.8962 -0.1110 -0.4295 vn -0.8912 -0.0575 -0.4499 vn -0.8719 -0.0979 -0.4798 vn -0.9415 0.1252 -0.3128 vn -0.7736 -0.2777 -0.5696 vn -0.3740 -0.7132 -0.5929 vn -0.8116 -0.2965 -0.5034 vn -0.5351 -0.4506 -0.7146 vn -0.7549 -0.1402 -0.6407 vn -0.7082 -0.1829 -0.6819 vn -0.7982 -0.1881 -0.5722 vn -0.5602 -0.4583 -0.6901 vn 0.0044 -0.8622 -0.5065 vn -0.7743 -0.2936 -0.5605 vn -0.8328 -0.2940 -0.4692 vn -0.8191 -0.1295 -0.5588 vn -0.8496 -0.2214 -0.4788 vn -0.7883 -0.3521 -0.5046 vn 0.0917 -0.2083 -0.9738 vn -0.3944 -0.3415 -0.8531 vn -0.5029 -0.0625 -0.8621 vn 0.2598 -0.5819 -0.7706 vn -0.3170 -0.5608 -0.7649 vn 0.2245 -0.8261 -0.5169 vn -0.3303 -0.8046 -0.4935 vn -0.7044 -0.3216 -0.6328 vn -0.5585 -0.6427 -0.5244 vn -0.7581 0.1679 -0.6302 vn -0.6918 -0.1703 -0.7017 vn -0.8284 -0.2350 -0.5085 vn -0.8402 -0.0497 -0.5400 vn -0.8023 0.3290 -0.4981 vn -0.8639 -0.0865 -0.4961 vn -0.8362 0.2140 -0.5050 vn -0.7944 0.4029 -0.4546 vn -0.8171 0.3496 -0.4584 vn -0.8719 0.3870 -0.3002 vn -0.7812 0.3860 -0.4907 vn -0.5372 0.1578 -0.8286 vn -0.6852 0.1228 -0.7179 vn -0.7387 0.2249 -0.6354 vn -0.8893 0.2290 -0.3960 vn -0.0639 0.0648 -0.9959 vn -0.1059 0.0339 -0.9938 vn -0.8804 0.3381 -0.3326 vn -0.8511 0.3835 -0.3585 vn -0.9669 0.1709 -0.1896 vn -0.9317 -0.0281 -0.3621 vn -0.8409 0.3810 -0.3844 vn -0.8859 0.3911 -0.2494 vn -0.8928 0.4400 -0.0963 vn -0.7598 0.6424 -0.1005 vn -0.9174 0.3108 -0.2485 vn -0.9072 0.3048 -0.2900 vn -0.9394 0.3347 -0.0746 vn -0.9999 0.0004 -0.0165 vn -0.8062 0.5212 0.2800 vn -0.9404 0.2812 0.1914 vn -0.7790 -0.2426 -0.5781 vn -0.9305 -0.3566 -0.0840 vn -0.9714 -0.2367 -0.0165 vn -0.9112 -0.0539 -0.4083 vn -0.5216 -0.1174 -0.8451 vn -0.0708 -0.2705 -0.9601 vn 0.1671 -0.1170 -0.9790 vn -0.4807 -0.1791 -0.8584 vn 0.4910 -0.2304 -0.8401 vn 0.3767 -0.2073 -0.9028 vn -0.1873 -0.0804 -0.9790 vn 0.2852 -0.1908 -0.9393 vn 0.5692 -0.3565 -0.7409 vn 0.8168 -0.4485 -0.3629 vn 0.5525 -0.8055 -0.2145 vn 0.0559 -0.9435 -0.3265 vn 0.0306 -0.8988 -0.4373 vn 0.3403 -0.8918 -0.2980 vn 0.2338 -0.9014 -0.3645 vn 0.1971 -0.9231 -0.3303 vn 0.1299 -0.9720 -0.1956 vn -0.0198 -0.9852 -0.1701 vn -0.9193 0.3815 0.0968 vn -0.8858 0.4488 0.1183 vn -0.9673 0.1151 0.2259 vn -0.6938 0.7146 0.0891 vn -0.3920 0.8468 -0.3595 vn -0.2803 0.9563 0.0832 vn -0.5316 0.7491 -0.3954 vn -0.4510 0.8910 -0.0517 vn -0.3076 0.9452 0.1099 vn -0.7263 0.6638 -0.1782 vn -0.2675 0.9611 0.0683 vn 0.1761 0.9836 0.0381 vn -0.6408 0.7434 -0.1917 vn -0.2272 0.9568 -0.1816 vn -0.7866 0.5428 -0.2944 vn -0.4739 0.8559 0.2072 vn -0.8479 0.5177 -0.1139 vn -0.4949 0.8598 0.1261 vn -0.4684 0.8520 0.2339 vn -0.8234 0.5504 -0.1380 vn -0.4294 0.9020 0.0440 vn 0.6134 0.0189 -0.7895 vn 0.8176 -0.2807 -0.5028 vn 0.6946 -0.2799 -0.6627 vn 0.9629 -0.1684 -0.2108 vn 0.9414 -0.3373 0.0037 vn 0.2871 0.1814 -0.9406 vn -0.1567 0.3688 -0.9162 vn 0.4958 0.5024 -0.7083 vn 0.0496 0.8737 -0.4839 vn -0.4438 0.7784 -0.4440 vn -0.2740 0.9616 0.0166 vn 0.2075 0.7492 -0.6290 vn 0.7478 0.5483 -0.3745 vn 0.6833 0.7097 0.1712 vn 0.5126 0.3849 0.7675 vn 0.9339 0.2584 0.2471 vn 0.8856 0.1197 -0.4488 vn 0.2814 0.7910 0.5433 vn -0.0222 0.4048 0.9141 vn -0.1572 0.8025 0.5756 vn -0.5498 0.2998 0.7797 vn -0.2574 0.1557 0.9537 vn -0.3330 0.4401 0.8339 vn -0.5061 0.6999 0.5040 vn -0.9371 0.1980 0.2876 vn -0.6908 -0.0330 0.7223 vn -0.7716 0.6353 0.0306 vn 0.0115 0.9999 0.0099 vn 0.3368 0.9395 -0.0621 vn -0.8719 -0.2621 0.4135 vn -0.8997 0.0986 0.4251 vn 0.8328 -0.1013 0.5442 vn -0.5888 0.0059 0.8083 vn -0.3171 0.4025 0.8587 vn -0.4362 0.1787 0.8819 vn -0.6651 0.3649 0.6515 vn -0.2036 0.7904 0.5777 vn 0.1987 0.2268 0.9535 vn -0.6417 0.7051 -0.3018 vn -0.0057 0.9964 -0.0848 vn -0.4493 0.8136 0.3690 vn 0.3038 0.8059 -0.5081 vn -0.9573 0.0428 0.2858 vn -0.9271 0.3652 0.0837 vn 0.7453 -0.0570 0.6643 vn 0.5553 0.3595 0.7499 vn -0.2684 0.6013 0.7526 vn 0.3667 0.8787 0.3058 vn 0.8837 0.0224 0.4675 vn 0.8444 0.5162 0.1435 vn 0.9202 0.3798 0.0952 vn 0.9879 0.0579 0.1436 vn 0.5025 0.7427 -0.4426 vn -0.1721 0.9712 0.1647 vn 0.5602 0.6068 0.5639 vn -0.4732 0.5989 0.6461 vn -0.4054 -0.1536 0.9011 vn -0.5597 0.8015 0.2107 vn -0.7066 0.6673 -0.2355 vn -0.5456 0.8331 0.0911 vn -0.4537 0.8079 0.3761 vn -0.0039 0.9620 0.2729 vn 0.0440 0.9937 0.1026 vn -0.0606 0.9890 0.1347 vn -0.4664 0.8835 -0.0448 vn 0.1782 0.9649 0.1927 vn -0.2644 0.9566 0.1226 vn 0.0088 0.8918 0.4523 vn -0.1213 0.9909 0.0588 vn 0.0035 -0.3723 0.9281 vn -0.2496 0.1114 0.9619 vn -0.7049 0.7015 0.1045 vn 0.0545 0.9953 0.0799 vn -0.2664 0.8587 0.4377 vn -0.3399 0.6701 0.6598 vn -0.1890 0.9722 0.1381 vn 0.2463 0.9670 0.0656 vn 0.9419 -0.2439 -0.2308 vn 0.5081 -0.1405 -0.8498 vn -0.9246 0.0019 0.3809 vn -0.7165 0.2986 -0.6304 vn -0.0024 0.7118 0.7024 vn 0.4350 0.4150 0.7991 vn 0.6466 0.5279 0.5507 vn 0.7436 0.2650 0.6139 vn 0.9078 0.2582 0.3305 vn 0.5674 -0.0985 0.8175 vn 0.5108 0.1681 0.8431 vn 0.6995 0.4472 0.5574 vn 0.6307 0.5947 0.4986 vn 0.8690 -0.3606 0.3389 vn 0.2840 -0.3997 0.8715 vn 0.2011 -0.3354 0.9204 vn 0.0303 -0.2696 0.9625 vn 0.4303 -0.4568 0.7786 vn 0.3782 -0.2155 0.9003 vn 0.3300 -0.6279 0.7049 vn 0.6181 -0.6938 0.3695 vn 0.5919 -0.4656 0.6580 vn 0.3071 0.6528 0.6925 vn 0.3104 0.8338 0.4565 vn 0.3859 0.6373 0.6670 vn 0.2013 0.0910 0.9753 vn 0.1655 0.0186 0.9860 vn 0.2478 0.4052 0.8800 vn 0.6013 -0.0571 0.7970 vn 0.5631 0.2163 0.7976 vn 0.3377 -0.1878 0.9223 vn 0.7360 -0.1233 0.6657 vn 0.8887 -0.0450 0.4563 vn 0.7543 0.1948 0.6269 vn 0.4529 -0.4523 0.7683 vn 0.2040 0.1890 0.9606 vn 0.0244 0.3359 0.9416 vn -0.0092 -0.0794 0.9968 vn 0.3642 -0.3840 0.8485 vn -0.0563 -0.2150 0.9750 vn 0.3168 -0.2410 0.9174 vn 0.8460 -0.1579 0.5092 vn 0.0537 -0.4932 0.8682 vn 0.6256 0.4235 0.6552 vn 0.3962 -0.0946 0.9133 vn 0.6319 -0.0209 0.7748 vn 0.5043 0.3034 0.8085 vn 0.5801 0.7892 0.2017 vn 0.3887 0.2319 0.8917 vn 0.2324 0.1522 0.9606 vn 0.3088 0.6235 0.7182 vn 0.2091 0.7440 0.6346 vn 0.1519 0.8979 0.4132 vn 0.4842 0.1899 0.8541 vn 0.4924 0.6411 0.5887 vn 0.5931 0.0157 0.8050 vn 0.6609 0.2714 0.6997 vn 0.7517 0.2960 0.5893 vn 0.8178 0.0322 0.5746 vn 0.5838 0.4484 0.6768 vn -0.1959 0.1695 0.9659 vn 0.4018 0.0552 0.9141 vn 0.5254 -0.0046 0.8508 vn -0.0175 -0.2334 0.9722 vn 0.1485 -0.3193 0.9360 vn 0.1100 -0.3948 0.9121 vn 0.2338 -0.1996 0.9516 vn 0.3949 -0.2827 0.8741 vn 0.6318 -0.0860 0.7704 vn 0.6302 -0.1321 0.7651 vn 0.4609 -0.1925 0.8663 vn -0.0688 -0.0579 0.9960 vn 0.0779 0.0004 0.9970 vn 0.4378 0.0520 0.8976 vn 0.4316 -0.1561 0.8885 vn 0.4122 -0.0374 0.9103 vn 0.4987 0.1172 0.8588 vn 0.6237 0.2206 0.7499 vn 0.7381 0.2778 0.6148 vn 0.8858 0.2274 0.4045 vn 0.9831 0.1589 0.0904 vn 0.9869 0.1025 -0.1246 vn 0.5187 -0.7653 0.3812 vn 0.3767 -0.8014 0.4646 vn 0.7832 0.6031 0.1514 vn 0.9304 -0.2908 0.2233 vn -0.2624 -0.8387 0.4772 vn -0.1563 -0.9807 -0.1177 vn 0.2046 -0.5175 0.8309 vn 0.0939 -0.6375 0.7647 vn -0.5725 -0.4888 0.6582 vn -0.4357 -0.3545 0.8273 vn -0.5134 -0.2805 0.8110 vn -0.5363 -0.1633 0.8281 vn 0.2737 0.7811 0.5612 vn -0.3076 0.4751 0.8244 vn -0.2071 0.8576 0.4709 vn 0.1116 0.9159 0.3857 vn -0.0601 0.9708 0.2323 vn -0.1487 0.9632 0.2237 vn 0.0755 0.9675 0.2412 vn 0.2286 0.9654 0.1255 vn 0.3530 0.9356 -0.0101 vn 0.4397 0.8855 0.1502 vn 0.1737 0.9812 0.0842 vn 0.0664 0.9912 0.1146 vn -0.2181 0.9431 0.2510 vn -0.5869 -0.1000 0.8035 vn -0.5755 0.1375 0.8061 vn 0.5273 -0.6148 0.5866 vn 0.6153 -0.7707 0.1659 vn 0.4579 -0.8889 0.0103 vn 0.3285 -0.6148 0.7170 vn -0.5714 -0.7391 0.3567 vn 0.6154 -0.7370 0.2796 vn 0.4612 -0.6871 0.5614 vn 0.5077 -0.8370 0.2040 vn 0.6545 -0.7553 -0.0327 vn 0.6362 -0.7715 -0.0028 vn 0.2348 -0.9677 -0.0915 vn 0.1825 -0.9810 -0.0658 vn -0.1563 -0.9839 -0.0872 vn -0.6699 -0.7417 -0.0327 vn -0.4218 -0.9052 -0.0524 vn -0.8028 -0.5963 -0.0043 vn -0.8248 -0.4961 0.2712 vn -0.8974 -0.1986 0.3941 vn -0.6890 -0.1614 0.7065 vn 0.6935 0.6716 0.2607 vn 0.8915 0.3434 0.2954 vn 0.9030 0.3454 0.2557 vn -0.0278 0.9836 0.1781 vn 0.1140 0.9658 0.2330 vn 0.6837 -0.7285 0.0420 vn 0.6176 -0.7808 0.0944 vn 0.5554 -0.8228 0.1207 vn 0.7192 -0.6879 0.0979 vn 0.4451 -0.8928 0.0687 vn 0.5219 -0.8530 -0.0018 vn 0.1567 -0.9848 0.0750 vn 0.0474 -0.9913 0.1231 vn -0.2809 -0.9568 0.0755 vn -0.7444 -0.5381 0.3954 vn -0.8329 -0.3751 0.4070 vn -0.7369 -0.6445 0.2040 vn -0.6717 -0.0524 0.7389 vn -0.1937 0.9443 0.2661 vn -0.0216 0.9906 0.1349 vn 0.9133 -0.2673 0.3072 vn 0.8484 0.3480 0.3989 vn 0.8681 -0.4170 0.2693 vn 0.6484 -0.7013 0.2962 vn 0.6396 0.6430 0.4214 vn 0.6041 -0.7793 0.1664 vn 0.7106 -0.6788 0.1851 vn 0.6390 -0.7593 0.1232 vn 0.2196 -0.9744 0.0486 vn 0.4004 -0.9102 0.1058 vn -0.1473 -0.9380 0.3138 vn -0.5402 -0.8378 0.0793 vn -0.5326 -0.5164 0.6706 vn 0.3237 0.8913 0.3174 vn 0.6302 0.6181 0.4698 vn 0.6810 0.6264 0.3792 vn -0.1536 0.9448 0.2893 vn -0.3096 0.9045 0.2932 vn -0.5354 0.6731 0.5102 vn -0.6789 0.0711 0.7307 vn -0.7355 0.1292 0.6651 vn -0.7260 -0.0380 0.6867 vn -0.7086 0.0326 0.7049 vn -0.0251 -0.6803 0.7325 vn 0.6732 -0.7082 0.2130 vn 0.8348 -0.5414 0.1000 vn -0.8137 0.0684 0.5772 vn 0.6063 -0.7401 0.2909 vn 0.8352 -0.5106 0.2043 vn 0.7738 -0.3844 0.5035 vn 0.7512 0.3706 0.5462 vn 0.6005 0.5022 0.6223 vn 0.5502 0.6844 0.4784 vn 0.4085 0.7858 0.4643 vn 0.3119 0.8929 0.3249 vn 0.7317 0.1915 0.6541 vn -0.1909 0.8355 0.5152 vn -0.7057 0.1604 0.6901 vn -0.7127 0.2345 0.6611 vn -0.7497 -0.0117 0.6616 vn -0.0056 -0.5826 0.8128 vn -0.6703 -0.2641 0.6935 vn 0.0010 -0.3120 0.9501 vn 0.6629 -0.6067 0.4387 vn 0.8358 -0.3446 0.4274 vn 0.6829 -0.5501 0.4806 vn 0.7544 0.0413 0.6551 vn 0.2732 0.8615 0.4279 vn -0.2257 0.4608 0.8583 vn 0.2340 0.5412 0.8077 vn -0.5254 0.0300 0.8503 vn -0.7008 0.1043 0.7057 vn 0.5325 -0.3136 0.7862 vn 0.6861 -0.2708 0.6753 vn 0.2684 0.2935 0.9175 vn -0.3489 0.6480 0.6770 vn -0.1128 0.1498 0.9823 vn -0.0547 0.5845 0.8095 vn -0.4327 0.4717 0.7683 vn -0.7413 0.1911 0.6434 vn 0.2897 -0.1096 0.9508 vn 0.5766 -0.0295 0.8165 vn 0.6083 -0.1779 0.7735 vn 0.3732 0.1298 0.9186 vn -0.5082 0.5939 0.6237 vn 0.4258 0.1689 0.8889 vn 0.0256 0.6034 0.7970 vn 0.4747 0.1589 0.8657 vn 0.5619 0.1177 0.8188 vn 0.5546 0.3497 0.7551 vn 0.0959 0.3509 0.9315 vn 0.4867 0.7280 0.4829 vn 0.6343 0.0002 0.7731 vn 0.3407 0.1273 0.9315 vn 0.5226 0.1228 0.8437 vn -0.0174 0.0818 0.9965 vn -0.0799 -0.4297 0.8994 vn 0.1975 -0.4836 0.8527 vn 0.3848 0.1944 0.9023 vn 0.2862 -0.0375 0.9574 vn 0.6352 -0.1087 0.7647 vn 0.4362 0.2109 0.8748 vn 0.0818 -0.7491 0.6573 vn 0.2566 -0.2277 0.9393 vn 0.3235 -0.7333 0.5981 vn 0.3404 -0.2697 0.9008 vn 0.5303 0.2336 0.8150 vn 0.4751 -0.4938 0.7283 vn 0.7394 -0.1717 0.6511 vn 0.4198 -0.7442 0.5196 vn 0.5377 -0.7418 0.4008 vn 0.8173 0.0953 0.5682 vn 0.6389 -0.5909 0.4926 vn 0.9195 -0.0040 0.3930 vn 0.5574 0.1325 0.8196 vn 0.5324 0.2405 0.8116 vn 0.8499 0.2656 0.4552 vn 0.3582 0.0222 0.9334 vn 0.1839 0.0354 0.9823 vn 0.1275 0.1801 0.9754 vn 0.3066 0.1636 0.9377 vn 0.0009 0.1436 0.9896 vn -0.0461 0.0191 0.9988 vn -0.0043 -0.1034 0.9946 vn 0.4957 0.1419 0.8568 vn 0.9912 0.1323 0.0054 vn 0.9513 0.1838 0.2476 vn 0.9617 0.1488 -0.2300 vn 0.9545 -0.0473 -0.2945 vn 0.9574 -0.2879 -0.0205 vn 0.9682 -0.0191 0.2494 vn 0.7564 0.1250 -0.6420 vn 0.8468 0.0713 -0.5272 vn 0.9092 -0.0850 -0.4075 vn 0.1193 0.2376 0.9640 vn 0.9573 -0.2849 -0.0495 vn 0.9103 -0.3320 0.2474 vn 0.9325 -0.3167 0.1736 vn 0.8872 -0.3052 0.3461 vn 0.9150 -0.2606 0.3081 vn 0.9231 -0.1942 0.3319 vn 0.8426 -0.3347 0.4219 vn 0.9028 -0.2775 0.3287 vn 0.9466 -0.1883 0.2618 vn 0.9699 -0.1632 0.1806 vn 0.9582 -0.2252 0.1765 vn 0.9172 -0.2898 0.2734 vn 0.9932 -0.1143 0.0218 vn 0.9553 -0.2037 0.2141 vn 0.9841 -0.1740 0.0357 vn 0.9863 -0.0958 -0.1345 vn 0.9685 -0.1661 -0.1853 vn 0.9160 -0.1521 -0.3711 vn 0.9506 -0.0763 -0.3010 vn 0.9099 -0.2550 -0.3272 vn 0.0024 0.2341 0.9722 vn 0.2592 0.2910 0.9210 vn 0.4568 0.2522 0.8531 vn 0.5900 0.1614 0.7911 vn 0.6562 0.1522 0.7391 vn 0.7061 0.1669 0.6882 vn 0.7672 0.1543 0.6225 vn 0.7973 0.1666 0.5802 vn 0.8924 0.0804 0.4441 vn 0.8794 0.1118 0.4628 vn 0.9194 0.0581 0.3891 vn 0.9260 -0.1433 0.3494 vn 0.9132 -0.2045 0.3524 vn 0.9414 -0.0497 0.3336 vn 0.9598 -0.1273 0.2500 vn 0.9840 0.0122 0.1775 vn 0.9658 -0.0671 0.2503 vn 0.9891 -0.0639 0.1326 vn 0.9798 -0.0237 -0.1984 vn 0.9546 0.0417 -0.2949 vn 0.8986 -0.0616 -0.4344 vn 0.8831 0.0161 -0.4689 vn 0.7095 -0.2221 -0.6688 vn 0.7541 -0.3470 -0.5576 vn 0.6519 -0.4332 -0.6224 vn 0.6791 -0.2616 -0.6859 vn 0.6159 -0.1239 -0.7780 vn 0.6601 -0.0901 -0.7457 vn 0.6284 -0.3530 -0.6932 vn 0.4973 -0.2204 -0.8391 vn 0.3378 -0.1286 -0.9324 vn 0.0061 -0.2829 -0.9591 vn -0.0066 -0.0920 -0.9957 vn 0.8617 -0.1612 -0.4812 vn 0.8457 -0.0522 -0.5311 vn 0.7832 -0.1329 -0.6074 vn 0.6897 0.0472 -0.7226 vn 0.7631 -0.0337 -0.6454 vn 0.5053 0.0588 -0.8610 vn 0.6037 0.0362 -0.7964 vn 0.5277 0.0034 -0.8495 vn 0.3968 0.1194 -0.9101 vn 0.4290 -0.0205 -0.9031 vn 0.3218 0.1098 -0.9404 vn 0.2137 0.0469 -0.9758 vn -0.0111 0.0651 -0.9978 vn 0.0003 0.2013 -0.9795 vn -0.1457 0.0512 0.9880 vn 0.2197 0.9344 0.2804 vn -0.0760 0.8955 0.4386 vn 0.1758 0.6398 0.7481 vn 0.5033 -0.3693 0.7812 vn 0.4375 -0.5338 0.7237 vn 0.3791 -0.4071 0.8310 vn 0.3076 -0.0492 0.9503 vn 0.2685 -0.3954 0.8784 vn 0.7657 0.0552 0.6408 vn 0.7423 -0.1321 0.6569 vn 0.3752 -0.2057 0.9038 vn 0.6478 -0.0338 0.7611 vn 0.4185 -0.1849 0.8892 vn 0.7027 -0.1336 0.6989 vn 0.7729 -0.1617 0.6135 vn 0.5977 -0.2507 0.7615 vn 0.3951 -0.4529 0.7992 vn 0.1452 -0.3660 0.9192 vn 0.1905 -0.3192 0.9283 vn 0.3758 -0.2744 0.8851 vn 0.7864 -0.1612 0.5963 vn 0.7029 0.0682 0.7080 vn 0.8054 -0.1008 0.5840 vn 0.4283 -0.3060 0.8502 vn 0.2379 -0.3887 0.8901 vn 0.1045 -0.4411 0.8913 vn 0.0975 -0.5285 0.8433 vn 0.3409 -0.4014 0.8501 vn 0.6446 -0.2884 0.7081 vn 0.9112 0.0615 0.4072 vn 0.8831 0.0675 0.4643 vn 0.3299 -0.4247 0.8431 vn 0.2777 -0.5571 0.7827 vn 0.1018 -0.5686 0.8163 vn 0.8043 -0.3416 0.4862 vn 0.8694 -0.0787 0.4878 vn 0.9473 -0.0901 0.3073 vn 0.8857 0.3029 0.3520 vn 0.9943 -0.0083 0.1064 vn 0.7047 0.6934 0.1502 vn 0.6553 0.7369 -0.1661 vn 0.9169 -0.3937 0.0654 vn 0.8808 -0.2472 0.4038 vn 0.7337 -0.6692 0.1173 vn 0.7295 -0.3093 0.6100 vn 0.6161 -0.6982 0.3645 vn 0.5522 -0.5657 0.6124 vn 0.2529 -0.8940 0.3699 vn 0.1501 -0.7860 0.5998 vn 0.1670 -0.9680 0.1874 vn 0.2772 -0.6357 0.7205 vn 0.3280 -0.8900 0.3167 vn 0.5071 -0.2964 0.8093 vn 0.5530 -0.4972 0.6685 vn 0.6698 -0.1731 0.7221 vn 0.9103 0.0874 0.4045 vn 0.7539 0.1971 0.6268 vn 0.4141 0.2695 0.8694 vn 0.8155 0.1518 0.5585 vn 0.9137 0.0366 0.4047 vn 0.7500 -0.0967 0.6543 vn 0.6896 -0.2053 0.6945 vn 0.8720 -0.2047 0.4445 vn 0.6593 -0.7141 0.2354 vn 0.1941 -0.9735 -0.1210 vn 0.6296 -0.7361 -0.2485 vn 0.2781 -0.9594 0.0464 vn 0.5438 -0.7887 0.2867 vn 0.1915 -0.9811 0.0263 vn 0.6750 -0.7195 0.1633 vn 0.1480 -0.9887 0.0225 vn 0.8223 -0.2413 0.5153 vn 0.9376 -0.1504 0.3134 vn 0.2037 -0.9757 -0.0811 vn 0.7376 -0.6166 0.2754 vn 0.7969 -0.2519 0.5491 vn 0.9484 -0.1684 0.2686 vn 0.8740 -0.4860 0.0075 vn 0.9879 0.0472 -0.1477 vn 0.8889 0.0201 -0.4576 vn 0.7862 0.6155 0.0554 vn -0.1440 0.9772 -0.1558 vn -0.3928 0.8554 -0.3378 vn 0.0446 0.9885 -0.1448 vn 0.8756 0.4703 -0.1099 vn 0.9122 -0.3747 -0.1661 vn 0.7732 -0.6107 -0.1709 vn 0.6522 -0.7573 -0.0339 vn 0.7271 -0.6113 -0.3125 vn 0.5714 -0.6714 -0.4719 vn 0.8398 -0.4372 -0.3218 vn 0.9548 -0.1334 -0.2656 vn 0.7314 -0.6468 -0.2162 vn 0.2788 -0.8380 -0.4690 vn 0.7207 -0.6724 0.1686 vn 0.9457 -0.3251 -0.0020 vn 0.4317 -0.8904 0.1444 vn -0.1323 -0.9613 0.2416 vn 0.2633 -0.8716 0.4135 vn 0.8034 -0.5319 0.2678 vn 0.9446 -0.2574 0.2038 vn -0.0016 -0.8034 0.5955 vn 0.2785 -0.6164 0.7366 vn 0.5756 -0.6961 0.4290 vn 0.9997 0.0031 -0.0231 vn 0.9841 0.0227 -0.1764 vn 0.8369 -0.3245 0.4408 vn 0.8268 -0.3785 0.4161 vn 0.8550 -0.2984 0.4242 vn 0.9092 -0.2939 0.2949 vn 0.9188 -0.0848 0.3856 vn 0.9628 -0.1684 0.2113 vn 0.5931 0.1970 -0.7807 vn 0.9967 0.0800 0.0124 vn 0.9573 0.2372 -0.1656 vn 0.6399 0.1150 -0.7598 vn -0.4208 0.7646 -0.4881 vn 0.8833 0.4506 -0.1291 vn -0.0094 0.7997 -0.6003 vn 0.7409 0.5882 -0.3242 vn 0.4275 0.6455 -0.6329 vn 0.4251 0.3952 -0.8143 vn 0.4168 0.2035 -0.8859 vn 0.3835 -0.0574 -0.9217 vn 0.8839 0.1957 0.4247 vn 0.8386 -0.0724 -0.5400 vn 0.9844 -0.1723 -0.0342 vn 0.7567 -0.6125 0.2286 vn 0.8495 -0.3722 0.3739 vn 0.7555 -0.4825 0.4431 vn 0.7857 -0.3749 0.4921 vn 0.8255 0.4001 0.3981 vn 0.6452 0.0374 0.7631 vn 0.2586 0.0632 0.9639 vn 0.6539 -0.1229 0.7465 vn 0.7483 -0.3947 0.5331 vn 0.7212 -0.4773 0.5020 vn 0.8185 -0.4774 -0.3195 vn 0.5668 -0.4619 -0.6822 vn 0.2500 -0.0396 -0.9674 vn 0.0524 0.0733 -0.9959 vn 0.4799 -0.8588 -0.1796 vn 0.4592 -0.8878 0.0297 vn 0.6898 -0.6872 0.2279 vn 0.6203 -0.5934 0.5129 vn 0.5927 0.0639 0.8029 vn -0.0133 0.9983 0.0559 vn 0.6806 0.7008 0.2137 vn -0.3818 0.8991 -0.2142 vn 0.3560 -0.6660 -0.6555 vn 0.4217 -0.6973 -0.5796 vn 0.4548 -0.7771 -0.4350 vn 0.4290 -0.3241 -0.8432 vn 0.7040 -0.6825 -0.1964 vn 0.7726 -0.6162 -0.1529 vn 0.5212 -0.6207 -0.5858 vn 0.5287 -0.6635 -0.5293 vn 0.6624 -0.6193 -0.4215 vn 0.8933 -0.4494 0.0015 vn 0.8150 -0.3410 -0.4684 vn 0.9844 -0.1743 -0.0244 vn 0.7650 -0.5661 0.3071 vn 0.6283 -0.6404 0.4417 vn 0.6457 -0.5254 0.5541 vn 0.5617 -0.4716 0.6798 vn 0.6404 -0.2340 0.7315 vn -0.3195 0.9410 0.1120 vn -0.7184 0.6345 -0.2850 vn -0.6851 0.6708 -0.2842 vn 0.0600 0.8659 0.4966 vn -0.0425 0.9637 0.2635 vn 0.1487 0.0473 0.9877 vn 0.1509 0.3820 0.9118 vn 0.8288 -0.5483 0.1112 vn 0.5888 -0.7496 -0.3024 vn 0.6916 -0.6298 0.3536 vn 0.4528 -0.7113 0.5376 vn 0.4412 -0.7618 0.4743 vn 0.3773 -0.7771 0.5037 vn 0.4209 -0.6682 0.6134 vn 0.5401 -0.8221 0.1802 vn 0.6376 -0.7193 0.2759 vn 0.2522 -0.7064 0.6614 vn 0.1852 0.3095 0.9327 vn -0.2666 0.0546 0.9623 vn -0.3007 0.5848 0.7534 vn 0.5823 0.2242 0.7814 vn -0.0217 -0.9029 0.4293 vn -0.7226 0.5042 0.4728 vn -0.8814 0.4446 0.1597 vn -0.7174 0.6781 -0.1595 vn -0.9888 -0.1113 -0.0998 vn -0.6284 -0.1032 0.7710 vn -0.3856 -0.7455 0.5436 vn -0.8845 -0.1448 0.4435 vn 0.3037 -0.4782 0.8241 vn 0.1455 0.3287 0.9332 vn -0.0081 0.3158 0.9488 vn 0.0996 0.4265 0.8990 vn 0.0072 0.4610 0.8874 vn 0.4564 0.4250 0.7817 vn 0.2504 0.4778 0.8420 vn 0.7310 0.2579 0.6318 vn 0.6012 0.2907 0.7444 vn 0.1486 0.6073 0.7804 vn 0.0109 0.6291 0.7772 vn 0.1669 0.4569 0.8737 vn 0.4022 0.5674 0.7185 vn 0.2659 0.6501 0.7119 vn 0.6178 0.5228 0.5874 vn 0.4224 0.6591 0.6222 vn 0.5832 0.6120 0.5341 vn 0.6828 0.3970 0.6134 vn 0.7429 0.4545 0.4915 vn 0.1153 0.7341 0.6691 vn 0.0027 0.7871 0.6168 vn 0.2222 0.7223 0.6549 vn 0.3571 0.7297 0.5831 vn 0.5535 0.6926 0.4626 vn 0.7116 0.5273 0.4642 vn 0.0376 0.7923 0.6089 vn 0.1504 0.7986 0.5828 vn 0.4419 0.8322 0.3349 vn 0.8310 0.2611 0.4911 vn 0.8969 0.2358 0.3742 vn 0.9395 0.1164 0.3222 vn 0.9667 0.0562 0.2498 vn 0.9712 0.1786 0.1575 vn 0.9427 0.2306 0.2412 vn 0.9384 0.1988 0.2826 vn 0.9804 0.1751 0.0898 vn 0.9842 0.1464 0.0997 vn 0.9973 0.0229 0.0699 vn 0.9830 0.1795 -0.0390 vn 0.9869 0.1524 0.0526 vn 0.9751 0.1724 -0.1397 vn 0.9963 0.0285 -0.0807 vn 0.8711 0.1876 -0.4538 vn 0.9578 0.1675 -0.2337 vn 0.7782 0.1305 -0.6143 vn 0.7875 0.0515 -0.6141 vn 0.3241 0.1336 -0.9365 vn 0.8061 0.3590 0.4704 vn 0.8606 0.3592 0.3610 vn 0.7768 0.4716 0.4174 vn 0.9285 0.3435 0.1409 vn 0.8891 0.3850 0.2474 vn 0.9280 0.3581 0.1024 vn 0.9670 0.2509 0.0440 vn 0.9424 0.3314 0.0461 vn 0.9310 0.3533 -0.0914 vn 0.9189 0.3935 -0.0288 vn 0.9233 0.3558 -0.1450 vn 0.8412 0.3376 -0.4224 vn 0.9132 0.3143 -0.2595 vn 0.7340 0.3138 -0.6024 vn 0.6446 0.2294 -0.7293 vn 0.5171 0.1349 -0.8452 vn 0.4634 0.0848 -0.8821 vn 0.3780 0.1122 -0.9190 vn 0.1835 0.0837 -0.9795 vn 0.2144 0.1947 -0.9571 vn 0.1319 0.1386 -0.9815 vn 0.1867 0.2019 -0.9614 vn 0.0290 0.2096 -0.9774 vn 0.0084 0.2336 -0.9723 vn -0.0394 0.2230 -0.9740 vn 0.6817 0.6254 0.3797 vn 0.8150 0.4640 0.3472 vn 0.6976 0.6138 0.3696 vn 0.9075 0.3019 0.2920 vn 0.8604 0.4434 0.2513 vn 0.9102 0.3370 0.2407 vn 0.8252 0.5289 0.1984 vn 0.7737 0.5483 0.3175 vn 0.8809 0.4473 0.1545 vn 0.8768 0.4798 0.0311 vn 0.8059 0.5837 0.0992 vn 0.8624 0.5062 -0.0092 vn 0.7849 0.6167 -0.0602 vn 0.8656 0.4753 -0.1576 vn 0.8920 0.4327 -0.1304 vn 0.4700 0.6214 -0.6268 vn 0.8486 0.5057 -0.1554 vn 0.7701 0.4302 -0.4711 vn 0.4831 0.3186 -0.8155 vn 0.2219 0.2109 -0.9520 vn 0.3013 0.1553 -0.9408 vn 0.1733 0.1753 -0.9691 vn 0.1421 0.1668 -0.9757 vn 0.0969 0.2540 -0.9623 vn -0.0082 0.2198 -0.9755 vn 0.6986 0.6327 0.3341 vn 0.6160 0.7379 0.2757 vn 0.5865 0.7128 0.3846 vn 0.5932 0.7230 0.3540 vn 0.7593 0.6115 0.2226 vn 0.7112 0.6880 0.1446 vn 0.7918 0.6108 0.0012 vn 0.6877 0.7254 0.0295 vn 0.6805 0.7327 -0.0040 vn 0.8715 0.4894 -0.0311 vn 0.7461 0.6536 -0.1273 vn 0.7487 0.6184 -0.2385 vn 0.7176 0.5943 -0.3631 vn 0.6598 0.7154 -0.2302 vn 0.6031 0.5929 -0.5336 vn 0.5909 0.4898 -0.6410 vn 0.5200 0.4766 -0.7088 vn 0.3941 0.4939 -0.7751 vn 0.2373 0.4402 -0.8660 vn 0.1446 0.1628 -0.9760 vn 0.0851 0.3767 -0.9224 vn -0.0010 0.2942 -0.9558 vn 0.0143 0.3566 -0.9341 vn -0.0097 0.4266 -0.9044 vn 0.0736 0.2180 -0.9732 vn -0.1674 0.5105 -0.8434 vn -0.0626 0.5725 -0.8175 vn -0.0539 0.5413 -0.8391 vn 0.0081 0.6005 -0.7996 vn 0.1445 0.5358 -0.8319 vn 0.0637 0.6777 -0.7326 vn 0.1825 0.6701 -0.7195 vn 0.3384 0.5763 -0.7439 vn 0.3099 0.7153 -0.6263 vn 0.4744 0.6559 -0.5871 vn 0.5657 0.7179 -0.4056 vn 0.4431 0.7465 -0.4964 vn 0.4670 0.8389 -0.2796 vn 0.5366 0.8060 -0.2497 vn 0.6069 0.7550 -0.2483 vn 0.6330 0.7637 -0.1267 vn 0.5691 0.8122 -0.1281 vn 0.6606 0.7467 -0.0781 vn 0.5907 0.8049 -0.0568 vn 0.6785 0.7336 -0.0382 vn 0.7090 0.6983 0.0985 vn 0.6010 0.7992 -0.0093 vn 0.6092 0.7883 0.0865 vn 0.6659 0.6938 0.2743 vn 0.4882 0.8287 0.2739 vn 0.6561 0.6790 0.3294 vn 0.4851 0.7638 0.4258 vn 0.4064 0.8011 0.4394 vn 0.3470 0.6863 0.6392 vn 0.7754 0.0440 0.6299 vn 0.2420 0.7480 0.6180 vn 0.2753 0.7804 0.5614 vn 0.2303 0.8553 0.4642 vn -0.0014 0.7433 -0.6690 vn -0.0345 0.6596 -0.7508 vn -0.1683 0.5306 -0.8307 vn 0.1376 0.7028 -0.6980 vn 0.1359 0.7774 -0.6141 vn 0.2703 0.7635 -0.5866 vn 0.3661 0.8051 -0.4666 vn 0.2250 0.8412 -0.4917 vn 0.2370 0.8918 -0.3853 vn 0.2752 0.8545 -0.4405 vn 0.3168 0.8871 -0.3357 vn 0.3857 0.8209 -0.4212 vn 0.2933 0.8528 -0.4321 vn 0.3945 0.8837 -0.2519 vn 0.3636 0.8881 -0.2811 vn 0.4462 0.8541 -0.2672 vn 0.3810 0.9179 -0.1112 vn 0.4976 0.8620 -0.0967 vn 0.4396 0.8978 -0.0280 vn 0.5248 0.8511 -0.0163 vn 0.5329 0.8433 0.0693 vn 0.5039 0.8403 0.2001 vn 0.5524 0.7611 0.3400 vn 0.4313 0.8903 0.1461 vn 0.4442 0.8822 0.1563 vn 0.5279 0.7910 0.3093 vn 0.5208 0.8177 0.2452 vn 0.5736 0.7958 0.1940 vn 0.0104 0.9458 0.3246 vn 0.0062 0.8740 0.4859 vn 0.3530 0.8070 0.4734 vn 0.1088 0.9085 0.4034 vn 0.1974 0.9553 0.2200 vn 0.2355 0.9047 0.3551 vn 0.5606 0.7808 0.2757 vn 0.4618 0.8768 0.1342 vn -0.0112 0.9012 -0.4332 vn 0.0951 0.8128 -0.5748 vn -0.0301 0.8407 -0.5407 vn 0.1845 0.8642 -0.4681 vn 0.0936 0.9308 -0.3533 vn 0.2253 0.9334 -0.2794 vn 0.3300 0.9268 -0.1794 vn 0.2629 0.9560 -0.1298 vn 0.3601 0.9325 -0.0273 vn 0.2861 0.9578 -0.0268 vn 0.4672 0.8819 0.0627 vn 0.3472 0.9340 0.0845 vn 0.2724 0.9592 0.0754 vn 0.3392 0.9293 0.1462 vn 0.3321 0.9364 0.1132 vn 0.1830 0.9687 0.1680 vn 0.2966 0.9471 0.1229 vn 0.1228 0.9524 0.2789 vn -0.0368 0.9722 0.2311 vn 0.1531 0.9624 -0.2245 vn 0.1552 0.9814 -0.1129 vn 0.2474 0.9687 -0.0221 vn 0.1806 0.9815 0.0643 vn 0.0384 0.9891 0.1425 vn 0.0012 0.9677 -0.2522 vn -0.0241 0.9861 -0.1644 vn 0.0025 0.9981 -0.0624 vn 0.1229 0.9924 0.0015 vn 0.0594 0.9982 -0.0012 vn 0.0533 0.9955 0.0789 vn 0.9207 -0.3805 0.0868 vn 0.7932 -0.5089 0.3344 vn 0.9698 -0.2406 -0.0397 vn 0.9107 -0.3028 -0.2808 vn 0.9356 -0.2069 -0.2863 vn 0.7779 -0.3691 -0.5086 vn 0.8742 -0.2659 -0.4064 vn 0.6623 -0.4136 -0.6247 vn 0.5554 -0.4652 -0.6893 vn 0.3952 -0.4276 -0.8130 vn 0.4852 -0.5120 -0.7088 vn 0.2979 -0.4156 -0.8594 vn 0.0224 -0.5759 -0.8172 vn 0.9593 -0.2497 0.1320 vn 0.9007 -0.4027 -0.1629 vn 0.9213 -0.2162 -0.3232 vn 0.8450 -0.2753 -0.4586 vn 0.7616 -0.3288 -0.5585 vn 0.5445 -0.5270 -0.6526 vn 0.4152 -0.6017 -0.6823 vn 0.3305 -0.6152 -0.7158 vn 0.8286 -0.5002 0.2516 vn 0.7089 -0.5406 0.4531 vn 0.9106 -0.4116 -0.0364 vn 0.9309 -0.2927 -0.2185 vn 0.9302 -0.2730 -0.2454 vn 0.8584 -0.3252 -0.3967 vn 0.8959 -0.2871 -0.3391 vn 0.7177 -0.4058 -0.5659 vn 0.6531 -0.3933 -0.6471 vn 0.6190 -0.4508 -0.6432 vn 0.5360 -0.4134 -0.7361 vn 0.4518 -0.6001 -0.6601 vn 0.3797 -0.7033 -0.6010 vn -0.0014 -0.7830 -0.6221 vn 0.5874 -0.4651 0.6623 vn 0.3959 -0.2801 0.8745 vn 0.7131 -0.2167 0.6667 vn 0.8647 -0.3176 0.3891 vn 0.8861 -0.3574 -0.2950 vn 0.7558 -0.0834 0.6494 vn 0.7945 -0.2061 0.5712 vn 0.9207 -0.3415 -0.1891 vn 0.9102 -0.3265 0.2550 vn 0.9611 -0.2756 0.0185 vn 0.8939 -0.4408 -0.0808 vn 0.5374 -0.1233 0.8343 vn 0.7635 -0.5323 -0.3657 vn 0.7565 -0.4723 -0.4523 vn 0.8343 -0.4000 -0.3794 vn 0.4474 -0.3187 0.8356 vn 0.4570 -0.1624 0.8745 vn 0.8580 -0.0158 0.5134 vn 0.1882 -0.4989 0.8460 vn 0.5694 0.0100 0.8220 vn 0.5563 -0.1091 0.8238 vn 0.3240 -0.1943 0.9259 vn 0.5804 -0.2786 0.7652 vn 0.1346 -0.4731 0.8707 vn 0.1980 -0.4748 0.8575 vn 0.0135 -0.6028 0.7978 vn 0.9389 -0.1766 0.2955 vn 0.4195 -0.2920 0.8595 vn -0.2495 -0.9557 -0.1561 vn -0.0319 -0.9344 -0.3547 vn 0.1210 -0.7353 -0.6669 vn 0.4461 -0.6356 -0.6301 vn 0.4951 -0.8605 0.1200 vn -0.0563 -0.9006 -0.4311 vn 0.0331 -0.9119 -0.4091 vn 0.4329 -0.8044 -0.4070 vn 0.1690 -0.8291 -0.5329 vn 0.5336 -0.8324 -0.1495 vn 0.2408 -0.9672 -0.0809 vn 0.0250 -0.9243 -0.3808 vn 0.5078 -0.7826 -0.3600 vn 0.2156 -0.8998 -0.3794 vn 0.1658 -0.9856 0.0328 vn 0.0867 -0.9948 -0.0527 vn -0.0317 -0.9966 -0.0755 vn 0.4876 -0.8481 -0.2075 vn 0.2659 -0.8988 -0.3484 vn 0.7842 -0.5683 0.2490 vn 0.9793 -0.2022 0.0112 vn -0.4388 -0.5149 -0.7364 vn -0.5752 -0.1582 -0.8026 vn -0.3129 -0.7588 -0.5712 vn -0.1637 -0.7593 -0.6298 vn -0.4412 -0.2720 -0.8552 vn 0.2724 -0.9588 -0.0811 vn -0.0883 -0.5783 -0.8110 vn 0.2419 -0.6114 -0.7535 vn -0.3048 -0.7074 -0.6377 vn -0.7718 -0.4610 -0.4378 vn -0.7449 -0.2862 -0.6026 vn -0.4975 -0.8093 -0.3123 vn -0.4096 -0.8983 0.1591 vn -0.9459 -0.1158 0.3031 vn -0.3705 -0.8313 0.4145 vn -0.1981 -0.9095 0.3654 vn 0.3224 -0.9460 0.0329 vn 0.0319 -0.9536 -0.2995 vn -0.3792 -0.5748 0.7251 vn -0.3788 -0.5311 0.7579 vn -0.6591 -0.2434 0.7116 vn -0.2748 -0.8515 -0.4466 vn -0.5413 -0.6878 -0.4837 vn -0.3358 -0.7977 -0.5009 vn -0.3598 -0.5793 -0.7314 vn -0.7221 -0.5192 -0.4571 vn -0.6419 -0.3761 -0.6682 vn -0.5362 -0.7182 -0.4434 vn -0.7114 -0.6156 -0.3391 vn -0.5418 -0.6532 -0.5289 vn -0.2411 -0.8414 -0.4836 vn -0.4474 -0.6651 -0.5979 vn -0.8383 -0.4074 -0.3624 vn -0.6625 -0.4557 -0.5945 vn -0.7353 -0.5738 -0.3607 vn -0.7099 -0.6533 -0.2632 vn 0.9896 0.0592 0.1312 vn 0.5463 -0.5565 -0.6260 vn 0.8427 -0.4631 -0.2744 vn 0.9612 0.1676 -0.2192 vn 0.9916 -0.0137 -0.1287 vn 0.2192 -0.9512 -0.2170 vn 0.7196 -0.6302 -0.2916 vn 0.9969 -0.0570 -0.0536 vn 0.9619 -0.1769 -0.2083 vn 0.5064 -0.4120 -0.7575 vn -0.1392 -0.0255 -0.9899 vn 0.1472 -0.0278 -0.9887 vn 0.9471 -0.1250 -0.2955 vn 0.7890 -0.3956 -0.4702 vn 0.9085 -0.0572 -0.4140 vn 0.7875 -0.5940 -0.1644 vn 0.7502 -0.1257 -0.6492 vn 0.3675 -0.3562 -0.8591 vn 0.5520 -0.2915 -0.7812 vn 0.5950 -0.1089 -0.7963 vn 0.1914 -0.0920 -0.9772 vn 0.3001 -0.0299 -0.9534 vn -0.0819 0.0132 -0.9966 vn 0.1013 -0.0194 -0.9947 vn 0.9382 -0.1238 -0.3232 vn 0.8683 0.0213 -0.4956 vn 0.6100 -0.0011 -0.7924 vn 0.8813 0.0085 -0.4725 vn 0.9237 -0.0721 -0.3762 vn -0.3913 -0.0447 -0.9192 vn -0.4376 0.0996 -0.8936 vn -0.1894 -0.0585 -0.9801 vn -0.7282 -0.0500 -0.6835 vn 0.1159 -0.5647 -0.8171 vn 0.0301 -0.3477 -0.9371 vn 0.4395 -0.3156 -0.8410 vn 0.3596 -0.6976 -0.6198 vn 0.2253 -0.0710 -0.9717 vn -0.0716 0.2008 -0.9770 vn -0.9139 0.2301 -0.3344 vn -0.8963 -0.0363 -0.4420 vn -0.8702 0.1421 -0.4717 vn -0.8487 0.2936 -0.4399 vn -0.6257 0.6883 -0.3669 vn -0.6873 0.4001 -0.6062 vn -0.6637 0.3103 -0.6805 vn -0.3498 0.1425 -0.9259 vn -0.4643 -0.7158 -0.5215 vn 0.0881 -0.7441 -0.6623 vn 0.1070 -0.9126 -0.3945 vn -0.0019 -0.8208 -0.5712 vn 0.1760 -0.7557 -0.6308 vn -0.5926 -0.6227 -0.5110 vn -0.3275 -0.8686 -0.3719 vn -0.1887 -0.8484 -0.4946 vn -0.7191 -0.5146 -0.4670 vn -0.1892 -0.4725 -0.8608 vn -0.7995 -0.4967 0.3378 vn -0.8577 -0.4991 -0.1236 vn -0.9572 -0.2182 0.1899 vn -0.6556 -0.7396 -0.1522 vn -0.8646 -0.2168 -0.4532 vn -0.1065 -0.9267 -0.3605 vn -0.9817 0.0632 0.1799 vn -0.4833 -0.6976 -0.5290 vn -0.7732 -0.3582 -0.5233 vn -0.6699 -0.5949 -0.4442 vn -0.3955 -0.8231 -0.4077 vn 0.6227 -0.2037 0.7555 vn 0.4017 -0.2353 0.8850 vn 0.7139 -0.4010 0.5741 vn 0.8096 -0.5471 0.2124 vn -0.0468 -0.2951 0.9543 vn -0.1269 -0.2302 0.9648 vn 0.7112 -0.6504 -0.2668 vn 0.5067 -0.7447 -0.4344 vn 0.4527 -0.7037 -0.5477 vn 0.6297 -0.5828 -0.5136 vn 0.5139 -0.5861 -0.6264 vn 0.0351 -0.8061 -0.5907 vn 0.2816 -0.7186 -0.6359 vn 0.0462 -0.8823 -0.4684 vn 0.3734 -0.5785 -0.7252 vn 0.2396 -0.6696 -0.7031 vn 0.1940 -0.7339 -0.6510 vn 0.2507 -0.7855 -0.5658 vn -0.3140 -0.8310 -0.4592 vn 0.0096 -0.8649 -0.5019 vn 0.1352 -0.7771 -0.6146 vn -0.0397 -0.8658 -0.4987 vn 0.3258 -0.6494 -0.6871 vn 0.3956 -0.5737 -0.7172 vn 0.4897 -0.5572 -0.6706 vn 0.2757 -0.7849 -0.5549 vn 0.4383 -0.6833 -0.5840 vn 0.5555 -0.5314 -0.6395 vn 0.3550 -0.7712 -0.5284 vn 0.3686 -0.8017 -0.4706 vn 0.0610 -0.9201 -0.3870 vn -0.1346 -0.9120 -0.3875 vn -0.0008 -0.9405 -0.3398 vn 0.0351 -0.8890 -0.4566 vn 0.2649 -0.8458 -0.4631 vn 0.1782 -0.9036 -0.3895 vn -0.1372 -0.9311 -0.3379 vn 0.0193 -0.9720 -0.2340 vn -0.2727 -0.9090 -0.3151 vn 0.0091 -0.9553 -0.2955 vn 0.0088 -0.9246 -0.3809 vn 0.1467 -0.9402 -0.3074 vn -0.0065 -0.9673 -0.2537 vn -0.1088 -0.9845 -0.1377 vn -0.0388 -0.8881 -0.4581 vn 0.1468 -0.9117 -0.3836 vn 0.2954 -0.9091 -0.2939 vn -0.0350 -0.9156 -0.4006 vn 0.6588 -0.7378 -0.1472 vn 0.3881 -0.9215 0.0113 vn 0.7167 -0.6686 0.1984 vn 0.6213 -0.4705 0.6266 vn 0.1332 -0.5100 0.8498 vn -0.4295 -0.8568 -0.2855 vn 0.3759 -0.2603 -0.8893 vn 0.6682 -0.0745 -0.7403 vn 0.3738 -0.7714 0.5150 vn -0.5182 -0.7598 -0.3928 vn -0.5860 -0.7828 -0.2093 vn -0.6692 -0.7157 -0.2000 vn -0.4282 -0.8953 -0.1227 vn -0.1756 -0.9828 0.0574 vn -0.3545 -0.8028 0.4794 vn -0.5508 -0.3955 0.7350 vn -0.3651 -0.5880 0.7218 vn -0.2333 -0.9676 -0.0963 vn -0.6211 -0.7697 -0.1475 vn -0.3764 -0.8966 -0.2331 vn 0.0904 -0.9751 -0.2023 vn -0.1721 -0.9207 -0.3502 vn -0.5544 -0.7809 -0.2878 vn -0.4640 -0.8858 -0.0050 vn -0.1155 -0.9874 0.1080 vn 0.0103 -0.9819 0.1891 vn -0.0205 -0.9998 0.0055 vn 0.0193 -0.9986 -0.0502 vn -0.0252 -0.9990 0.0370 vn -0.1202 -0.9927 -0.0032 vn -0.1030 -0.9407 0.3231 vn 0.1435 -0.8215 0.5519 vn -0.5947 -0.2913 0.7493 vn -0.7800 -0.5979 0.1847 vn -0.7708 -0.5797 -0.2641 vn -0.6788 -0.5424 0.4950 vn -0.2639 -0.9338 -0.2417 vn 0.6636 -0.7067 -0.2453 vn -0.7330 -0.4086 0.5439 vn -0.7983 -0.4392 0.4121 vn -0.8530 -0.4475 0.2686 vn -0.9137 -0.4047 -0.0376 vn -0.7928 -0.6080 0.0424 vn -0.6282 -0.7756 -0.0613 vn 0.4046 -0.4344 0.8047 vn 0.8558 -0.4574 0.2417 vn 0.6435 -0.6376 0.4235 vn 0.6075 -0.0846 0.7898 vn 0.3291 -0.3037 0.8941 vn -0.3209 -0.8749 0.3627 vn 0.1475 -0.9602 0.2374 vn 0.0351 -0.8919 0.4508 vn 0.0282 -0.9717 0.2347 vn -0.2863 -0.8827 0.3725 vn -0.1612 -0.9782 0.1307 vn -0.2808 -0.9298 0.2379 vn -0.2615 -0.9143 0.3092 vn -0.4546 -0.8530 0.2563 vn 0.1925 -0.9283 0.3181 vn 0.2205 -0.9743 -0.0467 vn -0.2122 -0.6918 0.6902 vn -0.4317 -0.6755 0.5978 vn 0.0797 -0.6354 0.7681 vn -0.5147 -0.7951 0.3206 vn -0.0339 -0.5859 0.8097 vn 0.5854 -0.2361 0.7756 vn -0.7776 -0.5956 0.2014 vn -0.9890 -0.1421 0.0417 vn -0.5533 -0.2198 0.8035 vn -0.9646 0.2396 -0.1101 vn -0.5520 0.7946 0.2529 vn -0.0421 0.7649 0.6427 vn -0.7170 0.6971 -0.0036 vn -0.6966 0.1822 0.6940 vn -0.8913 0.4214 0.1676 vn 0.2317 0.9693 0.0827 vn -0.0155 0.9572 0.2890 vn 0.1064 0.9926 -0.0594 vn -0.1278 0.9898 -0.0630 vn -0.7417 -0.6154 0.2669 vn 0.5673 0.8233 0.0185 vn 0.8269 0.5577 0.0719 vn 0.0037 0.6706 0.7418 vn -0.1253 0.8589 0.4965 vn 0.9679 0.2512 0.0116 vn 0.7418 -0.1547 -0.6526 vn 0.9064 0.3978 -0.1421 vn 0.9983 -0.0264 0.0521 vn -0.0093 0.0606 0.9981 vn 0.5520 0.2506 -0.7953 vn 0.8834 0.0497 -0.4661 vn -0.7368 0.6084 -0.2949 vn -0.3525 0.7933 -0.4964 vn -0.9584 -0.2515 -0.1352 vn -0.7681 -0.6404 0.0053 vn -0.9600 -0.2024 -0.1933 vn -0.1845 -0.9822 0.0354 vn -0.6582 -0.7500 0.0656 vn -0.2492 -0.9569 0.1489 vn -0.0673 -0.9965 0.0493 vn -0.4564 -0.8512 0.2593 vn -0.0025 -0.8840 0.4675 vn 0.5920 -0.7788 0.2073 vn 0.9926 -0.0773 0.0936 vn 0.5518 0.1504 -0.8203 vn 0.9794 -0.1683 -0.1120 vn 0.6696 -0.7301 -0.1362 vn 0.9897 -0.1186 0.0805 vn 0.9177 -0.3556 0.1774 vn 0.6720 -0.7328 0.1070 vn 0.8343 -0.5307 0.1496 vn 0.2436 -0.8500 0.4670 vn -0.2852 -0.9548 0.0840 vn 0.1317 -0.9903 0.0446 vn -0.3560 -0.9242 -0.1385 vn 0.0461 -0.9877 -0.1495 vn -0.1869 -0.9684 -0.1651 vn -0.1151 -0.9854 0.1252 vn 0.1496 -0.9873 -0.0529 vn -0.0810 -0.8905 0.4477 vn -0.2344 -0.9473 0.2182 vn -0.2585 -0.8789 0.4008 vn -0.3793 -0.8007 0.4637 vn -0.0093 -0.8295 0.5584 vn -0.3005 -0.9537 -0.0118 vn 0.3032 -0.5530 0.7760 vn 0.4536 -0.4480 0.7704 vn -0.0190 -0.8132 0.5816 vn -0.0131 -0.6701 0.7422 vn -0.4266 -0.8009 0.4202 vn 0.6315 -0.5095 0.5845 vn 0.5054 -0.4720 0.7224 vn 0.7032 -0.6510 0.2859 vn 0.0179 -0.8141 0.5804 vn 0.5551 -0.8192 0.1440 vn 0.3200 -0.9447 0.0712 vn 0.0005 -0.9964 0.0843 vn 0.0137 -0.9911 0.1327 vn 0.0029 -0.9849 -0.1731 vn 0.3901 -0.9153 0.1004 vn 0.3800 -0.9224 0.0695 vn 0.4304 -0.9024 0.0220 vn 0.0664 -0.5657 -0.8219 vn 0.2256 -0.8923 0.3911 vn -0.5112 -0.8346 -0.2050 vn -0.0061 -0.9999 0.0143 vn 0.0305 -0.9953 -0.0923 vn -0.3125 -0.9034 0.2936 vn -0.0321 -0.9189 0.3932 vn -0.1406 -0.9683 0.2063 vn -0.6673 -0.5284 0.5249 vn -0.8512 -0.3200 -0.4159 vn 0.0259 -0.5696 -0.8215 vn 0.4417 -0.7788 -0.4455 vn -0.4048 -0.1878 -0.8949 vn -0.0206 -0.1847 -0.9826 vn -0.9976 0.0300 -0.0618 vn 0.2271 -0.3834 -0.8953 vn 0.8878 -0.2964 -0.3522 vn 0.4000 -0.2748 -0.8743 vn 0.7091 -0.3735 -0.5981 vn 0.8009 -0.5480 0.2414 vn 0.9575 -0.2882 0.0111 vn 0.8151 -0.1258 0.5655 vn 0.2394 -0.5128 0.8245 vn 0.3336 0.0046 0.9427 vn 0.6920 -0.1663 0.7025 vn -0.9534 0.1336 0.2705 vn -0.4423 0.0961 0.8917 vn -0.0823 -0.0334 0.9960 vn 0.4473 -0.2767 0.8505 vn -0.4914 -0.0935 0.8659 vn -0.6326 -0.4448 0.6340 vn -0.9760 -0.2019 0.0812 vn 0.3757 -0.2912 0.8798 vn 0.3816 -0.2290 0.8955 vn 0.1125 -0.1900 0.9753 vn 0.2483 -0.1673 0.9541 vn 0.8252 0.0099 0.5647 vn -0.0585 -0.0295 0.9979 vn 0.3603 -0.4983 0.7886 vn -0.2450 -0.3188 0.9156 vn -0.9356 -0.0586 0.3480 vn 0.2685 -0.9433 0.1953 vn 0.1499 -0.9872 -0.0553 vn -0.4708 -0.6449 -0.6021 vn -0.4232 -0.7396 -0.5233 vn -0.5549 -0.6478 -0.5220 vn -0.5074 -0.8341 -0.2163 vn -0.5093 -0.8545 -0.1020 vn -0.2938 -0.9004 -0.3209 vn -0.3925 -0.9190 -0.0368 vn -0.5820 -0.6558 -0.4808 vn -0.6296 -0.7756 0.0453 vn -0.3520 -0.8989 0.2610 vn -0.3641 -0.6046 0.7085 vn 0.0270 -0.8286 0.5591 vn 0.5355 -0.8444 0.0175 vn -0.6561 -0.5794 0.4836 vn -0.1655 -0.5806 0.7972 vn 0.5344 -0.8271 0.1741 vn -0.6512 -0.7269 -0.2178 vn -0.3166 -0.9453 0.0781 vn -0.7397 -0.6702 -0.0611 vn -0.0322 -0.9985 0.0445 vn -0.0413 -0.9523 -0.3024 vn -0.3914 -0.9173 -0.0726 vn -0.5219 -0.8052 0.2815 vn 0.0805 -0.9862 0.1448 vn -0.4212 -0.8778 0.2281 vn 0.2235 -0.9697 0.0985 vn 0.7213 -0.5316 0.4440 vn 0.5406 -0.7030 0.4621 vn 0.4918 -0.8692 0.0507 vn 0.5754 -0.8164 -0.0490 vn 0.5151 -0.4215 0.7464 vn -0.0434 -0.9983 -0.0380 vn 0.0861 -0.9898 0.1133 vn 0.2919 -0.9213 0.2567 vn 0.3617 -0.8909 0.2746 vn 0.4828 -0.7067 0.5172 vn 0.4885 -0.5064 0.7106 vn 0.4506 -0.4235 0.7859 vn 0.3266 -0.5377 0.7773 vn 0.0897 -0.7665 0.6360 vn 0.1443 -0.8659 0.4789 vn 0.0035 -0.7940 0.6078 vn -0.1309 -0.8086 0.5736 vn 0.1985 -0.7550 0.6250 vn 0.3919 -0.4709 0.7904 vn 0.4891 -0.3499 0.7990 vn 0.3648 -0.4688 0.8045 vn 0.1995 -0.7518 0.6285 vn -0.1983 -0.9489 0.2456 vn -0.1604 -0.8384 0.5210 vn -0.3390 -0.9002 0.2733 vn -0.2444 -0.6826 0.6888 vn -0.1512 -0.9839 0.0952 vn -0.2023 -0.6657 0.7183 vn -0.0928 -0.6918 0.7161 vn -0.0898 -0.8649 0.4938 vn -0.0942 -0.9246 0.3691 vn -0.6733 -0.5597 -0.4831 vn 0.0544 -0.7633 -0.6438 vn -0.3409 -0.4966 -0.7982 vn -0.8014 -0.5696 0.1824 vn -0.6127 -0.6029 0.5110 vn -0.5642 -0.8073 -0.1731 vn 0.6984 -0.2449 -0.6725 vn 0.7470 -0.5875 0.3113 vn -0.1496 -0.3392 0.9287 vn -0.3901 -0.4583 0.7986 vn 0.1530 -0.5062 0.8487 vn -0.2376 0.0837 0.9677 vn -0.6810 -0.5545 0.4783 vn -0.6670 0.0248 0.7447 vn -0.3506 -0.5668 0.7455 vn 0.3433 -0.6504 0.6776 vn -0.5489 -0.7607 0.3466 vn -0.2461 -0.6599 0.7099 vn -0.5908 -0.7550 0.2847 vn -0.7499 -0.6229 -0.2227 vn -0.5969 -0.7715 -0.2201 vn -0.5060 -0.6601 -0.5552 vn -0.4201 -0.8058 -0.4173 vn -0.4457 -0.6337 -0.6322 vn -0.4737 -0.8598 -0.1905 vn -0.6793 -0.6653 -0.3098 vn -0.4019 -0.8764 0.2654 vn -0.1647 -0.9473 0.2747 vn -0.2389 -0.9421 -0.2352 vn -0.3185 -0.9424 0.1022 vn -0.2753 -0.8435 -0.4613 vn -0.0033 -0.8026 -0.5965 vn -0.1825 -0.7181 -0.6716 vn -0.2153 -0.8111 -0.5439 vn -0.3700 -0.9158 -0.1562 vn -0.1725 -0.7423 0.6475 vn -0.0623 -0.8685 0.4917 vn 0.1648 -0.9353 0.3130 vn -0.1625 -0.7282 0.6658 vn 0.3107 -0.9505 0.0043 vn -0.0716 -0.9487 0.3079 vn -0.3177 -0.7666 0.5581 vn 0.5161 -0.8557 0.0367 vn 0.4015 -0.9095 -0.1076 vn 0.4361 -0.8989 0.0421 vn 0.4089 -0.8977 0.1640 vn 0.2322 -0.9652 0.1207 vn -0.2307 -0.8693 0.4371 vn -0.4081 -0.7194 0.5620 vn -0.2815 -0.8318 0.4784 vn 0.0584 -0.9791 -0.1947 vn 0.1691 -0.9450 -0.2800 vn -0.2161 -0.9477 0.2349 vn 0.5273 -0.8200 -0.2223 vn -0.1738 -0.9383 -0.2990 vn 0.5343 -0.8164 -0.2189 vn -0.0684 -0.9319 0.3562 vn 0.5933 -0.7971 0.1127 vn -0.4544 -0.7479 0.4840 vn -0.4512 -0.8566 0.2502 vn 0.1383 -0.9881 -0.0677 vn -0.5259 -0.4196 0.7398 vn -0.5915 -0.3856 0.7081 vn -0.4128 -0.7680 0.4896 vn -0.0867 -0.9955 0.0374 vn -0.0108 -0.9314 0.3639 vn 0.3869 -0.8208 -0.4202 vn -0.4596 -0.4922 0.7392 vn -0.2087 -0.7450 0.6336 vn 0.3259 -0.8798 0.3460 vn -0.4458 -0.8950 -0.0158 vn 0.6073 -0.7209 0.3339 vn 0.4777 -0.8353 0.2723 vn -0.1233 -0.8532 0.5068 vn 0.4882 -0.8098 -0.3255 vn 0.5108 -0.6517 0.5607 vn 0.3460 -0.9227 0.1701 vn -0.2319 -0.8163 0.5290 vn -0.4245 -0.8919 0.1562 vn -0.4868 -0.6131 0.6222 vn -0.4820 -0.7068 0.5178 vn 0.1799 -0.9806 -0.0782 vn 0.0718 -0.9863 -0.1485 vn 0.5679 -0.8230 -0.0068 vn -0.2276 -0.9533 0.1983 vn 0.0905 -0.9943 -0.0568 vn 0.0440 -0.8458 0.5316 vn -0.1509 -0.9187 0.3649 vn 0.0780 -0.7609 0.6442 vn 0.0209 -0.6832 0.7299 vn 0.1045 -0.9879 0.1148 vn -0.3977 -0.8862 0.2377 vn -0.4341 -0.8050 0.4044 vn -0.9396 -0.2347 -0.2492 vn -0.3544 -0.5951 0.7213 vn 0.1180 -0.6345 0.7639 vn 0.5975 -0.7843 -0.1671 vn 0.7186 -0.6892 -0.0930 vn 0.6818 -0.6451 -0.3450 vn 0.9500 -0.3080 0.0510 vn 0.8459 -0.4174 -0.3319 vn 0.6713 -0.4322 -0.6021 vn 0.9388 -0.2085 -0.2741 vn 0.4752 -0.4512 -0.7554 vn 0.7959 -0.5809 0.1706 vn 0.7059 -0.6152 0.3511 vn 0.6026 -0.7599 0.2437 vn -0.0445 -0.8889 0.4559 vn 0.4603 -0.8366 -0.2969 vn 0.6403 -0.7447 0.1882 vn 0.3810 -0.8797 0.2846 vn 0.1661 -0.1313 -0.9773 vn -0.3385 -0.5996 -0.7251 vn 0.4396 -0.8971 0.0441 vn 0.7413 -0.2997 -0.6006 vn 0.8907 -0.0870 -0.4462 vn 0.8874 0.0444 -0.4589 vn 0.9511 0.0749 -0.2997 vn 0.9608 -0.0733 -0.2674 vn 0.8821 0.1045 -0.4592 vn 0.9352 0.0081 -0.3541 vn 0.6979 -0.1185 -0.7063 vn 0.8687 0.3402 -0.3600 vn 0.9099 0.3638 -0.1994 vn 0.8554 0.2731 -0.4401 vn 0.9510 -0.1564 -0.2669 vn 0.8308 -0.2803 -0.4808 vn 0.4875 -0.8421 -0.2308 vn 0.2039 -0.9740 0.0984 vn 0.1280 -0.9470 -0.2946 vn 0.1373 -0.8172 -0.5598 vn 0.3860 -0.8575 -0.3402 vn 0.1662 -0.6369 -0.7529 vn 0.2071 -0.9682 0.1401 vn -0.1042 -0.8020 0.5881 vn 0.5250 -0.8379 0.1493 vn 0.5673 -0.8096 -0.1508 vn 0.6270 -0.7767 0.0607 vn 0.6847 -0.5956 -0.4200 vn 0.5584 -0.5331 -0.6356 vn -0.6649 -0.7426 -0.0807 vn -0.2892 -0.7575 -0.5853 vn -0.5636 -0.4809 -0.6716 vn 0.0336 -0.4335 -0.9005 vn -0.8647 -0.2891 0.4107 vn -0.9117 -0.0800 0.4030 vn -0.9839 -0.1777 0.0196 vn -0.9905 0.0802 -0.1119 vn -0.9615 -0.2279 0.1537 vn -0.7206 -0.6192 0.3119 vn -0.8359 -0.5214 0.1716 vn -0.8453 -0.3690 0.3864 vn -0.7550 -0.5421 0.3690 vn -0.7408 -0.5977 0.3065 vn -0.8841 -0.4625 0.0669 vn -0.8103 -0.3392 0.4780 vn -0.8160 -0.4360 0.3795 vn -0.5743 -0.6745 -0.4639 vn -0.9022 -0.2221 0.3698 vn -0.7577 -0.3152 0.5714 vn -0.9657 0.0922 0.2427 vn -0.8264 -0.3311 -0.4555 vn -0.7302 -0.6085 -0.3108 vn -0.7012 -0.3416 -0.6258 vn 0.9353 -0.1247 -0.3311 vn 0.9702 -0.2234 -0.0935 vn 0.9292 -0.0293 -0.3685 vn 0.8818 -0.0471 -0.4692 vn 0.8898 0.0919 -0.4469 vn 0.8527 0.0231 -0.5219 vn 0.4725 -0.2812 -0.8353 vn 0.5536 -0.2822 -0.7835 vn 0.1213 -0.4455 -0.8870 vn 0.6067 -0.2637 -0.7499 vn -0.2315 -0.4216 -0.8768 vn -0.1383 -0.9847 0.1058 vn 0.3870 -0.9193 0.0719 vn -0.2035 -0.9709 0.1265 vn 0.1569 -0.8702 -0.4670 vn -0.4179 -0.7235 -0.5495 vn -0.1478 -0.5028 -0.8516 vn -0.0642 -0.9561 -0.2858 vn -0.0634 -0.9837 0.1680 vn -0.1270 -0.7484 -0.6510 vn 0.4835 -0.4974 -0.7203 vn 0.0043 -0.9212 -0.3890 vn -0.0042 -0.9374 -0.3483 vn -0.7844 -0.6028 -0.1460 vn -0.9821 -0.1434 -0.1220 vn -0.5746 -0.2378 -0.7831 vn -0.4565 0.0333 -0.8891 vn -0.7102 -0.3936 -0.5837 vn -0.0863 -0.7981 -0.5963 vn -0.9614 -0.1688 -0.2172 vn -0.8908 0.1399 -0.4323 vn -0.9761 0.0937 -0.1963 vn -0.6844 0.2410 -0.6881 vn 0.0716 -0.8695 -0.4887 vn 0.2061 -0.8990 -0.3864 vn -0.0161 -0.7556 -0.6548 vn -0.2311 -0.7010 -0.6747 vn 0.5832 -0.1790 -0.7924 vn -0.0033 -0.2537 -0.9673 vn 0.5620 0.0083 -0.8271 vn -0.0204 -0.7429 -0.6691 vn 0.6081 -0.7610 -0.2259 vn 0.2335 -0.9491 0.2111 vn 0.1038 -0.9873 -0.1206 vn 0.0058 -0.9774 -0.2115 vn 0.0794 -0.9947 0.0647 vn -0.3543 -0.9219 -0.1571 vn -0.1785 -0.9456 0.2719 vn -0.6234 -0.7167 -0.3125 vn 0.2838 -0.9535 0.1016 vn 0.3033 -0.9491 0.0849 vn 0.5350 -0.5773 0.6169 vn 0.0969 -0.6629 0.7424 vn 0.6618 -0.5900 0.4625 vn 0.3292 -0.9078 0.2600 vn -0.3422 -0.8955 -0.2844 vn 0.7069 -0.5359 -0.4617 vn 0.5520 -0.2250 -0.8029 vn 0.2148 -0.4058 -0.8884 vn -0.0678 -0.3935 -0.9168 vn 0.9401 0.0550 -0.3365 vn 0.9027 -0.3134 0.2948 vn 0.0637 -0.9977 0.0250 vn 0.0521 -0.8787 0.4745 vn 0.0392 -0.2151 0.9758 vn -0.0669 -0.6940 0.7168 vn 0.3099 -0.0990 0.9456 vn -0.7164 0.2889 0.6350 vn -0.6572 0.5958 0.4616 vn -0.6994 0.4496 0.5557 vn -0.4968 0.1515 0.8545 vn -0.5950 -0.1252 0.7939 vn -0.2597 -0.4117 0.8735 vn -0.4631 -0.6906 0.5555 vn -0.4074 -0.7849 0.4669 vn -0.3379 -0.6183 0.7096 vn -0.1986 -0.3314 0.9223 vn -0.0299 -0.2696 0.9625 vn -0.4219 -0.4505 0.7868 vn -0.5635 -0.5905 0.5777 vn -0.3706 -0.2198 0.9024 vn -0.5923 -0.4523 0.6668 vn -0.4303 -0.1598 0.8884 vn -0.5276 -0.6144 0.5866 vn -0.3819 -0.5604 0.7349 vn -0.3996 0.0257 0.9163 vn -0.3824 -0.1709 0.9081 vn -0.3098 0.8336 0.4574 vn -0.3009 0.6634 0.6851 vn -0.3857 0.6388 0.6657 vn -0.2227 0.0944 0.9703 vn -0.3902 0.2239 0.8931 vn -0.1850 -0.0311 0.9822 vn -0.2458 0.4130 0.8770 vn -0.3308 -0.0269 0.9433 vn -0.2077 0.7321 0.6488 vn -0.5983 0.2364 0.7656 vn -0.6284 -0.0387 0.7769 vn -0.7636 0.2551 0.5932 vn -0.8571 0.0651 0.5110 vn -0.7040 -0.1586 0.6922 vn -0.0805 -0.0355 0.9961 vn -0.8348 -0.1670 0.5245 vn -0.3948 -0.2087 0.8947 vn -0.3611 -0.3886 0.8477 vn -0.4383 -0.4487 0.7788 vn -0.6457 0.5274 0.5521 vn -0.3738 -0.1119 0.9207 vn -0.6248 0.4176 0.6597 vn -0.6642 0.0026 0.7476 vn -0.5503 0.2863 0.7844 vn -0.2754 0.6687 0.6906 vn -0.5122 0.3349 0.7909 vn -0.0912 0.9198 0.3817 vn -0.4806 0.6242 0.6160 vn -0.2910 0.1100 0.9504 vn -0.7758 0.2472 0.5806 vn -0.6309 0.0541 0.7740 vn -0.5330 0.5047 0.6791 vn -0.7200 0.3122 0.6198 vn -0.3783 0.0495 0.9244 vn -0.7933 0.0143 0.6087 vn 0.2052 0.1473 0.9676 vn -0.5314 -0.0320 0.8465 vn 0.0325 -0.2472 0.9684 vn -0.1073 -0.3849 0.9167 vn -0.2509 -0.2158 0.9437 vn -0.1047 -0.3377 0.9354 vn -0.6185 -0.0934 0.7802 vn -0.5817 -0.2566 0.7719 vn -0.6420 -0.0805 0.7624 vn -0.4097 -0.2960 0.8628 vn -0.4543 -0.1922 0.8699 vn 0.0067 -0.0581 0.9983 vn -0.0725 0.0024 0.9974 vn -0.1875 0.0335 0.9817 vn -0.3564 -0.0297 0.9339 vn -0.5404 0.1712 0.8238 vn -0.8952 -0.0541 0.4425 vn -0.8989 0.2433 0.3644 vn -0.9815 0.1664 0.0946 vn -0.9888 0.0920 -0.1172 vn -0.6153 -0.7533 0.2322 vn -0.5129 -0.8348 0.2002 vn -0.8938 0.3096 0.3244 vn -0.7817 0.6082 0.1378 vn -0.8587 -0.3779 0.3462 vn -0.8955 -0.3606 0.2608 vn 0.1957 -0.8642 0.4635 vn 0.2174 -0.9261 -0.3084 vn -0.2163 -0.5259 0.8226 vn -0.0949 -0.6499 0.7541 vn 0.5760 -0.4835 0.6591 vn 0.4191 -0.3676 0.8302 vn -0.0573 -0.4935 0.8679 vn 0.4920 -0.3333 0.8043 vn 0.0484 -0.2247 0.9732 vn 0.5464 -0.1351 0.8266 vn -0.2698 0.7876 0.5540 vn 0.3317 0.4730 0.8162 vn -0.1147 0.9155 0.3857 vn 0.0641 0.9727 0.2229 vn -0.0695 0.9677 0.2424 vn -0.2290 0.9652 0.1266 vn -0.5789 0.7909 0.1985 vn -0.4311 0.8901 0.1477 vn -0.3388 0.9406 -0.0229 vn -0.6520 0.7484 0.1219 vn 0.1523 0.9628 0.2233 vn 0.2131 0.9425 0.2574 vn 0.1968 0.8476 0.4929 vn 0.5942 -0.1154 0.7960 vn -0.6223 -0.7615 0.1814 vn -0.0774 -0.9970 -0.0048 vn 0.5722 -0.7525 0.3259 vn -0.6114 -0.7402 0.2798 vn -0.9164 0.3323 0.2231 vn -0.6607 -0.7501 -0.0297 vn -0.6371 -0.7707 -0.0004 vn -0.4661 -0.8842 0.0312 vn -0.2718 -0.9604 -0.0608 vn -0.5117 -0.8578 -0.0481 vn 0.1427 -0.9866 -0.0786 vn 0.6308 -0.7755 -0.0259 vn 0.3605 -0.9327 -0.0068 vn 0.7957 -0.6056 0.0056 vn 0.7473 -0.6392 0.1818 vn 0.6162 -0.7824 0.0900 vn 0.8902 -0.2004 0.4091 vn 0.8188 -0.4935 0.2933 vn 0.6916 0.0456 0.7208 vn 0.6614 -0.1541 0.7340 vn -0.6183 -0.7801 0.0957 vn -0.9132 -0.3309 0.2378 vn -0.8682 -0.4169 0.2691 vn -0.3081 0.8990 0.3112 vn -0.1773 0.9800 0.0904 vn 0.0284 0.9842 0.1746 vn -0.0687 0.9912 0.1131 vn -0.1147 0.9666 0.2292 vn -0.6859 -0.7239 0.0744 vn -0.6917 -0.7216 0.0304 vn -0.1334 -0.9884 0.0729 vn -0.4214 -0.8985 0.1231 vn -0.0631 -0.9891 0.1332 vn 0.2468 -0.9668 0.0665 vn 0.8231 -0.3945 0.4085 vn 0.5967 -0.7340 0.3243 vn 0.2964 0.9143 0.2760 vn 0.2001 0.9341 0.2958 vn 0.0175 0.9907 0.1349 vn -0.8328 0.3759 0.4063 vn -0.6506 -0.6956 0.3046 vn -0.6110 -0.7746 0.1636 vn -0.7043 -0.6920 0.1583 vn -0.7251 -0.6733 0.1445 vn -0.5206 -0.8526 0.0454 vn 0.1461 -0.9278 0.3433 vn -0.5492 -0.8287 0.1079 vn -0.1671 -0.9853 0.0345 vn 0.5405 -0.5138 0.6662 vn 0.7427 -0.1174 0.6593 vn -0.5989 0.6413 0.4796 vn -0.6741 0.6349 0.3776 vn -0.6945 0.6668 0.2701 vn -0.8590 0.3843 0.3383 vn 0.1355 0.9508 0.2787 vn 0.4293 0.8067 0.4061 vn 0.4383 0.7752 0.4549 vn 0.5460 0.4382 0.7140 vn 0.6607 0.1973 0.7242 vn 0.7349 -0.0488 0.6764 vn 0.5785 -0.1116 0.8080 vn 0.7149 0.0110 0.6992 vn 0.6436 -0.0818 0.7610 vn 0.7146 0.0271 0.6991 vn 0.4184 -0.5458 0.7259 vn -0.7190 -0.6897 0.0854 vn -0.7152 -0.6989 0.0085 vn -0.8122 -0.5813 -0.0493 vn -0.7208 -0.6931 -0.0001 vn -0.7641 -0.5921 0.2561 vn -0.5640 -0.8005 0.2026 vn -0.8793 -0.4722 0.0627 vn -0.5871 -0.7675 0.2574 vn -0.7634 -0.3549 0.5398 vn -0.7374 0.3583 0.5727 vn -0.6278 0.6587 0.4147 vn -0.5259 0.7124 0.4646 vn -0.6882 0.3529 0.6339 vn -0.4916 0.7279 0.4781 vn -0.3261 0.8925 0.3116 vn -0.1782 0.4936 0.8512 vn 0.2491 0.8290 0.5006 vn 0.7583 0.2522 0.6011 vn -0.1127 -0.6854 0.7194 vn -0.4246 -0.6756 0.6027 vn -0.7571 -0.5413 0.3658 vn -0.9222 -0.3728 0.1026 vn -0.8284 -0.2889 0.4799 vn -0.6559 -0.6076 0.4478 vn -0.5569 0.3460 0.7551 vn 0.0240 0.7359 0.6767 vn -0.2257 0.8157 0.5326 vn -0.2870 0.4170 0.8624 vn 0.3918 0.3659 0.8441 vn 0.7339 0.0514 0.6773 vn 0.7297 0.1380 0.6697 vn 0.6952 0.1174 0.7092 vn -0.4038 -0.3098 0.8608 vn -0.6592 -0.2397 0.7127 vn -0.4756 -0.1828 0.8605 vn 0.1630 0.2192 0.9620 vn 0.3831 -0.0676 0.9212 vn 0.5137 0.4247 0.7455 vn 0.4591 -0.1337 0.8782 vn -0.3190 -0.1689 0.9326 vn -0.5969 -0.0046 0.8023 vn -0.4151 0.0699 0.9071 vn -0.4647 0.1842 0.8661 vn -0.1818 0.5162 0.8370 vn -0.2204 0.8266 0.5179 vn -0.5668 0.3275 0.7560 vn -0.1038 0.3332 0.9371 vn -0.1872 0.6380 0.7470 vn -0.3519 0.8580 0.3742 vn -0.6268 0.0166 0.7790 vn -0.2943 0.1849 0.9377 vn -0.1670 -0.5443 0.8221 vn -0.3664 0.1892 0.9110 vn -0.3467 0.0033 0.9380 vn -0.6588 -0.1109 0.7441 vn -0.4068 0.2579 0.8764 vn -0.3167 -0.1574 0.9354 vn -0.0824 -0.7614 0.6431 vn -0.3152 -0.7655 0.5610 vn -0.3279 -0.2378 0.9143 vn -0.4576 -0.4994 0.7356 vn -0.5193 0.2110 0.8282 vn -0.7505 -0.1455 0.6447 vn -0.6324 -0.6439 0.4306 vn -0.7539 0.0799 0.6521 vn -0.9171 0.0122 0.3985 vn -0.7613 -0.6176 0.1973 vn -0.5161 0.1573 0.8419 vn -0.5635 0.1324 0.8155 vn -0.5257 0.2434 0.8151 vn -0.8182 0.2848 0.4995 vn -0.9503 0.1855 0.2501 vn -0.3476 0.0749 0.9346 vn -0.4442 0.0470 0.8947 vn -0.1322 0.1690 0.9767 vn -0.3036 0.1662 0.9382 vn -0.0358 0.1655 0.9856 vn 0.0324 0.0587 0.9978 vn 0.0639 -0.0616 0.9961 vn -0.6551 0.1504 0.7405 vn -0.6814 0.2718 0.6796 vn -0.7655 0.1578 0.6238 vn -0.8945 0.0882 0.4382 vn -0.9684 -0.0199 0.2488 vn -0.9906 0.1370 0.0048 vn -0.9738 -0.2272 0.0091 vn -0.9444 0.0709 -0.3212 vn -0.9660 0.1442 -0.2147 vn -0.8248 0.0435 -0.5637 vn -0.8665 -0.1491 -0.4764 vn -0.1169 0.2396 0.9638 vn -0.9101 -0.3228 0.2599 vn -0.9446 -0.2697 0.1872 vn -0.9502 -0.3065 -0.0569 vn -0.8376 -0.3405 0.4271 vn -0.9227 -0.1946 0.3329 vn -0.9021 -0.2786 0.3296 vn -0.9480 -0.1792 0.2631 vn -0.9707 -0.1576 0.1813 vn -0.9577 -0.2261 0.1783 vn -0.9841 -0.1761 0.0223 vn -0.9518 -0.2085 0.2249 vn -0.9936 -0.1109 0.0216 vn -0.9872 -0.0948 -0.1284 vn -0.9582 -0.1052 -0.2662 vn -0.9173 -0.1410 -0.3723 vn -0.9691 -0.1665 -0.1822 vn -0.9095 -0.2504 -0.3318 vn -0.9259 -0.2506 -0.2828 vn -0.4910 0.2517 0.8340 vn -0.4942 0.1372 0.8584 vn -0.5874 0.1641 0.7924 vn -0.7017 0.1586 0.6946 vn -0.7919 0.1708 0.5862 vn -0.9231 0.0224 0.3840 vn -0.8812 0.0873 0.4646 vn -0.9213 -0.1947 0.3365 vn -0.9309 -0.1498 0.3332 vn -0.9423 -0.0451 0.3318 vn -0.9624 -0.1183 0.2447 vn -0.9637 -0.0632 0.2595 vn -0.9889 -0.0658 0.1330 vn -0.9837 0.0177 0.1788 vn -0.8640 -0.1531 -0.4796 vn -0.8720 -0.2731 -0.4064 vn -0.7967 -0.2106 -0.5666 vn -0.7054 -0.2236 -0.6726 vn -0.7256 -0.3883 -0.5681 vn -0.6789 -0.2567 -0.6879 vn -0.6201 -0.1103 -0.7767 vn -0.6250 -0.3467 -0.6994 vn -0.6563 -0.4265 -0.6224 vn -0.4981 -0.2238 -0.8377 vn -0.5159 0.0042 -0.8567 vn -0.4308 -0.0158 -0.9023 vn -0.3268 -0.1284 -0.9363 vn -0.2391 -0.1381 -0.9611 vn -0.8436 -0.0494 -0.5347 vn -0.9007 -0.0351 -0.4331 vn -0.6647 -0.0983 -0.7406 vn -0.7779 -0.1034 -0.6198 vn -0.6758 0.0328 -0.7364 vn -0.5356 0.0517 -0.8429 vn -0.4390 0.0993 -0.8930 vn -0.2060 0.0448 -0.9775 vn -0.3244 0.1134 -0.9391 vn -0.6948 -0.1258 0.7081 vn -0.5152 -0.3315 0.7904 vn -0.4730 -0.3570 0.8055 vn -0.3726 -0.3908 0.8417 vn -0.4430 -0.4616 0.7685 vn -0.7051 0.0798 0.7047 vn -0.5225 0.1235 0.8437 vn -0.3698 -0.3117 0.8752 vn -0.3977 -0.2023 0.8949 vn -0.6630 -0.0470 0.7471 vn -0.5814 -0.1770 0.7941 vn -0.7903 0.1795 0.5858 vn -0.8990 0.0669 0.4328 vn -0.7105 -0.1675 0.6835 vn -0.8301 0.1055 0.5475 vn -0.5401 -0.2989 0.7868 vn -0.2297 -0.3832 0.8947 vn -0.3647 -0.3570 0.8599 vn -0.6449 -0.2834 0.7097 vn -0.2387 -0.3767 0.8950 vn -0.1563 -0.3316 0.9304 vn -0.1169 -0.4216 0.8992 vn -0.7420 -0.2562 0.6195 vn -0.2974 -0.4630 0.8350 vn -0.1796 -0.6118 0.7703 vn -0.2739 -0.6079 0.7452 vn -0.5564 -0.5569 0.6166 vn -0.9414 -0.0305 0.3360 vn -0.8677 0.0062 0.4971 vn -0.8138 0.4367 0.3835 vn -0.9490 -0.2408 0.2036 vn -0.9482 -0.3174 -0.0104 vn -0.8119 -0.5792 -0.0729 vn -0.9447 0.2897 0.1538 vn -0.8421 -0.3415 0.4174 vn -0.8616 -0.1299 0.4907 vn -0.7315 -0.6749 0.0975 vn -0.7027 -0.5564 0.4434 vn -0.5306 -0.7881 0.3121 vn -0.2480 -0.9204 0.3022 vn -0.1579 -0.8305 0.5342 vn -0.2976 -0.8729 0.3867 vn -0.4416 -0.3099 0.8420 vn -0.7668 0.1971 0.6108 vn -0.8737 -0.1888 0.4483 vn -0.4793 0.1685 0.8613 vn -0.4222 0.2740 0.8641 vn -0.8152 0.1695 0.5538 vn -0.9057 0.1431 0.3990 vn -0.7714 -0.0455 0.6347 vn -0.6410 -0.2343 0.7309 vn -0.5237 -0.6121 0.5925 vn -0.6582 -0.7117 0.2455 vn -0.3346 -0.9310 -0.1460 vn -0.2866 -0.9563 0.0582 vn -0.5471 -0.7917 0.2719 vn -0.8185 -0.2279 0.5273 vn -0.1958 -0.9806 0.0078 vn -0.6718 -0.7221 0.1649 vn -0.1479 -0.9888 0.0175 vn -0.1958 -0.9745 -0.1093 vn -0.9394 -0.1634 0.3014 vn -0.9064 -0.4213 -0.0315 vn -0.7979 -0.2428 0.5517 vn -0.7765 -0.2322 0.5858 vn -0.9271 0.1124 0.3576 vn -0.9336 -0.1581 0.3215 vn -0.8626 -0.0723 0.5007 vn -0.9990 0.0357 -0.0255 vn -0.9084 0.0747 0.4115 vn -0.8571 0.3968 0.3287 vn -0.5852 0.7900 0.1830 vn -0.8628 0.3670 0.3476 vn -0.0039 0.9818 -0.1898 vn -0.1200 0.9923 0.0304 vn -0.9612 -0.2394 -0.1368 vn -0.9359 -0.2321 -0.2651 vn -0.7216 -0.6142 -0.3196 vn -0.7546 -0.5436 -0.3676 vn -0.2685 -0.7902 -0.5509 vn -0.7224 -0.6650 -0.1894 vn -0.3275 -0.8359 -0.4404 vn -0.6940 -0.6958 0.1850 vn -0.0084 -0.9157 -0.4018 vn -0.9690 -0.2418 0.0497 vn -0.5744 -0.7630 0.2965 vn 0.1743 -0.9845 0.0213 vn 0.0234 -0.8843 0.4664 vn -0.3821 -0.7740 0.5050 vn -0.6005 -0.7079 0.3719 vn -0.5589 -0.4915 0.6679 vn -0.2490 -0.6893 0.6804 vn -0.9978 0.0106 -0.0659 vn -0.9839 -0.0574 -0.1692 vn -0.8420 -0.3758 0.3869 vn -0.8212 -0.3906 0.4160 vn -0.8537 -0.2999 0.4257 vn -0.8334 -0.3347 0.4399 vn -0.9093 -0.2908 0.2977 vn -0.9198 -0.2887 0.2657 vn -0.9713 -0.1617 0.1746 vn -0.8686 0.1042 -0.4844 vn -0.7290 0.1395 -0.6701 vn -0.9676 0.2092 -0.1416 vn -0.8095 0.5698 -0.1414 vn -0.5957 0.7997 -0.0748 vn 0.5984 0.6947 -0.3991 vn 0.6090 0.7443 -0.2741 vn -0.1342 0.7301 -0.6700 vn -0.3713 0.3987 -0.8386 vn -0.2190 0.1749 -0.9599 vn -0.9179 -0.3208 0.2334 vn -0.8929 0.1724 0.4159 vn -0.5193 0.0575 -0.8527 vn -0.7808 0.0978 -0.6171 vn -0.8622 -0.0852 -0.4993 vn -0.9092 -0.2933 0.2955 vn -0.7559 -0.4732 0.4524 vn -0.8026 -0.3566 0.4783 vn -0.9232 -0.0585 0.3798 vn -0.6403 -0.0172 0.7679 vn -0.8352 0.4173 0.3583 vn -0.2731 0.0621 0.9600 vn -0.7767 -0.3769 0.5046 vn -0.6533 -0.1862 0.7339 vn -0.7050 -0.4726 0.5288 vn -0.6600 -0.5206 0.5416 vn -0.6997 -0.6800 0.2190 vn -0.9782 -0.2055 -0.0316 vn -0.3584 -0.0476 -0.9324 vn -0.4107 -0.3186 -0.8543 vn -0.2230 0.0042 -0.9748 vn -0.0213 0.0854 -0.9961 vn -0.5923 -0.3322 -0.7340 vn -0.4477 -0.8926 0.0539 vn -0.5012 -0.8463 -0.1803 vn -0.8316 -0.4060 -0.3791 vn -0.6910 -0.6853 0.2300 vn -0.6559 -0.5075 0.5588 vn -0.1887 0.0872 0.9782 vn -0.8654 0.4829 -0.1339 vn -0.1342 0.9904 0.0323 vn -0.5723 0.7928 0.2096 vn -0.4943 0.8600 -0.1266 vn -0.8361 0.5373 -0.1105 vn 0.6541 0.6486 -0.3892 vn -0.3695 -0.7441 -0.5566 vn -0.4878 -0.7769 -0.3982 vn -0.2876 -0.6664 -0.6879 vn -0.7260 -0.6782 -0.1139 vn -0.5310 -0.6017 -0.5967 vn -0.6634 -0.6546 -0.3625 vn -0.8983 -0.4392 0.0137 vn -0.6348 -0.6691 -0.3864 vn -0.8592 -0.5095 0.0455 vn -0.9778 -0.2085 -0.0199 vn -0.7549 -0.6078 0.2461 vn -0.6405 -0.6162 0.4583 vn 0.5412 0.8216 -0.1794 vn 0.8664 0.4829 -0.1271 vn 0.7595 0.6500 0.0262 vn 0.5288 0.7155 0.4566 vn 0.0042 0.7266 0.6871 vn -0.5656 0.0644 0.8222 vn -0.2927 0.3792 0.8778 vn -0.4862 -0.6091 0.6265 vn -0.5539 -0.5740 0.6031 vn -0.7610 -0.6128 0.2130 vn -0.5628 -0.7381 0.3720 vn -0.4677 -0.8662 0.1762 vn -0.5311 -0.8467 0.0300 vn -0.2347 -0.5544 0.7985 vn -0.4390 -0.7526 0.4907 vn 0.1957 0.5429 0.8167 vn 0.2615 0.0942 0.9606 vn -0.1011 0.6125 0.7840 vn -0.5581 0.2321 0.7967 vn -0.1977 0.0347 0.9796 vn 0.8257 0.0397 0.5627 vn 0.6890 -0.1098 0.7163 vn 0.3726 -0.7391 0.5612 vn 0.3372 -0.5274 0.7798 vn -0.3482 -0.2048 0.9148 vn 0.0941 -0.6362 0.7658 vn -0.1062 0.4403 0.8916 vn -0.1935 0.3044 0.9327 vn -0.2324 0.4457 0.8645 vn -0.3452 0.2948 0.8910 vn -0.3930 0.4772 0.7860 vn -0.5904 0.4120 0.6941 vn -0.6944 0.2672 0.6681 vn -0.1225 0.6103 0.7826 vn -0.2278 0.5735 0.7869 vn -0.3602 0.6506 0.6686 vn -0.5657 0.5503 0.6142 vn -0.4909 0.6463 0.5842 vn -0.7321 0.4018 0.5500 vn -0.5918 0.6477 0.4799 vn -0.6902 0.5704 0.4453 vn -0.2305 0.6890 0.6871 vn -0.3036 0.7529 0.5839 vn -0.4252 0.7345 0.5289 vn -0.1797 0.7979 0.5754 vn -0.2533 0.8317 0.4941 vn -0.5159 0.7504 0.4132 vn -0.6345 0.6762 0.3743 vn -0.8350 0.2289 0.5003 vn -0.8216 0.3446 0.4542 vn -0.9038 0.2049 0.3757 vn -0.9382 0.1378 0.3176 vn -0.9656 0.0558 0.2541 vn -0.9644 0.1677 0.2044 vn -0.9879 0.1276 0.0883 vn -0.9976 0.0258 0.0646 vn -0.9876 0.1381 -0.0751 vn -0.9512 0.0676 -0.3011 vn -0.9473 -0.0267 -0.3191 vn -0.9794 -0.0231 -0.2004 vn -0.9960 0.0263 -0.0852 vn -0.9635 0.1709 -0.2060 vn -0.8508 0.0573 -0.5223 vn -0.7487 0.0657 -0.6597 vn -0.3806 0.0900 -0.9204 vn -0.3133 0.1523 -0.9374 vn -0.2227 0.1772 -0.9586 vn -0.1404 0.2178 -0.9658 vn -0.8982 0.3334 0.2865 vn -0.8657 0.3238 0.3818 vn -0.8197 0.4449 0.3608 vn -0.7703 0.4676 0.4336 vn -0.9658 0.2433 0.0896 vn -0.9275 0.3153 0.2009 vn -0.9295 0.3549 0.1004 vn -0.9295 0.3689 0.0009 vn -0.9650 0.2572 -0.0506 vn -0.8683 0.1639 -0.4681 vn -0.9276 0.2283 -0.2957 vn -0.7627 0.2227 -0.6072 vn -0.5891 0.2212 -0.7772 vn -0.6761 0.2217 -0.7027 vn -0.4689 0.1872 -0.8632 vn -0.5981 0.0350 -0.8006 vn -0.2287 0.1058 -0.9677 vn -0.1905 0.1301 -0.9730 vn -0.0734 0.1220 -0.9898 vn -0.7337 0.5946 0.3290 vn -0.8650 0.4817 0.1404 vn -0.8885 0.4562 0.0503 vn -0.8544 0.3477 -0.3860 vn -0.8430 0.4837 -0.2353 vn -0.7675 0.4388 -0.4673 vn -0.6468 0.4452 -0.6193 vn -0.1176 0.1944 -0.9738 vn -0.2727 0.2201 -0.9366 vn -0.1684 0.0869 -0.9819 vn -0.7510 0.6195 0.2283 vn -0.6764 0.7092 0.1988 vn -0.8375 0.4907 0.2406 vn -0.7867 0.6056 0.1195 vn -0.8114 0.5843 0.0158 vn -0.7510 0.6503 -0.1144 vn -0.8656 0.4951 -0.0750 vn -0.7790 0.6265 -0.0263 vn -0.7565 0.6090 -0.2383 vn -0.6809 0.5876 -0.4372 vn -0.6658 0.7035 -0.2487 vn -0.5993 0.6506 -0.4664 vn -0.4848 0.5699 -0.6634 vn -0.4978 0.4123 -0.7630 vn -0.3264 0.3131 -0.8919 vn -0.2159 0.4486 -0.8672 vn -0.1866 0.3601 -0.9141 vn -0.3462 0.0978 -0.9330 vn -0.1578 0.3201 -0.9342 vn 0.1053 0.4707 -0.8760 vn -0.0634 0.2752 -0.9593 vn -0.0154 0.3067 -0.9517 vn -0.1561 0.4540 -0.8772 vn 0.2276 0.5335 -0.8146 vn -0.0927 0.3864 -0.9177 vn 0.0779 0.6371 -0.7669 vn -0.0560 0.5033 -0.8623 vn -0.2222 0.6526 -0.7244 vn -0.2760 0.5694 -0.7743 vn -0.3882 0.7450 -0.5424 vn -0.4683 0.6342 -0.6152 vn -0.4642 0.7193 -0.5168 vn -0.4653 0.7619 -0.4505 vn -0.5947 0.7464 -0.2986 vn -0.6309 0.7610 -0.1510 vn -0.5819 0.8060 -0.1083 vn -0.5300 0.8145 -0.2360 vn -0.6885 0.7214 -0.0747 vn -0.6120 0.7888 -0.0580 vn -0.7076 0.7057 -0.0364 vn -0.5906 0.8064 0.0310 vn -0.7019 0.7117 0.0284 vn -0.6494 0.7587 0.0520 vn -0.6946 0.7114 0.1071 vn -0.1172 0.7807 -0.6138 vn -0.1412 0.7013 -0.6987 vn -0.2331 0.7508 -0.6181 vn -0.2351 0.8327 -0.5014 vn -0.3383 0.8129 -0.4741 vn -0.2851 0.8876 -0.3618 vn -0.4011 0.8416 -0.3617 vn -0.5030 0.8095 -0.3029 vn -0.3581 0.9082 -0.2167 vn -0.4390 0.8649 -0.2433 vn -0.4930 0.8603 -0.1300 vn -0.4325 0.8986 -0.0744 vn -0.5171 0.8558 -0.0170 vn -0.6136 0.7868 0.0661 vn -0.5225 0.8507 0.0566 vn -0.4403 0.8969 0.0409 vn -0.5074 0.8443 0.1724 vn -0.4226 0.8954 0.1402 vn -0.5361 0.8165 0.2145 vn -0.1457 0.8936 0.4245 vn -0.2824 0.9076 0.3106 vn -0.5301 0.8001 0.2809 vn -0.3757 0.8069 0.4558 vn -0.4221 0.8916 0.1643 vn -0.4728 0.8701 0.1390 vn -0.1665 0.8727 -0.4589 vn -0.0821 0.9327 -0.3511 vn -0.1838 0.9488 -0.2569 vn -0.2808 0.9508 -0.1308 vn -0.3603 0.9320 -0.0401 vn -0.2786 0.9600 -0.0268 vn -0.3348 0.9416 0.0359 vn -0.3406 0.9317 0.1259 vn -0.3645 0.9228 0.1246 vn -0.3013 0.9439 0.1354 vn -0.2421 0.9678 0.0690 vn -0.1951 0.9495 0.2457 vn -0.1661 0.9717 0.1682 vn -0.1473 0.9843 -0.0971 vn -0.1338 0.9909 -0.0152 vn -0.0947 0.9899 0.1059 vn -0.1144 0.9921 0.0510 vn -0.9108 -0.3894 0.1371 vn -0.9576 -0.2377 0.1628 vn -0.8042 -0.4976 0.3252 vn -0.9806 -0.1579 0.1164 vn -0.9846 -0.1718 -0.0335 vn -0.9467 -0.3019 -0.1125 vn -0.7666 -0.3578 -0.5332 vn -0.6675 -0.4184 -0.6159 vn -0.3933 -0.4226 -0.8165 vn -0.4587 -0.4830 -0.7458 vn -0.2857 -0.4132 -0.8647 vn -0.8865 -0.2768 -0.3707 vn -0.7177 -0.3449 -0.6049 vn -0.5690 -0.4655 -0.6779 vn -0.5492 -0.4689 -0.6917 vn -0.4983 -0.5808 -0.6437 vn -0.5105 -0.6037 -0.6124 vn -0.4139 -0.5949 -0.6891 vn -0.3205 -0.6485 -0.6905 vn -0.1730 -0.4571 -0.8724 vn -0.8097 -0.5732 -0.1254 vn -0.8954 -0.3261 -0.3032 vn -0.9154 -0.1750 -0.3624 vn -0.8997 -0.3674 -0.2358 vn -0.8392 -0.3154 -0.4431 vn -0.9187 -0.3030 -0.2533 vn -0.9023 -0.2149 -0.3737 vn -0.8116 -0.2973 -0.5029 vn -0.7105 -0.3220 -0.6257 vn -0.6222 -0.3984 -0.6739 vn -0.4366 -0.5657 -0.6996 vn -0.4212 -0.6204 -0.6616 vn -0.3856 -0.6815 -0.6220 vn -0.8307 -0.5506 -0.0828 vn -0.9499 -0.2403 0.1998 vn -0.3949 -0.2872 0.8727 vn -0.7341 -0.5625 0.3803 vn -0.7027 -0.2160 0.6779 vn -0.9264 -0.2800 -0.2520 vn -0.9630 -0.2694 0.0030 vn -0.8136 -0.3908 -0.4304 vn -0.7793 -0.4280 -0.4577 vn -0.9468 -0.2057 -0.2476 vn -0.9516 -0.2300 -0.2039 vn -0.6039 -0.1109 0.7893 vn -0.9093 -0.3604 -0.2083 vn -0.8128 -0.4637 -0.3525 vn -0.7779 -0.1720 0.6044 vn -0.5926 -0.2059 0.7787 vn -0.7842 -0.3472 0.5143 vn -0.9430 -0.3046 0.1343 vn -0.5356 -0.1391 0.8329 vn 0.2352 -0.7928 0.5622 vn -0.0455 -0.5388 0.8412 vn -0.5814 -0.0120 0.8135 vn -0.2638 -0.3299 0.9064 vn -0.3495 -0.2420 0.9052 vn -0.4293 -0.1425 0.8918 vn 0.0242 -0.3431 0.9390 vn -0.3586 -0.3335 0.8719 vn -0.3429 -0.2165 0.9141 vn -0.9533 -0.2304 0.1951 vn -0.4344 -0.8936 0.1130 vn 0.3123 -0.9468 -0.0777 vn -0.0887 -0.7687 -0.6335 vn 0.0340 -0.9040 -0.4261 vn 0.1784 -0.9109 -0.3722 vn 0.0082 -0.9996 0.0282 vn -0.5494 -0.8180 -0.1705 vn -0.2232 -0.8746 -0.4304 vn -0.3545 -0.9344 -0.0344 vn 0.1396 -0.9061 -0.3994 vn -0.5444 -0.7496 -0.3763 vn -0.3157 -0.8124 -0.4902 vn -0.2352 -0.9001 -0.3668 vn -0.1371 -0.9885 -0.0639 vn -0.0117 -0.9995 -0.0306 vn 0.1315 -0.8611 -0.4912 vn -0.7364 -0.6594 0.1512 vn 0.4338 -0.5936 -0.6778 vn 0.4131 -0.6329 -0.6548 vn 0.7516 -0.1707 -0.6371 vn 0.7681 -0.0717 -0.6363 vn 0.6382 -0.1159 -0.7611 vn 0.3194 -0.7344 -0.5988 vn 0.4639 -0.2268 -0.8564 vn 0.1517 -0.4494 -0.8804 vn 0.0078 -0.7062 -0.7079 vn 0.7833 -0.6044 -0.1453 vn 0.7650 -0.4696 -0.4407 vn 0.7215 -0.6846 0.1032 vn -0.3458 -0.9334 0.0960 vn -0.1380 -0.9856 0.0979 vn 0.5025 -0.7464 0.4364 vn -0.6706 -0.7401 -0.0493 vn 0.3711 -0.7720 0.5160 vn 0.6349 -0.6242 -0.4553 vn 0.2594 -0.8522 -0.4544 vn 0.3473 -0.8079 -0.4762 vn 0.3674 -0.6948 -0.6182 vn 0.3992 -0.7463 -0.5326 vn 0.4731 -0.7211 -0.5061 vn 0.5863 -0.6325 -0.5061 vn 0.6941 -0.6308 -0.3468 vn 0.6591 -0.2249 -0.7176 vn 0.8137 -0.3776 -0.4419 vn 0.6132 -0.2959 -0.7324 vn 0.6670 -0.5075 -0.5455 vn 0.7084 -0.3382 -0.6196 vn 0.5311 -0.6823 -0.5024 vn 0.7070 -0.5467 -0.4487 vn 0.7220 -0.6426 -0.2563 vn 0.8268 -0.3430 -0.4457 vn 0.2314 -0.9208 -0.3140 vn -0.9714 0.0848 0.2216 vn -0.9270 -0.2916 0.2357 vn -0.5014 -0.8616 -0.0793 vn -0.4703 -0.6868 -0.5542 vn -0.8477 -0.4778 -0.2305 vn -0.9866 -0.1425 0.0793 vn -0.9747 0.1062 -0.1968 vn -0.9783 -0.0115 -0.2068 vn -0.6296 -0.7242 -0.2813 vn -0.7140 -0.6212 -0.3230 vn -0.9214 -0.3808 0.0778 vn -0.9938 -0.0127 -0.1101 vn -0.7636 -0.0541 -0.6434 vn 0.1938 -0.3346 -0.9222 vn -0.2758 -0.3778 -0.8839 vn -0.0576 -0.3454 -0.9367 vn 0.0983 -0.0527 -0.9938 vn 0.4091 -0.0657 -0.9101 vn 0.0135 0.0450 -0.9989 vn 0.1833 -0.0180 -0.9829 vn -0.9553 0.0215 -0.2950 vn -0.8735 -0.2324 -0.4278 vn -0.9419 -0.2056 -0.2657 vn -0.4712 -0.1998 -0.8591 vn -0.2025 -0.0797 -0.9760 vn -0.2163 0.0128 -0.9762 vn -0.3994 -0.0776 -0.9135 vn -0.2749 -0.1902 -0.9425 vn -0.9441 -0.0770 -0.3205 vn -0.8732 -0.0550 -0.4843 vn -0.5729 -0.1321 -0.8089 vn -0.6908 0.0508 -0.7213 vn -0.9210 -0.3022 -0.2458 vn -0.9345 -0.0800 -0.3468 vn -0.8117 -0.3493 -0.4681 vn -0.6193 -0.2033 -0.7584 vn -0.4446 -0.5237 -0.7267 vn 0.4087 0.0803 -0.9091 vn -0.0061 -0.3868 -0.9221 vn 0.1590 -0.0820 -0.9839 vn -0.1709 -0.5870 -0.7913 vn -0.4718 -0.5953 -0.6504 vn 0.4034 0.1561 -0.9016 vn 0.1615 0.3462 -0.9242 vn 0.0781 0.1029 -0.9916 vn 0.8067 -0.0440 -0.5893 vn 0.9399 0.1229 -0.3185 vn 0.8924 0.1513 -0.4252 vn 0.8644 -0.0182 -0.5025 vn 0.8717 0.2090 -0.4433 vn 0.8432 0.2396 -0.4812 vn 0.9971 0.0757 -0.0097 vn 0.9540 -0.0745 -0.2905 vn 0.8857 0.3671 -0.2843 vn 0.8764 0.3698 -0.3085 vn 0.7282 0.3057 -0.6134 vn 0.3890 0.5344 -0.7504 vn -0.3130 0.5413 -0.7804 vn 0.0347 -0.8258 -0.5629 vn 0.2524 -0.8347 -0.4894 vn 0.4787 -0.6137 -0.6279 vn 0.3823 -0.7921 -0.4758 vn 0.1309 -0.5532 -0.8227 vn 0.7594 -0.4820 -0.4370 vn 0.8348 -0.3709 -0.4069 vn 0.8423 -0.4964 0.2100 vn 0.9480 -0.2150 0.2348 vn 0.8347 -0.5424 0.0948 vn 0.5946 -0.6764 -0.4346 vn 0.9735 0.0237 0.2273 vn 0.1512 -0.9767 -0.1520 vn 0.6125 -0.7735 -0.1629 vn 0.5448 -0.6876 -0.4801 vn 0.3704 -0.8057 -0.4622 vn 0.1609 -0.9113 -0.3791 vn 0.6720 -0.6247 -0.3978 vn -0.4751 -0.3242 0.8180 vn -0.7672 -0.5338 -0.3555 vn -0.4970 -0.7500 -0.4365 vn -0.6670 -0.6620 -0.3420 vn -0.7411 -0.3549 -0.5699 vn -0.5820 -0.5100 -0.6334 vn -0.6379 -0.5802 -0.5064 vn -0.4289 -0.7093 -0.5594 vn -0.0516 -0.8669 -0.4958 vn -0.6087 -0.4506 -0.6530 vn -0.2633 -0.7052 -0.6583 vn -0.0104 -0.8174 -0.5760 vn -0.5090 -0.5689 -0.6460 vn -0.5119 -0.4602 -0.7254 vn -0.4351 -0.5596 -0.7054 vn -0.2658 -0.6223 -0.7363 vn -0.1114 -0.6676 -0.7362 vn -0.2007 -0.7233 -0.6607 vn 0.0469 -0.8785 -0.4755 vn -0.1916 -0.8000 -0.5686 vn -0.1242 -0.7755 -0.6190 vn -0.3007 -0.7191 -0.6265 vn -0.4243 -0.7062 -0.5668 vn -0.4196 -0.7152 -0.5589 vn -0.5208 -0.5816 -0.6249 vn -0.3618 -0.7510 -0.5523 vn -0.2642 -0.8075 -0.5274 vn -0.3202 -0.7482 -0.5811 vn -0.4171 -0.6811 -0.6017 vn -0.1159 -0.8730 -0.4737 vn 0.1482 -0.9223 -0.3569 vn -0.2235 -0.8712 -0.4372 vn -0.3870 -0.8309 -0.3997 vn -0.2045 -0.9716 -0.1194 vn -0.2732 -0.8704 -0.4096 vn -0.1168 -0.9132 -0.3903 vn 0.0239 -0.9836 -0.1787 vn 0.2295 -0.9270 -0.2967 vn 0.0744 -0.9189 -0.3874 vn -0.1286 -0.9652 -0.2277 vn -0.0201 -0.9996 -0.0194 vn 0.1283 -0.9818 -0.1397 vn -0.0780 -0.8921 -0.4451 vn -0.6686 -0.7313 -0.1346 vn -0.8584 -0.4665 0.2136 vn -0.8463 -0.5249 -0.0914 vn -0.3796 -0.7533 0.5370 vn -0.7173 -0.6750 0.1727 vn -0.2595 -0.4348 0.8623 vn 0.2774 -0.9332 -0.2283 vn 0.4393 -0.8382 -0.3233 vn -0.9467 -0.3072 -0.0970 vn -0.5999 -0.7757 0.1960 vn -0.6379 -0.7175 0.2798 vn 0.0442 -0.2363 0.9707 vn 0.0975 -0.9157 -0.3899 vn -0.2972 -0.9089 -0.2926 vn 0.5894 -0.7896 -0.1707 vn 0.4018 -0.8225 -0.4025 vn 0.1801 -0.9799 0.0856 vn -0.4001 -0.9163 0.0179 vn 0.4678 -0.3107 0.8275 vn 0.4378 -0.3671 0.8207 vn 0.2902 -0.7461 0.5992 vn 0.6184 -0.7583 -0.2062 vn 0.4026 -0.8575 -0.3202 vn 0.5573 -0.8299 0.0253 vn 0.1144 -0.9820 0.1503 vn 0.0246 -0.9988 0.0413 vn 0.1363 -0.9907 0.0048 vn 0.0299 -0.9973 0.0669 vn 0.0772 -0.9512 0.2986 vn -0.0230 -0.9663 -0.2563 vn 0.2167 -0.6440 0.7337 vn 0.6820 -0.4137 0.6031 vn 0.7829 -0.4255 0.4539 vn 0.7817 -0.6104 0.1279 vn 0.4359 -0.8937 -0.1066 vn 0.6627 -0.7002 -0.2655 vn 0.5962 -0.7963 -0.1017 vn 0.1313 -0.9421 0.3085 vn 0.5962 -0.6218 0.5078 vn -0.0105 -0.8572 -0.5148 vn -0.6304 -0.7492 -0.2034 vn 0.9223 -0.3860 -0.0185 vn 0.7780 -0.6280 0.0170 vn 0.8494 -0.4467 0.2810 vn -0.5496 -0.6965 0.4614 vn -0.8525 -0.4587 0.2508 vn -0.3958 -0.4032 0.8251 vn -0.0909 -0.5594 0.8239 vn -0.3210 -0.3016 0.8978 vn -0.6094 -0.0632 0.7904 vn -0.1891 -0.9560 0.2244 vn 0.3341 -0.8891 0.3128 vn -0.0374 -0.9146 0.4025 vn -0.0190 -0.9692 0.2456 vn 0.2897 -0.8723 0.3939 vn 0.2297 -0.9706 0.0718 vn 0.2945 -0.9068 0.3016 vn 0.2761 -0.9312 0.2381 vn 0.4592 -0.8544 0.2432 vn 0.7121 -0.3975 0.5787 vn -0.5337 -0.5811 0.6144 vn 0.0284 -0.5902 0.8068 vn -0.7348 -0.5857 0.3421 vn -0.1992 -0.9327 0.3006 vn -0.2306 -0.9712 -0.0596 vn 0.1916 -0.7316 0.6543 vn -0.2448 -0.1023 0.9642 vn -0.2633 -0.5770 0.7731 vn 0.3227 -0.7045 0.6321 vn -0.0254 -0.6073 0.7941 vn 0.4469 -0.8221 0.3528 vn 0.2453 -0.7774 0.5792 vn 0.5769 -0.2127 0.7887 vn 0.9892 -0.1408 0.0406 vn 0.9839 0.1577 -0.0841 vn 0.3085 0.8661 0.3933 vn 0.2629 0.9600 0.0964 vn 0.4971 0.6138 0.6132 vn 0.6070 0.7946 0.0125 vn 0.9236 0.3782 -0.0631 vn 0.6919 0.1869 0.6974 vn 0.5997 0.7903 0.1257 vn -0.0134 0.9981 0.0594 vn 0.2618 0.9635 0.0552 vn 0.1031 0.9903 -0.0931 vn 0.7286 -0.5949 0.3394 vn 0.8757 -0.4700 0.1110 vn -0.5436 0.8365 0.0685 vn -0.1679 0.9726 0.1610 vn -0.8628 0.5042 0.0359 vn -0.6816 0.7316 0.0119 vn -0.9481 0.3039 0.0937 vn -0.9544 0.2788 0.1069 vn -0.9058 0.4206 -0.0511 vn -0.9703 0.2405 0.0270 vn -0.5738 0.2481 -0.7805 vn -0.8354 0.0553 -0.5468 vn 0.4216 0.8037 -0.4199 vn 0.8788 0.4324 -0.2020 vn 0.8161 0.4605 -0.3493 vn 0.9629 0.1363 -0.2328 vn 0.9721 -0.2078 -0.1088 vn 0.9575 -0.2064 -0.2016 vn 0.7846 -0.5946 0.1758 vn 0.7930 -0.6085 -0.0314 vn 0.7868 -0.5929 -0.1718 vn 0.7130 -0.6842 -0.1531 vn 0.2951 -0.9462 0.1328 vn 0.6826 -0.7279 0.0649 vn 0.0633 -0.9980 0.0012 vn 0.5574 -0.8139 0.1641 vn 0.8941 0.4427 -0.0685 vn -0.9923 -0.0876 0.0881 vn -0.9747 -0.2104 -0.0757 vn -0.5842 0.1508 -0.7975 vn -0.8275 -0.5441 0.1385 vn -0.8210 -0.5622 0.0992 vn -0.9181 -0.3412 0.2015 vn -0.4566 -0.8412 0.2896 vn -0.5858 -0.8048 0.0950 vn -0.1113 -0.9920 0.0591 vn 0.0381 -0.9154 0.4008 vn -0.3174 -0.8232 0.4708 vn -0.0418 -0.9871 -0.1543 vn 0.3579 -0.9230 -0.1412 vn 0.1616 -0.9657 -0.2034 vn -0.1322 -0.9896 -0.0564 vn 0.0582 -0.8773 0.4764 vn 0.3739 -0.8037 0.4629 vn 0.3239 -0.9455 0.0338 vn 0.3765 -0.8665 0.3277 vn 0.5032 -0.8461 -0.1757 vn 0.1674 -0.9630 0.2111 vn 0.2351 -0.9437 0.2325 vn 0.2283 -0.9735 0.0153 vn -0.1339 -0.6717 0.7287 vn -0.3302 -0.5676 0.7542 vn -0.1404 -0.8024 0.5800 vn 0.3506 -0.8096 0.4708 vn 0.3296 -0.8988 0.2891 vn -0.4636 -0.4613 0.7565 vn -0.6286 -0.5192 0.5790 vn -0.4476 -0.8885 0.1009 vn -0.3997 -0.9125 0.0870 vn -0.3147 -0.9469 0.0662 vn -0.5627 -0.8213 -0.0939 vn 0.2631 -0.9603 -0.0925 vn 0.7312 -0.4650 0.4992 vn 0.1213 -0.9612 0.2479 vn 0.8544 -0.3076 -0.4187 vn 0.1297 -0.2076 -0.9696 vn 0.8033 -0.0570 -0.5929 vn -0.1221 -0.7009 -0.7027 vn 0.7984 -0.1949 -0.5697 vn 0.9898 -0.1412 0.0176 vn 0.9973 0.0471 -0.0561 vn 0.2619 -0.4016 -0.8776 vn -0.1670 -0.5688 -0.8053 vn -0.8502 -0.3214 -0.4169 vn -0.7305 -0.3896 -0.5608 vn -0.4498 -0.3004 -0.8411 vn -0.8198 -0.1219 0.5596 vn -0.3475 -0.5156 0.7832 vn -0.3281 -0.0030 0.9446 vn -0.7146 -0.1629 0.6803 vn -0.9544 -0.2983 0.0084 vn -0.7865 -0.6093 0.1012 vn 0.9563 0.1584 0.2456 vn 0.4560 0.1184 0.8821 vn 0.1070 -0.0200 0.9941 vn 0.0457 -0.1550 0.9868 vn -0.4554 -0.2772 0.8460 vn 0.6145 -0.2439 0.7502 vn 0.5599 -0.1076 0.8216 vn -0.3686 -0.3087 0.8768 vn -0.2519 -0.1432 0.9571 vn -0.0980 -0.2599 0.9607 vn -0.8965 0.0692 0.4376 vn -0.3464 -0.5027 0.7920 vn 0.0924 -0.0284 0.9953 vn 0.2993 -0.2751 0.9137 vn -0.1914 -0.9673 0.1663 vn -0.1471 -0.9873 -0.0599 vn 0.2382 -0.8868 -0.3960 vn 0.4427 -0.6924 -0.5698 vn 0.5258 -0.6466 -0.5526 vn 0.5394 -0.8378 -0.0843 vn 0.4422 -0.7523 -0.4884 vn 0.3633 -0.9029 0.2299 vn 0.3498 -0.9344 -0.0670 vn 0.5819 -0.6503 -0.4883 vn 0.6510 -0.7590 -0.0091 vn -0.0709 -0.7680 0.6365 vn -0.4347 -0.6381 -0.6355 vn -0.5352 -0.8446 0.0127 vn -0.5240 -0.8302 0.1900 vn 0.2786 -0.9584 0.0611 vn -0.1039 -0.9945 -0.0120 vn -0.0033 -0.9767 0.2145 vn -0.1142 -0.9890 0.0939 vn 0.4349 -0.8762 0.2075 vn -0.2878 -0.9509 0.1137 vn -0.7254 -0.5129 0.4590 vn -0.6797 -0.6841 0.2646 vn -0.6120 -0.7888 -0.0569 vn -0.0394 -0.9639 -0.2634 vn -0.5554 -0.8313 0.0206 vn -0.5189 -0.4323 0.7375 vn 0.0286 -0.9984 -0.0497 vn -0.3356 -0.9284 0.1597 vn -0.5313 -0.7007 0.4761 vn -0.4459 -0.7604 0.4723 vn -0.2127 -0.9053 0.3676 vn -0.4973 -0.4742 0.7265 vn -0.4227 -0.4588 0.7815 vn -0.5494 -0.6986 0.4583 vn -0.3026 -0.5119 0.8040 vn -0.0613 -0.7797 0.6232 vn -0.0104 -0.7964 0.6046 vn -0.1501 -0.7319 0.6647 vn -0.1491 -0.8703 0.4695 vn 0.1019 -0.8076 0.5808 vn -0.4003 -0.4339 0.8072 vn -0.4788 -0.3556 0.8027 vn -0.2994 -0.4673 0.8319 vn -0.2125 -0.7293 0.6503 vn 0.1742 -0.9553 0.2389 vn -0.0655 -0.9925 0.1030 vn 0.1340 -0.8255 0.5482 vn 0.1991 -0.8383 0.5075 vn 0.1386 -0.6693 0.7299 vn 0.3304 -0.6370 0.6964 vn 0.1458 -0.6659 0.7317 vn 0.1611 -0.9831 0.0871 vn 0.1006 -0.9206 0.3772 vn 0.6047 -0.7056 -0.3695 vn 0.4720 -0.8814 -0.0203 vn -0.6828 -0.2978 -0.6672 vn -0.8245 -0.4670 0.3194 vn -0.4841 -0.3748 0.7906 vn 0.1080 -0.3432 0.9330 vn 0.3741 -0.4482 0.8118 vn 0.3640 -0.6034 0.7095 vn -0.2062 -0.3015 0.9309 vn -0.2286 -0.5631 0.7941 vn 0.2036 -0.7648 0.6113 vn 0.2124 0.0074 0.9772 vn 0.6634 -0.5584 0.4981 vn 0.4321 -0.5851 0.6862 vn -0.1781 -0.5515 0.8149 vn 0.4589 -0.7487 0.4784 vn 0.5794 -0.7617 0.2900 vn 0.7673 -0.5792 -0.2754 vn 0.5982 -0.7710 -0.2187 vn 0.3701 -0.9264 -0.0700 vn 0.4878 -0.6802 -0.5472 vn 0.4131 -0.8099 -0.4164 vn 0.4957 -0.8315 -0.2508 vn 0.4539 -0.8768 -0.1588 vn 0.6468 -0.6722 0.3603 vn 0.6944 -0.6443 -0.3204 vn 0.6694 -0.3902 0.6322 vn 0.3489 -0.9117 0.2169 vn 0.1547 -0.9545 0.2548 vn 0.2512 -0.9350 -0.2504 vn 0.3244 -0.8409 -0.4332 vn 0.3368 -0.9301 0.1466 vn -0.0586 -0.7787 -0.6247 vn 0.1755 -0.7258 -0.6651 vn 0.4292 -0.6421 -0.6352 vn 0.1475 -0.8077 -0.5708 vn 0.0738 -0.7311 0.6783 vn -0.1857 -0.7110 0.6782 vn 0.1603 -0.7571 0.6334 vn -0.1684 -0.9374 0.3047 vn 0.0536 -0.8668 0.4958 vn 0.1731 -0.8848 0.4327 vn -0.4099 -0.8954 -0.1739 vn -0.2778 -0.9605 0.0127 vn -0.2670 -0.9626 0.0457 vn -0.4510 -0.8907 0.0577 vn -0.6025 -0.7537 -0.2626 vn -0.5079 -0.8601 -0.0462 vn -0.5355 -0.8326 -0.1415 vn -0.0649 -0.9653 0.2528 vn 0.1263 -0.7795 0.6136 vn 0.4047 -0.7328 0.5469 vn 0.2609 -0.8356 0.4835 vn -0.0165 -0.9969 -0.0774 vn -0.2647 -0.8862 -0.3802 vn 0.1638 -0.9454 0.2816 vn 0.1233 -0.9619 -0.2438 vn -0.5677 -0.7848 -0.2485 vn -0.2305 -0.9730 -0.0074 vn -0.6799 -0.7306 -0.0632 vn 0.0593 -0.9010 0.4297 vn 0.5018 -0.7632 0.4072 vn 0.4826 -0.8305 0.2783 vn -0.7189 -0.5998 0.3514 vn -0.5993 -0.7521 -0.2743 vn -0.2412 -0.8918 -0.3827 vn -0.6411 -0.6301 -0.4382 vn 0.5328 -0.3808 0.7557 vn 0.2876 -0.6540 0.6997 vn 0.3254 -0.8645 0.3831 vn 0.1714 -0.9828 -0.0683 vn -0.4854 -0.8497 -0.2060 vn -0.1585 -0.9317 0.3268 vn 0.2285 -0.9734 -0.0167 vn -0.4668 -0.8265 0.3147 vn 0.0711 -0.8922 0.4461 vn -0.4288 -0.9029 -0.0298 vn -0.5803 -0.7498 -0.3180 vn -0.4706 -0.8185 0.3296 vn -0.1650 -0.9848 -0.0550 vn 0.2653 -0.9604 0.0856 vn 0.2608 -0.9605 -0.0966 vn 0.1974 -0.8275 0.5256 vn -0.1408 -0.7887 0.5984 vn 0.3555 -0.9266 0.1225 vn 0.2006 -0.9190 0.3395 vn -0.2127 -0.9723 0.0970 vn -0.0242 -0.6741 0.7383 vn 0.5264 -0.8186 0.2298 vn 0.3378 -0.8604 0.3814 vn 0.7331 0.0234 0.6797 vn 0.9314 -0.1275 0.3408 vn 0.7306 -0.6324 0.2574 vn 0.4056 -0.5563 0.7253 vn -0.0498 -0.6738 0.7372 vn -0.7594 -0.6505 -0.0102 vn -0.8922 -0.4478 -0.0595 vn -0.8544 -0.3967 -0.3357 vn -0.4308 -0.9015 0.0419 vn -0.7262 -0.4788 -0.4934 vn -0.9330 -0.2154 -0.2884 vn -0.4521 -0.4618 -0.7631 vn -0.9574 -0.2803 0.0698 vn -0.7779 -0.6152 0.1280 vn -0.5550 -0.8154 0.1645 vn -0.0686 -0.8975 0.4356 vn -0.7119 -0.6155 0.3383 vn -0.2694 -0.9438 -0.1912 vn -0.7173 -0.6353 -0.2861 vn 0.8295 -0.0699 -0.5540 vn 0.2167 -0.9681 -0.1256 vn 0.0560 -0.5579 -0.8281 vn -0.4337 -0.9008 -0.0196 vn -0.8683 0.1017 -0.4856 vn -0.4594 -0.1144 -0.8808 vn -0.9728 -0.0339 -0.2291 vn -0.9225 -0.2492 -0.2947 vn -0.9609 -0.0895 -0.2619 vn -0.9702 -0.0323 -0.2402 vn -0.8684 -0.0769 -0.4898 vn -0.8443 -0.0721 -0.5309 vn -0.8961 -0.2234 -0.3835 vn -0.9071 0.0704 -0.4150 vn -0.7278 -0.0959 -0.6790 vn -0.1694 -0.9724 0.1603 vn -0.2214 -0.9417 -0.2535 vn -0.1389 -0.8228 -0.5511 vn 0.2191 -0.8644 -0.4525 vn -0.1670 -0.6054 -0.7782 vn -0.4442 -0.5913 -0.6731 vn -0.5814 -0.7224 -0.3744 vn -0.2285 -0.9545 0.1917 vn -0.4851 -0.8529 -0.1931 vn 0.1198 -0.8049 0.5811 vn 0.5505 -0.3419 0.7616 vn 0.5267 -0.5660 0.6342 vn -0.4271 -0.8781 0.2155 vn -0.6028 -0.4766 -0.6399 vn 0.4046 -0.9125 -0.0609 vn 0.6409 -0.7565 -0.1304 vn 0.2244 -0.6469 -0.7288 vn 0.5754 -0.4820 -0.6608 vn -0.0419 -0.4681 -0.8827 vn 0.9590 -0.2330 0.1613 vn 0.9486 -0.2242 0.2234 vn 0.9418 0.0408 0.3337 vn 0.8280 0.1156 0.5487 vn 0.8296 -0.3596 0.4272 vn 0.7289 -0.6114 0.3081 vn 0.7071 -0.7060 -0.0388 vn 0.8278 -0.5290 0.1870 vn 0.8644 -0.3506 0.3604 vn 0.7363 -0.6049 0.3033 vn 0.7582 -0.5369 0.3700 vn 0.4397 -0.8553 0.2742 vn 0.9228 -0.3852 0.0091 vn 0.8308 -0.3038 0.4663 vn 0.8212 -0.4945 0.2847 vn 0.8872 -0.3645 0.2828 vn 0.9574 -0.0292 0.2873 vn 0.4104 -0.6529 -0.6367 vn 0.5211 -0.5575 -0.6463 vn -0.9711 -0.1736 -0.1638 vn -0.9371 -0.1225 -0.3270 vn -0.6448 -0.2788 -0.7117 vn -0.9048 0.0381 -0.4242 vn -0.8093 -0.0288 -0.5866 vn -0.8372 0.0147 -0.5468 vn -0.8887 -0.0534 -0.4554 vn -0.8559 0.0165 -0.5169 vn -0.4766 -0.2648 -0.8383 vn -0.4481 -0.3949 -0.8020 vn -0.1169 -0.4598 -0.8803 vn 0.2318 -0.4113 -0.8815 vn 0.1425 -0.9818 0.1258 vn -0.3817 -0.9228 0.0520 vn 0.0675 -0.9971 0.0347 vn -0.0986 -0.9090 -0.4049 vn -0.2824 -0.9467 0.1547 vn -0.0212 -0.9494 -0.3134 vn 0.9263 -0.2001 -0.3192 vn 0.9526 -0.2292 -0.2002 vn 0.9892 0.1372 -0.0524 vn 0.5965 -0.0962 -0.7968 vn 0.3652 -0.5444 -0.7552 vn -0.0121 -0.7948 -0.6068 vn 0.4421 0.0958 -0.8918 vn 0.8840 0.1446 -0.4446 vn 0.9379 -0.3236 -0.1250 vn 0.6948 -0.4775 -0.5379 vn 0.8071 -0.3783 -0.4533 vn 0.6546 0.2359 -0.7182 vn -0.2104 -0.8801 -0.4256 vn 0.0341 -0.7138 -0.6996 vn -0.7984 -0.0939 -0.5948 vn 0.2537 -0.6862 -0.6817 vn 0.0573 -0.9773 -0.2040 vn -0.2335 -0.1329 -0.9632 vn -0.6071 -0.7625 -0.2239 vn -0.5074 -0.6480 0.5681 vn -0.1996 -0.9759 -0.0885 vn -0.0820 -0.9960 0.0367 vn -0.5601 -0.7396 0.3732 vn -0.0001 -0.9882 -0.1530 vn 0.2059 -0.9629 0.1744 vn -0.2638 -0.9645 0.0152 vn -0.2971 -0.9492 0.1041 vn 0.0554 -0.9682 0.2439 vn -0.2390 -0.9509 0.1966 vn -0.1129 -0.9800 -0.1640 vn -0.1818 -0.9564 -0.2285 vn 0.1426 -0.9728 -0.1825 vn -0.6315 -0.6431 -0.4331 vn -0.5304 -0.2824 -0.7993 vn -0.2588 -0.3812 -0.8875 vn 0.8404 -0.2789 -0.4646 vn -0.0106 -0.4339 -0.9009 vn 0.0602 -0.6752 0.7352 vn -0.8907 -0.3421 0.2993 vn -0.4333 0.4277 0.7933 vn -0.9879 -0.1333 0.0788 vn 0.2133 0.1740 -0.9614 vn 0.1231 0.5306 0.8386 vn 0.6535 0.7479 0.1168 vn 0.5037 0.8234 0.2613 vn -0.5069 -0.1667 0.8458 vn 0.4663 -0.7033 0.5366 vn 0.6174 0.7492 0.2396 vn -0.0049 0.7848 0.6197 vn 0.4411 -0.5085 -0.7394 vn -0.3565 -0.2444 -0.9017 vn 0.9192 -0.0646 -0.3885 vn -0.0183 -0.9940 0.1081 vn -0.8478 -0.1762 -0.5002 vn -0.0377 -0.1348 0.9902 vn 0.5527 -0.6241 0.5523 vn 0.6423 -0.3200 0.6965 vn -0.9155 -0.2568 0.3095 vn -0.8876 -0.3047 0.3453 vn -0.7752 -0.0231 -0.6313 vn -0.8003 -0.1098 0.5894 vn 0.6180 0.6435 -0.4516 vn -0.7421 0.5859 -0.3256 vn 0.7381 0.5997 -0.3091 vn -0.1465 0.7294 0.6682 vn -0.9218 0.3533 -0.1597 vn -0.6131 0.7273 0.3083 vn -0.5798 0.7839 0.2223 vn -0.5640 0.7696 0.2994 vn -0.2368 -0.9187 -0.3160 vn 0.3467 -0.9277 -0.1383 vn 0.1245 -0.4354 0.8916 vn 0.5452 -0.8382 -0.0133 vn 0.4458 -0.8946 -0.0299 vn -0.6357 -0.7644 0.1077 vn 0.5229 -0.6682 0.5292 vn 0.1295 -0.9910 0.0341 vn -0.4946 -0.0279 -0.8687 usemtl _teeth_maxwire_214228153 s off f 1/1/1 2/2/2 3/3/3 f 1/4/4 2/5/4 4/6/4 f 2/5/5 5/7/5 4/6/5 f 6/8/6 5/7/6 2/5/6 f 3/3/7 4/9/7 5/10/7 f 1094/11/8 4/9/8 3/3/8 f 1/1/9 4/9/10 1094/11/11 f 7/12/12 8/13/13 9/14/13 f 7/15/14 10/16/14 9/17/14 f 9/17/15 10/16/15 11/18/15 f 12/19/16 9/17/16 11/18/16 f 8/13/17 11/20/17 10/21/17 f 1210/22/18 8/13/18 10/21/18 f 7/12/19 1210/22/20 10/21/21 s 1 f 13/23/22 49/24/23 14/25/24 f 49/26/23 32/27/25 14/28/24 f 14/29/24 19/30/26 13/31/22 f 59/32/27 15/33/28 13/23/22 f 19/30/26 21/34/29 20/35/30 f 26/36/31 27/37/32 28/38/33 f 29/39/34 31/40/35 30/41/36 f 24/42/37 46/43/38 34/44/39 f 31/45/35 22/46/40 27/47/32 f 36/48/41 31/40/35 29/39/34 f 36/48/41 22/49/40 31/40/35 f 40/50/42 37/51/43 39/52/44 f 21/34/29 29/39/34 41/53/45 f 59/54/27 17/55/46 15/56/28 f 44/57/47 16/58/48 47/59/49 f 38/60/50 37/51/43 40/50/42 f 58/61/51 43/62/52 17/55/46 f 18/63/53 43/62/52 58/61/51 f 45/64/54 15/65/28 16/58/48 f 32/27/25 33/66/55 46/43/38 f 26/36/31 42/67/56 48/68/57 f 47/59/49 38/60/50 55/69/58 f 49/70/23 33/66/55 32/27/25 f 48/68/57 56/71/59 26/36/31 f 34/44/39 25/72/60 24/42/37 f 40/50/42 55/69/58 38/60/50 f 44/73/47 34/74/39 49/24/23 f 35/75/61 48/68/57 42/67/56 f 51/76/62 52/77/63 57/78/64 f 48/68/57 35/75/61 50/79/65 f 20/80/30 50/79/65 35/75/61 f 26/36/31 56/71/59 27/37/32 f 32/27/25 46/43/38 53/81/66 f 17/55/46 59/54/27 58/61/51 f 55/82/58 40/83/42 25/72/60 f 25/72/60 23/84/67 24/42/37 f 49/24/23 45/85/54 44/73/47 f 44/86/47 55/87/58 34/88/39 f 55/69/58 44/57/47 47/59/49 f 23/84/67 25/72/60 40/83/42 f 23/89/67 40/50/42 39/52/44 f 50/90/65 20/35/30 41/53/45 f 58/91/51 59/32/27 18/92/53 f 20/80/30 35/75/61 43/62/52 f 52/77/63 51/76/62 42/67/56 f 22/46/40 23/93/67 39/94/44 f 49/70/23 34/95/39 33/66/55 f 17/55/46 42/67/56 51/76/62 f 14/28/24 32/27/25 54/96/68 f 38/60/50 47/59/49 57/97/64 f 54/98/68 19/30/26 14/29/24 f 30/99/36 31/45/35 56/100/59 f 24/42/37 53/81/66 46/43/38 f 43/62/52 18/63/53 20/80/30 f 28/38/33 52/77/63 26/36/31 f 38/60/50 28/101/33 37/51/43 f 29/39/34 21/34/29 54/98/68 f 19/30/26 54/98/68 21/34/29 f 18/92/53 59/32/27 13/23/22 f 50/79/65 30/102/36 56/71/59 f 54/98/68 53/103/66 29/39/34 f 16/58/48 17/104/46 51/105/62 f 25/72/60 34/44/39 55/82/58 f 42/67/56 26/36/31 52/77/63 f 15/33/28 45/85/54 49/24/23 f 33/106/55 34/88/39 46/107/38 f 28/101/33 38/60/50 57/97/64 f 51/105/62 57/97/64 47/59/49 f 41/53/45 20/35/30 21/34/29 f 39/52/44 37/51/43 28/101/33 f 22/108/40 36/109/41 24/42/37 f 42/67/56 17/55/46 35/75/61 f 24/42/37 36/109/41 53/81/66 f 29/39/34 53/103/66 36/110/41 f 49/24/23 13/23/22 15/33/28 f 28/101/33 57/97/64 52/111/63 f 23/112/67 22/49/40 24/113/37 f 27/47/32 56/100/59 31/45/35 f 17/55/46 43/62/52 35/75/61 f 47/59/49 16/58/48 51/105/62 f 39/94/44 28/114/33 27/47/32 f 30/41/36 50/90/65 29/39/34 f 41/53/45 29/39/34 50/90/65 f 17/104/46 16/58/48 15/65/28 f 20/35/30 18/115/53 19/30/26 f 22/46/40 39/94/44 27/47/32 f 48/68/57 50/79/65 56/71/59 f 13/23/22 19/116/26 18/92/53 f 53/81/66 54/96/68 32/27/25 f 45/64/54 16/58/48 44/57/47 f 121/117/69 91/118/70 60/119/71 f 67/120/72 69/121/73 68/122/74 f 97/123/75 75/124/76 74/125/77 f 73/126/78 71/127/79 84/128/80 f 77/129/81 67/130/72 79/131/82 f 100/132/83 80/133/84 101/134/85 f 64/135/86 96/136/87 81/137/88 f 60/138/71 83/139/89 113/140/90 f 61/141/91 78/142/92 89/143/93 f 66/144/94 81/137/88 96/136/87 f 93/145/95 94/146/96 76/147/97 f 76/147/97 75/148/76 93/145/95 f 87/149/98 94/146/96 102/150/99 f 85/151/100 90/152/101 103/153/102 f 98/154/103 97/123/75 74/125/77 f 62/155/104 91/118/70 121/117/69 f 65/156/105 66/144/94 96/136/87 f 67/130/72 77/129/81 105/157/106 f 103/153/102 86/158/107 85/151/100 f 61/159/91 99/160/108 78/161/92 f 75/148/76 70/162/109 95/163/110 f 62/164/104 111/165/111 90/152/101 f 82/166/112 92/167/113 81/137/88 f 76/168/97 74/125/77 75/124/76 f 85/151/100 86/158/107 88/169/114 f 106/170/115 79/171/82 70/172/109 f 106/170/115 70/172/109 75/124/76 f 73/173/78 107/174/116 71/175/79 f 72/176/117 107/174/116 104/177/118 f 118/178/119 69/179/73 67/130/72 f 86/158/107 87/180/98 88/169/114 f 108/181/120 84/128/80 69/182/73 f 121/117/69 63/183/121 62/155/104 f 65/156/105 96/136/87 83/184/89 f 87/180/98 86/158/107 109/185/122 f 67/130/72 105/157/106 118/178/119 f 107/186/116 115/187/123 85/188/100 f 107/174/116 85/189/100 104/177/118 f 101/134/85 123/190/124 118/178/119 f 78/191/92 123/190/124 101/134/85 f 60/138/71 113/140/90 121/192/69 f 119/193/125 100/194/83 110/195/126 f 119/193/125 66/144/94 65/156/105 f 101/134/85 114/196/127 78/191/92 f 120/197/128 89/198/93 114/196/127 f 91/199/70 115/200/123 61/159/91 f 115/200/123 107/201/116 61/159/91 f 100/194/83 77/202/81 117/203/129 f 73/173/78 99/204/108 107/174/116 f 99/160/108 61/159/91 107/201/116 f 61/159/91 60/205/71 91/199/70 f 123/206/124 108/207/120 118/208/119 f 69/179/73 118/178/119 108/209/120 f 81/210/88 111/165/111 64/211/86 f 110/195/126 82/166/112 119/193/125 f 91/199/70 62/212/104 115/200/123 f 122/213/130 112/214/131 95/163/110 f 116/215/132 103/153/102 74/216/77 f 79/171/82 106/170/115 77/202/81 f 82/166/112 66/144/94 119/193/125 f 90/217/101 115/200/123 62/212/104 f 90/218/101 85/188/100 115/187/123 f 98/154/103 92/167/113 82/166/112 f 94/219/96 109/220/122 76/168/97 f 84/128/80 68/221/74 69/182/73 f 103/153/102 116/215/132 86/158/107 f 93/145/95 102/150/99 94/146/96 f 102/150/99 93/145/95 112/214/131 f 110/195/126 117/203/129 97/123/75 f 109/185/122 86/158/107 116/215/132 f 113/222/90 96/223/87 63/183/121 f 118/178/119 105/157/106 101/134/85 f 102/224/99 112/225/131 104/226/118 f 64/211/86 62/164/104 63/227/121 f 84/128/80 108/181/120 73/126/78 f 83/139/89 80/133/84 65/228/105 f 120/197/128 83/139/89 60/138/71 f 109/185/122 94/229/96 87/180/98 f 62/164/104 64/211/86 111/165/111 f 89/198/93 120/197/128 61/230/91 f 60/138/71 61/230/91 120/197/128 f 104/177/118 85/189/100 88/231/114 f 76/168/97 109/220/122 74/125/77 f 108/207/120 123/206/124 99/204/108 f 111/165/111 103/153/102 90/152/101 f 97/123/75 98/154/103 110/195/126 f 96/136/87 113/232/90 83/184/89 f 117/203/129 110/195/126 100/194/83 f 95/163/110 70/162/109 122/213/130 f 117/203/129 75/124/76 97/123/75 f 93/145/95 95/163/110 112/214/131 f 95/163/110 93/145/95 75/148/76 f 120/197/128 114/196/127 80/133/84 f 109/185/122 116/215/132 74/216/77 f 74/125/77 92/167/113 98/154/103 f 92/233/113 74/216/77 103/153/102 f 89/198/93 78/191/92 114/196/127 f 87/234/98 102/224/99 88/235/114 f 104/236/118 112/214/131 72/237/117 f 101/134/85 80/133/84 114/196/127 f 82/166/112 110/195/126 98/154/103 f 80/133/84 83/139/89 120/197/128 f 122/213/130 70/162/109 68/122/74 f 68/122/74 70/162/109 79/238/82 f 81/210/88 92/233/113 111/165/111 f 75/124/76 117/203/129 106/170/115 f 100/194/83 119/193/125 80/239/84 f 63/183/121 121/117/69 113/222/90 f 71/127/79 68/221/74 84/128/80 f 64/135/86 63/240/121 96/136/87 f 112/214/131 122/213/130 72/237/117 f 65/228/105 80/133/84 119/241/125 f 100/132/83 101/134/85 77/129/81 f 105/157/106 77/129/81 101/134/85 f 111/165/111 92/233/113 103/153/102 f 99/204/108 73/173/78 108/207/120 f 78/161/92 99/160/108 123/242/124 f 81/137/88 66/144/94 82/166/112 f 68/122/74 71/243/79 72/237/117 f 72/237/117 122/213/130 68/122/74 f 107/174/116 72/176/117 71/175/79 f 68/122/74 79/238/82 67/120/72 f 106/170/115 117/203/129 77/202/81 f 88/235/114 102/224/99 104/226/118 f 148/244/133 129/245/134 162/246/135 f 187/247/136 153/248/137 148/244/133 f 139/249/138 132/250/139 131/251/140 f 160/252/141 136/253/142 137/254/143 f 160/255/141 141/256/144 161/257/145 f 144/258/146 145/259/147 176/260/148 f 146/261/149 130/262/150 166/263/151 f 149/264/152 169/265/153 147/266/154 f 150/267/155 126/268/156 175/269/157 f 154/270/158 135/271/159 133/272/160 f 147/273/154 169/274/153 155/275/161 f 166/276/151 169/277/153 172/278/162 f 157/279/163 149/280/152 163/281/164 f 152/282/165 163/283/164 164/284/166 f 147/266/154 150/267/155 165/285/167 f 141/256/144 160/255/141 137/286/143 f 158/287/168 133/272/160 134/288/169 f 156/289/170 142/290/171 127/291/172 f 142/290/171 145/292/147 128/293/173 f 167/294/174 130/295/150 162/296/135 f 148/297/133 136/298/142 168/299/175 f 132/300/139 130/295/150 140/301/176 f 143/302/177 151/303/178 142/290/171 f 135/271/159 134/288/169 133/272/160 f 184/304/179 148/305/133 153/306/137 f 184/304/179 153/306/137 154/270/158 f 132/307/139 166/308/151 130/309/150 f 164/310/166 134/288/169 135/271/159 f 149/280/152 157/279/163 169/277/153 f 180/311/180 164/312/166 163/313/164 f 140/301/176 131/314/140 132/300/139 f 131/314/140 140/301/176 167/294/174 f 181/315/181 167/316/174 168/299/175 f 172/278/162 157/279/163 173/317/182 f 146/261/149 173/318/182 186/319/183 f 133/272/160 185/320/184 184/304/179 f 138/321/185 188/322/186 161/257/145 f 161/257/145 188/322/186 181/315/181 f 174/323/187 179/324/188 155/325/161 f 174/326/187 155/275/161 169/274/153 f 161/257/145 177/327/189 138/321/185 f 183/328/190 178/329/191 177/327/189 f 170/330/192 137/331/143 185/320/184 f 124/332/193 179/324/188 125/333/194 f 179/324/188 174/323/187 125/333/194 f 132/250/139 139/249/138 174/326/187 f 139/334/138 125/333/194 174/323/187 f 180/311/180 171/335/195 134/336/169 f 127/337/172 142/338/171 151/339/178 f 167/316/174 181/315/181 131/340/140 f 157/341/163 182/342/196 173/318/182 f 124/332/193 126/343/156 179/324/188 f 171/335/195 165/285/167 134/336/169 f 181/315/181 188/322/186 159/344/197 f 148/305/133 184/304/179 136/345/142 f 143/302/177 128/293/173 170/330/192 f 150/346/155 179/324/188 126/343/156 f 150/346/155 155/325/161 179/324/188 f 158/287/168 151/303/178 143/302/177 f 185/320/184 143/302/177 170/330/192 f 133/272/160 158/287/168 185/320/184 f 182/342/196 153/248/137 173/318/182 f 153/248/137 182/342/196 154/347/158 f 152/282/165 164/284/166 135/348/159 f 152/282/165 157/341/163 163/283/164 f 125/349/194 138/350/185 178/351/191 f 176/352/148 156/353/170 127/354/172 f 181/315/181 168/299/175 161/257/145 f 135/348/159 154/347/158 152/282/165 f 168/299/175 129/355/134 148/297/133 f 176/356/148 142/290/171 156/289/170 f 187/247/136 173/318/182 153/248/137 f 146/357/149 186/358/183 162/296/135 f 187/247/136 186/319/183 173/318/182 f 127/354/172 144/359/146 176/352/148 f 165/285/167 171/335/195 147/266/154 f 145/259/147 141/256/144 128/360/173 f 183/328/190 145/259/147 144/258/146 f 178/329/191 183/328/190 125/361/194 f 124/362/193 125/361/194 183/328/190 f 126/363/156 124/364/193 144/359/146 f 129/245/134 167/365/174 162/246/135 f 148/244/133 162/246/135 186/319/183 f 137/331/143 136/345/142 184/304/179 f 175/269/157 165/285/167 150/267/155 f 164/310/166 180/366/180 134/288/169 f 150/346/155 147/367/154 155/325/161 f 152/282/165 182/342/196 157/341/163 f 183/328/190 177/327/189 141/256/144 f 134/336/169 151/339/178 158/368/168 f 151/339/178 134/336/169 165/285/167 f 184/304/179 185/320/184 137/331/143 f 178/329/191 138/321/185 177/327/189 f 161/257/145 141/256/144 177/327/189 f 148/244/133 186/319/183 187/247/136 f 139/334/138 138/369/185 125/333/194 f 143/302/177 185/320/184 158/287/168 f 172/278/162 169/277/153 157/279/163 f 138/321/185 159/344/197 188/322/186 f 141/256/144 145/259/147 183/328/190 f 146/261/149 166/263/151 173/318/182 f 182/342/196 152/282/165 154/347/158 f 137/331/143 170/330/192 141/370/144 f 176/356/148 145/292/147 142/290/171 f 130/295/150 167/294/174 140/301/176 f 172/371/162 173/318/182 166/263/151 f 159/344/197 131/340/140 181/315/181 f 171/335/195 163/313/164 149/264/152 f 149/264/152 147/266/154 171/335/195 f 166/372/151 132/373/139 174/374/187 f 183/328/190 144/258/146 124/362/193 f 128/293/173 141/370/144 170/330/192 f 160/255/141 161/257/145 136/298/142 f 168/299/175 136/298/142 161/257/145 f 175/269/157 151/339/178 165/285/167 f 126/363/156 144/359/146 127/354/172 f 131/251/140 159/375/197 139/249/138 f 163/313/164 171/335/195 180/311/180 f 159/376/197 138/369/185 139/334/138 f 128/293/173 143/302/177 142/290/171 f 151/339/178 175/269/157 127/337/172 f 126/268/156 127/337/172 175/269/157 f 169/274/153 166/377/151 174/326/187 f 168/299/175 167/316/174 129/355/134 f 130/295/150 146/357/149 162/296/135 f 184/304/179 154/270/158 133/272/160 f 189/378/198 190/379/199 225/380/200 f 225/381/200 190/382/199 207/383/201 f 190/384/199 189/385/198 195/386/202 f 235/387/203 189/378/198 191/388/204 f 195/386/202 196/389/205 210/390/206 f 201/391/207 202/392/208 203/393/209 f 204/394/210 205/395/211 206/396/212 f 199/397/213 209/398/214 222/399/215 f 206/400/212 203/401/209 197/402/216 f 212/403/217 204/394/210 206/396/212 f 212/403/217 206/396/212 197/404/216 f 216/405/218 215/406/219 213/407/220 f 210/390/206 217/408/221 204/394/210 f 235/409/203 191/410/204 193/411/222 f 220/412/223 223/413/224 192/414/225 f 214/415/226 216/405/218 213/407/220 f 234/416/227 193/417/222 219/418/228 f 194/419/229 234/416/227 219/418/228 f 207/383/201 222/399/215 208/420/230 f 201/391/207 224/421/231 218/422/232 f 223/413/224 231/423/233 214/415/226 f 225/424/200 207/383/201 208/420/230 f 224/421/231 201/391/207 232/425/234 f 209/398/214 199/397/213 200/426/235 f 216/405/218 214/415/226 231/423/233 f 220/427/223 225/380/200 209/428/214 f 211/429/236 218/422/232 224/421/231 f 227/430/237 233/431/238 228/432/239 f 224/421/231 226/433/240 211/429/236 f 196/434/205 211/429/236 226/433/240 f 201/391/207 203/393/209 232/425/234 f 207/383/201 229/435/241 222/399/215 f 193/417/222 234/416/227 235/436/203 f 231/437/233 200/426/235 216/438/218 f 200/426/235 199/397/213 198/439/242 f 225/380/200 220/427/223 221/440/243 f 220/441/223 209/442/214 231/443/233 f 231/423/233 223/413/224 220/412/223 f 198/439/242 216/438/218 200/426/235 f 198/439/242 215/444/219 216/438/218 f 226/433/240 217/445/221 196/434/205 f 234/446/227 194/447/229 235/387/203 f 196/434/205 219/418/228 211/429/236 f 228/448/239 218/422/232 227/449/237 f 197/402/216 215/450/219 198/451/242 f 225/380/200 208/452/230 209/428/214 f 193/417/222 227/449/237 218/422/232 f 190/382/199 230/453/244 207/383/201 f 214/415/226 233/431/238 223/413/224 f 230/454/244 190/384/199 195/386/202 f 205/455/211 232/456/234 206/400/212 f 199/397/213 222/399/215 229/435/241 f 219/418/228 196/434/205 194/419/229 f 202/457/208 201/391/207 228/448/239 f 214/415/226 213/407/220 202/458/208 f 204/394/210 230/454/244 210/390/206 f 195/386/202 210/390/206 230/454/244 f 194/447/229 189/378/198 235/387/203 f 226/433/240 232/425/234 205/459/211 f 230/454/244 204/394/210 229/460/241 f 192/414/225 227/430/237 193/411/222 f 200/426/235 231/437/233 209/398/214 f 218/422/232 228/448/239 201/391/207 f 191/388/204 225/380/200 221/440/243 f 208/461/230 222/462/215 209/442/214 f 202/458/208 233/431/238 214/415/226 f 227/430/237 223/413/224 233/431/238 f 217/408/221 210/390/206 196/389/205 f 215/406/219 202/458/208 213/407/220 f 197/404/216 199/463/213 212/403/217 f 218/422/232 211/429/236 193/417/222 f 199/397/213 229/435/241 212/464/217 f 204/394/210 212/403/217 229/460/241 f 225/380/200 191/388/204 189/378/198 f 202/458/208 228/465/239 233/431/238 f 192/414/225 191/410/204 221/466/243 f 198/467/242 199/463/213 197/404/216 f 203/401/209 206/400/212 232/456/234 f 193/417/222 211/429/236 219/418/228 f 223/413/224 227/430/237 192/414/225 f 215/406/219 203/468/209 202/458/208 f 205/395/211 204/394/210 226/469/240 f 217/408/221 226/469/240 204/394/210 f 193/411/222 191/410/204 192/414/225 f 196/389/205 195/386/202 194/470/229 f 197/402/216 203/401/209 215/450/219 f 224/421/231 232/425/234 226/433/240 f 189/385/198 194/470/229 195/386/202 f 229/435/241 207/383/201 230/453/244 f 221/440/243 220/471/223 192/472/225 f 244/473/245 245/474/246 246/475/247 f 274/476/248 251/477/249 252/478/250 f 250/479/251 261/480/252 248/481/253 f 254/482/254 256/483/255 244/484/245 f 277/485/256 278/486/257 257/487/258 f 241/488/259 258/489/260 273/490/261 f 237/491/262 288/492/263 260/493/264 f 238/494/265 266/495/266 255/496/267 f 267/497/268 268/498/269 240/499/270 f 243/500/271 273/490/261 258/489/260 f 270/501/272 253/502/273 271/503/274 f 253/502/273 270/501/272 252/504/250 f 264/505/275 279/506/276 271/503/274 f 262/507/277 280/508/278 267/497/268 f 275/509/279 251/477/249 274/476/248 f 240/510/270 239/511/280 236/512/281 f 242/513/282 273/490/261 243/500/271 f 244/484/245 282/514/283 254/482/254 f 280/508/278 262/507/277 263/515/284 f 238/494/265 255/496/267 276/516/285 f 252/504/250 272/517/286 247/518/287 f 259/519/288 258/489/260 269/520/289 f 253/521/273 252/478/250 251/477/249 f 262/507/277 265/522/290 263/515/284 f 283/523/291 247/524/287 256/525/255 f 283/523/291 252/478/250 247/524/287 f 250/526/251 248/527/253 284/528/292 f 249/529/293 281/530/294 284/528/292 f 296/531/295 244/484/245 246/532/247 f 263/515/284 265/522/290 264/533/275 f 285/534/296 246/532/247 261/535/252 f 237/536/262 236/512/281 239/511/280 f 242/513/282 260/537/264 273/490/261 f 264/533/275 286/538/297 263/515/284 f 244/484/245 296/531/295 282/514/283 f 284/539/292 262/540/277 292/541/298 f 284/528/292 281/530/294 262/542/277 f 278/486/257 296/531/295 298/543/299 f 255/544/267 278/486/257 298/543/299 f 290/545/300 287/546/301 277/547/256 f 290/545/300 242/513/282 243/500/271 f 278/486/257 255/544/267 291/548/302 f 295/549/303 291/548/302 266/550/266 f 236/551/281 238/494/265 292/552/298 f 292/541/298 238/553/265 284/539/292 f 277/547/256 294/554/304 254/555/254 f 250/526/251 284/528/292 276/556/285 f 276/516/285 284/557/292 238/494/265 f 298/543/299 296/531/295 285/534/296 f 246/532/247 285/534/296 296/531/295 f 258/558/260 241/559/259 268/498/269 f 287/546/301 290/545/300 259/519/288 f 236/551/281 292/552/298 240/560/270 f 297/561/305 272/517/286 289/562/306 f 293/563/307 251/564/249 280/508/278 f 256/525/255 254/555/254 283/523/291 f 259/519/288 290/545/300 243/500/271 f 267/565/268 240/560/270 292/552/298 f 267/566/268 292/541/298 262/540/277 f 275/509/279 259/519/288 269/520/289 f 271/567/274 253/568/273 286/538/297 f 261/480/252 246/569/247 245/570/246 f 280/508/278 263/515/284 293/563/307 f 270/501/272 271/503/274 279/506/276 f 279/506/276 289/562/306 270/501/272 f 287/546/301 274/476/248 294/554/304 f 286/538/297 293/563/307 263/515/284 f 288/571/263 239/511/280 273/572/261 f 296/531/295 278/486/257 282/514/283 f 279/573/276 281/574/294 289/575/306 f 241/559/259 239/576/280 240/499/270 f 239/511/280 288/571/263 237/536/262 f 261/480/252 250/479/251 285/577/296 f 260/493/264 242/578/282 257/487/258 f 295/549/303 237/491/262 260/493/264 f 286/538/297 264/533/275 271/567/274 f 240/499/270 268/498/269 241/559/259 f 266/550/266 238/579/265 295/549/303 f 237/491/262 295/549/303 238/579/265 f 281/530/294 265/580/290 262/542/277 f 253/521/273 251/477/249 286/581/297 f 285/582/296 276/556/285 298/583/299 f 268/498/269 267/497/268 280/508/278 f 274/476/248 287/546/301 275/509/279 f 273/490/261 260/537/264 288/584/263 f 294/554/304 277/547/256 287/546/301 f 272/517/286 297/561/305 247/518/287 f 294/554/304 274/476/248 252/478/250 f 270/501/272 289/562/306 272/517/286 f 272/517/286 252/504/250 270/501/272 f 295/549/303 257/487/258 291/548/302 f 286/538/297 251/564/249 293/563/307 f 251/564/249 275/585/279 269/586/289 f 269/586/289 280/508/278 251/564/249 f 266/550/266 291/548/302 255/544/267 f 264/587/275 265/588/290 279/573/276 f 281/589/294 249/590/293 289/562/306 f 278/486/257 291/548/302 257/487/258 f 259/519/288 275/509/279 287/546/301 f 257/487/258 295/549/303 260/493/264 f 297/561/305 245/474/246 247/518/287 f 245/474/246 256/591/255 247/518/287 f 258/558/260 268/498/269 269/586/289 f 252/478/250 283/523/291 294/554/304 f 277/547/256 257/592/258 290/545/300 f 248/481/253 261/480/252 245/570/246 f 241/488/259 273/490/261 239/593/280 f 289/562/306 249/590/293 297/561/305 f 242/513/282 290/545/300 257/592/258 f 277/485/256 254/482/254 278/486/257 f 282/514/283 278/486/257 254/482/254 f 268/498/269 280/508/278 269/586/289 f 276/556/285 285/582/296 250/526/251 f 255/496/267 298/594/299 276/516/285 f 258/489/260 259/519/288 243/500/271 f 238/579/265 236/595/281 237/491/262 f 245/474/246 249/590/293 248/596/253 f 249/590/293 245/474/246 297/561/305 f 284/528/292 248/527/253 249/529/293 f 245/474/246 244/473/245 256/591/255 f 283/523/291 254/555/254 294/554/304 f 265/588/290 281/574/294 279/573/276 f 324/597/308 304/598/309 305/599/310 f 361/600/311 324/597/308 329/601/312 f 315/602/313 307/603/314 308/604/315 f 336/605/316 312/606/317 313/607/318 f 336/608/316 337/609/319 317/610/320 f 320/611/321 349/612/322 321/613/323 f 322/614/324 341/615/325 306/616/326 f 325/617/327 326/618/328 301/619/329 f 331/620/330 344/621/331 323/622/332 f 330/623/333 309/624/334 311/625/335 f 341/615/325 332/626/336 344/627/331 f 333/628/337 339/629/338 344/627/331 f 328/630/339 338/631/340 339/632/338 f 323/633/332 340/634/341 325/617/327 f 317/610/320 312/635/317 336/608/316 f 334/636/342 310/637/343 309/624/334 f 350/638/344 302/639/345 318/640/346 f 318/641/346 303/642/347 321/643/323 f 342/644/348 304/645/309 306/616/326 f 324/646/308 343/647/349 313/648/318 f 308/649/315 316/650/350 306/616/326 f 319/651/351 318/641/346 327/652/352 f 311/625/335 309/624/334 310/637/343 f 359/653/353 329/654/312 324/655/308 f 359/653/353 330/623/333 329/654/312 f 308/604/315 306/656/326 341/657/325 f 323/633/332 344/658/331 363/659/354 f 338/660/340 311/625/335 310/637/343 f 355/661/355 363/659/354 338/662/340 f 316/650/350 308/649/315 307/663/314 f 307/664/314 342/665/348 316/666/350 f 357/667/356 343/647/349 342/665/348 f 332/626/336 347/668/357 333/628/337 f 322/669/324 360/670/358 347/671/357 f 309/624/334 359/653/353 345/672/359 f 314/673/360 337/609/319 362/674/361 f 337/609/319 357/667/356 362/674/361 f 348/675/362 331/676/330 354/677/363 f 348/678/362 344/621/331 331/620/330 f 337/609/319 314/673/360 352/679/364 f 356/680/365 352/679/364 353/681/366 f 351/682/367 345/672/359 312/606/317 f 299/683/368 300/684/369 354/685/363 f 354/685/363 300/684/369 348/686/362 f 308/604/315 348/678/362 315/602/313 f 315/687/313 348/686/362 300/684/369 f 355/661/355 310/688/343 346/689/370 f 302/639/345 327/690/352 318/640/346 f 342/665/348 307/664/314 357/667/356 f 333/691/337 347/671/357 358/692/371 f 299/683/368 354/685/363 301/693/329 f 346/689/370 310/688/343 340/634/341 f 357/667/356 335/694/372 362/674/361 f 324/655/308 313/607/318 359/653/353 f 319/651/351 351/682/367 303/642/347 f 325/695/327 301/693/329 354/685/363 f 325/695/327 354/685/363 331/696/330 f 334/636/342 319/651/351 327/652/352 f 345/672/359 351/682/367 319/651/351 f 309/624/334 345/672/359 334/636/342 f 358/692/371 347/671/357 329/601/312 f 329/601/312 330/697/333 358/692/371 f 328/630/339 311/698/335 338/631/340 f 328/630/339 339/632/338 333/691/337 f 300/699/369 353/700/366 314/701/360 f 349/702/322 302/703/345 350/704/344 f 338/662/340 363/659/354 339/705/338 f 357/667/356 337/609/319 343/647/349 f 311/698/335 328/630/339 330/697/333 f 343/647/349 324/646/308 305/706/310 f 339/705/338 363/659/354 344/658/331 f 349/707/322 350/708/344 318/641/346 f 361/600/311 329/601/312 347/671/357 f 322/614/324 304/645/309 360/709/358 f 361/600/311 347/671/357 360/670/358 f 302/703/345 349/702/322 320/710/321 f 340/634/341 323/633/332 346/689/370 f 321/613/323 303/711/347 317/610/320 f 356/680/365 320/611/321 321/613/323 f 353/681/366 300/712/369 356/680/365 f 299/713/368 356/680/365 300/712/369 f 301/714/329 320/710/321 299/715/368 f 305/599/310 304/598/309 342/716/348 f 324/597/308 360/670/358 304/598/309 f 312/606/317 359/653/353 313/607/318 f 326/618/328 325/617/327 340/634/341 f 338/662/340 310/688/343 355/661/355 f 325/717/327 331/718/330 323/719/332 f 328/630/339 333/691/337 358/692/371 f 356/680/365 317/610/320 352/679/364 f 310/688/343 334/720/342 327/690/352 f 327/690/352 340/634/341 310/688/343 f 359/653/353 312/606/317 345/672/359 f 353/681/366 352/679/364 314/673/360 f 337/609/319 352/679/364 317/610/320 f 324/597/308 361/600/311 360/670/358 f 315/687/313 300/684/369 314/721/360 f 319/651/351 334/636/342 345/672/359 f 332/626/336 333/628/337 344/627/331 f 314/673/360 362/674/361 335/694/372 f 317/610/320 356/680/365 321/613/323 f 322/669/324 347/671/357 341/722/325 f 358/692/371 330/697/333 328/630/339 f 312/606/317 317/723/320 351/682/367 f 349/707/322 318/641/346 321/643/323 f 306/616/326 316/650/350 342/644/348 f 332/724/336 341/722/325 347/671/357 f 335/694/372 357/667/356 307/664/314 f 363/659/354 346/689/370 323/633/332 f 341/657/325 348/678/362 308/604/315 f 356/680/365 299/713/368 320/611/321 f 303/642/347 351/682/367 317/723/320 f 336/608/316 313/648/318 337/609/319 f 343/647/349 337/609/319 313/648/318 f 326/618/328 340/634/341 327/690/352 f 301/714/329 302/703/345 320/710/321 f 307/603/314 315/602/313 335/725/372 f 363/659/354 355/661/355 346/689/370 f 335/726/372 315/687/313 314/721/360 f 303/642/347 318/641/346 319/651/351 f 327/690/352 302/639/345 326/618/328 f 301/619/329 326/618/328 302/639/345 f 344/621/331 348/678/362 341/657/325 f 343/647/349 305/706/310 342/665/348 f 306/616/326 304/645/309 322/614/324 f 359/653/353 309/624/334 330/623/333 f 1946/727/373 1947/728/374 1945/729/375 f 1945/729/375 1977/730/376 2000/731/377 f 1948/732/378 1950/733/379 1949/734/380 f 1988/735/381 1952/736/382 1951/737/383 f 1953/738/384 1954/739/385 1984/740/386 f 1968/741/387 1969/742/388 1971/743/389 f 1974/744/390 1980/745/391 1965/746/392 f 1961/747/393 1975/748/394 1979/749/395 f 1975/750/394 1971/751/389 1979/752/395 f 1982/753/396 1955/754/397 1962/755/398 f 1957/756/399 1958/757/400 1981/758/401 f 1970/759/402 1983/760/403 1968/741/387 f 1982/753/396 1962/755/398 1963/761/404 f 1953/762/384 1984/763/386 1980/764/391 f 1946/727/373 1985/765/405 1947/728/374 f 1983/760/403 1989/766/406 1972/767/407 f 1942/768/408 1936/769/409 1967/770/410 f 1944/771/411 1942/772/408 1964/773/412 f 1939/774/413 1940/775/414 1937/776/415 f 1961/747/393 1976/777/416 1954/778/385 f 1978/779/417 1971/751/389 1969/780/388 f 1980/781/391 1974/782/390 1953/783/384 f 1983/760/403 1970/759/402 1989/766/406 f 1958/784/400 1957/785/399 1959/786/418 f 1948/732/378 1949/734/380 1952/736/382 f 1978/779/417 1949/734/380 1950/733/379 f 1966/787/419 1974/744/390 1965/746/392 f 1951/788/383 1981/758/401 1998/789/420 f 1971/743/389 1970/759/402 1968/741/387 f 1954/778/385 1977/730/376 1992/790/421 f 1949/734/380 1978/779/417 1952/736/382 f 1954/739/385 1953/738/384 1961/791/393 f 1986/792/422 1948/732/378 1988/735/381 f 1947/793/374 1985/794/405 1999/795/423 f 1987/796/424 1970/759/402 1971/743/389 f 1946/727/373 1990/797/425 1950/798/379 f 1962/755/398 2006/799/426 1993/800/427 f 1974/801/390 1972/767/407 1989/766/406 f 1974/801/390 1995/802/428 1972/767/407 f 1993/800/427 1963/761/404 1962/755/398 f 1938/803/429 2001/804/430 1939/805/413 f 1959/806/418 1994/807/431 2007/808/432 f 2005/809/433 1951/788/383 1952/810/382 f 1994/807/431 1959/806/418 1957/756/399 f 1996/811/434 1943/812/435 1973/813/436 f 1937/776/415 1936/814/409 1938/815/429 f 1950/733/379 1990/816/425 1991/817/437 f 1988/818/381 1999/795/423 1985/794/405 f 1958/819/400 1993/800/427 2006/799/426 f 1943/812/435 1938/820/429 1936/769/409 f 1956/821/438 2003/822/439 1992/790/421 f 2007/808/432 1994/807/431 2001/823/430 f 1982/824/396 1997/825/440 2003/826/439 f 1997/825/440 1980/764/391 1984/763/386 f 1983/827/403 1994/807/431 2005/809/433 f 1985/765/405 1946/727/373 1986/828/422 f 1987/829/424 1961/791/393 1953/738/384 f 1996/830/434 1960/831/441 1938/803/429 f 1963/761/404 1993/800/427 1996/811/434 f 1979/752/395 1991/817/437 1990/816/425 f 1951/788/383 1998/789/420 1988/832/381 f 1945/729/375 1992/790/421 1977/730/376 f 1992/790/421 1945/729/375 1956/821/438 f 1944/771/411 1943/833/435 1942/772/408 f 1940/775/414 1941/834/442 1967/835/410 f 1944/771/411 1973/836/436 1943/833/435 f 1962/755/398 1955/754/397 1998/837/420 f 1979/749/395 1976/777/416 1961/747/393 f 1941/838/442 1964/773/412 1942/772/408 f 1984/763/386 2003/826/439 1997/825/440 f 1977/730/376 1990/797/425 2000/731/377 f 1957/756/399 2005/809/433 1994/807/431 f 1986/792/422 1946/839/373 1950/733/379 f 1996/811/434 1973/813/436 1963/761/404 f 1990/797/425 1946/727/373 2000/731/377 f 1952/736/382 1988/735/381 1948/732/378 f 1940/840/414 1939/841/413 1941/842/442 f 1939/841/413 1995/802/428 1966/843/419 f 1967/835/410 1936/814/409 1940/775/414 f 1936/769/409 1942/768/408 1943/812/435 f 1939/805/413 1937/844/415 1938/803/429 f 1954/778/385 1976/777/416 1977/730/376 f 1936/814/409 1937/776/415 1940/775/414 f 1961/747/393 2002/845/443 1975/748/394 f 1963/846/404 1973/836/436 1997/847/440 f 1979/749/395 2004/848/444 1976/777/416 f 1985/794/405 1986/849/422 1988/818/381 f 1942/772/408 1967/850/410 1941/838/442 f 1938/803/429 2007/851/432 2001/804/430 f 2005/809/433 1968/852/387 1983/827/403 f 1945/729/375 1947/728/374 1956/853/438 f 1944/771/411 1997/847/440 1973/836/436 f 2005/809/433 1978/854/417 1969/855/388 f 1964/773/412 1965/746/392 1944/771/411 f 1989/766/406 1953/856/384 1974/801/390 f 1960/831/441 1996/830/434 1993/857/427 f 2003/822/439 1956/821/438 1982/858/396 f 1962/755/398 1998/837/420 2006/799/426 f 1981/758/401 2006/859/426 1998/789/420 f 1972/860/407 2001/823/430 1983/827/403 f 2004/848/444 1977/730/376 1976/777/416 f 1990/797/425 1977/730/376 2004/848/444 f 2000/731/377 1946/727/373 1945/729/375 f 1950/733/379 1948/732/378 1986/792/422 f 1978/779/417 1950/733/379 1971/751/389 f 2006/799/426 1981/861/401 1958/819/400 f 1944/771/411 1965/746/392 1980/745/391 f 1995/802/428 1939/841/413 1972/767/407 f 1956/862/438 1947/793/374 1955/754/397 f 1995/802/428 1974/801/390 1966/843/419 f 2003/863/439 1984/740/386 1992/864/421 f 1979/752/395 1990/816/425 2004/865/444 f 1993/866/427 1958/867/400 1959/868/418 f 1939/805/413 2001/804/430 1972/869/407 f 1953/856/384 1989/766/406 1987/796/424 f 1966/843/419 1941/842/442 1939/841/413 f 1981/758/401 1951/788/383 1957/756/399 f 1999/795/423 1998/837/420 1955/754/397 f 1971/743/389 2002/870/443 1987/796/424 f 1950/733/379 1979/752/395 1971/751/389 f 1951/788/383 2005/809/433 1957/756/399 f 2005/809/433 1952/810/382 1978/854/417 f 1987/796/424 1989/766/406 1970/759/402 f 2007/851/432 1960/831/441 1959/871/418 f 1988/818/381 1998/837/420 1999/795/423 f 1954/739/385 1992/864/421 1984/740/386 f 1955/754/397 1982/753/396 1956/862/438 f 1975/872/394 2002/870/443 1971/743/389 f 1961/873/393 1987/796/424 2002/870/443 f 1964/773/412 1966/787/419 1965/746/392 f 1980/745/391 1997/847/440 1944/771/411 f 1994/807/431 1983/827/403 2001/823/430 f 1938/820/429 1943/812/435 1996/811/434 f 1993/857/427 1959/871/418 1960/831/441 f 2007/851/432 1938/803/429 1960/831/441 f 1999/795/423 1955/754/397 1947/793/374 f 1950/733/379 1991/817/437 1979/752/395 f 1997/874/440 1982/753/396 1963/761/404 f 2005/809/433 1969/855/388 1968/852/387 f 1966/843/419 1964/875/412 1941/842/442 f 2013/876/445 2014/877/446 2063/878/447 f 2024/879/448 2025/880/449 2045/881/450 f 2048/882/451 2033/883/452 2017/884/453 f 2011/885/454 2008/886/455 2037/887/456 f 2022/888/457 2054/889/458 2049/890/459 f 2032/891/460 2047/892/461 2031/893/462 f 2048/894/451 2017/895/453 2030/896/463 f 2049/897/459 2054/898/458 2034/899/464 f 2038/900/465 2027/901/466 2028/902/467 f 2040/903/468 2044/904/469 2039/905/470 f 2015/906/471 2014/907/446 2029/908/472 f 2063/909/447 2008/910/455 2012/911/473 f 2027/901/466 2046/912/474 2028/902/467 f 2025/913/449 2024/914/448 2026/915/475 f 2050/916/476 2051/917/477 2041/918/478 f 2044/919/469 2021/920/479 2022/921/457 f 2035/922/480 2032/891/460 2031/893/462 f 2018/923/481 2048/894/451 2030/896/463 f 2033/924/452 2048/925/451 2057/926/482 f 2048/894/451 2018/923/481 2053/927/483 f 2008/928/455 2009/929/484 2012/930/473 f 2061/931/485 2059/932/486 2042/933/487 f 2055/934/488 2032/891/460 2035/922/480 f 2056/935/489 2021/936/479 2040/937/468 f 2037/887/456 2060/938/490 2064/939/491 f 2043/940/492 2031/893/462 2052/941/493 f 2022/921/457 2042/942/487 2044/919/469 f 2065/943/494 2016/944/495 2051/917/477 f 2049/897/459 2066/945/496 2050/946/476 f 2064/947/491 2060/948/490 2024/879/448 f 2010/949/497 2011/885/454 2040/937/468 f 2040/903/468 2029/908/472 2010/950/497 f 2029/908/472 2062/951/498 2015/906/471 f 2045/952/450 2025/953/449 2058/954/499 f 2040/937/468 2032/891/460 2056/935/489 f 2028/902/467 2036/955/500 2014/956/446 f 2023/957/501 2061/958/485 2051/959/477 f 2049/890/459 2041/918/478 2022/888/457 f 2041/918/478 2049/890/459 2050/916/476 f 2047/892/461 2064/939/491 2031/893/462 f 2065/943/494 2030/960/463 2017/884/453 f 2028/902/467 2025/953/449 2036/961/500 f 2055/934/488 2056/935/489 2032/891/460 f 2056/962/489 2055/963/488 2021/920/479 f 2009/929/484 2010/964/497 2013/876/445 f 2046/912/474 2057/926/482 2053/965/483 f 2010/950/497 2029/908/472 2014/907/446 f 2057/926/482 2023/957/501 2033/924/452 f 2055/963/488 2022/921/457 2021/920/479 f 2009/966/484 2008/886/455 2010/949/497 f 2008/886/455 2011/885/454 2010/949/497 f 2013/876/445 2012/930/473 2009/929/484 f 2020/967/502 2053/927/483 2018/923/481 f 2034/968/464 2054/969/458 2055/934/488 f 2037/970/456 2063/909/447 2060/971/490 f 2050/916/476 2019/972/503 2065/943/494 f 2019/973/503 2020/967/502 2018/923/481 f 2059/974/486 2046/912/474 2027/901/466 f 2016/975/495 2033/924/452 2023/957/501 f 2014/907/446 2015/906/471 2038/976/465 f 2062/951/498 2038/976/465 2015/906/471 f 2053/965/483 2057/926/482 2048/925/451 f 2062/951/498 2042/933/487 2059/932/486 f 2029/908/472 2039/905/470 2062/951/498 f 2014/907/446 2013/977/445 2010/950/497 f 2033/883/452 2016/944/495 2017/884/453 f 2065/943/494 2051/917/477 2050/916/476 f 2042/942/487 2022/921/457 2041/978/478 f 2020/979/502 2052/980/493 2064/981/491 f 2020/979/502 2064/981/491 2024/982/448 f 2058/954/499 2028/902/467 2046/912/474 f 2061/958/485 2023/957/501 2059/974/486 f 2046/912/474 2059/974/486 2023/957/501 f 2052/941/493 2031/893/462 2064/939/491 f 2046/912/474 2053/965/483 2058/954/499 f 2045/983/450 2058/984/499 2053/985/483 f 2024/982/448 2045/983/450 2020/979/502 f 2040/937/468 2011/885/454 2032/891/460 f 2036/986/500 2026/915/475 2063/909/447 f 2020/967/502 2019/973/503 2052/987/493 f 2063/878/447 2012/930/473 2013/876/445 f 2057/926/482 2046/912/474 2023/957/501 f 2064/939/491 2047/892/461 2037/887/456 f 2027/988/466 2038/989/465 2059/990/486 f 2039/905/470 2029/908/472 2040/903/468 f 2034/899/464 2035/991/480 2043/992/492 f 2052/987/493 2019/973/503 2043/992/492 f 2031/893/462 2043/940/492 2035/922/480 f 2044/904/469 2040/903/468 2021/993/479 f 2037/887/456 2047/892/461 2011/885/454 f 2032/891/460 2011/885/454 2047/892/461 f 2063/994/447 2014/956/446 2036/955/500 f 2062/951/498 2039/905/470 2044/904/469 f 2028/902/467 2014/956/446 2038/900/465 f 2060/948/490 2026/995/475 2024/879/448 f 2023/957/501 2051/959/477 2016/975/495 f 2019/973/503 2018/923/481 2030/896/463 f 2020/979/502 2045/983/450 2053/985/483 f 2054/996/458 2022/997/457 2055/998/488 f 2055/934/488 2035/922/480 2034/968/464 f 2065/943/494 2017/884/453 2016/944/495 f 2019/973/503 2050/946/476 2066/945/496 f 2059/974/486 2038/900/465 2062/999/498 f 2026/915/475 2036/1000/500 2025/913/449 f 2065/943/494 2019/972/503 2030/960/463 f 2066/945/496 2043/992/492 2019/973/503 f 2049/897/459 2043/992/492 2066/945/496 f 2043/992/492 2049/897/459 2034/899/464 f 2037/970/456 2008/910/455 2063/909/447 f 2062/951/498 2044/904/469 2042/933/487 f 2025/953/449 2028/902/467 2058/954/499 f 2026/915/475 2060/971/490 2063/909/447 f 2042/942/487 2041/978/478 2061/1001/485 f 2051/1002/477 2061/1001/485 2041/978/478 f 2100/1003/504 2080/1004/505 2067/1005/506 f 2067/1005/506 2069/1006/507 2070/1007/508 f 2095/1008/509 2094/1009/510 2076/1010/511 f 2093/1011/512 2078/1012/513 2081/1013/514 f 2072/1014/515 2069/1015/507 2088/1016/516 f 2101/1017/517 2073/1018/518 2083/1019/519 f 2071/1020/520 2091/1021/521 2084/1022/522 f 2093/1011/512 2081/1013/514 2092/1023/523 f 2077/1024/524 2078/1012/513 2103/1025/525 f 2093/1011/512 2092/1023/523 2074/1026/526 f 2094/1009/510 2095/1008/509 2080/1027/505 f 2088/1016/516 2096/1028/527 2072/1014/515 f 2080/1027/505 2100/1029/504 2094/1009/510 f 2080/1004/505 2095/1030/509 2096/1031/527 f 2097/1032/528 2099/1033/529 2091/1034/521 f 2076/1035/511 2094/1036/510 2085/1037/530 f 2096/1031/527 2088/1038/516 2080/1004/505 f 2072/1014/515 2096/1028/527 2086/1039/531 f 2069/1006/507 2080/1004/505 2088/1038/516 f 2071/1040/520 2069/1015/507 2072/1014/515 f 2103/1025/525 2082/1041/532 2079/1042/533 f 2082/1041/532 2093/1011/512 2074/1026/526 f 2101/1017/517 2100/1043/504 2068/1044/534 f 2083/1045/519 2099/1046/529 2097/1047/528 f 2068/1048/534 2070/1049/508 2084/1022/522 f 2084/1022/522 2099/1046/529 2073/1050/518 f 2097/1032/528 2089/1051/535 2083/1052/519 f 2069/1006/507 2067/1005/506 2080/1004/505 f 2104/1053/536 2090/1054/537 2071/1040/520 f 2104/1053/536 2072/1014/515 2086/1039/531 f 2068/1044/534 2073/1018/518 2101/1017/517 f 2093/1011/512 2103/1025/525 2078/1012/513 f 2082/1041/532 2103/1025/525 2093/1011/512 f 2077/1055/524 2090/1054/537 2098/1056/538 f 2084/1022/522 2073/1050/518 2068/1048/534 f 2070/1007/508 2068/1057/534 2067/1005/506 f 2076/1010/511 2075/1058/539 2092/1059/523 f 2087/1060/540 2092/1061/523 2081/1062/514 f 2070/1063/508 2069/1015/507 2071/1040/520 f 2076/1010/511 2102/1064/541 2095/1008/509 f 2091/1065/521 2090/1054/537 2077/1055/524 f 2091/1021/521 2071/1020/520 2090/1066/537 f 2104/1053/536 2086/1039/531 2098/1056/538 f 2085/1037/530 2094/1036/510 2100/1043/504 f 2072/1014/515 2104/1053/536 2071/1040/520 f 2076/1035/511 2079/1067/533 2074/1068/526 f 2085/1037/530 2079/1067/533 2076/1035/511 f 2090/1054/537 2104/1053/536 2098/1056/538 f 2102/1064/541 2087/1069/540 2086/1070/531 f 2076/1035/511 2074/1068/526 2075/1071/539 f 2084/1022/522 2091/1021/521 2099/1046/529 f 2077/1055/524 2098/1056/538 2078/1072/513 f 2081/1062/514 2098/1056/538 2087/1060/540 f 2086/1039/531 2087/1060/540 2098/1056/538 f 2089/1073/535 2085/1037/530 2101/1017/517 f 2102/1064/541 2076/1010/511 2087/1069/540 f 2092/1059/523 2087/1069/540 2076/1010/511 f 2083/1045/519 2073/1050/518 2099/1046/529 f 2078/1072/513 2098/1056/538 2081/1062/514 f 2079/1042/533 2097/1032/528 2103/1025/525 f 2097/1032/528 2079/1042/533 2089/1051/535 f 2074/1068/526 2079/1067/533 2082/1074/532 f 2070/1063/508 2071/1040/520 2084/1075/522 f 2103/1025/525 2097/1032/528 2077/1024/524 f 2077/1076/524 2097/1077/528 2091/1078/521 f 2101/1017/517 2083/1019/519 2089/1073/535 f 2100/1043/504 2101/1017/517 2085/1037/530 f 2074/1026/526 2092/1023/523 2075/1079/539 f 2095/1080/509 2086/1081/531 2096/1082/527 f 2086/1081/531 2095/1080/509 2102/1083/541 f 2079/1067/533 2085/1037/530 2089/1073/535 f 2067/1005/506 2068/1057/534 2100/1084/504 f 2113/1085/542 2128/1086/543 2114/1087/544 f 2128/1086/543 2115/1088/545 2141/1089/546 f 2116/1090/547 2117/1091/548 2118/1092/549 f 2155/1093/550 2147/1094/551 2119/1095/552 f 2120/1096/553 2151/1097/554 2121/1098/555 f 2148/1099/556 2149/1100/557 2122/1101/558 f 2131/1102/559 2106/1103/560 2111/1104/561 f 2132/1105/562 2135/1106/563 2133/1107/564 f 2138/1108/565 2130/1109/566 2145/1110/567 f 2127/1111/568 2144/1112/569 2139/1113/570 f 2139/1114/570 2144/1115/569 2135/1116/563 f 2123/1117/571 2146/1118/572 2124/1119/573 f 2134/1120/574 2132/1105/562 2150/1121/575 f 2148/1099/556 2129/1122/576 2149/1100/557 f 2120/1123/553 2145/1124/567 2151/1125/554 f 2113/1085/542 2114/1087/544 2152/1126/577 f 2150/1127/575 2136/1128/578 2157/1129/579 f 2108/1130/580 2105/1131/581 2109/1132/582 f 2127/1111/568 2121/1133/555 2140/1134/583 f 2114/1135/544 2128/1136/543 2122/1101/558 f 2143/1137/584 2133/1138/564 2135/1116/563 f 2145/1139/567 2120/1140/553 2138/1141/565 f 2150/1121/575 2157/1142/579 2134/1120/574 f 2124/1143/573 2125/1144/585 2123/1145/571 f 2116/1090/547 2119/1095/552 2117/1091/548 f 2143/1137/584 2118/1092/549 2117/1091/548 f 2166/1146/586 2130/1109/566 2138/1108/565 f 2147/1147/551 2167/1148/587 2146/1118/572 f 2135/1106/563 2132/1105/562 2134/1120/574 f 2121/1133/555 2160/1149/588 2141/1089/546 f 2117/1091/548 2119/1095/552 2143/1137/584 f 2121/1098/555 2127/1150/568 2120/1096/553 f 2153/1151/589 2155/1152/550 2116/1153/547 f 2114/1135/544 2168/1154/590 2152/1155/577 f 2154/1156/591 2135/1106/563 2134/1120/574 f 2113/1157/542 2118/1158/549 2158/1159/592 f 2129/1122/576 2161/1160/593 2174/1161/594 f 2138/1162/565 2157/1142/579 2136/1163/578 f 2138/1162/565 2136/1163/578 2163/1164/595 f 2107/1165/596 2108/1166/580 2169/1167/597 f 2125/1168/585 2175/1169/598 2162/1170/599 f 2112/1171/600 2156/1172/601 2142/1173/602 f 2173/1174/603 2119/1175/552 2147/1147/551 f 2162/1170/599 2123/1117/571 2125/1168/585 f 2164/1176/604 2137/1177/605 2112/1178/600 f 2118/1092/549 2159/1179/606 2158/1180/592 f 2155/1152/550 2152/1155/577 2168/1154/590 f 2124/1181/573 2174/1161/594 2161/1160/593 f 2112/1178/600 2106/1103/560 2164/1176/604 f 2148/1182/556 2160/1149/588 2171/1183/607 f 2156/1172/601 2130/1109/566 2142/1173/602 f 2175/1169/598 2169/1184/597 2162/1170/599 f 2148/1185/556 2171/1186/607 2165/1187/608 f 2165/1187/608 2151/1188/554 2145/1189/567 f 2150/1190/575 2173/1174/603 2162/1170/599 f 2152/1126/577 2153/1191/589 2113/1085/542 f 2154/1156/591 2120/1192/553 2127/1193/568 f 2164/1194/604 2107/1165/596 2126/1195/609 f 2129/1122/576 2164/1176/604 2161/1160/593 f 2144/1115/569 2158/1180/592 2159/1179/606 f 2147/1147/551 2155/1196/550 2167/1148/587 f 2128/1086/543 2141/1089/546 2160/1149/588 f 2160/1149/588 2148/1182/556 2128/1086/543 f 2142/1173/602 2111/1197/561 2112/1171/600 f 2109/1132/582 2131/1198/559 2110/1199/610 f 2156/1172/601 2112/1171/600 2137/1200/605 f 2149/1100/557 2167/1201/587 2122/1101/558 f 2144/1112/569 2127/1111/568 2140/1134/583 f 2110/1202/610 2111/1197/561 2142/1173/602 f 2151/1188/554 2165/1187/608 2171/1186/607 f 2141/1089/546 2115/1088/545 2158/1203/592 f 2123/1117/571 2162/1170/599 2173/1174/603 f 2153/1204/589 2118/1092/549 2113/1205/542 f 2164/1176/604 2129/1122/576 2137/1177/605 f 2158/1203/592 2115/1088/545 2113/1085/542 f 2119/1095/552 2116/1090/547 2155/1093/550 f 2109/1206/582 2110/1207/610 2108/1208/580 f 2108/1208/580 2166/1209/586 2163/1164/595 f 2131/1198/559 2109/1132/582 2106/1210/560 f 2106/1103/560 2112/1178/600 2111/1104/561 f 2108/1166/580 2107/1165/596 2105/1211/581 f 2121/1133/555 2141/1089/546 2140/1134/583 f 2106/1210/560 2109/1132/582 2105/1131/581 f 2127/1111/568 2139/1113/570 2170/1212/611 f 2129/1213/576 2165/1214/608 2137/1200/605 f 2144/1112/569 2140/1134/583 2172/1215/612 f 2152/1155/577 2155/1152/550 2153/1151/589 f 2111/1197/561 2110/1202/610 2131/1216/559 f 2107/1165/596 2169/1167/597 2175/1217/598 f 2173/1174/603 2150/1190/575 2132/1218/562 f 2156/1172/601 2137/1200/605 2165/1214/608 f 2173/1174/603 2133/1219/564 2143/1220/584 f 2157/1142/579 2138/1162/565 2120/1192/553 f 2126/1195/609 2161/1221/593 2164/1194/604 f 2149/1100/557 2174/1161/594 2167/1201/587 f 2146/1222/572 2167/1201/587 2174/1161/594 f 2136/1223/578 2150/1190/575 2169/1184/597 f 2172/1215/612 2140/1134/583 2141/1089/546 f 2158/1203/592 2172/1215/612 2141/1089/546 f 2115/1088/545 2128/1086/543 2113/1085/542 f 2118/1092/549 2153/1204/589 2116/1090/547 f 2143/1137/584 2135/1116/563 2118/1092/549 f 2174/1161/594 2124/1181/573 2146/1222/572 f 2164/1176/604 2105/1224/581 2107/1225/596 f 2174/1161/594 2149/1100/557 2129/1122/576 f 2156/1172/601 2145/1110/567 2130/1109/566 f 2163/1164/595 2136/1163/578 2108/1208/580 f 2163/1164/595 2166/1209/586 2138/1162/565 f 2171/1226/607 2160/1227/588 2151/1097/554 f 2144/1115/569 2172/1228/612 2158/1180/592 f 2161/1229/593 2125/1230/585 2124/1231/573 f 2108/1166/580 2136/1232/578 2169/1167/597 f 2120/1192/553 2154/1156/591 2157/1142/579 f 2166/1209/586 2108/1208/580 2110/1207/610 f 2146/1118/572 2123/1117/571 2147/1147/551 f 2168/1154/590 2122/1101/558 2167/1201/587 f 2135/1106/563 2154/1156/591 2170/1233/611 f 2118/1092/549 2135/1116/563 2144/1115/569 f 2147/1147/551 2123/1117/571 2173/1174/603 f 2122/1101/558 2128/1136/543 2148/1099/556 f 2173/1234/603 2143/1137/584 2119/1095/552 f 2154/1156/591 2134/1120/574 2157/1142/579 f 2175/1217/598 2125/1235/585 2126/1195/609 f 2155/1152/550 2168/1154/590 2167/1201/587 f 2121/1098/555 2151/1097/554 2160/1227/588 f 2139/1236/570 2135/1106/563 2170/1233/611 f 2127/1193/568 2170/1233/611 2154/1156/591 f 2145/1110/567 2156/1172/601 2165/1214/608 f 2162/1170/599 2169/1184/597 2150/1190/575 f 2161/1221/593 2126/1195/609 2125/1235/585 f 2105/1224/581 2164/1176/604 2106/1103/560 f 2175/1217/598 2126/1195/609 2107/1165/596 f 2168/1154/590 2114/1135/544 2122/1101/558 f 2118/1092/549 2144/1115/569 2159/1179/606 f 2165/1187/608 2129/1237/576 2148/1185/556 f 2142/1173/602 2130/1109/566 2110/1202/610 f 2173/1174/603 2132/1218/562 2133/1219/564 f 2166/1209/586 2110/1207/610 2130/1238/566 f 2179/1239/613 2176/1240/614 2195/1241/615 f 2189/1242/616 2209/1243/617 2190/1244/618 f 2197/1245/619 2198/1246/620 2200/1247/621 f 2212/1248/622 2182/1249/623 2199/1250/624 f 2178/1251/625 2201/1252/626 2230/1253/627 f 2187/1254/628 2213/1255/629 2204/1256/630 f 2212/1257/622 2196/1258/631 2182/1259/623 f 2213/1260/629 2198/1261/620 2204/1262/630 f 2224/1263/632 2193/1264/633 2192/1265/634 f 2203/1266/635 2202/1267/636 2208/1268/637 f 2211/1269/638 2201/1252/626 2197/1245/619 f 2231/1270/639 2230/1271/627 2179/1272/613 f 2225/1273/640 2194/1274/641 2180/1275/642 f 2192/1265/634 2193/1264/633 2210/1276/643 f 2190/1277/618 2191/1278/644 2189/1279/616 f 2214/1280/645 2205/1281/646 2215/1282/647 f 2208/1283/637 2187/1284/628 2186/1285/648 f 2183/1286/649 2196/1258/631 2212/1257/622 f 2199/1287/624 2235/1288/650 2212/1289/622 f 2212/1289/622 2217/1290/651 2183/1291/649 f 2228/1292/652 2206/1293/653 2223/1294/654 f 2219/1295/655 2203/1296/635 2186/1297/648 f 2201/1252/626 2232/1298/656 2227/1299/657 f 2207/1300/658 2216/1301/659 2211/1269/638 f 2187/1284/628 2208/1283/637 2206/1302/653 f 2220/1303/660 2210/1276/643 2221/1304/661 f 2233/1305/662 2215/1282/647 2181/1306/663 f 2213/1260/629 2214/1307/645 2234/1308/664 f 2186/1285/648 2218/1309/665 2219/1310/655 f 2232/1311/656 2189/1242/616 2227/1312/657 f 2221/1304/661 2209/1313/617 2220/1303/660 f 2177/1314/666 2203/1296/635 2178/1251/625 f 2203/1296/635 2177/1314/666 2194/1315/641 f 2194/1274/641 2225/1273/640 2229/1316/667 f 2209/1313/617 2221/1304/661 2190/1317/618 f 2193/1264/633 2195/1241/615 2226/1318/668 f 2188/1319/669 2215/1320/647 2228/1321/652 f 2213/1255/629 2187/1254/628 2205/1281/646 f 2205/1281/646 2214/1280/645 2213/1255/629 f 2233/1322/662 2182/1323/623 2196/1324/631 f 2193/1264/633 2226/1318/668 2190/1317/618 f 2231/1325/639 2195/1326/615 2222/1327/670 f 2222/1328/670 2180/1275/642 2194/1274/641 f 2235/1288/650 2199/1287/624 2188/1319/669 f 2218/1329/665 2186/1285/648 2187/1284/628 f 2195/1326/615 2231/1325/639 2179/1330/613 f 2185/1331/671 2183/1286/649 2217/1332/651 f 2198/1246/620 2218/1333/665 2204/1334/630 f 2201/1335/626 2227/1336/657 2230/1271/627 f 2214/1280/645 2233/1305/662 2184/1337/672 f 2177/1314/666 2230/1253/627 2231/1338/639 f 2184/1339/672 2183/1286/649 2185/1331/671 f 2223/1340/654 2192/1265/634 2210/1276/643 f 2181/1341/663 2188/1319/669 2199/1287/624 f 2180/1275/642 2224/1342/632 2225/1273/640 f 2229/1316/667 2225/1273/640 2224/1342/632 f 2217/1290/651 2212/1289/622 2235/1288/650 f 2235/1288/650 2220/1303/660 2217/1290/651 f 2229/1316/667 2223/1294/654 2206/1293/653 f 2194/1274/641 2229/1316/667 2202/1267/636 f 2197/1245/619 2218/1333/665 2198/1246/620 f 2180/1275/642 2222/1328/670 2195/1343/615 f 2199/1250/624 2182/1249/623 2181/1306/663 f 2233/1305/662 2214/1280/645 2215/1282/647 f 2206/1302/653 2205/1344/646 2187/1284/628 f 2185/1345/671 2232/1346/656 2216/1347/659 f 2185/1345/671 2189/1348/616 2232/1346/656 f 2235/1288/650 2210/1276/643 2220/1303/660 f 2221/1304/661 2210/1276/643 2193/1264/633 f 2228/1321/652 2223/1340/654 2188/1319/669 f 2210/1276/643 2188/1319/669 2223/1340/654 f 2216/1347/659 2232/1346/656 2211/1349/638 f 2189/1348/616 2185/1345/671 2209/1350/617 f 2203/1296/635 2219/1295/655 2178/1251/625 f 2226/1351/668 2176/1352/614 2191/1353/644 f 2185/1331/671 2216/1354/659 2184/1339/672 f 2230/1253/627 2177/1314/666 2178/1251/625 f 2235/1288/650 2188/1319/669 2210/1276/643 f 2232/1298/656 2201/1252/626 2211/1269/638 f 2192/1355/634 2223/1356/654 2224/1357/632 f 2202/1267/636 2203/1266/635 2194/1274/641 f 2198/1261/620 2207/1358/658 2200/1359/621 f 2216/1354/659 2207/1358/658 2184/1339/672 f 2211/1360/638 2200/1361/621 2207/1362/658 f 2218/1333/665 2197/1245/619 2219/1295/655 f 2177/1363/666 2222/1328/670 2194/1274/641 f 2208/1268/637 2186/1364/648 2203/1266/635 f 2230/1271/627 2191/1278/644 2176/1365/614 f 2176/1365/614 2179/1272/613 2230/1271/627 f 2201/1252/626 2178/1251/625 2197/1245/619 f 2219/1295/655 2197/1245/619 2178/1251/625 f 2180/1366/642 2195/1241/615 2193/1264/633 f 2176/1240/614 2226/1318/668 2195/1241/615 f 2222/1328/670 2177/1363/666 2231/1367/639 f 2229/1316/667 2208/1268/637 2202/1267/636 f 2193/1264/633 2224/1263/632 2180/1366/642 f 2227/1312/657 2189/1242/616 2191/1368/644 f 2188/1369/669 2181/1306/663 2215/1282/647 f 2220/1370/660 2209/1350/617 2217/1371/651 f 2184/1339/672 2196/1258/631 2183/1286/649 f 2185/1345/671 2217/1371/651 2209/1350/617 f 2204/1334/630 2218/1333/665 2187/1372/628 f 2233/1305/662 2181/1306/663 2182/1249/623 f 2184/1339/672 2234/1308/664 2214/1307/645 f 2223/1294/654 2229/1316/667 2224/1342/632 f 2191/1278/644 2190/1277/618 2226/1373/668 f 2233/1374/662 2196/1258/631 2184/1339/672 f 2234/1308/664 2184/1339/672 2207/1358/658 f 2213/1260/629 2234/1308/664 2207/1358/658 f 2207/1358/658 2198/1261/620 2213/1260/629 f 2229/1316/667 2206/1293/653 2208/1268/637 f 2190/1317/618 2221/1304/661 2193/1264/633 f 2197/1245/619 2200/1247/621 2211/1269/638 f 2191/1278/644 2230/1271/627 2227/1336/657 f 2206/1302/653 2228/1375/652 2205/1344/646 f 2215/1376/647 2205/1344/646 2228/1375/652 f 2268/1377/673 2236/1378/674 2249/1379/675 f 2236/1378/674 2239/1380/676 2238/1381/677 f 2263/1382/678 2245/1383/679 2262/1384/680 f 2261/1385/681 2250/1386/682 2247/1387/683 f 2241/1388/684 2257/1389/685 2238/1390/677 f 2269/1391/686 2252/1392/687 2242/1393/688 f 2240/1394/689 2253/1395/690 2259/1396/691 f 2250/1386/682 2261/1385/681 2243/1397/692 f 2246/1398/693 2271/1399/694 2247/1387/683 f 2262/1400/680 2249/1401/675 2263/1402/678 f 2257/1389/685 2241/1388/684 2264/1403/695 f 2249/1401/675 2262/1400/680 2268/1404/673 f 2249/1379/675 2264/1405/695 2263/1406/678 f 2265/1407/696 2259/1408/691 2267/1409/697 f 2245/1410/679 2254/1411/698 2262/1400/680 f 2264/1405/695 2249/1379/675 2257/1412/685 f 2241/1413/684 2255/1414/699 2264/1415/695 f 2238/1381/677 2257/1412/685 2249/1379/675 f 2240/1416/689 2241/1388/684 2238/1390/677 f 2271/1399/694 2248/1417/700 2251/1418/701 f 2251/1418/701 2243/1397/692 2261/1385/681 f 2269/1419/686 2237/1420/702 2268/1404/673 f 2252/1392/687 2265/1421/696 2267/1422/697 f 2237/1423/702 2253/1395/690 2239/1424/676 f 2253/1395/690 2242/1393/688 2267/1422/697 f 2265/1407/696 2252/1425/687 2258/1426/703 f 2250/1386/682 2243/1397/692 2244/1427/704 f 2238/1381/677 2249/1379/675 2236/1378/674 f 2272/1428/705 2240/1416/689 2260/1429/706 f 2272/1428/705 2255/1430/699 2241/1388/684 f 2237/1420/702 2269/1419/686 2242/1431/688 f 2261/1385/681 2247/1387/683 2271/1399/694 f 2251/1418/701 2261/1385/681 2271/1399/694 f 2246/1432/693 2266/1433/707 2260/1429/706 f 2253/1395/690 2237/1423/702 2242/1393/688 f 2239/1380/676 2236/1378/674 2237/1434/702 f 2245/1383/679 2250/1435/682 2244/1436/704 f 2239/1437/676 2240/1416/689 2238/1390/677 f 2245/1383/679 2263/1382/678 2270/1438/708 f 2259/1439/691 2246/1432/693 2260/1429/706 f 2259/1439/691 2260/1429/706 2240/1416/689 f 2272/1428/705 2266/1433/707 2255/1430/699 f 2254/1411/698 2268/1404/673 2262/1400/680 f 2241/1388/684 2240/1416/689 2272/1428/705 f 2245/1410/679 2243/1440/692 2248/1441/700 f 2254/1411/698 2245/1410/679 2248/1441/700 f 2260/1429/706 2266/1433/707 2272/1428/705 f 2270/1438/708 2255/1442/699 2256/1443/709 f 2245/1410/679 2244/1444/704 2243/1440/692 f 2253/1395/690 2267/1422/697 2259/1396/691 f 2246/1432/693 2247/1445/683 2266/1433/707 f 2250/1446/682 2256/1447/709 2266/1433/707 f 2255/1430/699 2266/1433/707 2256/1447/709 f 2258/1448/703 2269/1419/686 2254/1411/698 f 2270/1438/708 2256/1443/709 2245/1383/679 f 2250/1435/682 2245/1383/679 2256/1443/709 f 2252/1392/687 2267/1422/697 2242/1393/688 f 2247/1445/683 2250/1446/682 2266/1433/707 f 2248/1417/700 2271/1399/694 2265/1407/696 f 2265/1407/696 2258/1426/703 2248/1417/700 f 2243/1440/692 2251/1449/701 2248/1441/700 f 2239/1437/676 2253/1450/690 2240/1416/689 f 2271/1399/694 2246/1398/693 2265/1407/696 f 2246/1451/693 2259/1452/691 2265/1453/696 f 2269/1419/686 2258/1448/703 2252/1454/687 f 2268/1404/673 2254/1411/698 2269/1419/686 f 2263/1455/678 2264/1415/695 2255/1414/699 f 2255/1414/699 2270/1456/708 2263/1455/678 f 2248/1441/700 2258/1448/703 2254/1411/698 f 2236/1457/674 2268/1404/673 2237/1420/702 usemtl _teeth_maxwire_008008136 f 365/1458/710 366/1459/711 364/1460/712 f 368/1461/713 367/1462/714 386/1463/715 f 373/1464/716 374/1465/717 417/1466/718 f 375/1467/719 377/1468/720 454/1469/721 f 449/1470/722 379/1471/723 378/1472/724 f 381/1473/725 366/1459/711 440/1474/726 f 369/1475/727 383/1476/728 430/1477/729 f 386/1478/715 452/1479/730 432/1480/731 f 385/1481/732 386/1463/715 367/1462/714 f 400/1482/733 394/1483/734 389/1484/735 f 452/1479/730 447/1485/736 433/1486/737 f 433/1486/737 372/1487/738 371/1488/739 f 390/1489/740 389/1490/735 396/1491/741 f 446/1492/742 396/1493/741 388/1494/743 f 372/1487/738 446/1492/742 388/1494/743 f 394/1495/734 400/1496/733 393/1497/744 f 379/1471/723 449/1470/722 380/1498/745 f 368/1461/713 381/1473/725 440/1474/726 f 404/1499/746 435/1500/747 429/1501/748 f 433/1486/737 432/1480/731 452/1479/730 f 430/1502/729 412/1503/749 413/1504/750 f 395/1505/751 430/1477/729 383/1476/728 f 456/1506/752 458/1507/753 448/1508/754 f 400/1496/733 424/1509/755 391/1510/756 f 424/1511/755 400/1482/733 421/1512/757 f 424/1511/755 427/1513/758 417/1514/718 f 392/1515/759 391/1516/756 380/1498/745 f 391/1510/756 434/1517/760 400/1496/733 f 421/1512/757 427/1513/758 424/1511/755 f 418/1518/761 419/1519/762 370/1520/763 f 453/1521/764 454/1469/721 424/1509/755 f 458/1522/753 405/1523/765 410/1524/766 f 420/1525/767 402/1526/768 365/1458/710 f 427/1527/758 421/1528/757 390/1489/740 f 426/1529/769 422/1530/770 442/1531/771 f 417/1514/718 453/1532/764 424/1511/755 f 425/1533/772 402/1526/768 420/1525/767 f 431/1534/773 411/1535/774 455/1536/775 f 426/1529/769 455/1536/775 411/1535/774 f 376/1537/776 417/1466/718 427/1527/758 f 430/1477/729 382/1538/777 369/1475/727 f 452/1479/730 385/1539/732 439/1540/778 f 456/1506/752 443/1541/779 458/1507/753 f 395/1505/751 412/1542/749 430/1477/729 f 383/1543/728 414/1544/780 445/1545/781 f 451/1546/782 426/1529/769 411/1535/774 f 431/1534/773 455/1536/775 436/1547/783 f 382/1548/777 437/1549/784 369/1550/727 f 373/1551/716 385/1481/732 397/1552/785 f 446/1492/742 439/1540/778 376/1553/776 f 402/1526/768 367/1462/714 440/1474/726 f 423/1554/786 387/1555/787 441/1556/788 f 381/1557/725 401/1558/789 366/1559/711 f 380/1560/745 391/1561/756 379/1562/723 f 384/1563/790 364/1564/712 445/1565/781 f 390/1489/740 376/1537/776 427/1527/758 f 414/1544/780 383/1543/728 369/1566/727 f 445/1545/781 364/1567/712 383/1543/728 f 456/1506/752 448/1508/754 435/1568/747 f 449/1569/722 384/1563/790 445/1565/781 f 386/1478/715 385/1539/732 452/1479/730 f 366/1459/711 395/1570/751 364/1460/712 f 412/1571/749 395/1570/751 366/1459/711 f 428/1572/791 392/1515/759 380/1498/745 f 378/1573/724 384/1563/790 449/1569/722 f 365/1458/710 402/1526/768 440/1474/726 f 451/1546/782 411/1535/774 401/1558/789 f 446/1492/742 447/1485/736 452/1479/730 f 437/1549/784 370/1520/763 399/1574/792 f 380/1498/745 449/1470/722 428/1572/791 f 452/1479/730 439/1540/778 446/1492/742 f 437/1549/784 407/1575/793 406/1576/794 f 370/1520/763 437/1549/784 406/1576/794 f 441/1556/788 399/1574/792 370/1520/763 f 432/1480/731 433/1486/737 408/1577/795 f 412/1503/749 431/1578/773 436/1579/783 f 367/1462/714 402/1526/768 385/1481/732 f 454/1469/721 453/1521/764 375/1467/719 f 402/1526/768 374/1580/717 397/1552/785 f 450/1581/796 394/1582/734 423/1554/786 f 455/1536/775 426/1529/769 407/1583/793 f 368/1461/713 405/1523/765 381/1473/725 f 416/1584/797 404/1499/746 429/1501/748 f 393/1497/744 400/1496/733 434/1517/760 f 408/1577/795 438/1585/798 432/1480/731 f 422/1530/770 426/1529/769 451/1546/782 f 374/1580/717 402/1526/768 375/1586/719 f 387/1587/787 428/1588/791 399/1589/792 f 391/1516/756 392/1515/759 434/1590/760 f 415/1591/799 458/1507/753 457/1592/800 f 432/1480/731 368/1593/713 386/1478/715 f 429/1594/748 435/1568/747 448/1508/754 f 389/1490/735 390/1489/740 421/1528/757 f 369/1566/727 399/1595/792 414/1544/780 f 409/1596/801 426/1529/769 442/1531/771 f 415/1597/799 457/1598/800 416/1599/797 f 426/1529/769 406/1600/794 407/1583/793 f 444/1601/802 422/1602/770 381/1603/725 f 458/1507/753 415/1591/799 448/1508/754 f 378/1472/724 454/1604/721 377/1605/720 f 401/1558/789 422/1530/770 451/1546/782 f 423/1606/786 393/1607/744 392/1515/759 f 453/1532/764 417/1514/718 374/1608/717 f 391/1510/756 424/1509/755 454/1469/721 f 421/1512/757 400/1482/733 389/1484/735 f 438/1585/798 416/1599/797 457/1598/800 f 393/1497/744 423/1609/786 394/1495/734 f 402/1526/768 425/1533/772 375/1586/719 f 376/1553/776 390/1610/740 446/1492/742 f 436/1579/783 413/1504/750 412/1503/749 f 370/1520/763 419/1519/762 441/1556/788 f 420/1525/767 365/1458/710 384/1611/790 f 382/1548/777 413/1612/750 437/1549/784 f 403/1613/803 389/1484/735 394/1483/734 f 373/1614/716 439/1540/778 385/1539/732 f 385/1481/732 402/1526/768 397/1552/785 f 423/1554/786 441/1556/788 450/1581/796 f 425/1533/772 377/1615/720 375/1586/719 f 384/1611/790 378/1616/724 420/1525/767 f 392/1515/759 428/1572/791 398/1617/804 f 429/1618/748 448/1508/754 415/1591/799 f 415/1619/799 416/1584/797 429/1501/748 f 370/1520/763 371/1620/739 418/1518/761 f 409/1621/801 442/1622/771 456/1506/752 f 372/1623/738 388/1624/743 419/1519/762 f 450/1581/796 419/1519/762 388/1624/743 f 388/1624/743 396/1625/741 450/1581/796 f 414/1626/780 399/1589/792 428/1588/791 f 399/1574/792 369/1550/727 437/1549/784 f 454/1627/721 379/1562/723 391/1561/756 f 447/1485/736 372/1487/738 433/1486/737 f 368/1593/713 432/1480/731 410/1628/766 f 392/1515/759 398/1617/804 423/1606/786 f 374/1608/717 375/1629/719 453/1532/764 f 450/1581/796 403/1630/803 394/1582/734 f 458/1507/753 443/1541/779 405/1631/765 f 387/1555/787 423/1554/786 398/1632/804 f 444/1601/802 381/1603/725 405/1631/765 f 456/1506/752 444/1601/802 443/1541/779 f 408/1577/795 416/1599/797 438/1585/798 f 446/1492/742 372/1487/738 447/1485/736 f 396/1491/741 446/1633/742 390/1489/740 f 409/1634/801 435/1500/747 371/1620/739 f 393/1607/744 434/1590/760 392/1515/759 f 387/1635/787 398/1617/804 428/1572/791 f 444/1601/802 442/1622/771 422/1602/770 f 441/1556/788 419/1519/762 450/1581/796 f 454/1604/721 378/1472/724 379/1471/723 f 425/1533/772 420/1525/767 378/1616/724 f 416/1599/797 433/1486/737 404/1636/746 f 444/1601/802 456/1506/752 442/1622/771 f 409/1634/801 370/1520/763 406/1576/794 f 443/1541/779 444/1601/802 405/1631/765 f 383/1476/728 364/1637/712 395/1505/751 f 455/1536/775 407/1583/793 436/1547/783 f 401/1638/789 411/1639/774 366/1459/711 f 405/1523/765 368/1461/713 410/1524/766 f 456/1506/752 435/1568/747 409/1621/801 f 418/1518/761 371/1620/739 372/1623/738 f 364/1460/712 384/1611/790 365/1458/710 f 410/1628/766 432/1480/731 438/1585/798 f 399/1574/792 441/1556/788 387/1555/787 f 433/1486/737 416/1599/797 408/1577/795 f 377/1615/720 425/1533/772 378/1616/724 f 458/1522/753 410/1524/766 457/1640/800 f 368/1461/713 440/1474/726 367/1462/714 f 430/1502/729 413/1504/750 382/1641/777 f 412/1571/749 366/1459/711 411/1639/774 f 433/1486/737 371/1488/739 404/1636/746 f 412/1571/749 411/1639/774 431/1642/773 f 396/1491/741 389/1490/735 403/1643/803 f 457/1598/800 410/1628/766 438/1585/798 f 419/1519/762 418/1518/761 372/1623/738 f 422/1530/770 401/1558/789 381/1557/725 f 435/1500/747 404/1499/746 371/1620/739 f 439/1644/778 373/1464/716 376/1537/776 f 373/1464/716 417/1466/718 376/1537/776 f 366/1459/711 365/1458/710 440/1474/726 f 450/1581/796 396/1625/741 403/1630/803 f 397/1552/785 374/1580/717 373/1645/716 f 428/1588/791 449/1569/722 414/1626/780 f 414/1626/780 449/1569/722 445/1565/781 f 371/1620/739 370/1520/763 409/1634/801 f 437/1549/784 413/1612/750 407/1575/793 f 406/1600/794 426/1529/769 409/1596/801 f 436/1646/783 407/1575/793 413/1612/750 f 460/1647/805 461/1648/806 459/1649/807 f 460/1650/805 462/1651/808 461/1652/806 f 491/1653/809 464/1654/810 465/1655/811 f 466/1656/812 465/1655/811 463/1657/813 f 493/1658/814 467/1659/815 468/1660/816 f 473/1661/817 475/1662/818 474/1663/819 f 475/1662/818 476/1664/820 477/1665/821 f 479/1666/822 480/1667/823 474/1663/819 f 481/1668/824 504/1669/825 560/1670/826 f 487/1671/827 462/1651/808 463/1657/813 f 469/1672/828 468/1660/816 544/1673/829 f 468/1660/816 467/1659/815 544/1673/829 f 467/1674/815 488/1675/830 547/1676/831 f 472/1677/832 554/1678/833 551/1679/834 f 471/1680/835 494/1681/836 470/1682/837 f 459/1683/807 486/1684/838 489/1685/839 f 471/1680/835 495/1686/840 494/1681/836 f 506/1687/841 501/1688/842 496/1689/843 f 535/1690/844 471/1680/835 470/1682/837 f 503/1691/845 502/1692/846 495/1686/840 f 490/1693/847 473/1694/817 531/1695/848 f 474/1663/819 546/1696/849 473/1661/817 f 471/1680/835 503/1691/845 495/1686/840 f 516/1697/850 529/1698/851 517/1699/852 f 501/1700/842 506/1701/841 500/1702/853 f 560/1670/826 478/1703/854 481/1668/824 f 483/1704/855 482/1705/856 484/1706/857 f 465/1655/811 487/1671/827 463/1657/813 f 507/1707/858 475/1708/818 490/1693/847 f 465/1655/811 466/1656/812 491/1653/809 f 485/1709/859 489/1710/839 486/1711/838 f 508/1712/860 496/1713/843 501/1714/842 f 509/1715/861 552/1716/862 532/1717/863 f 562/1718/864 534/1719/865 472/1677/832 f 537/1720/866 547/1676/831 488/1675/830 f 541/1721/867 538/1722/868 555/1723/869 f 516/1724/850 517/1725/852 513/1726/870 f 506/1701/841 566/1727/871 498/1728/872 f 566/1729/871 506/1687/841 526/1730/873 f 499/1731/874 498/1732/872 484/1706/857 f 498/1728/872 539/1733/875 506/1701/841 f 526/1730/873 522/1734/876 566/1729/871 f 523/1735/877 524/1736/878 561/1737/879 f 559/1738/880 560/1670/826 566/1727/871 f 553/1739/881 525/1740/882 512/1741/883 f 538/1742/868 510/1743/884 515/1744/885 f 489/1745/839 507/1707/858 460/1650/805 f 522/1746/876 526/1747/873 497/1748/886 f 492/1749/887 548/1750/888 505/1751/889 f 477/1752/821 559/1753/880 566/1729/871 f 545/1754/890 517/1699/852 525/1740/882 f 528/1755/891 525/1740/882 517/1699/852 f 479/1666/822 477/1665/821 522/1746/876 f 541/1721/867 549/1756/892 538/1722/868 f 537/1720/866 536/1757/893 518/1758/894 f 472/1677/832 464/1759/810 558/1760/895 f 488/1761/830 519/1762/896 550/1763/897 f 529/1698/851 528/1755/891 517/1699/852 f 549/1764/892 541/1765/867 533/1766/898 f 545/1754/890 525/1740/882 542/1767/899 f 547/1768/831 544/1673/829 467/1659/815 f 536/1769/893 513/1770/870 545/1771/890 f 546/1772/849 531/1695/848 473/1694/817 f 543/1773/900 531/1774/848 480/1775/823 f 531/1774/848 546/1776/849 480/1775/823 f 507/1707/858 466/1656/812 563/1777/901 f 557/1778/902 548/1750/888 561/1737/879 f 527/1779/903 567/1780/904 533/1766/898 f 484/1781/857 498/1782/872 483/1783/855 f 486/1684/838 459/1683/807 550/1784/897 f 530/1785/905 499/1731/874 484/1706/857 f 497/1748/886 479/1666/822 522/1746/876 f 519/1762/896 488/1761/830 467/1786/815 f 550/1787/897 459/1649/807 488/1675/830 f 472/1677/832 558/1760/895 554/1678/833 f 556/1788/906 486/1684/838 550/1784/897 f 540/1789/907 518/1790/894 542/1791/899 f 536/1757/893 537/1720/866 461/1648/806 f 490/1693/847 491/1653/809 466/1656/812 f 460/1650/805 507/1707/858 563/1777/901 f 486/1684/838 482/1792/856 485/1793/859 f 484/1706/857 556/1794/906 530/1785/905 f 558/1760/895 531/1774/848 554/1678/833 f 469/1672/828 544/1673/829 512/1795/883 f 472/1677/832 551/1679/834 562/1718/864 f 529/1698/851 567/1796/904 527/1797/903 f 536/1769/893 545/1771/890 542/1791/899 f 543/1798/900 480/1667/823 479/1666/822 f 564/1799/908 520/1800/909 555/1801/869 f 466/1656/812 507/1707/858 490/1693/847 f 560/1670/826 559/1738/880 478/1703/854 f 554/1678/833 531/1774/848 543/1773/900 f 500/1802/853 548/1750/888 501/1714/842 f 557/1778/902 501/1714/842 548/1750/888 f 465/1655/811 510/1803/884 487/1804/827 f 554/1678/833 543/1773/900 503/1691/845 f 463/1657/813 563/1777/901 466/1656/812 f 500/1702/853 506/1701/841 539/1733/875 f 556/1794/906 484/1706/857 482/1705/856 f 548/1750/888 500/1802/853 505/1751/889 f 487/1671/827 516/1724/850 462/1651/808 f 489/1745/839 481/1805/824 478/1806/854 f 492/1807/887 530/1808/905 493/1809/814 f 491/1810/809 490/1811/847 531/1774/848 f 482/1792/856 486/1684/838 556/1788/906 f 498/1732/872 499/1731/874 539/1812/875 f 532/1813/863 541/1765/867 555/1801/869 f 551/1679/834 535/1690/844 562/1718/864 f 496/1814/843 508/1815/860 502/1816/846 f 553/1817/881 512/1795/883 544/1673/829 f 467/1786/815 493/1818/814 519/1762/896 f 521/1819/910 509/1820/861 532/1821/863 f 514/1822/911 528/1755/891 527/1797/903 f 528/1755/891 512/1741/883 525/1740/882 f 476/1823/820 475/1824/818 478/1825/854 f 559/1753/880 477/1752/821 476/1823/820 f 498/1728/872 566/1727/871 560/1670/826 f 526/1730/873 506/1687/841 496/1689/843 f 479/1666/822 497/1748/886 543/1798/900 f 565/1826/912 520/1827/909 564/1828/908 f 475/1708/818 489/1745/839 478/1806/854 f 489/1745/839 475/1708/818 507/1707/858 f 542/1791/899 518/1790/894 536/1769/893 f 532/1821/863 520/1827/909 521/1819/910 f 472/1677/832 534/1719/865 464/1759/810 f 538/1829/868 515/1830/885 565/1831/912 f 538/1829/868 565/1831/912 564/1832/908 f 565/1826/912 521/1819/910 520/1827/909 f 492/1749/887 493/1833/814 468/1660/816 f 566/1729/871 522/1734/876 477/1752/821 f 561/1737/879 548/1750/888 492/1749/887 f 530/1834/905 505/1835/889 499/1731/874 f 532/1836/863 555/1801/869 520/1800/909 f 469/1672/828 470/1837/837 523/1735/877 f 543/1773/900 502/1838/846 503/1691/845 f 502/1816/846 543/1798/900 497/1748/886 f 494/1681/836 495/1686/840 524/1839/878 f 557/1840/902 524/1839/878 495/1686/840 f 495/1841/840 502/1842/846 557/1778/902 f 519/1843/896 493/1809/814 530/1808/905 f 560/1670/826 483/1844/855 498/1728/872 f 554/1678/833 471/1680/835 535/1690/844 f 528/1755/891 529/1698/851 527/1797/903 f 464/1759/810 491/1810/809 558/1760/895 f 476/1823/820 478/1825/854 559/1753/880 f 557/1778/902 508/1712/860 501/1714/842 f 538/1742/868 549/1764/892 510/1743/884 f 510/1743/884 549/1764/892 511/1845/913 f 477/1665/821 474/1663/819 475/1662/818 f 537/1720/866 518/1758/894 547/1676/831 f 461/1648/806 537/1720/866 459/1649/807 f 533/1766/898 511/1845/913 549/1764/892 f 562/1718/864 521/1819/910 565/1826/912 f 503/1691/845 471/1680/835 554/1678/833 f 514/1846/911 552/1716/862 470/1837/837 f 500/1847/853 539/1812/875 499/1731/874 f 492/1848/887 505/1835/889 530/1834/905 f 531/1774/848 558/1760/895 491/1810/809 f 526/1747/873 496/1814/843 497/1748/886 f 510/1743/884 511/1845/913 487/1849/827 f 535/1690/844 551/1679/834 554/1678/833 f 561/1737/879 524/1736/878 557/1778/902 f 564/1799/908 555/1801/869 538/1742/868 f 540/1850/907 544/1673/829 547/1768/831 f 552/1716/862 541/1851/867 532/1717/863 f 499/1731/874 505/1835/889 500/1847/853 f 560/1852/826 504/1853/825 483/1704/855 f 482/1705/856 483/1704/855 504/1853/825 f 481/1805/824 489/1745/839 485/1854/859 f 521/1819/910 535/1690/844 509/1820/861 f 490/1693/847 475/1708/818 473/1694/817 f 567/1780/904 487/1849/827 511/1845/913 f 514/1846/911 469/1672/828 512/1795/883 f 511/1845/913 533/1766/898 567/1780/904 f 488/1675/830 459/1649/807 537/1720/866 f 552/1855/862 533/1766/898 541/1765/867 f 516/1724/850 513/1726/870 462/1651/808 f 513/1726/870 517/1725/852 545/1856/890 f 510/1857/884 465/1655/811 515/1830/885 f 533/1766/898 552/1855/862 514/1858/911 f 523/1735/877 470/1837/837 494/1859/836 f 547/1768/831 518/1860/894 540/1850/907 f 542/1767/899 525/1740/882 540/1861/907 f 459/1862/807 489/1745/839 460/1650/805 f 534/1719/865 515/1863/885 464/1759/810 f 468/1660/816 561/1737/879 492/1749/887 f 535/1690/844 521/1819/910 562/1718/864 f 504/1853/825 481/1864/824 485/1865/859 f 563/1777/901 463/1657/813 462/1651/808 f 534/1719/865 562/1718/864 565/1826/912 f 462/1651/808 513/1726/870 461/1652/806 f 535/1690/844 470/1682/837 509/1820/861 f 485/1865/859 482/1705/856 504/1853/825 f 515/1863/885 534/1719/865 565/1826/912 f 502/1816/846 497/1748/886 496/1814/843 f 527/1797/903 533/1866/898 514/1822/911 f 524/1736/878 523/1735/877 494/1859/836 f 561/1737/879 468/1660/816 523/1735/877 f 469/1672/828 523/1735/877 468/1660/816 f 567/1796/904 516/1697/850 487/1867/827 f 516/1697/850 567/1796/904 529/1698/851 f 552/1716/862 509/1715/861 470/1837/837 f 546/1696/849 474/1663/819 480/1667/823 f 474/1663/819 477/1665/821 479/1666/822 f 464/1654/810 515/1830/885 465/1655/811 f 462/1651/808 460/1650/805 563/1777/901 f 540/1850/907 553/1817/881 544/1673/829 f 557/1778/902 502/1842/846 508/1712/860 f 530/1808/905 556/1788/906 519/1843/896 f 519/1843/896 556/1788/906 550/1784/897 f 470/1837/837 469/1672/828 514/1846/911 f 525/1868/882 553/1817/881 540/1850/907 f 461/1869/806 513/1770/870 536/1769/893 f 512/1741/883 528/1755/891 514/1822/911 f 569/1870/914 570/1871/915 568/1872/916 f 568/1872/916 599/1873/917 569/1870/914 f 571/1874/918 594/1875/919 595/1876/920 f 601/1877/921 573/1878/922 574/1879/923 f 574/1879/923 572/1880/924 601/1877/921 f 603/1881/925 575/1882/926 684/1883/927 f 581/1884/928 583/1885/929 584/1886/930 f 576/1887/931 575/1882/926 628/1888/932 f 575/1889/926 597/1890/933 627/1891/934 f 598/1892/935 594/1893/919 620/1894/936 f 579/1895/937 673/1896/938 671/1897/939 f 673/1898/938 660/1899/940 671/1900/939 f 614/1901/941 601/1877/921 572/1880/924 f 579/1895/937 604/1902/942 630/1903/943 f 617/1904/944 612/1905/945 606/1906/946 f 597/1890/933 605/1907/947 675/1908/948 f 666/1909/949 652/1910/950 648/1911/951 f 600/1912/952 590/1913/953 688/1914/954 f 654/1915/955 585/1916/956 584/1917/930 f 613/1918/957 607/1919/958 606/1920/946 f 676/1921/959 606/1920/946 612/1922/945 f 614/1901/941 581/1923/928 656/1924/960 f 582/1925/961 656/1926/960 581/1884/928 f 616/1927/962 587/1928/963 586/1929/964 f 578/1930/965 671/1900/939 660/1899/940 f 596/1931/966 628/1888/932 575/1882/926 f 574/1879/923 594/1875/919 571/1874/918 f 584/1917/930 583/1932/929 654/1915/955 f 585/1933/956 654/1934/955 588/1935/967 f 612/1922/945 617/1936/944 611/1937/968 f 666/1909/949 658/1938/969 580/1939/970 f 624/1940/971 657/1941/972 680/1942/973 f 659/1943/974 651/1944/975 624/1940/971 f 675/1908/948 627/1891/934 597/1890/933 f 617/1936/944 636/1945/976 672/1946/977 f 636/1947/976 617/1904/944 662/1948/978 f 672/1946/977 647/1949/979 617/1936/944 f 635/1950/980 662/1948/978 617/1904/944 f 682/1951/981 650/1952/982 646/1953/983 f 593/1954/984 592/1955/985 591/1956/986 f 585/1933/956 677/1957/987 672/1946/977 f 675/1908/948 644/1958/988 627/1891/934 f 657/1941/972 642/1959/989 680/1942/973 f 662/1960/978 635/1961/980 607/1919/958 f 586/1929/964 607/1919/958 608/1962/990 f 636/1947/976 662/1948/978 585/1916/956 f 672/1946/977 636/1945/976 585/1933/956 f 666/1909/949 649/1963/991 658/1938/969 f 671/1897/939 648/1911/951 579/1895/937 f 674/1964/992 640/1965/993 641/1966/994 f 643/1967/995 680/1942/973 642/1959/989 f 597/1968/933 639/1969/996 665/1970/997 f 627/1971/934 644/1972/988 631/1973/998 f 665/1970/997 605/1974/947 597/1968/933 f 682/1951/981 661/1975/999 650/1952/982 f 620/1894/936 637/1976/1000 621/1977/1001 f 669/1978/1002 634/1979/1003 577/1980/1004 f 576/1887/931 628/1888/932 577/1981/1004 f 656/1924/960 640/1982/993 614/1901/941 f 627/1891/934 596/1983/966 575/1889/926 f 667/1984/1005 641/1966/994 616/1985/962 f 641/1966/994 656/1986/960 616/1985/962 f 643/1967/995 642/1959/989 633/1987/1006 f 662/1960/978 587/1928/963 632/1988/1007 f 685/1989/1008 650/1952/982 637/1976/1000 f 568/1872/916 665/1990/997 599/1873/917 f 668/1991/1009 599/1992/917 665/1993/997 f 583/1994/929 653/1995/1010 654/1996/955 f 639/1969/996 597/1968/933 575/1997/926 f 665/1990/997 568/1872/916 605/1907/947 f 580/1939/970 674/1964/992 652/1910/950 f 650/1952/982 661/1975/999 621/1977/1001 f 679/1998/1011 602/1999/1012 670/2000/1013 f 574/1879/923 626/2001/1014 637/2002/1000 f 653/1995/1010 618/2003/1015 681/2004/1016 f 638/2005/1017 609/2006/1018 592/1955/985 f 571/1874/918 595/1876/920 623/2007/1019 f 591/1956/986 600/1912/952 668/2008/1009 f 647/1949/979 611/1937/968 617/1936/944 f 644/1972/988 643/2009/995 631/1973/998 f 582/1925/961 584/1886/930 632/1988/1007 f 674/1964/992 641/1966/994 652/1910/950 f 595/1876/920 680/2010/973 623/2007/1019 f 570/2011/915 569/2012/914 571/1874/918 f 608/1962/990 616/1927/962 586/1929/964 f 682/1951/981 622/2013/1020 578/2014/965 f 602/1999/1012 603/1881/925 684/1883/927 f 662/1960/978 586/1929/964 587/1928/963 f 656/1986/960 641/1966/994 640/1965/993 f 612/2015/945 619/2016/1021 676/2017/959 f 619/2016/1021 612/2015/945 679/1998/1011 f 598/1892/935 661/1975/999 659/2018/974 f 652/1910/950 641/1966/994 667/1984/1005 f 642/1959/989 657/1941/972 634/1979/1003 f 611/1937/968 647/1949/979 610/2019/1022 f 681/2004/1016 655/2020/1023 569/2012/914 f 670/2000/1013 619/2016/1021 679/1998/1011 f 652/1910/950 667/1984/1005 604/1902/942 f 570/1871/915 675/1908/948 568/1872/916 f 652/1910/950 666/1909/949 580/1939/970 f 574/1879/923 620/2021/936 594/1875/919 f 620/2021/936 574/1879/923 637/2002/1000 f 621/1977/1001 637/1976/1000 650/1952/982 f 585/1916/956 662/1948/978 632/2022/1007 f 657/1941/972 624/1940/971 651/1944/975 f 623/2007/1019 680/2010/973 687/2023/1024 f 602/2024/1012 638/2025/1017 603/2026/925 f 622/2013/1020 682/1951/981 646/1953/983 f 601/2027/921 614/2028/941 640/1965/993 f 629/2029/1025 650/1952/982 685/1989/1008 f 678/2030/1026 670/2000/1013 602/1999/1012 f 618/2003/1015 583/1994/929 614/1901/941 f 606/1920/946 607/1919/958 635/1961/980 f 683/2031/1027 576/1887/931 577/1981/1004 f 674/1964/992 580/1939/970 601/2032/921 f 643/2009/995 633/2033/1006 631/1973/998 f 634/1979/1003 633/1987/1006 642/1959/989 f 638/2025/1017 593/2034/984 639/2035/996 f 611/1937/968 679/2036/1011 612/1922/945 f 669/2037/1002 577/1981/1004 628/1888/932 f 608/1962/990 607/1919/958 667/2038/1005 f 575/1997/926 603/2039/925 639/1969/996 f 657/1941/972 577/1980/1004 634/1979/1003 f 606/1906/946 635/1950/980 617/1904/944 f 625/2040/1028 646/1953/983 629/2029/1025 f 630/1903/943 673/1896/938 579/1895/937 f 686/2041/1029 629/2042/1025 685/2043/1008 f 616/1985/962 608/2044/990 667/1984/1005 f 665/1993/997 593/2034/984 668/1991/1009 f 670/2000/1013 664/2045/1030 619/2016/1021 f 622/2046/1020 625/2047/1028 649/1963/991 f 581/1923/928 614/1901/941 583/1994/929 f 633/2048/1006 634/2049/1003 663/2050/1031 f 629/2042/1025 649/1963/991 625/2047/1028 f 637/2002/1000 686/2051/1029 685/2052/1008 f 630/1903/943 604/1902/942 664/2053/1030 f 590/1913/953 600/1912/952 591/1956/986 f 592/1955/985 609/2006/1018 647/2054/979 f 649/1963/991 671/1897/939 622/2046/1020 f 602/1999/1012 679/1998/1011 615/2055/1032 f 671/1900/939 578/1930/965 622/2056/1020 f 574/1879/923 571/1874/918 681/2004/1016 f 609/2006/1018 638/2005/1017 615/2057/1032 f 604/2058/942 613/2059/957 664/2045/1030 f 594/1893/919 598/1892/935 659/2018/974 f 613/1918/957 667/2038/1005 607/1919/958 f 653/1995/1010 569/2012/914 600/2060/952 f 684/1883/927 575/1882/926 576/1887/931 f 639/2035/996 603/2026/925 638/2025/1017 f 595/1876/920 624/2061/971 680/2010/973 f 592/2062/985 672/1946/977 677/1957/987 f 652/1910/950 579/1895/937 648/1911/951 f 622/2056/1020 646/2063/983 625/2064/1028 f 573/1878/922 601/1877/921 580/2065/970 f 585/1933/956 588/1935/967 677/1957/987 f 585/1916/956 632/2022/1007 584/1917/930 f 572/1880/924 618/2003/1015 614/1901/941 f 620/1894/936 621/1977/1001 598/1892/935 f 607/1919/958 586/1929/964 662/1960/978 f 573/1878/922 580/2066/970 626/2001/1014 f 584/1886/930 582/1925/961 581/1884/928 f 610/2067/1022 615/2055/1032 679/1998/1011 f 599/2068/917 600/2060/952 569/2012/914 f 591/1956/986 668/2008/1009 593/1954/984 f 600/2069/952 599/1992/917 668/1991/1009 f 591/1956/986 677/2070/987 589/2071/1033 f 649/1963/991 629/2042/1025 686/2041/1029 f 647/2054/979 672/2072/977 592/1955/985 f 604/1902/942 579/1895/937 652/1910/950 f 667/1984/1005 613/2073/957 604/1902/942 f 688/2074/954 589/2075/1033 588/2076/967 f 577/1980/1004 657/1941/972 651/1944/975 f 589/2077/1033 677/1957/987 588/1935/967 f 602/1999/1012 615/2055/1032 638/2078/1017 f 640/1965/993 674/1964/992 601/2027/921 f 618/2003/1015 572/1880/924 681/2004/1016 f 654/1996/955 653/1995/1010 688/2074/954 f 594/2079/919 659/1943/974 624/1940/971 f 630/2080/943 660/1899/940 673/1898/938 f 663/2050/1031 628/1888/932 596/1931/966 f 677/2070/987 591/1956/986 592/1955/985 f 589/2071/1033 590/1913/953 591/1956/986 f 576/1887/931 578/1930/965 660/1899/940 f 655/2020/1023 571/1874/918 569/2012/914 f 643/2009/995 644/1972/988 687/2081/1024 f 688/2074/954 653/1995/1010 600/2060/952 f 649/1963/991 648/1911/951 671/1897/939 f 570/1871/915 687/2082/1024 675/1908/948 f 615/2057/1032 610/2083/1022 609/2006/1018 f 646/1953/983 650/1952/982 629/2029/1025 f 583/1994/929 618/2003/1015 653/1995/1010 f 578/2014/965 645/2084/1034 682/1951/981 f 610/2083/1022 647/2054/979 609/2006/1018 f 664/2045/1030 676/2017/959 619/2016/1021 f 605/1907/947 568/1872/916 675/1908/948 f 651/2085/975 659/2018/974 661/1975/999 f 570/2011/915 571/1874/918 623/2007/1019 f 687/2023/1024 680/2010/973 643/2086/995 f 631/1973/998 663/2087/1031 627/1971/934 f 661/1975/999 645/2084/1034 651/2085/975 f 684/1883/927 678/2030/1026 602/1999/1012 f 678/2030/1026 630/2080/943 664/2045/1030 f 658/1938/969 626/2088/1014 580/1939/970 f 661/1975/999 682/1951/981 645/2084/1034 f 649/1963/991 666/1909/949 648/1911/951 f 678/2030/1026 684/1883/927 630/2080/943 f 660/1899/940 630/2080/943 684/1883/927 f 621/1977/1001 661/1975/999 598/1892/935 f 570/2011/915 623/2007/1019 687/2023/1024 f 574/1879/923 681/2004/1016 572/1880/924 f 588/2076/967 654/1996/955 688/2074/954 f 627/1971/934 663/2087/1031 596/2089/966 f 658/1938/969 649/1963/991 686/2041/1029 f 675/1908/948 687/2090/1024 644/1958/988 f 626/2088/1014 658/1938/969 686/2041/1029 f 651/1944/975 683/2091/1027 577/1980/1004 f 610/2019/1022 679/2036/1011 611/1937/968 f 684/1883/927 576/1887/931 660/1899/940 f 626/2001/1014 686/2051/1029 637/2002/1000 f 587/1928/963 616/1927/962 582/1925/961 f 656/1926/960 582/1925/961 616/1927/962 f 688/1914/954 590/1913/953 589/2071/1033 f 606/1920/946 676/2092/959 613/1918/957 f 632/1988/1007 587/1928/963 582/1925/961 f 670/2000/1013 678/2030/1026 664/2045/1030 f 664/2045/1030 613/2059/957 676/2017/959 f 573/1878/922 626/2001/1014 574/1879/923 f 651/2085/975 645/2084/1034 683/2093/1027 f 683/2093/1027 645/2084/1034 578/2094/965 f 663/2050/1031 669/2037/1002 628/1888/932 f 578/1930/965 576/1887/931 683/2031/1027 f 653/1995/1010 681/2004/1016 569/2012/914 f 639/2035/996 593/2034/984 665/1993/997 f 624/1940/971 595/2095/920 594/2079/919 f 634/2049/1003 669/2037/1002 663/2050/1031 f 631/1973/998 633/2033/1006 663/2087/1031 f 592/1955/985 593/1954/984 638/2005/1017 f 681/2004/1016 571/1874/918 655/2020/1023 f 774/2096/1035 689/2097/1036 690/2098/1037 f 691/2099/1038 709/2100/1039 773/2101/1040 f 695/2102/1041 739/2103/1042 696/2104/1043 f 698/2105/1044 776/2106/1045 700/2107/1046 f 769/2108/1047 701/2109/1048 702/2110/1049 f 705/2111/1050 762/2112/1051 704/2113/1052 f 690/2098/1037 704/2113/1052 762/2112/1051 f 692/2114/1053 758/2115/1054 711/2116/1055 f 711/2117/1055 761/2118/1056 706/2119/1057 f 706/2119/1057 761/2118/1056 723/2120/1058 f 708/2121/1059 773/2101/1040 709/2100/1039 f 722/2122/1060 712/2123/1061 717/2124/1062 f 731/2125/1063 753/2126/1064 767/2127/1065 f 753/2126/1064 693/2128/1066 694/2129/1067 f 713/2130/1068 719/2131/1069 712/2132/1061 f 766/2133/1070 770/2134/1071 719/2135/1069 f 720/2136/1072 715/2137/1073 716/2138/1074 f 694/2129/1067 770/2134/1071 766/2133/1070 f 717/2139/1062 716/2140/1074 722/2141/1060 f 716/2140/1074 717/2139/1062 720/2142/1072 f 702/2110/1049 703/2143/1075 769/2108/1047 f 691/2099/1038 762/2112/1051 705/2111/1050 f 693/2144/1066 738/2145/1076 756/2146/1077 f 690/2098/1037 729/2147/1078 704/2113/1052 f 761/2148/1056 755/2149/1079 735/2150/1080 f 718/2151/1081 723/2120/1058 761/2118/1056 f 778/2152/1082 768/2153/1083 779/2154/1084 f 704/2155/1052 729/2156/1078 734/2157/1085 f 722/2141/1060 714/2158/1086 747/2159/1087 f 747/2160/1087 745/2161/1088 722/2122/1060 f 751/2162/1089 766/2133/1070 760/2163/1090 f 747/2160/1087 739/2164/1042 749/2165/1091 f 715/2137/1073 703/2143/1075 714/2166/1086 f 714/2158/1086 722/2141/1060 716/2140/1074 f 745/2161/1088 747/2160/1087 749/2165/1091 f 775/2167/1092 747/2159/1087 776/2106/1045 f 758/2168/1054 728/2169/1093 741/2170/1094 f 779/2171/1084 742/2172/1095 727/2173/1096 f 743/2174/1097 774/2096/1035 725/2175/1098 f 749/2176/1091 713/2130/1068 745/2177/1088 f 744/2178/1099 764/2179/1100 746/2180/1101 f 739/2164/1042 747/2160/1087 775/2181/1092 f 748/2182/1102 743/2174/1097 725/2175/1098 f 752/2183/1103 777/2184/1104 734/2157/1085 f 744/2178/1099 734/2157/1085 777/2184/1104 f 699/2185/1105 749/2176/1091 739/2103/1042 f 751/2162/1089 760/2163/1090 708/2186/1059 f 778/2152/1082 779/2154/1084 732/2187/1106 f 718/2151/1081 761/2118/1056 735/2188/1080 f 706/2189/1057 723/2190/1058 724/2191/1107 f 755/2192/1079 741/2193/1094 757/2194/1108 f 772/2195/1109 734/2157/1085 744/2178/1099 f 752/2183/1103 757/2196/1108 777/2184/1104 f 761/2197/1056 711/2116/1055 758/2115/1054 f 697/2198/1110 695/2199/1041 708/2200/1059 f 725/2175/1098 762/2112/1051 773/2101/1040 f 720/2201/1072 763/2202/1111 710/2203/1112 f 703/2143/1075 702/2110/1049 714/2166/1086 f 707/2204/1113 723/2205/1058 689/2206/1036 f 713/2130/1068 749/2176/1091 699/2185/1105 f 758/2115/1054 741/2193/1094 755/2192/1079 f 734/2157/1085 729/2207/1078 752/2183/1103 f 778/2152/1082 756/2208/1077 768/2153/1083 f 731/2125/1063 767/2127/1065 751/2162/1089 f 769/2209/1047 723/2205/1058 707/2204/1113 f 709/2210/1039 751/2162/1089 708/2186/1059 f 690/2098/1037 689/2097/1036 718/2211/1081 f 735/2212/1080 690/2098/1037 718/2211/1081 f 750/2213/1114 703/2143/1075 715/2137/1073 f 701/2109/1048 769/2108/1047 707/2204/1113 f 774/2096/1035 762/2112/1051 725/2175/1098 f 772/2195/1109 704/2155/1052 734/2157/1085 f 766/2133/1070 751/2162/1089 767/2127/1065 f 703/2143/1075 750/2213/1114 769/2108/1047 f 692/2114/1053 728/2214/1093 758/2115/1054 f 763/2202/1111 692/2114/1053 711/2116/1055 f 731/2125/1063 730/2215/1115 753/2126/1064 f 735/2150/1080 757/2216/1108 752/2217/1103 f 735/2150/1080 752/2217/1103 729/2218/1078 f 754/2219/1116 768/2153/1083 736/2220/1117 f 706/2189/1057 724/2191/1107 711/2221/1055 f 776/2106/1045 698/2105/1044 775/2167/1092 f 771/2222/1118 720/2201/1072 717/2223/1062 f 777/2184/1104 741/2170/1094 744/2178/1099 f 691/2099/1038 705/2111/1050 727/2173/1096 f 711/2224/1055 724/2225/1107 710/2226/1112 f 730/2215/1115 731/2125/1063 759/2227/1119 f 746/2180/1101 772/2195/1109 744/2178/1099 f 696/2228/1043 698/2229/1044 725/2175/1098 f 710/2226/1112 724/2225/1107 750/2230/1114 f 714/2166/1086 716/2138/1074 715/2137/1073 f 768/2153/1083 754/2219/1116 779/2154/1084 f 731/2125/1063 709/2210/1039 691/2231/1038 f 738/2232/1076 768/2153/1083 756/2208/1077 f 751/2162/1089 709/2210/1039 731/2125/1063 f 712/2132/1061 745/2177/1088 713/2130/1068 f 741/2170/1094 777/2184/1104 757/2196/1108 f 737/2233/1120 738/2145/1076 693/2144/1066 f 733/2234/1121 764/2179/1100 744/2178/1099 f 744/2178/1099 741/2170/1094 728/2169/1093 f 765/2235/1122 705/2236/1050 746/2237/1101 f 701/2109/1048 700/2238/1046 776/2239/1045 f 704/2155/1052 772/2195/1109 746/2180/1101 f 775/2181/1092 696/2240/1043 739/2164/1042 f 714/2158/1086 776/2106/1045 747/2159/1087 f 745/2161/1088 712/2123/1061 722/2122/1060 f 759/2227/1119 754/2241/1116 736/2242/1117 f 725/2175/1098 698/2229/1044 748/2182/1102 f 699/2243/1105 766/2133/1070 713/2244/1068 f 757/2216/1108 735/2150/1080 755/2149/1079 f 692/2114/1053 763/2202/1111 770/2245/1071 f 743/2174/1097 707/2246/1113 774/2096/1035 f 726/2247/1123 717/2124/1062 712/2123/1061 f 697/2248/1110 708/2186/1059 760/2163/1090 f 738/2145/1076 737/2233/1120 736/2249/1117 f 696/2228/1043 725/2175/1098 695/2199/1041 f 720/2201/1072 771/2222/1118 763/2202/1111 f 739/2103/1042 695/2102/1041 697/2250/1110 f 748/2182/1102 698/2229/1044 700/2251/1046 f 759/2227/1119 736/2242/1117 737/2252/1120 f 707/2246/1113 743/2174/1097 701/2253/1048 f 715/2137/1073 721/2254/1124 750/2213/1114 f 738/2232/1076 736/2220/1117 768/2153/1083 f 692/2114/1053 740/2255/1125 693/2144/1066 f 733/2256/1121 778/2152/1082 764/2257/1100 f 770/2245/1071 771/2222/1118 719/2258/1069 f 776/2259/1045 714/2260/1086 702/2261/1049 f 767/2127/1065 753/2126/1064 694/2129/1067 f 773/2101/1040 708/2121/1059 725/2175/1098 f 691/2231/1038 742/2262/1095 731/2125/1063 f 715/2137/1073 720/2136/1072 721/2254/1124 f 696/2240/1043 775/2181/1092 698/2263/1044 f 771/2222/1118 717/2223/1062 726/2264/1123 f 779/2154/1084 727/2265/1096 732/2187/1106 f 710/2203/1112 721/2266/1124 720/2201/1072 f 765/2235/1122 727/2265/1096 705/2236/1050 f 778/2152/1082 732/2187/1106 765/2235/1122 f 730/2215/1115 759/2227/1119 737/2252/1120 f 766/2133/1070 767/2127/1065 694/2129/1067 f 719/2131/1069 713/2130/1068 766/2267/1070 f 733/2268/1121 693/2144/1066 756/2146/1077 f 710/2269/1112 750/2213/1114 721/2254/1124 f 765/2235/1122 746/2237/1101 764/2257/1100 f 763/2202/1111 771/2222/1118 770/2245/1071 f 755/2192/1079 761/2197/1056 758/2115/1054 f 776/2239/1045 702/2110/1049 701/2109/1048 f 748/2182/1102 701/2253/1048 743/2174/1097 f 737/2252/1120 693/2270/1066 753/2126/1064 f 765/2235/1122 764/2257/1100 778/2152/1082 f 733/2268/1121 728/2214/1093 692/2114/1053 f 732/2187/1106 727/2265/1096 765/2235/1122 f 695/2199/1041 725/2175/1098 708/2121/1059 f 723/2120/1058 718/2151/1081 689/2271/1036 f 727/2173/1096 742/2172/1095 691/2099/1038 f 778/2152/1082 733/2256/1121 756/2208/1077 f 740/2255/1125 694/2272/1067 693/2144/1066 f 689/2097/1036 774/2096/1035 707/2246/1113 f 742/2262/1095 759/2227/1119 731/2125/1063 f 711/2116/1055 710/2203/1112 763/2202/1111 f 753/2126/1064 730/2215/1115 737/2252/1120 f 699/2243/1105 760/2163/1090 766/2133/1070 f 700/2251/1046 701/2253/1048 748/2182/1102 f 779/2171/1084 754/2273/1116 742/2172/1095 f 770/2245/1071 740/2255/1125 692/2114/1053 f 691/2099/1038 773/2101/1040 762/2112/1051 f 735/2212/1080 729/2147/1078 690/2098/1037 f 719/2131/1069 726/2274/1123 712/2132/1061 f 754/2241/1116 759/2227/1119 742/2262/1095 f 770/2245/1071 694/2272/1067 740/2255/1125 f 746/2180/1101 705/2275/1050 704/2155/1052 f 760/2276/1090 699/2185/1105 697/2250/1110 f 697/2250/1110 699/2185/1105 739/2103/1042 f 690/2098/1037 762/2112/1051 774/2096/1035 f 771/2222/1118 726/2264/1123 719/2258/1069 f 750/2230/1114 724/2225/1107 769/2209/1047 f 724/2225/1107 723/2205/1058 769/2209/1047 f 693/2144/1066 733/2268/1121 692/2114/1053 f 728/2169/1093 733/2234/1121 744/2178/1099 f 879/2277/1126 780/2278/1127 781/2279/1128 f 809/2280/1129 784/2281/1130 839/2282/1131 f 785/2283/1132 783/2284/1133 784/2281/1130 f 824/2285/1134 790/2286/1135 791/2287/1136 f 791/2287/1136 792/2288/1137 793/2289/1138 f 795/2290/1139 790/2286/1135 796/2291/1140 f 794/2292/1141 882/2293/1142 797/2294/1143 f 797/2294/1143 882/2293/1142 823/2295/1144 f 803/2296/1145 783/2284/1133 782/2297/1146 f 787/2298/1147 866/2299/1148 846/2300/1149 f 846/2300/1149 866/2299/1148 786/2301/1150 f 786/2302/1150 868/2303/1151 805/2304/1152 f 789/2305/1153 788/2306/1154 812/2307/1155 f 780/2308/1127 807/2309/1156 802/2310/1157 f 789/2311/1153 812/2312/1155 813/2313/1158 f 826/2314/1159 814/2315/1160 819/2316/1161 f 883/2317/1162 872/2318/1163 875/2319/1164 f 857/2320/1165 788/2321/1154 789/2311/1153 f 822/2322/1166 813/2313/1158 821/2323/1167 f 808/2324/1168 854/2325/1169 824/2326/1134 f 790/2286/1135 824/2285/1134 867/2327/1170 f 789/2311/1153 813/2313/1158 822/2322/1166 f 827/2328/1171 840/2329/1172 852/2330/1173 f 819/2331/1161 818/2332/1174 826/2333/1159 f 799/2334/1175 800/2335/1176 798/2336/1177 f 784/2281/1130 783/2284/1133 803/2296/1145 f 829/2337/1178 808/2324/1168 791/2338/1136 f 784/2281/1130 809/2339/1129 785/2283/1132 f 801/2340/1179 802/2341/1157 807/2342/1156 f 830/2343/1180 819/2344/1161 814/2345/1160 f 781/2346/1128 834/2347/1181 782/2297/1146 f 872/2318/1163 883/2317/1162 806/2348/1182 f 835/2349/1183 806/2348/1182 856/2350/1184 f 885/2351/1185 855/2352/1186 859/2353/1187 f 827/2328/1171 834/2354/1181 840/2329/1172 f 826/2333/1159 816/2355/1188 888/2356/1189 f 888/2357/1189 851/2358/1190 826/2314/1159 f 817/2359/1191 800/2335/1176 816/2360/1188 f 816/2355/1188 826/2333/1159 861/2361/1192 f 851/2358/1190 888/2357/1189 844/2362/1193 f 845/2363/1194 846/2300/1149 847/2364/1195 f 880/2365/1196 888/2356/1189 882/2293/1142 f 874/2366/1197 833/2367/1198 848/2368/1199 f 807/2342/1156 879/2369/1126 829/2337/1178 f 844/2370/1193 815/2371/1200 851/2372/1190 f 850/2373/1201 870/2374/1202 852/2330/1173 f 810/2375/1203 825/2376/1204 869/2377/1205 f 792/2378/1137 888/2357/1189 880/2379/1196 f 876/2380/1206 848/2368/1199 840/2329/1172 f 850/2373/1201 840/2329/1172 848/2368/1199 f 795/2290/1139 844/2370/1193 792/2288/1137 f 868/2303/1151 786/2302/1150 804/2381/1207 f 885/2351/1185 859/2353/1187 836/2382/1208 f 868/2303/1151 841/2383/1209 858/2384/1210 f 806/2348/1182 883/2317/1162 839/2385/1131 f 805/2386/1152 871/2387/1211 828/2388/1212 f 852/2330/1173 840/2329/1172 850/2373/1201 f 876/2380/1206 864/2389/1213 848/2368/1199 f 804/2390/1207 786/2301/1150 866/2299/1148 f 858/2391/1210 876/2392/1206 834/2393/1181 f 867/2394/1170 824/2326/1134 854/2325/1169 f 865/2395/1214 796/2396/1140 854/2325/1169 f 854/2325/1169 796/2396/1140 867/2394/1170 f 855/2397/1186 843/2398/1215 842/2399/1216 f 829/2337/1178 886/2400/1217 785/2283/1132 f 878/2401/1218 884/2402/1219 869/2377/1205 f 803/2403/1145 782/2404/1146 827/2328/1171 f 827/2405/1171 782/2297/1146 834/2347/1181 f 800/2406/1176 799/2407/1175 816/2408/1188 f 860/2409/1220 849/2410/1221 859/2353/1187 f 802/2310/1157 871/2411/1211 780/2308/1127 f 853/2412/1222 800/2335/1176 817/2359/1191 f 815/2371/1200 844/2370/1193 795/2290/1139 f 828/2388/1212 786/2413/1150 805/2386/1152 f 871/2414/1211 805/2304/1152 780/2278/1127 f 885/2351/1185 863/2415/1223 855/2352/1186 f 877/2416/1224 871/2411/1211 802/2310/1157 f 862/2417/1225 864/2418/1213 841/2419/1209 f 784/2281/1130 849/2420/1221 838/2421/1226 f 781/2279/1128 780/2278/1127 820/2422/1227 f 858/2391/1210 781/2423/1128 820/2424/1227 f 808/2324/1168 785/2283/1132 809/2339/1129 f 879/2369/1126 886/2400/1217 829/2337/1178 f 802/2310/1157 801/2425/1179 798/2426/1177 f 800/2335/1176 853/2412/1222 877/2427/1224 f 883/2317/1162 875/2319/1164 854/2325/1169 f 787/2298/1147 833/2428/1198 866/2299/1148 f 806/2348/1182 835/2349/1183 872/2318/1163 f 852/2330/1173 870/2374/1202 889/2429/1228 f 781/2346/1128 782/2297/1146 879/2369/1126 f 858/2391/1210 864/2418/1213 876/2392/1206 f 865/2430/1214 795/2290/1139 796/2291/1140 f 843/2431/1215 855/2432/1186 831/2433/1229 f 785/2283/1132 808/2324/1168 829/2337/1178 f 882/2293/1142 794/2292/1141 880/2365/1196 f 875/2319/1164 865/2395/1214 854/2325/1169 f 818/2434/1174 819/2344/1161 869/2377/1205 f 878/2401/1218 869/2377/1205 819/2344/1161 f 784/2281/1130 803/2435/1145 832/2436/1230 f 875/2319/1164 822/2322/1166 865/2395/1214 f 783/2284/1133 785/2283/1132 886/2400/1217 f 818/2332/1174 861/2361/1192 826/2333/1159 f 877/2427/1224 798/2336/1177 800/2335/1176 f 869/2377/1205 825/2376/1204 818/2434/1174 f 832/2437/1230 859/2353/1187 849/2410/1221 f 807/2342/1156 794/2438/1141 797/2439/1143 f 810/2440/1203 811/2441/1231 853/2442/1222 f 809/2339/1129 854/2325/1169 808/2324/1168 f 798/2426/1177 877/2416/1224 802/2310/1157 f 816/2360/1188 861/2443/1192 817/2359/1191 f 872/2318/1163 835/2349/1183 857/2320/1165 f 814/2444/1160 821/2445/1167 830/2446/1180 f 874/2447/1197 866/2299/1148 833/2428/1198 f 786/2413/1150 828/2388/1212 811/2448/1231 f 855/2352/1186 842/2449/1216 859/2353/1187 f 837/2450/1232 870/2374/1202 850/2373/1201 f 842/2399/1216 843/2398/1215 860/2451/1220 f 850/2373/1201 848/2368/1199 833/2367/1198 f 793/2452/1138 794/2453/1141 791/2454/1136 f 880/2379/1196 793/2452/1138 792/2378/1137 f 816/2355/1188 882/2293/1142 888/2356/1189 f 851/2358/1190 814/2315/1160 826/2314/1159 f 795/2290/1139 865/2430/1214 815/2371/1200 f 887/2455/1233 860/2451/1220 843/2398/1215 f 791/2338/1136 794/2438/1141 807/2342/1156 f 807/2342/1156 829/2337/1178 791/2338/1136 f 864/2418/1213 858/2391/1210 841/2419/1209 f 846/2300/1149 884/2402/1219 847/2364/1195 f 806/2348/1182 839/2385/1131 856/2350/1184 f 849/2420/1221 860/2456/1220 887/2457/1233 f 810/2375/1203 846/2300/1149 811/2458/1231 f 888/2357/1189 792/2378/1137 844/2362/1193 f 855/2432/1186 873/2459/1234 831/2433/1229 f 884/2402/1219 810/2375/1203 869/2377/1205 f 853/2460/1222 817/2359/1191 825/2461/1204 f 787/2298/1147 845/2363/1194 788/2306/1154 f 837/2462/1232 885/2351/1185 870/2463/1202 f 865/2395/1214 822/2322/1166 821/2464/1167 f 821/2445/1167 815/2371/1200 865/2430/1214 f 812/2312/1155 847/2465/1195 813/2313/1158 f 878/2401/1218 813/2466/1158 847/2364/1195 f 781/2346/1128 858/2467/1210 834/2347/1181 f 813/2466/1158 878/2401/1218 821/2468/1167 f 828/2469/1212 853/2442/1222 811/2441/1231 f 811/2458/1231 846/2300/1149 786/2301/1150 f 882/2293/1142 816/2355/1188 799/2470/1175 f 875/2319/1164 857/2320/1165 789/2311/1153 f 839/2385/1131 883/2317/1162 809/2280/1129 f 793/2452/1138 880/2379/1196 794/2453/1141 f 878/2401/1218 819/2344/1161 830/2343/1180 f 859/2353/1187 832/2437/1230 836/2382/1208 f 792/2288/1137 791/2287/1136 790/2286/1135 f 858/2384/1210 820/2422/1227 868/2303/1151 f 881/2471/1235 832/2437/1230 803/2472/1145 f 885/2351/1185 836/2382/1208 881/2471/1235 f 835/2349/1183 887/2455/1233 843/2398/1215 f 822/2322/1166 875/2319/1164 789/2311/1153 f 804/2381/1207 841/2383/1209 868/2303/1151 f 837/2473/1232 788/2306/1154 873/2459/1234 f 818/2474/1174 817/2359/1191 861/2443/1192 f 810/2475/1203 853/2460/1222 825/2461/1204 f 854/2325/1169 809/2339/1129 883/2317/1162 f 851/2372/1190 815/2371/1200 814/2444/1160 f 857/2320/1165 875/2319/1164 872/2318/1163 f 884/2402/1219 878/2401/1218 847/2364/1195 f 860/2409/1220 859/2353/1187 842/2449/1216 f 862/2476/1225 804/2390/1207 866/2299/1148 f 873/2459/1234 855/2432/1186 863/2477/1223 f 817/2359/1191 818/2474/1174 825/2461/1204 f 882/2478/1142 799/2334/1175 823/2479/1144 f 798/2336/1177 823/2479/1144 799/2334/1175 f 797/2439/1143 801/2340/1179 807/2342/1156 f 843/2398/1215 831/2480/1229 857/2320/1165 f 808/2324/1168 824/2326/1134 791/2338/1136 f 820/2422/1227 805/2304/1152 868/2303/1151 f 803/2472/1145 889/2481/1228 881/2471/1235 f 881/2471/1235 870/2463/1202 885/2351/1185 f 837/2473/1232 833/2428/1198 787/2298/1147 f 836/2382/1208 832/2437/1230 881/2471/1235 f 881/2471/1235 889/2481/1228 870/2463/1202 f 805/2304/1152 820/2422/1227 780/2278/1127 f 873/2482/1234 863/2415/1223 885/2351/1185 f 834/2347/1181 876/2483/1206 840/2484/1172 f 832/2436/1230 849/2420/1221 784/2281/1130 f 885/2351/1185 837/2462/1232 873/2482/1234 f 845/2363/1194 812/2307/1155 788/2306/1154 f 804/2485/1207 862/2417/1225 841/2419/1209 f 864/2389/1213 862/2486/1225 848/2368/1199 f 780/2487/1127 879/2369/1126 807/2342/1156 f 856/2350/1184 839/2385/1131 838/2488/1226 f 846/2300/1149 810/2375/1203 884/2402/1219 f 857/2320/1165 835/2349/1183 843/2398/1215 f 823/2489/1144 801/2490/1179 797/2491/1143 f 886/2400/1217 782/2297/1146 783/2284/1133 f 856/2350/1184 887/2455/1233 835/2349/1183 f 857/2320/1165 831/2480/1229 788/2321/1154 f 801/2492/1179 823/2479/1144 798/2336/1177 f 838/2488/1226 887/2455/1233 856/2350/1184 f 821/2445/1167 814/2444/1160 815/2371/1200 f 847/2364/1195 812/2307/1155 845/2363/1194 f 838/2421/1226 849/2420/1221 887/2457/1233 f 787/2298/1147 846/2300/1149 845/2363/1194 f 889/2429/1228 803/2403/1145 827/2328/1171 f 827/2328/1171 852/2330/1173 889/2429/1228 f 873/2459/1234 788/2306/1154 831/2433/1229 f 867/2327/1170 796/2291/1140 790/2286/1135 f 790/2286/1135 795/2290/1139 792/2288/1137 f 839/2282/1131 784/2281/1130 838/2421/1226 f 782/2297/1146 886/2400/1217 879/2369/1126 f 862/2476/1225 866/2299/1148 874/2447/1197 f 878/2401/1218 830/2343/1180 821/2468/1167 f 853/2442/1222 828/2469/1212 877/2416/1224 f 828/2469/1212 871/2411/1211 877/2416/1224 f 788/2306/1154 837/2473/1232 787/2298/1147 f 848/2493/1199 862/2476/1225 874/2447/1197 f 833/2367/1198 837/2450/1232 850/2373/1201 f 891/2494/1236 890/2495/1237 892/2496/1238 f 890/2495/1237 891/2494/1236 919/2497/1239 f 893/2498/1240 915/2499/1241 914/2500/1242 f 921/2501/1243 895/2502/1244 951/2503/1245 f 895/2502/1244 921/2501/1243 894/2504/1246 f 902/2505/1247 904/2506/1248 905/2507/1249 f 897/2508/1250 953/2509/1251 896/2510/1252 f 896/2511/1252 952/2512/1253 917/2513/1254 f 918/2514/1255 944/2515/1256 914/2516/1242 f 900/2517/1257 997/2518/1258 938/2519/1259 f 938/2519/1259 997/2518/1258 987/2520/1260 f 934/2521/1261 894/2504/1246 921/2501/1243 f 900/2522/1257 955/2523/1262 924/2524/1263 f 940/2525/1264 926/2526/1265 931/2527/1266 f 917/2513/1254 932/2528/1267 925/2529/1268 f 948/2530/1269 982/2531/1270 978/2532/1271 f 927/2533/1272 933/2534/1273 936/2535/1274 f 934/2521/1261 983/2536/1275 902/2537/1247 f 903/2538/1276 902/2505/1247 983/2539/1275 f 937/2540/1277 907/2541/1278 908/2542/1279 f 899/2543/1280 987/2520/1260 997/2518/1258 f 916/2544/1281 896/2510/1252 953/2509/1251 f 895/2502/1244 893/2498/1240 914/2500/1242 f 904/2545/1248 906/2546/1282 905/2547/1249 f 931/2548/1266 930/2549/1283 940/2550/1264 f 948/2530/1269 901/2551/1284 985/2552/1285 f 972/2553/1286 1007/2554/1287 984/2555/1288 f 986/2556/1289 972/2553/1286 976/2557/1290 f 932/2528/1267 917/2513/1254 952/2512/1253 f 940/2550/1264 1000/2558/1291 961/2559/1292 f 961/2560/1292 1001/2561/1293 940/2525/1264 f 1000/2558/1291 940/2550/1264 971/2562/1294 f 959/2563/1295 940/2525/1264 1001/2561/1293 f 993/2564/1296 970/2565/1297 974/2566/1298 f 913/2567/1299 911/2568/1300 912/2569/1301 f 960/2570/1302 1000/2558/1291 979/2571/1303 f 932/2528/1267 952/2512/1253 968/2572/1304 f 984/2555/1288 1007/2554/1287 967/2573/1305 f 1001/2574/1293 927/2533/1272 959/2575/1295 f 961/2560/1292 960/2576/1302 1001/2561/1293 f 1000/2558/1291 960/2570/1302 961/2559/1292 f 948/2530/1269 985/2552/1285 973/2577/1306 f 997/2578/1258 900/2522/1257 982/2531/1270 f 939/2579/1307 965/2580/1308 966/2581/1309 f 977/2582/1310 967/2573/1305 1007/2554/1287 f 917/2583/1254 942/2584/1311 964/2585/1312 f 1002/2586/1313 931/2587/1266 926/2588/1265 f 952/2589/1253 956/2590/1314 968/2591/1304 f 942/2584/1311 917/2583/1254 925/2592/1268 f 993/2564/1296 974/2566/1298 989/2593/1315 f 944/2515/1256 945/2594/1316 962/2595/1317 f 999/2596/1318 906/2597/1282 1011/2598/1319 f 995/2599/1320 898/2600/1321 958/2601/1322 f 897/2508/1250 898/2602/1321 953/2509/1251 f 1003/2603/1323 979/2571/1303 1000/2558/1291 f 983/2536/1275 934/2521/1261 966/2604/1309 f 952/2512/1253 896/2511/1252 916/2605/1281 f 992/2606/1324 937/2607/1277 965/2580/1308 f 965/2580/1308 937/2607/1277 983/2608/1275 f 969/2609/1325 899/2543/1280 946/2610/1326 f 977/2582/1310 988/2611/1327 967/2573/1305 f 1001/2574/1293 957/2612/1328 908/2542/1279 f 975/2613/1329 962/2595/1317 974/2566/1298 f 890/2495/1237 919/2497/1239 942/2614/1311 f 920/2615/1330 942/2616/1311 919/2617/1239 f 905/2618/1249 906/2597/1282 999/2596/1318 f 964/2585/1312 896/2619/1252 917/2583/1254 f 942/2614/1311 925/2529/1268 890/2495/1237 f 901/2551/1284 978/2532/1271 939/2579/1307 f 994/2620/1331 942/2616/1311 920/2615/1330 f 974/2566/1298 945/2594/1316 989/2593/1315 f 1006/2621/1332 996/2622/1333 922/2623/1334 f 895/2502/1244 962/2624/1317 950/2625/1335 f 999/2596/1318 998/2626/1336 941/2627/1337 f 963/2628/1338 912/2569/1301 928/2629/1339 f 893/2498/1240 947/2630/1340 915/2499/1241 f 971/2562/1294 940/2550/1264 930/2549/1283 f 968/2591/1304 956/2590/1314 977/2631/1310 f 903/2538/1276 957/2612/1328 904/2506/1248 f 904/2545/1248 960/2576/1302 906/2546/1282 f 979/2571/1303 906/2632/1282 960/2570/1302 f 939/2579/1307 978/2532/1271 965/2580/1308 f 915/2499/1241 947/2630/1340 1007/2633/1287 f 892/2634/1238 893/2498/1240 891/2635/1236 f 992/2636/1324 907/2541/1278 937/2540/1277 f 993/2564/1296 969/2637/1325 946/2638/1326 f 922/2623/1334 1005/2639/1341 923/2640/1342 f 1001/2574/1293 908/2542/1279 907/2541/1278 f 983/2608/1275 966/2581/1309 965/2580/1308 f 931/2587/1266 1002/2586/1313 943/2641/1343 f 943/2641/1343 1006/2621/1332 931/2587/1266 f 918/2514/1255 986/2642/1289 989/2593/1315 f 978/2532/1271 992/2606/1324 965/2580/1308 f 967/2573/1305 958/2601/1322 984/2555/1288 f 930/2549/1283 929/2643/1344 971/2562/1294 f 998/2626/1336 891/2635/1236 981/2644/1345 f 910/2645/1346 909/2646/1347 1003/2647/1323 f 996/2622/1333 1006/2621/1332 943/2641/1343 f 978/2532/1271 924/2524/1263 992/2606/1324 f 892/2496/1238 890/2495/1237 932/2528/1267 f 978/2532/1271 901/2551/1284 948/2530/1269 f 895/2502/1244 914/2500/1242 944/2648/1256 f 944/2648/1256 962/2624/1317 895/2502/1244 f 1011/2598/1319 906/2597/1282 909/2649/1347 f 945/2594/1316 974/2566/1298 962/2595/1317 f 960/2576/1302 957/2650/1328 1001/2561/1293 f 984/2555/1288 976/2557/1290 972/2553/1286 f 947/2630/1340 1010/2651/1348 1007/2633/1287 f 922/2652/1334 923/2653/1342 963/2654/1338 f 946/2638/1326 970/2565/1297 993/2564/1296 f 921/2655/1243 966/2581/1309 934/2656/1261 f 980/2657/1349 994/2620/1331 920/2615/1330 f 980/2658/1349 910/2645/1346 911/2568/1300 f 954/2659/1350 975/2613/1329 974/2566/1298 f 1004/2660/1351 922/2623/1334 996/2622/1333 f 1002/2586/1313 926/2588/1265 936/2661/1274 f 941/2627/1337 934/2521/1261 905/2618/1249 f 936/2535/1274 959/2575/1295 927/2533/1272 f 1008/2662/1352 898/2602/1321 897/2508/1250 f 939/2579/1307 921/2663/1243 901/2551/1284 f 977/2631/1310 956/2590/1314 988/2664/1327 f 958/2601/1322 967/2573/1305 988/2611/1327 f 963/2654/1338 964/2665/1312 913/2666/1299 f 930/2549/1283 931/2548/1266 1006/2667/1332 f 995/2668/1320 953/2509/1251 898/2602/1321 f 896/2619/1252 964/2585/1312 923/2669/1342 f 920/2670/1330 910/2645/1346 980/2658/1349 f 984/2555/1288 958/2601/1322 898/2600/1321 f 926/2526/1265 940/2525/1264 959/2563/1295 f 976/2671/1290 969/2637/1325 993/2564/1296 f 949/2672/1353 954/2659/1350 970/2565/1297 f 907/2541/1278 992/2636/1324 927/2533/1272 f 955/2673/1262 900/2674/1257 938/2519/1259 f 1009/2675/1354 975/2676/1329 954/2677/1350 f 996/2622/1333 943/2641/1343 991/2678/1355 f 946/2679/1326 973/2577/1306 949/2680/1353 f 902/2537/1247 905/2618/1249 934/2521/1261 f 988/2664/1327 990/2681/1356 958/2682/1322 f 980/2658/1349 911/2568/1300 913/2567/1299 f 954/2677/1350 949/2680/1353 973/2577/1306 f 962/2624/1317 975/2683/1329 1009/2684/1354 f 955/2673/1262 991/2678/1355 924/2685/1263 f 920/2686/1330 999/2596/1318 910/2687/1346 f 912/2569/1301 971/2688/1294 928/2629/1339 f 973/2577/1306 946/2679/1326 997/2578/1258 f 922/2623/1334 935/2689/1357 1006/2621/1332 f 997/2518/1258 946/2610/1326 899/2543/1280 f 895/2502/1244 998/2626/1336 893/2498/1240 f 928/2629/1339 935/2690/1357 963/2628/1338 f 924/2685/1263 991/2678/1355 933/2691/1273 f 914/2516/1242 986/2642/1289 918/2514/1255 f 933/2534/1273 927/2533/1272 992/2636/1324 f 999/2596/1318 920/2686/1330 891/2635/1236 f 923/2640/1342 897/2508/1250 896/2510/1252 f 964/2665/1312 963/2654/1338 923/2653/1342 f 915/2692/1241 1007/2554/1287 972/2553/1286 f 912/2693/1301 1003/2694/1323 1000/2695/1291 f 978/2532/1271 982/2531/1270 900/2522/1257 f 946/2696/1326 949/2672/1353 970/2565/1297 f 951/2697/1245 901/2551/1284 921/2663/1243 f 906/2632/1282 979/2571/1303 909/2698/1347 f 960/2576/1302 904/2545/1248 957/2650/1328 f 894/2504/1246 934/2521/1261 941/2627/1337 f 944/2515/1256 918/2514/1255 945/2594/1316 f 927/2533/1272 1001/2574/1293 907/2541/1278 f 951/2697/1245 950/2699/1335 901/2551/1284 f 904/2506/1248 902/2505/1247 903/2538/1276 f 929/2700/1344 1006/2621/1332 935/2689/1357 f 919/2701/1239 891/2635/1236 920/2686/1330 f 994/2620/1331 980/2657/1349 913/2666/1299 f 973/2577/1306 1009/2675/1354 954/2677/1350 f 971/2688/1294 912/2569/1301 1000/2702/1291 f 924/2524/1263 978/2532/1271 900/2522/1257 f 992/2606/1324 924/2524/1263 933/2703/1273 f 898/2600/1321 976/2557/1290 984/2555/1288 f 1003/2603/1323 909/2698/1347 979/2571/1303 f 959/2575/1295 936/2535/1274 926/2704/1265 f 922/2705/1334 963/2628/1338 935/2690/1357 f 966/2581/1309 921/2655/1243 939/2579/1307 f 941/2627/1337 998/2626/1336 894/2504/1246 f 914/2706/1242 972/2553/1286 986/2556/1289 f 955/2673/1262 938/2519/1259 987/2520/1260 f 990/2707/1356 916/2544/1281 953/2509/1251 f 1003/2647/1323 912/2569/1301 911/2568/1300 f 936/2661/1274 933/2691/1273 991/2678/1355 f 1003/2647/1323 911/2568/1300 910/2645/1346 f 897/2508/1250 987/2520/1260 899/2543/1280 f 981/2644/1345 891/2635/1236 893/2498/1240 f 977/2631/1310 1010/2708/1348 968/2591/1304 f 1011/2598/1319 910/2687/1346 999/2596/1318 f 973/2577/1306 997/2578/1258 982/2531/1270 f 892/2496/1238 932/2528/1267 1010/2709/1348 f 935/2690/1357 928/2629/1339 929/2710/1344 f 970/2565/1297 954/2659/1350 974/2566/1298 f 905/2618/1249 999/2596/1318 941/2627/1337 f 929/2710/1344 928/2629/1339 971/2688/1294 f 991/2678/1355 943/2641/1343 1002/2586/1313 f 925/2529/1268 932/2528/1267 890/2495/1237 f 897/2508/1250 923/2640/1342 1005/2639/1341 f 976/2671/1290 989/2593/1315 986/2642/1289 f 892/2634/1238 947/2630/1340 893/2498/1240 f 1010/2651/1348 977/2711/1310 1007/2633/1287 f 956/2590/1314 952/2589/1253 990/2681/1356 f 989/2593/1315 976/2671/1290 993/2564/1296 f 1005/2639/1341 922/2623/1334 1004/2660/1351 f 1004/2660/1351 991/2678/1355 955/2673/1262 f 985/2552/1285 901/2551/1284 950/2699/1335 f 973/2577/1306 982/2531/1270 948/2530/1269 f 1004/2660/1351 955/2673/1262 1005/2639/1341 f 987/2520/1260 1005/2639/1341 955/2673/1262 f 945/2594/1316 918/2514/1255 989/2593/1315 f 892/2634/1238 1010/2651/1348 947/2630/1340 f 895/2502/1244 894/2504/1246 998/2626/1336 f 952/2589/1253 916/2712/1281 990/2681/1356 f 985/2552/1285 1009/2675/1354 973/2577/1306 f 932/2528/1267 968/2572/1304 1010/2709/1348 f 950/2699/1335 1009/2675/1354 985/2552/1285 f 964/2665/1312 994/2620/1331 913/2666/1299 f 976/2557/1290 898/2600/1321 1008/2713/1352 f 929/2643/1344 930/2549/1283 1006/2667/1332 f 1005/2639/1341 987/2520/1260 897/2508/1250 f 950/2625/1335 962/2624/1317 1009/2684/1354 f 908/2542/1279 903/2538/1276 937/2540/1277 f 983/2539/1275 937/2540/1277 903/2538/1276 f 1011/2714/1319 909/2646/1347 910/2645/1346 f 957/2612/1328 903/2538/1276 908/2542/1279 f 996/2622/1333 991/2678/1355 1004/2660/1351 f 991/2678/1355 1002/2586/1313 936/2661/1274 f 951/2503/1245 895/2502/1244 950/2625/1335 f 976/2671/1290 1008/2715/1352 969/2637/1325 f 1008/2715/1352 899/2716/1280 969/2637/1325 f 990/2707/1356 953/2509/1251 995/2668/1320 f 899/2543/1280 1008/2662/1352 897/2508/1250 f 999/2596/1318 891/2635/1236 998/2626/1336 f 964/2665/1312 942/2616/1311 994/2620/1331 f 972/2553/1286 914/2706/1242 915/2692/1241 f 958/2717/1322 990/2707/1356 995/2668/1320 f 956/2590/1314 990/2681/1356 988/2664/1327 f 912/2569/1301 963/2628/1338 913/2567/1299 f 998/2626/1336 981/2644/1345 893/2498/1240 f 2284/2718/1358 2285/2719/1359 2283/2720/1360 f 2375/2721/1361 2290/2722/1362 2289/2723/1363 f 2278/2724/1364 2277/2725/1365 2297/2726/1366 f 2356/2727/1367 2279/2728/1368 2278/2724/1364 f 2306/2729/1369 2310/2730/1370 2314/2731/1371 f 2342/2732/1372 2304/2733/1373 2296/2734/1374 f 2274/2735/1375 2273/2736/1376 2304/2737/1373 f 2311/2738/1377 2306/2739/1369 2307/2740/1378 f 2313/2741/1379 2311/2738/1377 2303/2742/1380 f 2286/2743/1381 2283/2744/1360 2350/2745/1382 f 2302/2746/1383 2303/2742/1380 2361/2747/1384 f 2273/2748/1376 2274/2749/1375 2275/2750/1385 f 2289/2751/1363 2287/2752/1386 2375/2753/1361 f 2293/2754/1387 2291/2755/1388 2292/2756/1389 f 2279/2728/1368 2299/2757/1390 2278/2724/1364 f 2317/2758/1391 2306/2759/1369 2313/2760/1379 f 2326/2761/1392 2281/2762/1393 2338/2763/1394 f 2321/2764/1395 2275/2750/1385 2274/2749/1375 f 2312/2765/1396 2300/2766/1397 2301/2767/1398 f 2323/2768/1399 2277/2725/1365 2362/2769/1400 f 2355/2770/1401 2357/2771/1402 2314/2772/1371 f 2331/2773/1403 2314/2731/1371 2357/2774/1402 f 2345/2775/1404 2351/2776/1405 2337/2777/1406 f 2293/2754/1387 2355/2778/1401 2308/2779/1407 f 2314/2772/1371 2344/2780/1408 2355/2770/1401 f 2357/2774/1402 2374/2781/1409 2331/2773/1403 f 2357/2782/1402 2375/2753/1361 2332/2783/1410 f 2328/2784/1411 2364/2785/1412 2329/2786/1413 f 2307/2787/1378 2331/2773/1403 2374/2781/1409 f 2357/2774/1402 2332/2788/1410 2284/2718/1358 f 2377/2789/1414 2352/2790/1415 2348/2791/1416 f 2359/2792/1417 2315/2793/1418 2289/2794/1363 f 2335/2795/1419 2336/2796/1420 2330/2797/1421 f 2374/2798/1409 2284/2799/1358 2286/2743/1381 f 2351/2776/1405 2298/2800/1422 2337/2777/1406 f 2329/2801/1413 2364/2802/1412 2360/2803/1423 f 2373/2804/1424 2321/2805/1395 2334/2806/1425 f 2345/2807/1404 2307/2740/1378 2288/2808/1426 f 2363/2809/1427 2349/2810/1428 2296/2811/1374 f 2296/2811/1374 2304/2737/1373 2363/2809/1427 f 2323/2812/1399 2362/2813/1400 2339/2814/1429 f 2291/2755/1388 2293/2754/1387 2316/2815/1430 f 2279/2816/1368 2376/2817/1431 2337/2818/1406 f 2283/2819/1360 2298/2820/1422 2350/2821/1382 f 2288/2808/1426 2351/2822/1405 2345/2807/1404 f 2288/2808/1426 2350/2745/1382 2351/2822/1405 f 2300/2766/1397 2370/2823/1432 2372/2824/1433 f 2292/2825/1389 2355/2826/1401 2293/2827/1387 f 2343/2828/1434 2367/2829/1435 2333/2830/1436 f 2276/2831/1437 2363/2809/1427 2304/2737/1373 f 2374/2781/1409 2288/2832/1426 2307/2787/1378 f 2361/2747/1384 2337/2818/1406 2376/2817/1431 f 2330/2833/1421 2339/2814/1429 2362/2813/1400 f 2322/2834/1438 2339/2835/1429 2338/2836/1394 f 2293/2754/1387 2308/2779/1407 2365/2837/1439 f 2316/2838/1430 2294/2839/1440 2291/2840/1388 f 2370/2823/1432 2312/2765/1396 2309/2841/1441 f 2371/2842/1442 2299/2757/1390 2315/2793/1418 f 2337/2818/1406 2361/2747/1384 2345/2807/1404 f 2294/2839/1440 2316/2838/1430 2363/2809/1427 f 2301/2767/1398 2353/2843/1443 2280/2844/1444 f 2338/2836/1394 2346/2845/1445 2322/2834/1438 f 2281/2846/1393 2326/2847/1392 2347/2848/1446 f 2353/2843/1443 2301/2767/1398 2300/2766/1397 f 2378/2849/1447 2341/2850/1448 2295/2851/1449 f 2321/2764/1395 2274/2749/1375 2380/2852/1450 f 2319/2853/1451 2322/2834/1438 2364/2802/1412 f 2354/2854/1452 2319/2853/1451 2364/2802/1412 f 2286/2743/1381 2288/2808/1426 2374/2798/1409 f 2349/2810/1428 2301/2855/1398 2280/2856/1444 f 2287/2752/1386 2332/2783/1410 2375/2753/1361 f 2277/2857/1365 2373/2804/1424 2362/2813/1400 f 2282/2858/1453 2379/2859/1454 2340/2860/1455 f 2296/2734/1374 2341/2861/1448 2342/2732/1372 f 2317/2862/1391 2370/2863/1432 2309/2864/1441 f 2370/2823/1432 2317/2758/1391 2372/2824/1433 f 2326/2865/1392 2330/2797/1421 2336/2796/1420 f 2334/2806/1425 2336/2866/1420 2335/2867/1419 f 2328/2868/1411 2354/2869/1452 2364/2870/1412 f 2281/2846/1393 2353/2843/1443 2379/2859/1454 f 2290/2871/1362 2291/2840/1388 2294/2839/1440 f 2275/2750/1385 2321/2764/1395 2277/2725/1365 f 2304/2737/1373 2342/2872/1372 2274/2735/1375 f 2344/2873/1408 2314/2874/1371 2310/2875/1370 f 2376/2817/1431 2305/2876/1456 2361/2747/1384 f 2349/2810/1428 2312/2877/1396 2301/2855/1398 f 2282/2858/1453 2318/2878/1457 2346/2879/1445 f 2347/2880/1446 2369/2881/1458 2378/2882/1447 f 2303/2883/1380 2372/2824/1433 2313/2760/1379 f 2287/2884/1386 2315/2793/1418 2285/2885/1359 f 2372/2824/1433 2303/2883/1380 2379/2859/1454 f 2349/2810/1428 2365/2886/1439 2312/2877/1396 f 2280/2856/1444 2296/2811/1374 2349/2810/1428 f 2337/2887/1406 2298/2820/1422 2299/2757/1390 f 2344/2888/1408 2308/2779/1407 2355/2778/1401 f 2278/2889/1364 2297/2890/1366 2354/2854/1452 f 2299/2757/1390 2279/2728/1368 2337/2887/1406 f 2331/2891/1403 2307/2740/1378 2306/2739/1369 f 2312/2765/1396 2365/2892/1439 2308/2893/1407 f 2306/2729/1369 2317/2894/1391 2310/2730/1370 f 2309/2864/1441 2310/2875/1370 2317/2862/1391 f 2336/2866/1420 2334/2806/1425 2327/2895/1459 f 2347/2848/1446 2326/2847/1392 2369/2896/1458 f 2352/2790/1415 2333/2897/1436 2324/2898/1460 f 2346/2845/1445 2360/2803/1423 2322/2834/1438 f 2285/2719/1359 2284/2718/1358 2332/2788/1410 f 2375/2753/1361 2357/2782/1402 2355/2899/1401 f 2338/2900/1394 2282/2858/1453 2346/2879/1445 f 2306/2729/1369 2314/2731/1371 2331/2773/1403 f 2327/2901/1459 2334/2902/1425 2366/2903/1461 f 2333/2897/1436 2352/2790/1415 2377/2789/1414 f 2343/2904/1434 2329/2905/1413 2367/2906/1435 f 2287/2884/1386 2289/2794/1363 2315/2793/1418 f 2300/2766/1397 2379/2859/1454 2353/2843/1443 f 2367/2907/1435 2324/2908/1460 2333/2830/1436 f 2294/2909/1440 2358/2910/1462 2359/2911/1417 f 2298/2912/1422 2351/2822/1405 2350/2745/1382 f 2356/2913/1367 2320/2914/1463 2376/2915/1431 f 2280/2844/1444 2353/2843/1443 2281/2846/1393 f 2315/2793/1418 2298/2820/1422 2285/2885/1359 f 2283/2744/1360 2286/2743/1381 2284/2799/1358 f 2281/2846/1393 2347/2848/1446 2280/2844/1444 f 2303/2742/1380 2345/2807/1404 2361/2747/1384 f 2340/2916/1455 2348/2791/1416 2325/2917/1464 f 2311/2738/1377 2313/2741/1379 2306/2739/1369 f 2359/2792/1417 2290/2918/1362 2294/2919/1440 f 2284/2718/1358 2374/2781/1409 2357/2774/1402 f 2325/2920/1464 2352/2921/1415 2318/2878/1457 f 2318/2878/1457 2282/2858/1453 2325/2920/1464 f 2304/2737/1373 2273/2736/1376 2276/2831/1437 f 2312/2765/1396 2370/2823/1432 2300/2766/1397 f 2379/2859/1454 2282/2858/1453 2281/2846/1393 f 2355/2899/1401 2292/2922/1389 2375/2753/1361 f 2373/2923/1424 2277/2725/1365 2321/2764/1395 f 2305/2876/1456 2302/2746/1383 2361/2747/1384 f 2340/2924/1455 2302/2746/1383 2305/2876/1456 f 2310/2925/1370 2309/2926/1441 2344/2888/1408 f 2280/2927/1444 2295/2928/1449 2296/2734/1374 f 2298/2820/1422 2315/2793/1418 2299/2757/1390 f 2332/2788/1410 2287/2929/1386 2285/2719/1359 f 2279/2816/1368 2356/2930/1367 2376/2817/1431 f 2317/2758/1391 2313/2760/1379 2372/2824/1433 f 2294/2839/1440 2363/2809/1427 2276/2831/1437 f 2319/2853/1451 2323/2931/1399 2322/2834/1438 f 2341/2850/1448 2378/2849/1447 2366/2903/1461 f 2303/2742/1380 2311/2738/1377 2345/2807/1404 f 2308/2779/1407 2344/2888/1408 2309/2926/1441 f 2278/2724/1364 2328/2932/1411 2356/2727/1367 f 2283/2819/1360 2285/2885/1359 2298/2820/1422 f 2372/2824/1433 2379/2859/1454 2300/2766/1397 f 2280/2844/1444 2347/2848/1446 2295/2933/1449 f 2307/2740/1378 2345/2807/1404 2311/2738/1377 f 2346/2879/1445 2318/2878/1457 2360/2934/1423 f 2277/2725/1365 2358/2935/1462 2275/2750/1385 f 2292/2756/1389 2290/2722/1362 2375/2721/1361 f 2290/2722/1362 2292/2756/1389 2291/2755/1388 f 2341/2850/1448 2366/2903/1461 2334/2902/1425 f 2336/2866/1420 2327/2895/1459 2368/2936/1465 f 2289/2794/1363 2290/2918/1362 2359/2792/1417 f 2378/2937/1447 2369/2896/1458 2327/2938/1459 f 2379/2859/1454 2302/2939/1383 2340/2860/1455 f 2338/2900/1394 2281/2846/1393 2282/2858/1453 f 2339/2835/1429 2322/2834/1438 2323/2931/1399 f 2273/2748/1376 2275/2750/1385 2358/2935/1462 f 2358/2935/1462 2276/2940/1437 2273/2748/1376 f 2376/2915/1431 2320/2914/1463 2305/2941/1456 f 2378/2849/1447 2295/2851/1449 2347/2942/1446 f 2320/2943/1463 2356/2727/1367 2328/2932/1411 f 2323/2931/1399 2297/2890/1366 2277/2944/1365 f 2328/2945/1411 2278/2724/1364 2354/2946/1452 f 2324/2908/1460 2360/2803/1423 2318/2947/1457 f 2305/2948/1456 2320/2949/1463 2348/2791/1416 f 2366/2950/1461 2378/2951/1447 2327/2952/1459 f 2369/2953/1458 2368/2936/1465 2327/2895/1459 f 2358/2935/1462 2294/2954/1440 2276/2955/1437 f 2358/2935/1462 2315/2793/1418 2359/2792/1417 f 2360/2956/1423 2324/2957/1460 2367/2906/1435 f 2277/2725/1365 2278/2724/1364 2371/2842/1442 f 2296/2734/1374 2295/2928/1449 2341/2861/1448 f 2316/2838/1430 2365/2886/1439 2349/2810/1428 f 2342/2872/1372 2380/2958/1450 2274/2735/1375 f 2308/2893/1407 2309/2841/1441 2312/2765/1396 f 2364/2802/1412 2322/2834/1438 2360/2803/1423 f 2335/2867/1419 2362/2813/1400 2373/2804/1424 f 2377/2789/1414 2348/2791/1416 2320/2949/1463 f 2282/2858/1453 2340/2860/1455 2325/2920/1464 f 2321/2959/1395 2380/2958/1450 2334/2902/1425 f 2377/2789/1414 2343/2960/1434 2333/2897/1436 f 2369/2961/1458 2326/2865/1392 2336/2796/1420 f 2338/2962/1394 2330/2833/1421 2326/2963/1392 f 2330/2833/1421 2338/2962/1394 2339/2814/1429 f 2323/2931/1399 2319/2853/1451 2354/2854/1452 f 2360/2956/1423 2367/2906/1435 2329/2905/1413 f 2318/2878/1457 2352/2921/1415 2324/2964/1460 f 2371/2842/1442 2315/2793/1418 2358/2935/1462 f 2354/2854/1452 2297/2890/1366 2323/2931/1399 f 2288/2808/1426 2286/2743/1381 2350/2745/1382 f 2341/2850/1448 2334/2902/1425 2380/2958/1450 f 2334/2806/1425 2335/2867/1419 2373/2804/1424 f 2371/2842/1442 2278/2724/1364 2299/2757/1390 f 2320/2943/1463 2328/2932/1411 2377/2965/1414 f 2341/2850/1448 2380/2958/1450 2342/2872/1372 f 2362/2966/1400 2335/2795/1419 2330/2797/1421 f 2365/2837/1439 2316/2815/1430 2293/2754/1387 f 2363/2809/1427 2316/2838/1430 2349/2810/1428 f 2369/2961/1458 2336/2796/1420 2368/2967/1465 f 2377/2965/1414 2328/2932/1411 2343/2968/1434 f 2379/2859/1454 2303/2883/1380 2302/2939/1383 f 2277/2725/1365 2371/2842/1442 2358/2935/1462 f 2352/2790/1415 2325/2917/1464 2348/2791/1416 f 2348/2791/1416 2340/2916/1455 2305/2948/1456 f 2329/2905/1413 2343/2904/1434 2328/2969/1411 f 2418/2970/1466 2382/2971/1467 2381/2972/1468 f 2387/2973/1469 2388/2974/1470 2436/2975/1471 f 2393/2976/1472 2394/2977/1473 2392/2978/1474 f 2391/2979/1475 2475/2980/1476 2396/2981/1477 f 2489/2982/1478 2427/2983/1479 2397/2984/1480 f 2401/2985/1481 2411/2986/1482 2398/2987/1483 f 2402/2988/1484 2381/2989/1468 2382/2990/1467 f 2402/2988/1484 2403/2991/1485 2381/2989/1468 f 2404/2992/1486 2385/2993/1487 2386/2994/1488 f 2405/2995/1489 2406/2996/1490 2385/2993/1487 f 2383/2997/1491 2403/2991/1485 2507/2998/1492 f 2408/2999/1493 2384/3000/1494 2383/2997/1491 f 2491/3001/1495 2384/3000/1494 2408/2999/1493 f 2461/3002/1496 2419/3003/1497 2390/3004/1498 f 2409/3005/1499 2388/2974/1470 2389/3006/1500 f 2412/3007/1501 2413/3008/1502 2428/3009/1503 f 2407/3010/1504 2417/3011/1505 2418/3012/1466 f 2463/3013/1506 2406/3014/1490 2407/3010/1504 f 2401/2985/1481 2410/3015/1507 2411/2986/1482 f 2395/3016/1508 2397/3017/1480 2499/3018/1509 f 2394/2977/1473 2395/3019/1508 2499/3020/1509 f 2392/3021/1474 2428/3009/1503 2473/3022/1510 f 2424/3023/1511 2425/3024/1512 2432/3025/1513 f 2423/3026/1514 2424/3027/1511 2453/3028/1515 f 2416/3029/1516 2426/3030/1517 2415/3031/1518 f 2425/3032/1512 2420/3033/1519 2432/3034/1513 f 2392/3035/1474 2473/3036/1510 2391/2979/1475 f 2475/2980/1476 2391/2979/1475 2473/3036/1510 f 2436/2975/1471 2404/2992/1486 2386/2994/1488 f 2485/3037/1520 2455/3038/1521 2443/3039/1522 f 2432/3025/1513 2453/3040/1515 2424/3023/1511 f 2437/3041/1523 2402/2988/1484 2465/3042/1524 f 2440/3043/1525 2493/3044/1526 2441/3045/1527 f 2437/3041/1523 2442/3046/1528 2443/3047/1522 f 2477/3048/1529 2476/3049/1530 2468/3050/1531 f 2396/2981/1477 2475/2980/1476 2421/3051/1532 f 2496/3052/1533 2505/3053/1534 2425/3024/1512 f 2451/3054/1535 2425/3032/1512 2505/3055/1534 f 2483/3056/1536 2475/3057/1476 2457/3058/1537 f 2425/3024/1512 2424/3023/1511 2496/3052/1533 f 2505/3055/1534 2497/3059/1538 2451/3054/1535 f 2399/3060/1539 2400/3061/1540 2500/3062/1541 f 2496/3052/1533 2489/3063/1478 2395/3016/1508 f 2480/3064/1542 2478/3065/1543 2448/3066/1544 f 2507/2998/1492 2447/3067/1545 2408/2999/1493 f 2383/2997/1491 2507/2998/1492 2408/2999/1493 f 2421/3051/1532 2451/3068/1535 2497/3069/1538 f 2505/3055/1534 2395/3019/1508 2393/2976/1472 f 2476/3049/1530 2467/3070/1546 2468/3050/1531 f 2485/3037/1520 2450/3071/1547 2455/3038/1521 f 2475/3057/1476 2428/3072/1503 2457/3058/1537 f 2403/3073/1485 2479/3074/1548 2434/3075/1549 f 2415/3076/1518 2389/3077/1500 2416/3078/1516 f 2410/3015/1507 2431/3079/1550 2381/3080/1468 f 2483/3056/1536 2469/3081/1551 2482/3082/1552 f 2385/2993/1487 2404/2992/1486 2405/2995/1489 f 2438/3083/1553 2467/3070/1546 2454/3084/1554 f 2471/3085/1555 2461/3002/1496 2472/3086/1556 f 2385/2993/1487 2406/2996/1490 2430/3087/1557 f 2474/3088/1558 2459/3089/1559 2464/3090/1560 f 2401/2985/1481 2500/3091/1541 2431/3079/1550 f 2402/3092/1484 2437/3093/1523 2443/3039/1522 f 2490/3094/1561 2488/3095/1562 2434/3096/1549 f 2434/3075/1549 2479/3074/1548 2490/3097/1561 f 2431/3079/1550 2410/3015/1507 2401/2985/1481 f 2497/3069/1538 2396/2981/1477 2421/3051/1532 f 2393/3098/1472 2396/2981/1477 2497/3069/1538 f 2431/3079/1550 2481/3099/1563 2463/3013/1506 f 2445/3100/1564 2503/3101/1565 2404/2992/1486 f 2419/3102/1497 2389/3103/1500 2469/3104/1551 f 2469/3105/1551 2457/3106/1537 2419/3003/1497 f 2487/3107/1566 2490/3097/1561 2452/3108/1567 f 2447/3067/1545 2508/3109/1568 2408/2999/1493 f 2429/3110/1569 2414/3111/1570 2456/3112/1571 f 2440/3113/1525 2458/3114/1572 2510/3115/1573 f 2457/3058/1537 2469/3081/1551 2483/3056/1536 f 2464/3090/1560 2417/3116/1505 2474/3088/1558 f 2485/3037/1520 2486/3117/1574 2446/3118/1575 f 2468/3119/1531 2466/3120/1576 2493/3121/1526 f 2436/3122/1471 2435/3123/1577 2404/3124/1486 f 2460/3125/1578 2486/3126/1574 2492/3127/1579 f 2384/3128/1494 2390/3004/1498 2457/3106/1537 f 2428/3072/1503 2475/3057/1476 2473/3129/1510 f 2481/3130/1563 2430/3087/1557 2406/2996/1490 f 2440/3131/1525 2477/3132/1529 2493/3121/1526 f 2403/3133/1485 2443/3039/1522 2455/3038/1521 f 2502/3134/1580 2492/3127/1579 2459/3135/1559 f 2407/3136/1504 2474/3088/1558 2417/3116/1505 f 2445/3137/1564 2435/3123/1577 2450/3071/1547 f 2403/2991/1485 2434/3138/1549 2507/2998/1492 f 2503/3139/1565 2502/3140/1580 2459/3089/1559 f 2463/3013/1506 2481/3099/1563 2406/3014/1490 f 2467/3070/1546 2476/3049/1530 2454/3084/1554 f 2418/3141/1466 2417/3116/1505 2382/3142/1467 f 2463/3013/1506 2418/3012/1466 2431/3079/1550 f 2481/3099/1563 2414/3143/1570 2430/3144/1557 f 2436/3145/1471 2433/3146/1581 2470/3147/1582 f 2459/3135/1559 2492/3127/1579 2464/3148/1560 f 2499/3149/1509 2498/3150/1583 2448/3066/1544 f 2481/3099/1563 2456/3151/1571 2414/3143/1570 f 2406/3014/1490 2405/3152/1489 2407/3010/1504 f 2485/3037/1520 2443/3039/1522 2442/3153/1528 f 2487/3107/1566 2452/3108/1567 2436/3145/1471 f 2458/3154/1572 2440/3155/1525 2441/3156/1527 f 2462/3157/1584 2509/3158/1585 2433/3159/1581 f 2424/3027/1511 2422/3160/1586 2400/3061/1540 f 2441/3161/1527 2493/3121/1526 2488/3162/1562 f 2413/3163/1502 2384/3128/1494 2457/3106/1537 f 2460/3125/1578 2446/3164/1575 2486/3126/1574 f 2426/3030/1517 2506/3165/1587 2420/3166/1519 f 2481/3099/1563 2500/3091/1541 2456/3151/1571 f 2384/3000/1494 2478/3065/1543 2383/2997/1491 f 2398/2987/1483 2399/3167/1539 2401/2985/1481 f 2479/3168/1548 2449/3169/1588 2490/3170/1561 f 2492/3127/1579 2502/3134/1580 2460/3125/1578 f 2394/2977/1473 2393/2976/1472 2395/3019/1508 f 2482/3171/1552 2415/3031/1518 2426/3030/1517 f 2420/3033/1519 2425/3032/1512 2451/3054/1535 f 2407/3010/1504 2418/3012/1466 2463/3013/1506 f 2482/3171/1552 2421/3051/1532 2475/2980/1476 f 2489/3063/1478 2397/3017/1480 2395/3016/1508 f 2466/3120/1576 2447/3172/1545 2493/3121/1526 f 2500/3091/1541 2422/3173/1586 2456/3151/1571 f 2433/3159/1581 2388/2974/1470 2409/3005/1499 f 2499/3149/1509 2448/3066/1544 2394/3174/1473 f 2412/3007/1501 2394/3174/1473 2448/3066/1544 f 2483/3175/1536 2482/3171/1552 2475/2980/1476 f 2493/3121/1526 2477/3132/1529 2468/3119/1531 f 2385/2993/1487 2484/3176/1589 2386/2994/1488 f 2394/3174/1473 2428/3009/1503 2392/3021/1474 f 2499/3149/1509 2397/3177/1480 2498/3150/1583 f 2415/3076/1518 2482/3082/1552 2469/3081/1551 f 2461/3002/1496 2471/3085/1555 2462/3178/1584 f 2479/3168/1548 2403/3133/1485 2449/3169/1588 f 2448/3066/1544 2398/3179/1483 2411/3180/1482 f 2484/3176/1589 2430/3087/1557 2414/3111/1570 f 2393/2976/1472 2497/3059/1538 2505/3055/1534 f 2444/3181/1590 2476/3182/1530 2510/3183/1573 f 2418/3012/1466 2381/3080/1468 2431/3079/1550 f 2470/3184/1582 2433/3159/1581 2458/3185/1572 f 2429/3110/1569 2495/3186/1591 2501/3187/1592 f 2422/3160/1586 2429/3188/1569 2456/3189/1571 f 2436/2975/1471 2386/2994/1488 2387/2973/1469 f 2421/3051/1532 2482/3171/1552 2426/3030/1517 f 2387/2973/1469 2416/3190/1516 2389/3006/1500 f 2439/3191/1593 2426/3192/1517 2416/3190/1516 f 2489/3063/1478 2496/3052/1533 2400/3193/1540 f 2435/3123/1577 2449/3169/1588 2450/3071/1547 f 2390/3004/1498 2419/3003/1497 2457/3106/1537 f 2508/3109/1568 2491/3001/1495 2408/2999/1493 f 2466/3194/1576 2468/3050/1531 2467/3070/1546 f 2447/3172/1545 2488/3162/1562 2493/3121/1526 f 2454/3084/1554 2444/3195/1590 2504/3196/1594 f 2392/3035/1474 2391/2979/1475 2393/3098/1472 f 2495/3186/1591 2429/3110/1569 2423/3197/1514 f 2423/3197/1514 2453/3198/1515 2495/3186/1591 f 2452/3199/1567 2435/3123/1577 2436/3122/1471 f 2469/3081/1551 2389/3077/1500 2415/3076/1518 f 2400/3061/1540 2496/3200/1533 2424/3027/1511 f 2388/2974/1470 2433/3159/1581 2436/2975/1471 f 2413/3201/1502 2457/3058/1537 2428/3072/1503 f 2421/3051/1532 2420/3166/1519 2451/3068/1535 f 2474/3088/1558 2407/3136/1504 2405/3202/1489 f 2409/3005/1499 2462/3157/1584 2433/3159/1581 f 2390/3004/1498 2472/3086/1556 2461/3002/1496 f 2464/3090/1560 2382/3142/1467 2417/3116/1505 f 2383/2997/1491 2480/3203/1542 2381/2989/1468 f 2424/3027/1511 2423/3026/1514 2422/3160/1586 f 2399/3060/1539 2427/2983/1479 2489/2982/1478 f 2427/2983/1479 2399/3060/1539 2398/3204/1483 f 2509/3158/1585 2510/3183/1573 2433/3159/1581 f 2400/3061/1540 2399/3060/1539 2489/2982/1478 f 2435/3123/1577 2452/3199/1567 2449/3169/1588 f 2398/3179/1483 2448/3066/1544 2498/3150/1583 f 2445/3137/1564 2450/3071/1547 2446/3118/1575 f 2501/3187/1592 2495/3186/1591 2439/3191/1593 f 2422/3160/1586 2423/3026/1514 2429/3188/1569 f 2485/3037/1520 2442/3153/1528 2486/3117/1574 f 2428/3009/1503 2394/3174/1473 2412/3007/1501 f 2478/3065/1543 2413/3008/1502 2412/3007/1501 f 2459/3089/1559 2474/3088/1558 2503/3139/1565 f 2458/3205/1572 2487/3107/1566 2470/3147/1582 f 2448/3066/1544 2411/3180/1482 2480/3064/1542 f 2432/3206/1513 2420/3207/1519 2506/3208/1587 f 2480/3203/1542 2410/3209/1507 2381/2989/1468 f 2472/3210/1556 2438/3083/1553 2471/3211/1555 f 2438/3083/1553 2472/3210/1556 2491/3212/1495 f 2455/3038/1521 2449/3169/1588 2403/3133/1485 f 2477/3132/1529 2440/3131/1525 2510/3213/1573 f 2471/3211/1555 2438/3083/1553 2504/3196/1594 f 2492/3127/1579 2486/3126/1574 2511/3214/1595 f 2500/3091/1541 2401/2985/1481 2399/3167/1539 f 2460/3215/1578 2494/3216/1596 2446/3118/1575 f 2480/3217/1542 2411/3218/1482 2410/3219/1507 f 2478/3065/1543 2412/3007/1501 2448/3066/1544 f 2453/3198/1515 2432/3206/1513 2439/3191/1593 f 2491/3212/1495 2508/3220/1568 2438/3083/1553 f 2441/3161/1527 2490/3097/1561 2487/3107/1566 f 2490/3097/1561 2441/3161/1527 2488/3162/1562 f 2510/3183/1573 2509/3158/1585 2444/3181/1590 f 2462/3221/1584 2504/3196/1594 2444/3195/1590 f 2430/3087/1557 2484/3176/1589 2385/2993/1487 f 2398/3179/1483 2498/3150/1583 2427/3222/1479 f 2494/3223/1596 2502/3224/1580 2503/3101/1565 f 2387/2973/1469 2484/3176/1589 2416/3190/1516 f 2403/3133/1485 2402/3092/1484 2443/3039/1522 f 2503/3101/1565 2445/3100/1564 2494/3223/1596 f 2511/3214/1595 2464/3148/1560 2492/3127/1579 f 2511/3225/1595 2437/3041/1523 2465/3042/1524 f 2504/3196/1594 2438/3083/1553 2454/3084/1554 f 2462/3178/1584 2409/3226/1499 2461/3002/1496 f 2467/3070/1546 2438/3083/1553 2508/3220/1568 f 2458/3227/1572 2433/3228/1581 2510/3229/1573 f 2511/3225/1595 2442/3046/1528 2437/3041/1523 f 2442/3046/1528 2511/3225/1595 2486/3230/1574 f 2420/3166/1519 2421/3051/1532 2426/3030/1517 f 2501/3187/1592 2414/3111/1570 2429/3110/1569 f 2444/3195/1590 2454/3084/1554 2476/3049/1530 f 2388/2974/1470 2387/2973/1469 2389/3006/1500 f 2503/3231/1565 2405/3232/1489 2404/3233/1486 f 2462/3178/1584 2471/3085/1555 2504/3234/1594 f 2465/3042/1524 2402/2988/1484 2382/2990/1467 f 2452/3199/1567 2490/3170/1561 2449/3169/1588 f 2491/3235/1495 2390/3004/1498 2384/3128/1494 f 2390/3004/1498 2491/3235/1495 2472/3086/1556 f 2397/3177/1480 2427/3222/1479 2498/3150/1583 f 2510/3183/1573 2476/3182/1530 2477/3236/1529 f 2395/3016/1508 2505/3053/1534 2496/3052/1533 f 2432/3206/1513 2506/3208/1587 2439/3191/1593 f 2500/3091/1541 2481/3099/1563 2431/3079/1550 f 2484/3176/1589 2387/2973/1469 2386/2994/1488 f 2509/3237/1585 2462/3221/1584 2444/3195/1590 f 2446/3118/1575 2450/3071/1547 2485/3037/1520 f 2436/3145/1471 2470/3147/1582 2487/3107/1566 f 2419/3003/1497 2461/3002/1496 2409/3226/1499 f 2405/3202/1489 2503/3139/1565 2474/3088/1558 f 2488/3162/1562 2447/3172/1545 2434/3075/1549 f 2466/3238/1576 2467/3239/1546 2508/3109/1568 f 2391/2979/1475 2396/2981/1477 2393/3098/1472 f 2480/3203/1542 2383/2997/1491 2478/3065/1543 f 2446/3118/1575 2494/3216/1596 2445/3137/1564 f 2478/3065/1543 2384/3000/1494 2413/3008/1502 f 2465/3240/1524 2464/3148/1560 2511/3214/1595 f 2506/3208/1587 2426/3192/1517 2439/3191/1593 f 2501/3187/1592 2416/3190/1516 2484/3176/1589 f 2439/3191/1593 2495/3186/1591 2453/3198/1515 f 2439/3191/1593 2416/3190/1516 2501/3187/1592 f 2381/2989/1468 2403/2991/1485 2383/2997/1491 f 2487/3241/1566 2458/3154/1572 2441/3156/1527 f 2404/3124/1486 2435/3123/1577 2445/3137/1564 f 2409/3226/1499 2389/3242/1500 2419/3003/1497 f 2447/3172/1545 2507/3243/1492 2434/3075/1549 f 2382/3142/1467 2464/3090/1560 2465/3244/1524 f 2455/3245/1521 2450/3246/1547 2449/3247/1588 f 2414/3111/1570 2501/3187/1592 2484/3176/1589 f 2508/3109/1568 2447/3067/1545 2466/3238/1576 f 2422/3160/1586 2500/3062/1541 2400/3061/1540 f 2502/3224/1580 2494/3223/1596 2460/3248/1578 f 2544/3249/1597 2515/3250/1598 2512/3251/1599 f 2587/3252/1600 2520/3253/1601 2518/3254/1602 f 2524/3255/1603 2616/3256/1604 2523/3257/1605 f 2576/3258/1606 2526/3259/1607 2520/3260/1601 f 2586/3261/1608 2532/3262/1609 2528/3263/1610 f 2529/3264/1611 2530/3265/1612 2531/3266/1613 f 2605/3267/1614 2537/3268/1615 2534/3269/1616 f 2568/3270/1617 2545/3271/1618 2537/3272/1615 f 2628/3273/1619 2540/3274/1620 2539/3275/1621 f 2542/3276/1622 2519/3277/1623 2517/3278/1624 f 2608/3279/1625 2524/3280/1603 2525/3281/1626 f 2632/3282/1627 2546/3283/1628 2565/3284/1629 f 2549/3285/1630 2567/3286/1631 2587/3287/1600 f 2552/3288/1632 2558/3289/1633 2613/3290/1634 f 2553/3291/1635 2552/3292/1632 2613/3293/1634 f 2531/3266/1613 2530/3265/1612 2554/3294/1636 f 2557/3295/1637 2556/3296/1638 2596/3297/1639 f 2565/3284/1629 2546/3283/1628 2582/3298/1640 f 2559/3299/1641 2550/3300/1642 2540/3274/1620 f 2560/3301/1643 2512/3302/1599 2550/3300/1642 f 2562/3303/1644 2553/3291/1635 2561/3304/1645 f 2561/3304/1645 2553/3291/1635 2554/3294/1636 f 2548/3305/1646 2562/3303/1644 2561/3304/1645 f 2521/3306/1647 2522/3307/1648 2539/3308/1621 f 2563/3309/1649 2544/3249/1597 2545/3271/1618 f 2620/3310/1650 2591/3311/1651 2564/3312/1652 f 2556/3296/1638 2557/3295/1637 2634/3313/1653 f 2529/3314/1611 2527/3315/1654 2564/3312/1652 f 2590/3316/1655 2556/3317/1638 2565/3284/1629 f 2547/3318/1656 2548/3305/1646 2622/3319/1657 f 2587/3252/1600 2518/3320/1602 2549/3321/1630 f 2591/3311/1651 2620/3310/1650 2567/3322/1631 f 2520/3253/1601 2587/3252/1600 2519/3277/1623 f 2569/3323/1658 2582/3324/1640 2563/3309/1649 f 2537/3272/1615 2605/3325/1614 2568/3270/1617 f 2558/3326/1633 2634/3327/1653 2557/3328/1637 f 2573/3329/1659 2618/3330/1660 2514/3331/1661 f 2540/3274/1620 2628/3273/1619 2559/3299/1641 f 2628/3273/1619 2635/3332/1662 2560/3301/1643 f 2581/3333/1663 2515/3250/1598 2582/3324/1640 f 2636/3334/1664 2588/3335/1665 2626/3336/1666 f 2612/3337/1667 2626/3338/1666 2588/3339/1665 f 2601/3340/1668 2595/3341/1669 2583/3342/1670 f 2626/3336/1666 2596/3343/1639 2636/3334/1664 f 2626/3338/1666 2612/3337/1667 2613/3290/1634 f 2594/3344/1671 2624/3345/1672 2623/3346/1673 f 2584/3347/1674 2637/3348/1675 2547/3349/1656 f 2534/3269/1616 2536/3350/1676 2535/3351/1677 f 2636/3334/1664 2604/3352/1678 2586/3353/1608 f 2623/3354/1673 2577/3355/1679 2615/3356/1680 f 2635/3332/1662 2593/3357/1681 2560/3301/1643 f 2599/3358/1682 2619/3359/1683 2597/3360/1684 f 2586/3353/1608 2588/3335/1665 2636/3334/1664 f 2542/3361/1622 2541/3362/1685 2589/3363/1686 f 2592/3364/1687 2575/3365/1688 2618/3366/1660 f 2515/3250/1598 2581/3333/1663 2539/3308/1621 f 2558/3367/1633 2552/3368/1632 2630/3369/1689 f 2614/3370/1690 2593/3357/1681 2635/3332/1662 f 2539/3308/1621 2540/3371/1620 2515/3250/1598 f 2624/3345/1672 2571/3372/1691 2623/3346/1673 f 2633/3373/1692 2551/3374/1693 2576/3258/1606 f 2545/3271/1618 2568/3270/1617 2563/3309/1649 f 2536/3350/1676 2636/3375/1664 2596/3297/1639 f 2585/3376/1694 2531/3266/1613 2612/3377/1667 f 2617/3378/1695 2609/3379/1696 2592/3364/1687 f 2515/3250/1598 2544/3249/1597 2563/3309/1649 f 2599/3358/1682 2627/3380/1697 2619/3359/1683 f 2521/3306/1647 2539/3308/1621 2581/3333/1663 f 2622/3319/1657 2518/3381/1602 2526/3382/1607 f 2523/3257/1605 2574/3383/1698 2538/3384/1699 f 2621/3385/1700 2614/3386/1690 2629/3387/1701 f 2610/3388/1702 2543/3389/1703 2572/3390/1704 f 2573/3329/1659 2513/3391/1705 2611/3392/1706 f 2518/3381/1602 2622/3319/1657 2601/3340/1668 f 2560/3301/1643 2559/3299/1641 2628/3273/1619 f 2592/3364/1687 2578/3393/1707 2629/3394/1701 f 2571/3395/1691 2516/3396/1708 2577/3355/1679 f 2601/3340/1668 2583/3342/1670 2518/3381/1602 f 2579/3397/1709 2545/3398/1618 2544/3399/1597 f 2530/3265/1612 2595/3400/1669 2561/3304/1645 f 2529/3264/1611 2595/3400/1669 2530/3265/1612 f 2612/3337/1667 2531/3401/1613 2554/3402/1636 f 2574/3403/1698 2523/3404/1605 2603/3405/1710 f 2569/3323/1658 2590/3406/1655 2582/3324/1640 f 2603/3405/1710 2609/3379/1696 2617/3378/1695 f 2597/3360/1684 2572/3407/1704 2543/3408/1703 f 2522/3409/1648 2523/3257/1605 2538/3384/1699 f 2577/3410/1679 2575/3365/1688 2609/3379/1696 f 2524/3280/1603 2608/3279/1625 2543/3411/1703 f 2565/3284/1629 2634/3412/1653 2625/3413/1711 f 2526/3382/1607 2551/3414/1693 2622/3319/1657 f 2617/3415/1695 2614/3416/1690 2574/3383/1698 f 2563/3309/1649 2582/3324/1640 2515/3250/1598 f 2576/3258/1606 2599/3358/1682 2597/3360/1684 f 2585/3417/1694 2528/3263/1610 2527/3418/1654 f 2624/3419/1672 2594/3420/1671 2598/3421/1712 f 2585/3417/1694 2612/3337/1667 2588/3339/1665 f 2525/3281/1626 2551/3414/1693 2608/3279/1625 f 2613/3290/1634 2558/3289/1633 2626/3338/1666 f 2596/3343/1639 2626/3336/1666 2558/3326/1633 f 2519/3277/1623 2587/3252/1600 2517/3278/1624 f 2619/3359/1683 2572/3407/1704 2597/3360/1684 f 2594/3344/1671 2623/3346/1673 2610/3422/1702 f 2528/3263/1610 2532/3262/1609 2602/3423/1713 f 2638/3424/1714 2602/3425/1713 2532/3426/1609 f 2596/3297/1639 2555/3427/1715 2535/3351/1677 f 2570/3428/1716 2547/3349/1656 2625/3413/1711 f 2591/3429/1651 2583/3342/1670 2595/3341/1669 f 2579/3397/1709 2567/3322/1631 2602/3425/1713 f 2514/3331/1661 2618/3330/1660 2516/3430/1708 f 2526/3259/1607 2576/3258/1606 2551/3374/1693 f 2613/3293/1634 2554/3294/1636 2553/3291/1635 f 2520/3431/1601 2526/3382/1607 2518/3381/1602 f 2524/3280/1603 2637/3432/1675 2584/3433/1674 f 2573/3329/1659 2514/3331/1661 2513/3391/1705 f 2565/3434/1629 2582/3324/1640 2590/3406/1655 f 2535/3351/1677 2555/3427/1715 2590/3435/1655 f 2595/3436/1669 2529/3437/1611 2591/3438/1651 f 2581/3333/1663 2566/3439/1717 2521/3306/1647 f 2546/3440/1628 2581/3333/1663 2582/3324/1640 f 2551/3414/1693 2525/3281/1626 2622/3319/1657 f 2558/3326/1633 2557/3328/1637 2596/3343/1639 f 2627/3380/1697 2599/3358/1682 2631/3441/1718 f 2524/3280/1603 2584/3433/1674 2525/3281/1626 f 2602/3423/1713 2620/3442/1650 2528/3263/1610 f 2631/3441/1718 2599/3358/1682 2598/3443/1712 f 2535/3351/1677 2536/3350/1676 2596/3297/1639 f 2627/3444/1697 2594/3420/1671 2572/3445/1704 f 2594/3420/1671 2627/3444/1697 2631/3446/1718 f 2577/3355/1679 2623/3354/1673 2571/3395/1691 f 2629/3394/1701 2617/3378/1695 2592/3364/1687 f 2561/3304/1645 2554/3294/1636 2530/3265/1612 f 2629/3387/1701 2578/3447/1707 2621/3385/1700 f 2637/3348/1675 2632/3282/1627 2547/3349/1656 f 2598/3421/1712 2594/3420/1671 2631/3446/1718 f 2574/3383/1698 2635/3448/1662 2640/3449/1719 f 2568/3270/1617 2569/3323/1658 2563/3309/1649 f 2527/3450/1654 2529/3264/1611 2585/3376/1694 f 2512/3302/1599 2560/3301/1643 2513/3451/1705 f 2611/3452/1706 2560/3301/1643 2593/3357/1681 f 2533/3453/1720 2638/3454/1714 2532/3455/1609 f 2534/3269/1616 2535/3351/1677 2605/3267/1614 f 2599/3456/1682 2589/3457/1686 2598/3458/1712 f 2562/3303/1644 2570/3459/1716 2630/3460/1689 f 2601/3340/1668 2622/3319/1657 2548/3305/1646 f 2550/3461/1642 2512/3251/1599 2515/3250/1598 f 2610/3388/1702 2600/3462/1721 2543/3389/1703 f 2565/3284/1629 2625/3413/1711 2632/3282/1627 f 2546/3463/1628 2632/3464/1627 2566/3465/1717 f 2567/3322/1631 2549/3321/1630 2591/3311/1651 f 2607/3466/1722 2567/3322/1631 2579/3397/1709 f 2604/3352/1678 2636/3334/1664 2536/3467/1676 f 2572/3390/1704 2594/3468/1671 2610/3388/1702 f 2576/3258/1606 2520/3260/1601 2519/3469/1623 f 2604/3352/1678 2532/3455/1609 2586/3353/1608 f 2602/3425/1713 2537/3470/1615 2579/3397/1709 f 2569/3471/1658 2568/3472/1617 2605/3267/1614 f 2547/3318/1656 2622/3319/1657 2525/3281/1626 f 2624/3419/1672 2589/3363/1686 2541/3362/1685 f 2533/3473/1720 2604/3474/1678 2534/3269/1616 f 2609/3379/1696 2575/3365/1688 2592/3364/1687 f 2573/3329/1659 2611/3392/1706 2578/3475/1707 f 2573/3476/1659 2578/3393/1707 2592/3364/1687 f 2549/3477/1630 2518/3381/1602 2583/3342/1670 f 2549/3477/1630 2583/3342/1670 2591/3429/1651 f 2532/3455/1609 2604/3352/1678 2533/3453/1720 f 2580/3478/1723 2599/3358/1682 2576/3258/1606 f 2524/3255/1603 2600/3462/1721 2616/3256/1604 f 2580/3478/1723 2576/3258/1606 2519/3479/1623 f 2537/3470/1615 2602/3425/1713 2638/3424/1714 f 2596/3297/1639 2556/3296/1638 2555/3427/1715 f 2536/3350/1676 2534/3269/1616 2604/3474/1678 f 2623/3354/1673 2615/3356/1680 2600/3480/1721 f 2584/3433/1674 2547/3318/1656 2525/3281/1626 f 2555/3427/1715 2556/3296/1638 2590/3435/1655 f 2611/3481/1706 2513/3482/1705 2560/3483/1643 f 2550/3300/1642 2559/3299/1641 2560/3301/1643 f 2554/3402/1636 2613/3290/1634 2612/3337/1667 f 2529/3437/1611 2564/3484/1652 2591/3438/1651 f 2633/3373/1692 2608/3485/1625 2551/3374/1693 f 2606/3486/1724 2544/3487/1597 2512/3488/1599 f 2588/3339/1665 2586/3261/1608 2585/3417/1694 f 2541/3489/1685 2542/3276/1622 2516/3430/1708 f 2633/3373/1692 2576/3258/1606 2597/3360/1684 f 2621/3385/1700 2578/3447/1707 2611/3490/1706 f 2618/3366/1660 2573/3491/1659 2592/3364/1687 f 2630/3369/1689 2570/3428/1716 2558/3367/1633 f 2634/3412/1653 2558/3367/1633 2570/3428/1716 f 2635/3448/1662 2574/3383/1698 2614/3416/1690 f 2640/3492/1719 2635/3332/1662 2628/3273/1619 f 2609/3379/1696 2615/3493/1680 2577/3410/1679 f 2587/3252/1600 2567/3322/1631 2607/3466/1722 f 2522/3409/1648 2521/3494/1647 2523/3257/1605 f 2523/3257/1605 2521/3494/1647 2566/3495/1717 f 2580/3496/1723 2519/3277/1623 2542/3276/1622 f 2564/3312/1652 2527/3315/1654 2620/3310/1650 f 2614/3386/1690 2621/3385/1700 2593/3497/1681 f 2543/3408/1703 2608/3485/1625 2597/3360/1684 f 2602/3425/1713 2567/3322/1631 2620/3310/1650 f 2552/3292/1632 2553/3291/1635 2562/3303/1644 f 2637/3348/1675 2566/3495/1717 2632/3282/1627 f 2639/3498/1725 2587/3252/1600 2607/3466/1722 f 2570/3459/1716 2562/3303/1644 2548/3305/1646 f 2571/3395/1691 2541/3499/1685 2516/3396/1708 f 2527/3315/1654 2528/3500/1610 2620/3310/1650 f 2572/3407/1704 2619/3359/1683 2627/3380/1697 f 2561/3501/1645 2601/3502/1668 2548/3503/1646 f 2601/3502/1668 2561/3501/1645 2595/3436/1669 f 2574/3383/1698 2640/3449/1719 2538/3384/1699 f 2607/3466/1722 2606/3486/1724 2512/3488/1599 f 2637/3348/1675 2523/3257/1605 2566/3495/1717 f 2589/3363/1686 2624/3419/1672 2598/3421/1712 f 2600/3504/1721 2610/3422/1702 2623/3346/1673 f 2548/3505/1646 2547/3349/1656 2570/3428/1716 f 2516/3506/1708 2618/3366/1660 2575/3365/1688 f 2616/3507/1604 2600/3480/1721 2615/3356/1680 f 2533/3473/1720 2534/3269/1616 2537/3268/1615 f 2516/3430/1708 2542/3276/1622 2517/3278/1624 f 2541/3508/1685 2571/3372/1691 2624/3345/1672 f 2611/3490/1706 2593/3497/1681 2621/3385/1700 f 2540/3371/1620 2550/3461/1642 2515/3250/1598 f 2585/3417/1694 2586/3261/1608 2528/3263/1610 f 2514/3331/1661 2516/3430/1708 2639/3498/1725 f 2517/3278/1624 2639/3498/1725 2516/3430/1708 f 2547/3349/1656 2632/3282/1627 2625/3413/1711 f 2579/3397/1709 2537/3470/1615 2545/3398/1618 f 2562/3303/1644 2630/3509/1689 2552/3292/1632 f 2542/3276/1622 2599/3456/1682 2580/3496/1723 f 2531/3266/1613 2585/3376/1694 2529/3264/1611 f 2616/3510/1604 2603/3405/1710 2523/3404/1605 f 2516/3506/1708 2575/3365/1688 2577/3410/1679 f 2570/3428/1716 2625/3413/1711 2634/3412/1653 f 2600/3511/1721 2524/3512/1603 2543/3513/1703 f 2523/3514/1605 2637/3432/1675 2524/3280/1603 f 2535/3351/1677 2590/3435/1655 2569/3471/1658 f 2537/3268/1615 2638/3515/1714 2533/3473/1720 f 2514/3331/1661 2512/3488/1599 2513/3391/1705 f 2512/3488/1599 2514/3331/1661 2607/3466/1722 f 2544/3399/1597 2606/3486/1724 2579/3397/1709 f 2605/3267/1614 2535/3351/1677 2569/3471/1658 f 2617/3378/1695 2574/3516/1698 2603/3405/1710 f 2539/3275/1621 2640/3492/1719 2628/3273/1619 f 2640/3492/1719 2539/3275/1621 2522/3517/1648 f 2603/3405/1710 2616/3510/1604 2609/3379/1696 f 2615/3493/1680 2609/3379/1696 2616/3510/1604 f 2599/3456/1682 2542/3276/1622 2589/3457/1686 f 2608/3485/1625 2633/3373/1692 2597/3360/1684 f 2514/3331/1661 2639/3498/1725 2607/3466/1722 f 2587/3252/1600 2639/3498/1725 2517/3278/1624 f 2606/3518/1724 2607/3519/1722 2579/3520/1709 f 2614/3386/1690 2617/3521/1695 2629/3387/1701 f 2556/3317/1638 2634/3412/1653 2565/3284/1629 f 2640/3492/1719 2522/3517/1648 2538/3522/1699 f 2581/3333/1663 2546/3440/1628 2566/3439/1717 f 2652/3523/1726 2651/3524/1727 2653/3525/1728 f 2735/3526/1729 2655/3527/1730 2657/3528/1731 f 2662/3529/1732 2647/3530/1733 2663/3531/1734 f 2665/3532/1735 2664/3533/1736 2645/3534/1737 f 2665/3532/1735 2645/3534/1737 2667/3535/1738 f 2726/3536/1739 2667/3535/1738 2646/3537/1740 f 2674/3538/1741 2682/3539/1742 2678/3540/1743 f 2677/3541/1744 2676/3542/1745 2680/3543/1746 f 2709/3544/1747 2663/3531/1734 2672/3545/1748 f 2679/3546/1749 2675/3547/1750 2674/3548/1741 f 2681/3549/1751 2671/3550/1752 2679/3546/1749 f 2654/3551/1753 2719/3552/1754 2651/3553/1727 f 2650/3554/1755 2732/3555/1756 2671/3550/1752 f 2642/3556/1757 2643/3557/1758 2641/3558/1759 f 2660/3559/1760 2661/3560/1761 2658/3561/1762 f 2685/3562/1763 2681/3563/1751 2674/3564/1741 f 2731/3565/1764 2690/3566/1765 2649/3567/1766 f 2693/3568/1767 2705/3569/1768 2648/3570/1769 f 2687/3571/1770 2641/3558/1759 2643/3557/1758 f 2663/3531/1734 2709/3544/1747 2662/3529/1732 f 2669/3572/1771 2670/3573/1772 2668/3574/1773 f 2731/3575/1764 2730/3576/1774 2696/3577/1775 f 2689/3578/1776 2733/3579/1777 2645/3580/1737 f 2725/3581/1778 2682/3582/1742 2746/3583/1779 f 2699/3584/1780 2746/3585/1779 2682/3539/1742 f 2714/3586/1781 2704/3587/1782 2691/3588/1783 f 2659/3589/1784 2676/3542/1745 2725/3590/1778 f 2682/3582/1742 2725/3581/1778 2713/3591/1785 f 2746/3585/1779 2699/3584/1780 2741/3592/1786 f 2746/3583/1779 2700/3593/1787 2735/3526/1729 f 2695/3594/1788 2696/3595/1775 2734/3596/1789 f 2675/3597/1750 2741/3592/1786 2699/3584/1780 f 2746/3585/1779 2652/3523/1726 2700/3598/1787 f 2743/3599/1790 2717/3600/1791 2720/3601/1792 f 2728/3602/1793 2701/3603/1794 2683/3604/1795 f 2702/3605/1796 2698/3606/1797 2703/3607/1798 f 2741/3608/1786 2654/3551/1753 2652/3609/1726 f 2691/3588/1783 2704/3587/1782 2666/3610/1799 f 2696/3577/1775 2730/3576/1774 2734/3611/1789 f 2740/3612/1800 2729/3613/1801 2687/3614/1770 f 2714/3615/1781 2656/3616/1802 2675/3547/1750 f 2727/3617/1803 2663/3618/1734 2718/3619/1804 f 2663/3618/1734 2727/3617/1803 2672/3620/1748 f 2689/3578/1776 2706/3621/1805 2733/3579/1777 f 2646/3622/1740 2704/3623/1782 2742/3624/1806 f 2651/3625/1727 2719/3626/1754 2666/3627/1799 f 2656/3616/1802 2714/3615/1781 2691/3628/1783 f 2656/3616/1802 2691/3628/1783 2719/3552/1754 f 2668/3574/1773 2722/3629/1807 2723/3630/1808 f 2735/3631/1729 2659/3589/1784 2725/3590/1778 f 2711/3632/1809 2712/3633/1810 2710/3634/1811 f 2644/3635/1812 2672/3620/1748 2727/3617/1803 f 2741/3592/1786 2675/3597/1750 2656/3636/1802 f 2732/3555/1756 2742/3624/1806 2704/3623/1782 f 2698/3637/1797 2733/3579/1777 2706/3621/1805 f 2727/3617/1803 2684/3638/1813 2644/3635/1812 f 2688/3639/1814 2705/3640/1768 2706/3641/1805 f 2684/3638/1813 2658/3561/1762 2661/3560/1761 f 2739/3642/1815 2683/3604/1795 2667/3535/1738 f 2704/3623/1782 2714/3615/1781 2732/3555/1756 f 2661/3560/1761 2644/3635/1812 2684/3638/1813 f 2670/3573/1772 2647/3643/1733 2692/3644/1816 f 2705/3640/1768 2688/3639/1814 2715/3645/1817 f 2648/3570/1769 2716/3646/1818 2693/3568/1767 f 2692/3644/1816 2668/3574/1773 2670/3573/1772 f 2744/3647/1819 2662/3648/1732 2708/3649/1820 f 2687/3571/1770 2747/3650/1821 2641/3558/1759 f 2724/3651/1822 2734/3611/1789 2688/3639/1814 f 2654/3551/1753 2741/3608/1786 2656/3616/1802 f 2659/3589/1784 2658/3652/1762 2684/3653/1813 f 2655/3527/1730 2735/3526/1729 2700/3593/1787 f 2645/3580/1737 2733/3579/1777 2740/3612/1800 f 2649/3567/1766 2707/3654/1823 2745/3655/1824 f 2662/3529/1732 2709/3544/1747 2708/3656/1820 f 2685/3562/1763 2677/3657/1744 2723/3630/1808 f 2723/3630/1808 2722/3629/1807 2685/3562/1763 f 2693/3658/1767 2703/3607/1798 2698/3606/1797 f 2729/3613/1801 2702/3659/1796 2703/3660/1798 f 2695/3661/1788 2734/3662/1789 2665/3663/1735 f 2648/3570/1769 2745/3655/1824 2692/3644/1816 f 2643/3557/1758 2645/3534/1737 2687/3571/1770 f 2672/3664/1748 2641/3665/1759 2709/3666/1747 f 2713/3591/1785 2678/3667/1743 2682/3582/1742 f 2742/3624/1806 2732/3555/1756 2673/3668/1825 f 2649/3567/1766 2715/3669/1817 2731/3565/1764 f 2716/3670/1818 2744/3647/1819 2738/3671/1826 f 2671/3672/1752 2681/3563/1751 2722/3629/1807 f 2655/3673/1730 2653/3674/1728 2683/3604/1795 f 2722/3629/1807 2745/3655/1824 2671/3672/1752 f 2647/3675/1733 2718/3619/1804 2663/3618/1734 f 2704/3587/1782 2667/3676/1738 2666/3610/1799 f 2690/3566/1765 2707/3654/1823 2649/3567/1766 f 2713/3677/1785 2725/3590/1778 2676/3542/1745 f 2667/3535/1738 2704/3678/1782 2646/3537/1740 f 2699/3679/1780 2674/3548/1741 2675/3547/1750 f 2674/3538/1741 2678/3540/1743 2685/3680/1763 f 2677/3681/1744 2685/3682/1763 2678/3667/1743 f 2718/3619/1804 2669/3683/1771 2684/3638/1813 f 2703/3660/1798 2694/3684/1827 2729/3613/1801 f 2718/3619/1804 2647/3675/1733 2670/3685/1772 f 2716/3646/1818 2738/3686/1826 2693/3568/1767 f 2720/3601/1792 2721/3687/1828 2712/3688/1810 f 2715/3645/1817 2688/3639/1814 2730/3576/1774 f 2653/3525/1728 2700/3598/1787 2652/3523/1726 f 2735/3526/1729 2725/3581/1778 2746/3583/1779 f 2705/3689/1768 2715/3669/1817 2649/3567/1766 f 2674/3538/1741 2699/3584/1780 2682/3539/1742 f 2694/3690/1827 2736/3691/1829 2729/3692/1801 f 2712/3688/1810 2743/3599/1790 2720/3601/1792 f 2711/3693/1809 2710/3694/1811 2696/3695/1775 f 2655/3673/1730 2683/3604/1795 2701/3603/1794 f 2668/3574/1773 2692/3644/1816 2745/3655/1824 f 2710/3696/1811 2712/3633/1810 2721/3697/1828 f 2661/3698/1761 2728/3602/1793 2642/3556/1757 f 2666/3699/1799 2719/3552/1754 2691/3628/1783 f 2726/3700/1739 2742/3624/1806 2686/3701/1830 f 2647/3643/1733 2648/3570/1769 2692/3644/1816 f 2683/3604/1795 2653/3674/1728 2666/3627/1799 f 2651/3553/1727 2652/3609/1726 2654/3551/1753 f 2739/3642/1815 2645/3534/1737 2697/3702/1831 f 2648/3570/1769 2647/3643/1733 2716/3646/1818 f 2655/3673/1730 2701/3603/1794 2657/3703/1731 f 2671/3550/1752 2732/3555/1756 2714/3615/1781 f 2707/3704/1823 2690/3705/1765 2717/3600/1791 f 2679/3546/1749 2674/3548/1741 2681/3549/1751 f 2728/3602/1793 2661/3698/1761 2660/3706/1760 f 2652/3523/1726 2746/3585/1779 2741/3592/1786 f 2669/3572/1771 2668/3574/1773 2723/3630/1808 f 2676/3542/1745 2669/3707/1771 2680/3543/1746 f 2720/3708/1792 2731/3565/1764 2721/3709/1828 f 2745/3655/1824 2648/3570/1769 2649/3567/1766 f 2669/3683/1771 2718/3619/1804 2670/3685/1772 f 2740/3710/1800 2687/3571/1770 2645/3534/1737 f 2673/3668/1825 2732/3555/1756 2650/3554/1755 f 2707/3711/1823 2673/3668/1825 2650/3554/1755 f 2678/3667/1743 2713/3591/1785 2677/3681/1744 f 2666/3627/1799 2667/3535/1738 2683/3604/1795 f 2700/3598/1787 2653/3525/1728 2655/3712/1730 f 2646/3622/1740 2742/3624/1806 2726/3700/1739 f 2685/3562/1763 2722/3629/1807 2681/3563/1751 f 2724/3651/1822 2688/3639/1814 2689/3713/1776 f 2708/3714/1820 2736/3715/1829 2744/3716/1819 f 2671/3550/1752 2714/3615/1781 2679/3546/1749 f 2676/3542/1745 2677/3541/1744 2713/3677/1785 f 2665/3532/1735 2726/3536/1739 2695/3717/1788 f 2651/3625/1727 2666/3627/1799 2653/3674/1728 f 2664/3718/1736 2665/3719/1735 2724/3651/1822 f 2722/3629/1807 2668/3574/1773 2745/3655/1824 f 2647/3643/1733 2662/3720/1732 2716/3646/1818 f 2675/3547/1750 2679/3546/1749 2714/3615/1781 f 2715/3669/1817 2730/3721/1774 2731/3565/1764 f 2645/3534/1737 2643/3557/1758 2697/3702/1831 f 2658/3652/1762 2735/3631/1729 2657/3722/1731 f 2659/3589/1784 2735/3631/1729 2658/3652/1762 f 2708/3649/1820 2729/3692/1801 2736/3691/1829 f 2703/3660/1798 2737/3723/1832 2694/3684/1827 f 2701/3603/1794 2728/3602/1793 2660/3706/1760 f 2744/3724/1819 2694/3725/1827 2738/3686/1826 f 2745/3655/1824 2707/3654/1823 2650/3726/1755 f 2731/3565/1764 2720/3708/1792 2690/3566/1765 f 2705/3689/1768 2649/3567/1766 2648/3570/1769 f 2706/3641/1805 2689/3713/1776 2688/3639/1814 f 2642/3556/1757 2697/3702/1831 2643/3557/1758 f 2642/3556/1757 2672/3727/1748 2644/3728/1812 f 2742/3624/1806 2673/3668/1825 2686/3701/1830 f 2744/3647/1819 2716/3670/1818 2662/3648/1732 f 2686/3729/1830 2695/3717/1788 2726/3536/1739 f 2689/3713/1776 2645/3730/1737 2664/3718/1736 f 2642/3556/1757 2641/3558/1759 2672/3727/1748 f 2673/3731/1825 2717/3600/1791 2686/3732/1830 f 2667/3535/1738 2726/3536/1739 2665/3532/1735 f 2736/3733/1829 2694/3734/1827 2744/3735/1819 f 2738/3736/1826 2694/3684/1827 2737/3723/1832 f 2642/3556/1757 2644/3728/1812 2661/3698/1761 f 2697/3702/1831 2728/3602/1793 2683/3604/1795 f 2731/3737/1764 2710/3694/1811 2721/3738/1828 f 2645/3534/1737 2739/3642/1815 2667/3535/1738 f 2709/3666/1747 2641/3665/1759 2747/3739/1821 f 2680/3740/1746 2723/3630/1808 2677/3657/1744 f 2669/3683/1771 2676/3741/1745 2684/3638/1813 f 2734/3611/1789 2730/3576/1774 2688/3639/1814 f 2702/3659/1796 2740/3612/1800 2733/3579/1777 f 2743/3599/1790 2686/3732/1830 2717/3600/1791 f 2687/3742/1770 2729/3692/1801 2747/3739/1821 f 2743/3599/1790 2712/3688/1810 2711/3743/1809 f 2738/3744/1826 2703/3607/1798 2693/3658/1767 f 2705/3745/1768 2693/3746/1767 2698/3637/1797 f 2698/3637/1797 2706/3621/1805 2705/3745/1768 f 2731/3737/1764 2696/3695/1775 2710/3694/1811 f 2739/3642/1815 2697/3702/1831 2683/3604/1795 f 2724/3651/1822 2689/3713/1776 2664/3718/1736 f 2642/3556/1757 2728/3602/1793 2697/3702/1831 f 2656/3616/1802 2719/3552/1754 2654/3551/1753 f 2658/3652/1762 2657/3722/1731 2660/3747/1760 f 2708/3649/1820 2747/3739/1821 2729/3692/1801 f 2729/3613/1801 2740/3612/1800 2702/3659/1796 f 2686/3729/1830 2743/3748/1790 2695/3717/1788 f 2708/3649/1820 2709/3666/1747 2747/3739/1821 f 2733/3749/1777 2698/3606/1797 2702/3605/1796 f 2659/3589/1784 2684/3653/1813 2676/3542/1745 f 2660/3706/1760 2657/3703/1731 2701/3603/1794 f 2727/3617/1803 2718/3619/1804 2684/3638/1813 f 2738/3744/1826 2737/3750/1832 2703/3607/1798 f 2734/3751/1789 2724/3752/1822 2665/3532/1735 f 2743/3748/1790 2711/3753/1809 2695/3717/1788 f 2745/3655/1824 2650/3726/1755 2671/3672/1752 f 2720/3601/1792 2717/3600/1791 2690/3705/1765 f 2717/3600/1791 2673/3731/1825 2707/3704/1823 f 2680/3740/1746 2669/3572/1771 2723/3630/1808 f 2696/3695/1775 2695/3754/1788 2711/3693/1809 f 2783/3755/1833 2748/3756/1834 2749/3757/1835 f 2755/3758/1836 2803/3759/1837 2754/3760/1838 f 2760/3761/1839 2759/3762/1840 2761/3763/1841 f 2758/3764/1842 2763/3765/1843 2844/3766/1844 f 2858/3767/1845 2764/3768/1846 2792/3769/1847 f 2769/3770/1848 2749/3771/1835 2748/3772/1834 f 2769/3770/1848 2748/3772/1834 2770/3773/1849 f 2771/3774/1850 2753/3775/1851 2752/3776/1852 f 2772/3777/1853 2752/3778/1852 2773/3779/1854 f 2750/3780/1855 2875/3781/1856 2770/3773/1849 f 2775/3782/1857 2750/3780/1855 2751/3783/1858 f 2861/3784/1859 2775/3782/1857 2751/3783/1858 f 2829/3785/1860 2757/3786/1861 2784/3787/1862 f 2776/3788/1863 2756/3789/1864 2754/3760/1838 f 2797/3790/1865 2794/3791/1866 2778/3792/1867 f 2866/3793/1868 2780/3794/1869 2781/3795/1870 f 2774/3796/1871 2783/3797/1833 2782/3798/1872 f 2831/3799/1873 2774/3796/1871 2773/3800/1854 f 2762/3801/1874 2793/3802/1875 2764/3803/1846 f 2761/3804/1841 2793/3805/1875 2762/3806/1874 f 2759/3807/1840 2842/3808/1876 2794/3791/1866 f 2789/3809/1877 2799/3810/1878 2790/3811/1879 f 2788/3812/1880 2819/3813/1881 2789/3814/1877 f 2866/3793/1868 2781/3795/1870 2791/3815/1882 f 2790/3816/1879 2799/3817/1878 2785/3818/1883 f 2759/3762/1840 2758/3764/1842 2842/3819/1876 f 2844/3766/1844 2842/3819/1876 2758/3764/1842 f 2803/3759/1837 2753/3775/1851 2771/3774/1850 f 2854/3820/1884 2809/3821/1885 2821/3822/1886 f 2799/3810/1878 2789/3809/1877 2819/3823/1881 f 2804/3824/1887 2833/3825/1888 2769/3770/1848 f 2807/3826/1889 2808/3827/1890 2834/3828/1891 f 2804/3824/1887 2809/3829/1885 2810/3830/1892 f 2846/3831/1893 2837/3832/1894 2845/3833/1895 f 2763/3765/1843 2786/3834/1896 2844/3766/1844 f 2863/3835/1897 2790/3811/1879 2873/3836/1898 f 2817/3837/1899 2873/3838/1898 2790/3816/1879 f 2840/3839/1900 2824/3840/1901 2844/3841/1844 f 2790/3811/1879 2863/3835/1897 2789/3809/1877 f 2873/3838/1898 2817/3837/1899 2864/3842/1902 f 2863/3835/1897 2762/3801/1874 2858/3843/1845 f 2850/3844/1903 2814/3845/1904 2847/3846/1905 f 2875/3781/1856 2775/3782/1857 2813/3847/1906 f 2750/3780/1855 2775/3782/1857 2875/3781/1856 f 2786/3834/1896 2864/3848/1902 2817/3849/1899 f 2873/3838/1898 2760/3850/1839 2762/3806/1874 f 2845/3833/1895 2837/3832/1894 2836/3851/1907 f 2854/3820/1884 2821/3822/1886 2816/3852/1908 f 2844/3841/1844 2824/3840/1901 2794/3853/1866 f 2770/3854/1849 2801/3855/1909 2849/3856/1910 f 2840/3839/1900 2780/3857/1869 2838/3858/1911 f 2752/3859/1852 2772/3860/1853 2771/3861/1850 f 2805/3862/1912 2820/3863/1913 2836/3851/1907 f 2868/3864/1914 2841/3865/1915 2829/3785/1860 f 2752/3776/1852 2796/3866/1916 2773/3867/1854 f 2843/3868/1917 2832/3869/1918 2826/3870/1919 f 2769/3871/1848 2809/3821/1885 2804/3872/1887 f 2859/3873/1920 2801/3874/1909 2857/3875/1921 f 2801/3855/1909 2859/3876/1920 2849/3856/1910 f 2864/3848/1902 2786/3834/1896 2763/3765/1843 f 2760/3761/1839 2864/3848/1902 2763/3765/1843 f 2798/3877/1922 2831/3799/1873 2851/3878/1923 f 2812/3879/1924 2771/3774/1850 2823/3880/1925 f 2784/3881/1862 2838/3882/1911 2756/3883/1864 f 2838/3884/1911 2784/3787/1862 2824/3885/1901 f 2798/3877/1922 2768/3886/1926 2777/3887/1927 f 2856/3888/1928 2818/3889/1929 2859/3876/1920 f 2813/3847/1906 2775/3782/1857 2860/3890/1930 f 2795/3891/1931 2822/3892/1932 2779/3893/1933 f 2807/3826/1889 2877/3894/1934 2825/3895/1935 f 2824/3840/1901 2840/3839/1900 2838/3858/1911 f 2832/3869/1918 2843/3868/1917 2782/3896/1872 f 2854/3820/1884 2869/3897/1936 2855/3898/1937 f 2837/3899/1894 2834/3900/1891 2835/3901/1938 f 2803/3902/1837 2771/3903/1850 2802/3904/1939 f 2840/3905/1900 2781/3906/1870 2780/3907/1869 f 2827/3908/1940 2862/3909/1941 2855/3910/1937 f 2751/3911/1858 2824/3885/1901 2757/3786/1861 f 2794/3853/1866 2842/3912/1876 2844/3841/1844 f 2828/3913/1942 2852/3914/1943 2755/3758/1836 f 2851/3878/1923 2773/3800/1854 2796/3915/1916 f 2807/3916/1889 2834/3900/1891 2846/3917/1893 f 2770/3918/1849 2821/3822/1886 2809/3821/1885 f 2870/3919/1944 2826/3920/1919 2862/3909/1941 f 2774/3921/1871 2782/3896/1872 2843/3868/1917 f 2812/3922/1924 2816/3852/1908 2802/3904/1939 f 2770/3773/1849 2875/3781/1856 2801/3923/1909 f 2823/3924/1925 2826/3870/1919 2870/3925/1944 f 2831/3799/1873 2773/3800/1854 2851/3878/1923 f 2836/3851/1907 2820/3863/1913 2845/3833/1895 f 2783/3926/1833 2749/3927/1835 2782/3896/1872 f 2831/3799/1873 2777/3887/1927 2783/3797/1833 f 2851/3878/1923 2796/3915/1916 2779/3928/1933 f 2803/3929/1837 2839/3930/1945 2800/3931/1946 f 2826/3920/1919 2832/3932/1918 2862/3909/1941 f 2793/3933/1875 2814/3845/1904 2865/3934/1947 f 2851/3878/1923 2779/3928/1933 2822/3935/1932 f 2773/3800/1854 2774/3796/1871 2772/3936/1853 f 2854/3820/1884 2810/3937/1892 2809/3821/1885 f 2856/3888/1928 2803/3929/1837 2818/3889/1929 f 2825/3895/1935 2808/3827/1890 2807/3826/1889 f 2798/3877/1922 2766/3938/1948 2768/3886/1926 f 2830/3939/1949 2800/3940/1946 2876/3941/1950 f 2789/3814/1877 2767/3942/1951 2787/3943/1952 f 2808/3944/1890 2857/3945/1921 2834/3900/1891 f 2778/3946/1867 2824/3885/1901 2751/3911/1858 f 2827/3908/1940 2855/3910/1937 2869/3947/1936 f 2791/3948/1882 2785/3949/1883 2874/3950/1953 f 2851/3878/1923 2822/3935/1932 2872/3951/1954 f 2751/3783/1858 2750/3780/1855 2847/3846/1905 f 2765/3952/1955 2768/3886/1926 2766/3938/1948 f 2849/3953/1910 2859/3954/1920 2815/3955/1956 f 2862/3909/1941 2827/3908/1940 2870/3919/1944 f 2761/3804/1841 2762/3806/1874 2760/3850/1839 f 2785/3818/1883 2817/3837/1899 2790/3816/1879 f 2774/3796/1871 2831/3799/1873 2783/3797/1833 f 2840/3905/1900 2844/3766/1844 2786/3834/1896 f 2858/3843/1845 2762/3801/1874 2764/3803/1846 f 2835/3901/1938 2834/3900/1891 2813/3956/1906 f 2872/3951/1954 2822/3935/1932 2787/3957/1952 f 2800/3940/1946 2776/3788/1863 2754/3760/1838 f 2793/3933/1875 2761/3958/1841 2814/3845/1904 f 2797/3790/1865 2814/3845/1904 2761/3958/1841 f 2834/3900/1891 2837/3899/1894 2846/3917/1893 f 2752/3776/1852 2753/3775/1851 2852/3914/1943 f 2761/3958/1841 2759/3807/1840 2794/3791/1866 f 2793/3933/1875 2865/3934/1947 2764/3959/1846 f 2829/3785/1860 2830/3960/1949 2868/3864/1914 f 2849/3953/1910 2815/3955/1956 2770/3918/1849 f 2814/3845/1904 2768/3961/1926 2765/3962/1955 f 2852/3914/1943 2779/3893/1933 2796/3866/1916 f 2760/3850/1839 2873/3838/1898 2864/3842/1902 f 2811/3963/1957 2877/3964/1934 2845/3965/1895 f 2783/3797/1833 2777/3887/1927 2748/3966/1834 f 2839/3967/1945 2825/3968/1935 2800/3940/1946 f 2795/3891/1931 2867/3969/1958 2848/3970/1959 f 2787/3943/1952 2822/3971/1932 2795/3972/1931 f 2803/3759/1837 2755/3758/1836 2753/3775/1851 f 2781/3906/1870 2840/3905/1900 2791/3948/1882 f 2786/3834/1896 2791/3948/1882 2840/3905/1900 f 2828/3913/1942 2756/3789/1864 2780/3794/1869 f 2780/3794/1869 2866/3793/1868 2828/3913/1942 f 2806/3973/1960 2866/3793/1868 2791/3815/1882 f 2858/3843/1845 2767/3974/1951 2863/3835/1897 f 2802/3904/1939 2816/3852/1908 2815/3955/1956 f 2757/3786/1861 2824/3885/1901 2784/3787/1862 f 2860/3975/1930 2775/3976/1857 2861/3977/1859 f 2835/3978/1938 2836/3851/1907 2837/3832/1894 f 2872/3979/1954 2767/3942/1951 2766/3980/1948 f 2813/3956/1906 2834/3900/1891 2857/3945/1921 f 2766/3938/1948 2798/3877/1922 2872/3951/1954 f 2820/3863/1913 2871/3981/1961 2811/3982/1957 f 2759/3762/1840 2760/3761/1839 2758/3764/1842 f 2848/3970/1959 2788/3983/1880 2795/3891/1931 f 2788/3983/1880 2848/3970/1959 2819/3984/1881 f 2818/3985/1929 2803/3902/1837 2802/3904/1939 f 2838/3858/1911 2780/3857/1869 2756/3986/1864 f 2767/3942/1951 2789/3814/1877 2863/3987/1897 f 2754/3760/1838 2803/3759/1837 2800/3940/1946 f 2816/3852/1908 2869/3897/1936 2854/3820/1884 f 2778/3988/1867 2794/3853/1866 2824/3840/1901 f 2786/3834/1896 2817/3849/1899 2785/3949/1883 f 2843/3868/1917 2772/3989/1853 2774/3921/1871 f 2776/3788/1863 2800/3940/1946 2830/3939/1949 f 2757/3786/1861 2829/3785/1860 2841/3865/1915 f 2831/3799/1873 2798/3877/1922 2777/3887/1927 f 2832/3869/1918 2782/3896/1872 2749/3927/1835 f 2750/3780/1855 2748/3772/1834 2850/3990/1903 f 2789/3814/1877 2787/3943/1952 2788/3812/1880 f 2766/3980/1948 2858/3767/1845 2792/3769/1847 f 2792/3769/1847 2765/3991/1955 2766/3980/1948 f 2876/3941/1950 2800/3940/1946 2877/3964/1934 f 2767/3942/1951 2858/3767/1845 2766/3980/1948 f 2802/3904/1939 2815/3955/1956 2818/3985/1929 f 2765/3962/1955 2865/3934/1947 2814/3845/1904 f 2867/3969/1958 2806/3973/1960 2848/3970/1959 f 2787/3943/1952 2795/3972/1931 2788/3812/1880 f 2854/3820/1884 2855/3898/1937 2810/3937/1892 f 2794/3791/1866 2797/3790/1865 2761/3958/1841 f 2847/3846/1905 2797/3790/1865 2778/3792/1867 f 2826/3870/1919 2823/3924/1925 2843/3868/1917 f 2825/3992/1935 2839/3930/1945 2856/3888/1928 f 2814/3845/1904 2850/3844/1903 2768/3961/1926 f 2799/3993/1878 2874/3994/1953 2785/3995/1883 f 2850/3990/1903 2748/3772/1834 2777/3996/1927 f 2841/3997/1915 2868/3998/1914 2805/3862/1912 f 2805/3862/1912 2861/3977/1859 2841/3997/1915 f 2853/3999/1962 2869/3897/1936 2812/3922/1924 f 2821/3822/1886 2770/3918/1849 2815/3955/1956 f 2846/3917/1893 2877/4000/1934 2807/3916/1889 f 2868/3998/1914 2871/3981/1961 2805/3862/1912 f 2862/3909/1941 2878/4001/1963 2855/3910/1937 f 2827/4002/1940 2869/3897/1936 2853/3999/1962 f 2850/4003/1903 2777/4004/1927 2768/4005/1926 f 2847/3846/1905 2814/3845/1904 2797/3790/1865 f 2819/3984/1881 2806/3973/1960 2799/3993/1878 f 2861/3977/1859 2805/3862/1912 2860/3975/1930 f 2808/3944/1890 2856/3888/1928 2859/3876/1920 f 2859/3873/1920 2857/3875/1921 2808/4006/1890 f 2877/3964/1934 2811/3963/1957 2876/3941/1950 f 2830/4007/1949 2811/3982/1957 2871/3981/1961 f 2796/3866/1916 2752/3776/1852 2852/3914/1943 f 2765/3962/1955 2792/4008/1847 2865/3934/1947 f 2853/4009/1962 2823/3880/1925 2870/4010/1944 f 2828/3913/1942 2866/3793/1868 2852/3914/1943 f 2770/3918/1849 2809/3821/1885 2769/3871/1848 f 2823/3880/1925 2853/4009/1962 2812/3879/1924 f 2878/4001/1963 2862/3909/1941 2832/3932/1918 f 2878/4011/1963 2833/3825/1888 2804/3824/1887 f 2871/3981/1961 2820/3863/1913 2805/3862/1912 f 2830/3960/1949 2829/3785/1860 2776/4012/1863 f 2836/3851/1907 2860/3975/1930 2805/3862/1912 f 2825/3895/1935 2877/3894/1934 2800/4013/1946 f 2878/4011/1963 2804/3824/1887 2810/3830/1892 f 2810/3830/1892 2855/4014/1937 2878/4011/1963 f 2785/3949/1883 2791/3948/1882 2786/3834/1896 f 2867/3969/1958 2795/3891/1931 2779/3893/1933 f 2811/3982/1957 2845/3833/1895 2820/3863/1913 f 2828/3913/1942 2755/3758/1836 2756/3789/1864 f 2754/3760/1838 2756/3789/1864 2755/3758/1836 f 2823/4015/1925 2771/4016/1850 2772/4017/1853 f 2830/3960/1949 2871/4018/1961 2868/3864/1914 f 2833/3825/1888 2749/3771/1835 2769/3770/1848 f 2818/3985/1929 2815/3955/1956 2859/3954/1920 f 2861/4019/1859 2751/3911/1858 2757/3786/1861 f 2757/3786/1861 2841/3865/1915 2861/4019/1859 f 2764/3959/1846 2865/3934/1947 2792/4008/1847 f 2877/4000/1934 2846/3917/1893 2845/4020/1895 f 2762/3801/1874 2863/3835/1897 2873/3836/1898 f 2799/3993/1878 2806/3973/1960 2874/3994/1953 f 2872/3951/1954 2798/3877/1922 2851/3878/1923 f 2852/3914/1943 2753/3775/1851 2755/3758/1836 f 2876/4021/1950 2811/3982/1957 2830/4007/1949 f 2803/3929/1837 2856/3888/1928 2839/3930/1945 f 2784/3787/1862 2776/4012/1863 2829/3785/1860 f 2772/3989/1853 2843/3868/1917 2823/3924/1925 f 2857/3945/1921 2801/3855/1909 2813/3956/1906 f 2835/3978/1938 2860/3975/1930 2836/3851/1907 f 2758/3764/1842 2760/3761/1839 2763/3765/1843 f 2850/3990/1903 2847/3846/1905 2750/3780/1855 f 2847/3846/1905 2778/3792/1867 2751/3783/1858 f 2833/4022/1888 2878/4001/1963 2832/3932/1918 f 2874/3994/1953 2806/3973/1960 2791/3815/1882 f 2867/3969/1958 2852/3914/1943 2866/3793/1868 f 2806/3973/1960 2819/3984/1881 2848/3970/1959 f 2806/3973/1960 2867/3969/1958 2866/3793/1868 f 2748/3772/1834 2750/3780/1855 2770/3773/1849 f 2856/4023/1928 2808/4024/1890 2825/4025/1935 f 2771/3774/1850 2812/3879/1924 2802/4026/1939 f 2869/3897/1936 2816/3852/1908 2812/3922/1924 f 2776/4012/1863 2784/3787/1862 2756/4027/1864 f 2813/3847/1906 2801/4028/1909 2875/3781/1856 f 2749/3927/1835 2833/4029/1888 2832/3869/1918 f 2821/3822/1886 2815/3955/1956 2816/3852/1908 f 2779/3893/1933 2852/3914/1943 2867/3969/1958 f 2860/3890/1930 2835/4030/1938 2813/3847/1906 f 2787/3943/1952 2767/3942/1951 2872/3979/1954 f 2870/4010/1944 2827/4031/1940 2853/4009/1962 f 2971/4032/1964 2879/4033/1965 2911/4034/1966 f 2888/4035/1967 2887/4036/1968 2951/4037/1969 f 2885/4038/1970 2890/4039/1971 2975/4040/1972 f 2894/4041/1973 2892/4042/1974 2897/4043/1975 f 2893/4044/1976 2896/4045/1977 2895/4046/1978 f 2970/4047/1979 2899/4048/1980 2902/4049/1981 f 2937/4050/1982 2902/4051/1981 2912/4052/1983 f 2887/4036/1968 2904/4053/1984 2951/4037/1969 f 2999/4054/1985 2906/4055/1986 2907/4056/1987 f 2909/4057/1988 2883/4058/1989 2884/4059/1990 f 2972/4060/1991 2889/4061/1992 2888/4062/1967 f 2992/4063/1993 2934/4064/1994 2914/4065/1995 f 2917/4066/1996 2984/4067/1997 2913/4068/1998 f 2921/4069/1999 2920/4070/2000 2927/4071/2001 f 2922/4072/2002 2920/4070/2000 2921/4069/1999 f 2896/4045/1977 2923/4073/2003 2895/4046/1978 f 2926/4074/2004 2960/4075/2005 2925/4076/2006 f 2934/4064/1994 2955/4077/2007 2914/4065/1995 f 2928/4078/2008 2907/4056/1987 2918/4079/2009 f 2929/4080/2010 2918/4079/2009 2879/4081/1965 f 2931/4082/2011 2930/4083/2012 2922/4084/2002 f 2930/4083/2012 2923/4073/2003 2922/4084/2002 f 2916/4085/2013 2930/4083/2012 2931/4082/2011 f 2886/4086/2014 2906/4087/1986 2887/4088/1968 f 2986/4089/2015 2886/4086/2014 2935/4090/2016 f 2932/4091/2017 2912/4052/1983 2911/4034/1966 f 2985/4092/2018 2891/4093/2019 2933/4094/2020 f 2893/4044/1976 2933/4095/2020 2891/4096/2019 f 2986/4089/2015 2935/4097/2016 2914/4098/1995 f 2915/4099/2021 2988/4100/2022 2916/4085/2013 f 2984/4101/1997 2917/4102/1996 3013/4103/2023 f 2885/4104/1970 2884/4059/1990 3013/4105/2023 f 2938/4106/2024 2932/4091/2017 2947/4107/2025 f 2902/4051/1981 2937/4050/1982 2970/4108/1979 f 2940/4109/2026 2881/4110/2027 2903/4111/2028 f 2907/4056/1987 2928/4078/2008 2999/4054/1985 f 2999/4054/1985 2929/4080/2010 3008/4112/2029 f 2986/4089/2015 2947/4107/2025 3004/4113/2030 f 3009/4114/2031 2995/4115/2032 2952/4116/2033 f 2997/4117/2034 2952/4118/2033 2995/4119/2032 f 2966/4120/2035 2949/4121/2036 2948/4122/2037 f 2995/4115/2032 3009/4114/2031 2960/4123/2005 f 2995/4119/2032 2920/4070/2000 2997/4117/2034 f 2959/4124/2038 2989/4125/2039 2990/4126/2040 f 2998/4127/2041 2915/4128/2021 3010/4129/2042 f 2899/4048/1980 2900/4130/2043 2901/4131/2044 f 3009/4114/2031 2894/4132/1973 2969/4133/2045 f 2989/4134/2039 2977/4135/2046 2942/4136/2047 f 3008/4112/2029 2929/4080/2010 2958/4137/2048 f 3003/4138/2049 2962/4139/2050 2983/4140/2051 f 2894/4132/1973 3009/4114/2031 2952/4116/2033 f 2909/4057/1988 2953/4141/2052 2908/4142/2053 f 2981/4143/2054 2989/4125/2039 2959/4124/2038 f 2957/4144/2055 2903/4145/2028 2961/4146/2056 f 3004/4113/2030 2906/4087/1986 2986/4089/2015 f 2927/4147/2001 3001/4148/2057 2921/4149/1999 f 2979/4150/2058 3008/4112/2029 2958/4137/2048 f 2906/4087/1986 3004/4113/2030 2907/4151/1987 f 2990/4126/2040 2989/4125/2039 2939/4152/2059 f 2904/4053/1984 2887/4036/1968 2905/4153/2060 f 3006/4154/2061 2975/4040/1972 2919/4155/2062 f 2912/4052/1983 2932/4091/2017 2937/4050/1982 f 2901/4131/2044 2960/4075/2005 3009/4156/2031 f 2950/4157/2063 2997/4158/2034 2896/4045/1977 f 2982/4159/2064 2957/4144/2055 2973/4160/2065 f 2947/4107/2025 2955/4161/2007 2938/4106/2024 f 3003/4138/2049 2983/4140/2051 2996/4162/2066 f 2886/4086/2014 2986/4089/2015 2906/4087/1986 f 2988/4100/2022 2890/4163/1971 2991/4164/2067 f 2904/4053/1984 2905/4153/2060 2941/4165/2068 f 2987/4166/2069 3000/4167/2070 2979/4168/2058 f 2976/4169/2071 2945/4170/2072 2910/4171/2073 f 2994/4172/2074 2944/4173/2075 2936/4174/2076 f 2940/4109/2026 2978/4175/2077 2880/4176/2078 f 2977/4177/2046 2951/4178/1969 2974/4179/2079 f 2991/4164/2067 2966/4120/2035 2988/4100/2022 f 2929/4080/2010 2999/4054/1985 2928/4078/2008 f 2957/4144/2055 3000/4180/2070 2943/4181/2080 f 2939/4182/2059 2942/4136/2047 2882/4183/2081 f 2966/4120/2035 2991/4164/2067 2949/4121/2036 f 3004/4113/2030 2932/4091/2017 2911/4034/1966 f 3003/4138/2049 2946/4184/2082 2975/4040/1972 f 2944/4173/2075 2971/4185/1964 2912/4186/1983 f 2895/4046/1978 2930/4083/2012 2948/4187/2037 f 2893/4044/1976 2895/4046/1978 2948/4187/2037 f 2997/4117/2034 2923/4188/2003 2896/4189/1977 f 2941/4190/2068 2968/4191/2083 2904/4192/1984 f 2938/4106/2024 2955/4161/2007 2954/4193/2084 f 2968/4191/2083 2982/4159/2064 2973/4160/2065 f 2962/4139/2050 2910/4194/2073 2945/4195/2072 f 2942/4196/2047 2974/4179/2079 2961/4146/2056 f 2888/4062/1967 2910/4197/2073 2972/4060/1991 f 2911/4034/1966 2918/4198/2009 3004/4113/2030 f 2890/4163/1971 2988/4100/2022 2919/4199/2062 f 2947/4107/2025 2986/4089/2015 2914/4098/1995 f 2982/4200/2064 2941/4165/2068 2979/4201/2058 f 2932/4091/2017 3004/4113/2030 2947/4107/2025 f 2975/4040/1972 2962/4139/2050 3003/4138/2049 f 2950/4202/2063 2891/4203/2019 2892/4042/1974 f 2990/4204/2040 2963/4205/2085 2959/4206/2038 f 2950/4202/2063 2952/4118/2033 2997/4117/2034 f 2889/4061/1992 2972/4207/1991 2919/4199/2062 f 2920/4070/2000 2995/4119/2032 2927/4071/2001 f 2960/4123/2005 2927/4208/2001 2995/4115/2032 f 2884/4059/1990 2883/4058/1989 3013/4105/2023 f 2947/4107/2025 2914/4098/1995 2955/4161/2007 f 2983/4140/2051 2962/4139/2050 2945/4195/2072 f 2959/4124/2038 2976/4209/2071 2981/4143/2054 f 2892/4042/1974 2967/4210/2086 2897/4043/1975 f 3011/4211/2087 2897/4212/1975 2967/4213/2086 f 2913/4214/1998 2893/4215/1976 2956/4216/2088 f 2960/4075/2005 2900/4130/2043 2924/4217/2089 f 2980/4218/2090 2992/4063/1993 2915/4128/2021 f 2956/4219/2088 2948/4122/2037 2949/4121/2036 f 2944/4173/2075 2967/4213/2086 2936/4174/2076 f 2881/4110/2027 2882/4220/2081 2903/4111/2028 f 2890/4039/1971 2919/4155/2062 2975/4040/1972 f 2920/4221/2000 2922/4084/2002 2923/4073/2003 f 2888/4035/1967 2998/4127/2041 3010/4129/2042 f 3013/4103/2023 2991/4164/2067 2890/4163/1971 f 2940/4109/2026 2880/4176/2078 2881/4110/2027 f 2900/4130/2043 2954/4222/2084 2924/4217/2089 f 2948/4223/2037 2956/4216/2088 2893/4215/1976 f 2927/4208/2001 2926/4224/2004 3007/4225/2091 f 2919/4199/2062 2988/4100/2022 2889/4061/1992 f 2927/4208/2001 2960/4123/2005 2926/4224/2004 f 2964/4226/2092 3003/4138/2049 3002/4227/2093 f 2996/4162/2066 3002/4227/2093 3003/4138/2049 f 2888/4062/1967 2889/4061/1992 2998/4228/2041 f 2967/4210/2086 2892/4042/1974 2985/4229/2018 f 3002/4227/2093 2963/4230/2085 2964/4226/2092 f 2900/4130/2043 2960/4075/2005 2901/4131/2044 f 2996/4231/2066 2945/4232/2072 2959/4206/2038 f 2959/4206/2038 3002/4233/2093 2996/4231/2066 f 2942/4136/2047 2939/4182/2059 2989/4134/2039 f 3000/4180/2070 2957/4144/2055 2982/4159/2064 f 2930/4083/2012 2895/4046/1978 2923/4073/2003 f 2951/4178/1969 2973/4160/2065 2974/4179/2079 f 3000/4167/2070 2987/4166/2069 2943/4234/2080 f 3010/4129/2042 2915/4128/2021 3005/4235/2094 f 2963/4205/2085 3002/4233/2093 2959/4206/2038 f 2941/4165/2068 3014/4236/2095 3008/4237/2029 f 2937/4050/1982 2932/4091/2017 2938/4106/2024 f 2891/4096/2019 2950/4157/2063 2893/4044/1976 f 3013/4103/2023 2917/4102/1996 2991/4164/2067 f 2879/4081/1965 2880/4238/2078 2929/4080/2010 f 2978/4239/2077 2958/4137/2048 2929/4080/2010 f 2898/4240/2096 2897/4241/1975 3011/4242/2087 f 2899/4048/1980 2970/4047/1979 2900/4130/2043 f 2964/4243/2092 2963/4244/2085 2953/4141/2052 f 2931/4245/2011 3001/4148/2057 2980/4218/2090 f 2956/4219/2088 2917/4102/1996 2913/4246/1998 f 2966/4120/2035 2916/4085/2013 2988/4100/2022 f 2918/4198/2009 2911/4034/1966 2879/4033/1965 f 2976/4169/2071 2910/4171/2073 2965/4247/2097 f 2934/4064/1994 2992/4063/1993 2993/4248/2098 f 2914/4249/1995 2935/4250/2016 3005/4251/2094 f 3012/4252/2099 2994/4172/2074 2936/4174/2076 f 2969/4253/2045 2901/4254/2044 3009/4255/2031 f 2945/4170/2072 2976/4169/2071 2959/4256/2038 f 2890/4163/1971 2885/4257/1970 3013/4103/2023 f 2969/4133/2045 2894/4132/1973 2897/4241/1975 f 2967/4213/2086 2944/4173/2075 2902/4258/1981 f 2971/4259/1964 2911/4260/1966 2912/4261/1983 f 2938/4262/2024 2970/4047/1979 2937/4263/1982 f 2915/4099/2021 2889/4061/1992 2988/4100/2022 f 2990/4204/2040 2908/4264/2053 2953/4265/2052 f 2898/4266/2096 2899/4048/1980 2969/4267/2045 f 2973/4160/2065 2957/4144/2055 2961/4146/2056 f 2940/4109/2026 2943/4268/2080 2978/4175/2077 f 2940/4269/2026 2957/4144/2055 2943/4181/2080 f 2917/4102/1996 2949/4121/2036 2991/4164/2067 f 2917/4102/1996 2956/4219/2088 2949/4121/2036 f 2897/4241/1975 2898/4240/2096 2969/4133/2045 f 2888/4035/1967 2951/4037/1969 2965/4247/2097 f 2955/4270/2007 2934/4271/1994 2954/4222/2084 f 2946/4184/2082 2884/4272/1990 2885/4038/1970 f 2902/4258/1981 3011/4211/2087 2967/4213/2086 f 2960/4075/2005 2924/4217/2089 2925/4076/2006 f 2901/4131/2044 2969/4267/2045 2899/4048/1980 f 2998/4228/2041 2889/4061/1992 2915/4099/2021 f 2924/4217/2089 2954/4222/2084 2925/4076/2006 f 2978/4273/2077 2929/4274/2010 2880/4275/2078 f 2918/4079/2009 2929/4080/2010 2928/4078/2008 f 2923/4188/2003 2997/4117/2034 2920/4070/2000 f 2885/4038/1970 2975/4040/1972 2946/4184/2082 f 2904/4192/1984 2973/4160/2065 2951/4178/1969 f 2893/4215/1976 2913/4214/1998 2933/4276/2020 f 3006/4154/2061 2919/4155/2062 2972/4277/1991 f 2933/4094/2020 2913/4278/1998 2985/4092/2018 f 2952/4118/2033 2950/4202/2063 2894/4041/1973 f 2908/4142/2053 2882/4220/2081 2909/4057/1988 f 3006/4154/2061 2962/4139/2050 2975/4040/1972 f 2973/4160/2065 2961/4146/2056 2974/4179/2079 f 2987/4166/2069 2978/4279/2077 2943/4234/2080 f 2903/4145/2028 2957/4144/2055 2940/4269/2026 f 3001/4148/2057 2927/4147/2001 2980/4218/2090 f 3007/4280/2091 2980/4218/2090 2927/4147/2001 f 3008/4237/2029 2979/4201/2058 2941/4165/2068 f 3014/4281/2095 2999/4054/1985 3008/4112/2029 f 2974/4179/2079 2942/4196/2047 2977/4177/2046 f 2984/4282/1997 3012/4252/2099 2936/4174/2076 f 3012/4252/2099 2971/4185/1964 2994/4283/2074 f 2887/4036/1968 2935/4284/2016 2886/4285/2014 f 2946/4286/2082 2909/4057/1988 2884/4059/1990 f 2979/4168/2058 2958/4287/2048 2987/4166/2069 f 2910/4194/2073 2962/4139/2050 2972/4277/1991 f 2967/4213/2086 2985/4092/2018 2936/4174/2076 f 2921/4288/1999 2931/4082/2011 2922/4084/2002 f 3010/4129/2042 3005/4235/2094 2935/4284/2016 f 3012/4252/2099 2984/4282/1997 3013/4105/2023 f 2980/4218/2090 2916/4289/2013 2931/4245/2011 f 2939/4182/2059 2882/4183/2081 2908/4290/2053 f 2891/4093/2019 2985/4092/2018 2892/4291/1974 f 2945/4195/2072 2996/4162/2066 2983/4140/2051 f 2930/4292/2012 2916/4293/2013 2966/4294/2035 f 2966/4294/2035 2948/4223/2037 2930/4292/2012 f 2925/4295/2006 3007/4280/2091 2926/4296/2004 f 2941/4165/2068 2905/4153/2060 3014/4236/2095 f 2946/4184/2082 3003/4138/2049 2964/4226/2092 f 3012/4252/2099 2879/4297/1965 2971/4185/1964 f 3010/4129/2042 2935/4284/2016 2887/4036/1968 f 2953/4265/2052 2963/4205/2085 2990/4204/2040 f 2965/4298/2097 2981/4143/2054 2976/4209/2071 f 2916/4289/2013 2980/4218/2090 2915/4128/2021 f 2882/4299/2081 2961/4146/2056 2903/4145/2028 f 2951/4300/1969 2981/4301/2054 2965/4302/2097 f 2898/4266/2096 2902/4303/1981 2899/4048/1980 f 2882/4220/2081 2883/4058/1989 2909/4057/1988 f 2908/4304/2053 2990/4126/2040 2939/4152/2059 f 2978/4279/2077 2987/4166/2069 2958/4287/2048 f 2907/4151/1987 3004/4113/2030 2918/4198/2009 f 2950/4202/2063 2892/4042/1974 2894/4041/1973 f 2881/4110/2027 3012/4252/2099 2882/4220/2081 f 2883/4058/1989 2882/4220/2081 3012/4252/2099 f 2989/4134/2039 2981/4301/2054 2977/4135/2046 f 2915/4128/2021 2992/4063/1993 3005/4235/2094 f 2944/4173/2075 2912/4186/1983 2902/4258/1981 f 2931/4245/2011 2921/4149/1999 3001/4148/2057 f 2909/4057/1988 2946/4286/2082 2964/4243/2092 f 2896/4045/1977 2893/4044/1976 2950/4157/2063 f 2968/4191/2083 2973/4160/2065 2904/4192/1984 f 2882/4299/2081 2942/4196/2047 2961/4146/2056 f 2980/4218/2090 3007/4280/2091 2993/4248/2098 f 2965/4305/2097 2910/4306/2073 2888/4307/1967 f 2887/4036/1968 2888/4035/1967 3010/4129/2042 f 2900/4130/2043 2938/4262/2024 2954/4222/2084 f 2902/4258/1981 2898/4308/2096 3011/4211/2087 f 2993/4248/2098 2992/4063/1993 2980/4218/2090 f 2881/4110/2027 2880/4176/2078 2879/4297/1965 f 2879/4297/1965 3012/4252/2099 2881/4110/2027 f 2981/4301/2054 2951/4300/1969 2977/4135/2046 f 2971/4185/1964 2944/4173/2075 2994/4309/2074 f 2913/4278/1998 2936/4174/2076 2985/4092/2018 f 2970/4047/1979 2938/4262/2024 2900/4130/2043 f 2982/4159/2064 2968/4191/2083 2941/4310/2068 f 2906/4055/1986 2999/4054/1985 3014/4281/2095 f 3014/4281/2095 2887/4311/1968 2906/4055/1986 f 2964/4243/2092 2953/4141/2052 2909/4057/1988 f 2972/4277/1991 2962/4139/2050 3006/4154/2061 f 2936/4174/2076 2913/4278/1998 2984/4282/1997 f 3013/4105/2023 2883/4058/1989 3012/4252/2099 f 2979/4168/2058 3000/4167/2070 2982/4312/2064 f 2914/4065/1995 3005/4235/2094 2992/4063/1993 f 2954/4313/2084 2934/4064/1994 2925/4295/2006 f 2993/4248/2098 2925/4295/2006 2934/4064/1994 f 3014/4281/2095 2905/4314/2060 2887/4311/1968 f 2925/4295/2006 2993/4248/2098 3007/4280/2091 usemtl _teeth_maxwire_087224198 f 1012/4315/2100 1014/4316/2101 1013/4317/2102 f 1017/4318/2103 1018/4319/2104 1016/4320/2105 f 1016/4320/2105 1021/4321/2106 1017/4318/2103 f 1021/4321/2106 1016/4320/2105 1022/4322/2107 f 1030/4323/2108 1031/4324/2109 1062/4325/2110 f 1018/4326/2104 1020/4327/2111 1053/4328/2112 f 1019/4329/2113 1017/4318/2103 1064/4330/2114 f 1034/4331/2115 1036/4332/2116 1051/4333/2117 f 1035/4334/2118 1020/4327/2111 1067/4335/2119 f 1051/4333/2117 1036/4332/2116 1015/4336/2120 f 1035/4334/2118 1053/4328/2112 1020/4327/2111 f 1015/4337/2120 1013/4317/2102 1014/4338/2101 f 1058/4339/2121 1057/4340/2122 1015/4337/2120 f 1033/4341/2123 1049/4342/2124 1034/4331/2115 f 1067/4335/2119 1055/4343/2125 1056/4344/2126 f 1068/4345/2127 1056/4344/2126 1055/4343/2125 f 1055/4343/2125 1063/4346/2128 1068/4345/2127 f 1056/4344/2126 1066/4347/2129 1067/4335/2119 f 1066/4347/2129 1042/4348/2130 1067/4335/2119 f 1027/4349/2131 1060/4350/2132 1037/4351/2133 f 1046/4352/2134 1049/4353/2124 1047/4354/2135 f 1042/4348/2130 1032/4355/2136 1043/4356/2137 f 1042/4348/2130 1066/4347/2129 1032/4355/2136 f 1012/4315/2100 1013/4317/2102 1023/4357/2138 f 1015/4337/2120 1057/4340/2122 1013/4317/2102 f 1067/4335/2119 1020/4327/2111 1055/4343/2125 f 1055/4343/2125 1020/4327/2111 1018/4326/2104 f 1016/4358/2105 1053/4359/2112 1014/4360/2101 f 1039/4361/2139 1059/4362/2140 1045/4363/2141 f 1026/4364/2142 1024/4365/2143 1057/4340/2122 f 1045/4366/2141 1061/4367/2144 1040/4368/2145 f 1064/4330/2114 1021/4321/2106 1012/4369/2100 f 1033/4341/2123 1034/4331/2115 1052/4370/2146 f 1050/4371/2147 1025/4372/2148 1024/4365/2143 f 1059/4373/2140 1039/4374/2139 1026/4364/2142 f 1026/4364/2142 1058/4339/2121 1059/4373/2140 f 1066/4375/2129 1056/4376/2126 1027/4349/2131 f 1028/4377/2149 1068/4378/2127 1019/4379/2113 f 1063/4346/2128 1055/4343/2125 1018/4326/2104 f 1060/4380/2132 1050/4371/2147 1024/4365/2143 f 1025/4372/2148 1054/4381/2150 1023/4357/2138 f 1012/4315/2100 1023/4357/2138 1054/4381/2150 f 1014/4360/2101 1022/4382/2107 1016/4358/2105 f 1040/4383/2145 1030/4384/2108 1029/4385/2151 f 1062/4325/2110 1029/4386/2151 1030/4323/2108 f 1041/4387/2152 1028/4377/2149 1050/4388/2147 f 1021/4321/2106 1064/4330/2114 1017/4318/2103 f 1028/4377/2149 1019/4379/2113 1025/4389/2148 f 1066/4375/2129 1044/4390/2153 1032/4391/2136 f 1041/4387/2152 1060/4350/2132 1027/4349/2131 f 1037/4392/2133 1060/4393/2132 1065/4394/2154 f 1047/4395/2135 1061/4367/2144 1046/4396/2134 f 1061/4367/2144 1045/4366/2141 1046/4396/2134 f 1030/4397/2108 1040/4368/2145 1061/4367/2144 f 1053/4359/2112 1016/4358/2105 1018/4398/2104 f 1033/4341/2123 1052/4370/2146 1035/4399/2118 f 1054/4381/2150 1064/4400/2114 1012/4315/2100 f 1031/4324/2109 1047/4354/2135 1049/4353/2124 f 1066/4375/2129 1027/4349/2131 1037/4351/2133 f 1014/4360/2101 1051/4333/2117 1015/4336/2120 f 1035/4334/2118 1067/4335/2119 1042/4348/2130 f 1063/4401/2128 1018/4319/2104 1017/4318/2103 f 1025/4389/2148 1050/4388/2147 1028/4377/2149 f 1023/4357/2138 1024/4365/2143 1025/4372/2148 f 1027/4402/2131 1056/4344/2126 1068/4345/2127 f 1036/4332/2116 1058/4403/2121 1015/4336/2120 f 1060/4350/2132 1041/4387/2152 1050/4388/2147 f 1032/4404/2136 1044/4390/2153 1029/4385/2151 f 1068/4378/2127 1041/4387/2152 1027/4349/2131 f 1029/4385/2151 1065/4405/2154 1040/4383/2145 f 1039/4406/2139 1040/4368/2145 1065/4407/2154 f 1047/4395/2135 1030/4397/2108 1061/4367/2144 f 1044/4390/2153 1066/4375/2129 1038/4408/2155 f 1051/4333/2117 1014/4360/2101 1053/4359/2112 f 1049/4342/2124 1033/4341/2123 1031/4409/2109 f 1064/4330/2114 1054/4410/2150 1019/4329/2113 f 1025/4411/2148 1019/4329/2113 1054/4410/2150 f 1048/4412/2156 1058/4403/2121 1036/4332/2116 f 1019/4329/2113 1063/4401/2128 1017/4318/2103 f 1033/4341/2123 1062/4413/2110 1031/4409/2109 f 1022/4414/2107 1012/4369/2100 1021/4321/2106 f 1053/4328/2112 1035/4334/2118 1052/4415/2146 f 1035/4399/2118 1042/4416/2130 1033/4341/2123 f 1046/4396/2134 1048/4417/2156 1036/4418/2116 f 1043/4419/2137 1032/4420/2136 1062/4325/2110 f 1037/4351/2133 1038/4408/2155 1066/4375/2129 f 1059/4362/2140 1048/4421/2156 1045/4363/2141 f 1048/4421/2156 1059/4362/2140 1058/4422/2121 f 1060/4380/2132 1024/4365/2143 1026/4364/2142 f 1047/4354/2135 1031/4324/2109 1030/4323/2108 f 1034/4331/2115 1051/4333/2117 1053/4359/2112 f 1034/4331/2115 1049/4342/2124 1046/4423/2134 f 1014/4360/2101 1012/4424/2100 1022/4382/2107 f 1041/4387/2152 1068/4378/2127 1028/4377/2149 f 1026/4364/2142 1039/4374/2139 1060/4380/2132 f 1048/4417/2156 1046/4396/2134 1045/4366/2141 f 1053/4359/2112 1052/4370/2146 1034/4331/2115 f 1043/4356/2137 1033/4425/2123 1042/4348/2130 f 1033/4425/2123 1043/4356/2137 1062/4426/2110 f 1057/4340/2122 1058/4339/2121 1026/4364/2142 f 1068/4427/2127 1063/4401/2128 1019/4329/2113 f 1057/4340/2122 1023/4357/2138 1013/4317/2102 f 1024/4365/2143 1023/4357/2138 1057/4340/2122 f 1040/4368/2145 1039/4406/2139 1045/4366/2141 f 1062/4325/2110 1032/4420/2136 1029/4386/2151 f 1044/4390/2153 1038/4408/2155 1029/4385/2151 f 1065/4405/2154 1029/4385/2151 1038/4408/2155 f 1038/4408/2155 1037/4351/2133 1065/4405/2154 f 1039/4361/2139 1065/4394/2154 1060/4393/2132 f 1046/4423/2134 1036/4332/2116 1034/4331/2115 f 1070/4428/2157 1071/4429/2158 1069/4430/2159 f 1113/4431/2160 1114/4432/2161 6/4433/2162 f 1118/4434/2163 1082/4435/2164 1081/4436/2165 f 1118/4434/2163 1083/4437/2166 1082/4435/2164 f 1127/4438/2167 1088/4439/2168 1089/4440/2169 f 1078/4441/2170 1094/11/2171 1116/4442/2172 f 1113/4431/2160 1077/4443/2173 1095/4444/2174 f 1095/4444/2174 1071/4429/2158 1113/4431/2160 f 1079/4445/2175 1080/4446/2176 1074/4447/2177 f 1072/4448/2178 1073/4449/2179 1074/4447/2177 f 1128/4450/2180 1085/4451/2181 1086/4452/2182 f 1083/4437/2166 1085/4453/2181 1128/4454/2180 f 1103/4455/2183 1081/4456/2165 1098/4457/2184 f 1103/4455/2183 1089/4440/2169 1084/4458/2185 f 1099/4459/2186 1100/4460/2187 1101/4461/2188 f 1124/4462/2189 1093/4463/2190 1100/4460/2187 f 1094/11/2171 1090/4464/2191 1117/4465/2192 f 1090/4464/2191 1094/11/2171 1122/4466/2193 f 1099/4459/2186 1101/4461/2188 1096/4467/2194 f 1075/4468/2195 1124/4462/2189 1100/4460/2187 f 1092/4469/2196 1095/4444/2174 1104/4470/2197 f 1126/4471/2198 1115/4472/2199 1107/4473/2200 f 1115/4472/2199 1126/4471/2198 1106/4474/2201 f 1106/4474/2201 1124/4475/2189 1115/4472/2199 f 1107/4473/2200 1120/4476/2202 1126/4471/2198 f 1107/4473/2200 1097/4477/2203 1120/4476/2202 f 1127/4438/2167 1122/4466/2193 1088/4439/2168 f 1084/4478/2185 1120/4476/2202 1097/4477/2203 f 1069/4430/2159 1095/4444/2174 1092/4469/2196 f 1102/4479/2204 1108/4480/2205 1121/4481/2206 f 1087/4482/2207 1109/4483/2208 1110/4484/2209 f 1125/4485/2210 1113/4431/2160 1071/4429/2158 f 1095/4444/2174 1077/4443/2173 1078/4486/2170 f 1092/4469/2196 1104/4470/2197 1121/4487/2206 f 1099/4488/2186 1107/4473/2200 1115/4472/2199 f 1071/4429/2158 1076/4489/2211 1125/4485/2210 f 1112/4490/2212 1104/4470/2197 1078/4486/2170 f 1088/4491/2168 1126/4471/2198 1120/4476/2202 f 1074/4447/2177 1106/4492/2201 1079/4445/2175 f 1119/4493/2213 1083/4437/2166 1118/4434/2163 f 1072/4448/2178 1125/4494/2210 1076/4495/2211 f 1102/4496/2204 1117/4497/2192 1123/4498/2214 f 1103/4455/2183 1098/4457/2184 1091/4499/2215 f 1085/4451/2181 1096/4467/2194 1111/4500/2216 f 6/4501/2162 1080/4502/2176 1079/4503/2175 f 1107/4473/2200 1096/4504/2194 1097/4477/2203 f 1112/4490/2212 1121/4487/2206 1104/4470/2197 f 1076/4505/2211 1093/4463/2190 1072/4506/2178 f 1075/4507/2195 1115/4472/2199 1124/4475/2189 f 1088/4439/2168 1122/4466/2193 3/3/2217 f 1079/4503/2175 3/3/2217 6/4501/2162 f 1090/4464/2191 1122/4466/2193 1127/4438/2167 f 1105/4508/2218 1102/4496/2204 1123/4498/2214 f 1123/4509/2214 1091/4499/2215 1098/4457/2184 f 1110/4484/2209 1069/4510/2159 1092/4511/2196 f 1069/4430/2159 1110/4512/2209 1070/4428/2157 f 1115/4472/2199 1100/4513/2187 1099/4488/2186 f 1075/4468/2195 1100/4460/2187 1115/4514/2199 f 1093/4463/2190 1110/4484/2209 1109/4483/2208 f 1101/4461/2188 1111/4500/2216 1096/4467/2194 f 1128/4454/2180 1105/4515/2218 1083/4437/2166 f 1087/4516/2207 1092/4469/2196 1108/4517/2205 f 1118/4518/2163 1084/4478/2185 1119/4519/2213 f 1119/4520/2213 1097/4521/2203 1096/4467/2194 f 1092/4511/2196 1087/4482/2207 1110/4484/2209 f 1096/4467/2194 1107/4522/2200 1099/4459/2186 f 1097/4477/2203 1119/4519/2213 1084/4478/2185 f 1111/4500/2216 1087/4482/2207 1086/4452/2182 f 1113/4431/2160 1125/4485/2210 1114/4432/2161 f 6/4523/2162 1077/4443/2173 1113/4431/2160 f 1078/4441/2170 6/4501/2162 1/1/2219 f 1072/4448/2178 1124/4524/2189 1073/4449/2179 f 1124/4524/2189 1072/4448/2178 1093/4525/2190 f 1079/4526/2175 1126/4471/2198 1088/4491/2168 f 1092/4469/2196 1121/4487/2206 1108/4517/2205 f 1078/4486/2170 1116/4527/2172 1112/4490/2212 f 1125/4494/2210 1072/4448/2178 1074/4447/2177 f 1090/4464/2191 1091/4499/2215 1117/4465/2192 f 1091/4499/2215 1127/4438/2167 1103/4455/2183 f 1127/4438/2167 1091/4499/2215 1090/4464/2191 f 1123/4528/2214 1098/4529/2184 1105/4515/2218 f 1105/4508/2218 1086/4530/2182 1108/4531/2205 f 1084/4458/2185 1118/4532/2163 1081/4456/2165 f 6/4501/2162 1078/4441/2170 1077/4533/2173 f 1108/4531/2205 1086/4530/2182 1087/4534/2207 f 1086/4452/2182 1085/4451/2181 1111/4500/2216 f 1074/4447/2177 1114/4535/2161 1125/4494/2210 f 1114/4535/2161 1074/4447/2177 1080/4446/2176 f 3/3/2217 1079/4503/2175 1088/4439/2168 f 1076/4489/2211 1071/4429/2158 1070/4428/2157 f 1108/4531/2205 1102/4496/2204 1105/4508/2218 f 1086/4530/2182 1105/4508/2218 1128/4536/2180 f 1098/4457/2184 1081/4456/2165 1082/4537/2164 f 1120/4476/2202 1089/4538/2169 1088/4491/2168 f 1102/4479/2204 1121/4481/2206 1112/4539/2212 f 1117/4465/2192 1116/4442/2172 1094/11/2171 f 1080/4502/2176 6/4501/2162 1114/4540/2161 f 1082/4435/2164 1083/4437/2166 1105/4515/2218 f 1109/4483/2208 1087/4482/2207 1111/4500/2216 f 1110/4484/2209 1093/4463/2190 1076/4505/2211 f 1102/4479/2204 1112/4539/2212 1116/4541/2172 f 1116/4541/2172 1117/4542/2192 1102/4479/2204 f 1096/4467/2194 1085/4451/2181 1119/4543/2213 f 1111/4500/2216 1101/4461/2188 1109/4483/2208 f 1100/4460/2187 1109/4483/2208 1101/4461/2188 f 1120/4476/2202 1084/4478/2185 1089/4538/2169 f 1076/4505/2211 1070/4544/2157 1110/4484/2209 f 1109/4483/2208 1100/4460/2187 1093/4463/2190 f 1073/4545/2179 1124/4475/2189 1106/4474/2201 f 1078/4486/2170 1104/4470/2197 1095/4444/2174 f 1074/4447/2177 1073/4449/2179 1106/4492/2201 f 1069/4430/2159 1071/4429/2158 1095/4444/2174 f 1091/4546/2215 1123/4498/2214 1117/4497/2192 f 1089/4440/2169 1103/4455/2183 1127/4438/2167 f 1078/4441/2170 1/1/2219 1094/11/2171 f 1119/4493/2213 1085/4453/2181 1083/4437/2166 f 1103/4455/2183 1084/4458/2185 1081/4456/2165 f 1082/4435/2164 1105/4515/2218 1098/4529/2184 f 1126/4471/2198 1079/4526/2175 1106/4474/2201 f 4/9/2220 6/4501/2162 5/10/2221 f 1129/4547/2222 1130/4548/2223 1131/4549/2224 f 1134/4550/2225 1133/4551/2226 1135/4552/2227 f 1133/4551/2226 1134/4550/2225 1139/4553/2228 f 1139/4553/2228 1138/4554/2229 1133/4551/2226 f 1147/4555/2230 1148/4556/2231 1149/4557/2232 f 1135/4558/2227 1174/4559/2233 1137/4560/2234 f 1136/4561/2235 1181/4562/2236 1134/4550/2225 f 1153/4563/2237 1159/4564/2238 1154/4565/2239 f 1161/4566/2240 1184/4567/2241 1137/4560/2234 f 1159/4564/2238 1132/4568/2242 1154/4565/2239 f 1161/4566/2240 1137/4560/2234 1174/4559/2233 f 1132/4568/2242 1131/4549/2224 1130/4548/2223 f 1165/4569/2243 1132/4570/2242 1176/4571/2244 f 1152/4572/2245 1153/4563/2237 1169/4573/2246 f 1184/4567/2241 1175/4574/2247 1173/4575/2248 f 1163/4576/2249 1173/4575/2248 1175/4574/2247 f 1173/4575/2248 1163/4576/2249 1180/4577/2250 f 1175/4574/2247 1184/4567/2241 1183/4578/2251 f 1183/4578/2251 1184/4567/2241 1160/4579/2252 f 1144/4580/2253 1155/4581/2254 1178/4582/2255 f 1166/4583/2256 1167/4584/2257 1169/4573/2246 f 1160/4579/2252 1150/4585/2258 1183/4578/2251 f 1129/4586/2222 1140/4587/2259 1130/4588/2223 f 1132/4570/2242 1130/4588/2223 1176/4571/2244 f 1184/4567/2241 1173/4575/2248 1137/4560/2234 f 1173/4575/2248 1135/4558/2227 1137/4560/2234 f 1133/4589/2226 1131/4549/2224 1174/4590/2233 f 1157/4591/2260 1164/4592/2261 1177/4593/2262 f 1143/4594/2263 1176/4571/2244 1141/4595/2264 f 1164/4596/2261 1158/4597/2265 1179/4598/2266 f 1181/4562/2236 1129/4599/2222 1139/4553/2228 f 1152/4572/2245 1171/4600/2267 1153/4563/2237 f 1170/4601/2268 1141/4595/2264 1142/4602/2269 f 1177/4603/2262 1143/4594/2263 1157/4604/2260 f 1143/4594/2263 1177/4603/2262 1165/4569/2243 f 1183/4605/2251 1144/4580/2253 1175/4606/2247 f 1145/4607/2270 1136/4608/2235 1163/4609/2249 f 1180/4577/2250 1135/4558/2227 1173/4575/2248 f 1178/4610/2255 1141/4595/2264 1170/4601/2268 f 1142/4602/2269 1140/4587/2259 1172/4611/2271 f 1129/4586/2222 1172/4611/2271 1140/4587/2259 f 1131/4549/2224 1133/4589/2226 1138/4612/2229 f 1158/4613/2265 1146/4614/2272 1147/4555/2230 f 1148/4556/2231 1147/4555/2230 1146/4614/2272 f 1162/4615/2273 1170/4616/2268 1145/4607/2270 f 1139/4553/2228 1134/4550/2225 1181/4562/2236 f 1145/4607/2270 1142/4617/2269 1136/4608/2235 f 1183/4605/2251 1150/4618/2258 1151/4619/2274 f 1152/4572/2245 1149/4620/2232 1148/4621/2231 f 1162/4615/2273 1144/4580/2253 1178/4582/2255 f 1155/4622/2254 1182/4623/2275 1178/4624/2255 f 1167/4625/2257 1166/4626/2256 1179/4598/2266 f 1179/4598/2266 1166/4626/2256 1164/4596/2261 f 1147/4627/2230 1179/4598/2266 1158/4597/2265 f 1174/4559/2233 1135/4558/2227 1133/4628/2226 f 1152/4629/2245 1161/4566/2240 1171/4630/2267 f 1172/4611/2271 1129/4586/2222 1181/4631/2236 f 1149/4620/2232 1169/4573/2246 1167/4584/2257 f 1183/4605/2251 1155/4581/2254 1144/4580/2253 f 1131/4549/2224 1132/4568/2242 1159/4564/2238 f 1161/4566/2240 1160/4579/2252 1184/4567/2241 f 1160/4579/2252 1148/4632/2231 1150/4585/2258 f 1180/4633/2250 1134/4550/2225 1135/4552/2227 f 1142/4617/2269 1145/4607/2270 1170/4616/2268 f 1140/4587/2259 1142/4602/2269 1141/4595/2264 f 1144/4580/2253 1163/4609/2249 1175/4606/2247 f 1154/4565/2239 1132/4568/2242 1165/4634/2243 f 1178/4582/2255 1170/4616/2268 1162/4615/2273 f 1163/4609/2249 1144/4580/2253 1162/4615/2273 f 1146/4614/2272 1158/4613/2265 1182/4635/2275 f 1157/4636/2260 1182/4637/2275 1158/4597/2265 f 1167/4625/2257 1179/4598/2266 1147/4638/2230 f 1151/4619/2274 1156/4639/2276 1183/4605/2251 f 1159/4564/2238 1174/4590/2233 1131/4549/2224 f 1169/4573/2246 1149/4620/2232 1152/4572/2245 f 1181/4562/2236 1136/4561/2235 1172/4640/2271 f 1142/4641/2269 1172/4640/2271 1136/4561/2235 f 1168/4642/2277 1154/4565/2239 1165/4634/2243 f 1136/4561/2235 1134/4550/2225 1180/4633/2250 f 1138/4554/2229 1139/4553/2228 1129/4599/2222 f 1174/4559/2233 1171/4630/2267 1161/4566/2240 f 1161/4566/2240 1152/4629/2245 1160/4579/2252 f 1166/4583/2256 1154/4565/2239 1168/4642/2277 f 1150/4643/2258 1148/4556/2231 1151/4644/2274 f 1155/4581/2254 1183/4605/2251 1156/4639/2276 f 1177/4593/2262 1164/4592/2261 1168/4645/2277 f 1168/4645/2277 1165/4646/2243 1177/4593/2262 f 1178/4610/2255 1143/4594/2263 1141/4595/2264 f 1167/4647/2257 1147/4555/2230 1149/4557/2232 f 1153/4563/2237 1174/4590/2233 1159/4564/2238 f 1153/4563/2237 1166/4583/2256 1169/4573/2246 f 1131/4549/2224 1138/4612/2229 1129/4547/2222 f 1162/4615/2273 1145/4607/2270 1163/4609/2249 f 1143/4594/2263 1178/4610/2255 1157/4604/2260 f 1168/4648/2277 1164/4596/2261 1166/4626/2256 f 1174/4590/2233 1153/4563/2237 1171/4600/2267 f 1148/4632/2231 1160/4579/2252 1152/4629/2245 f 1176/4571/2244 1143/4594/2263 1165/4569/2243 f 1163/4649/2249 1136/4561/2235 1180/4633/2250 f 1176/4571/2244 1130/4588/2223 1140/4587/2259 f 1141/4595/2264 1176/4571/2244 1140/4587/2259 f 1158/4597/2265 1164/4596/2261 1157/4636/2260 f 1148/4556/2231 1146/4614/2272 1151/4644/2274 f 1151/4619/2274 1146/4650/2272 1156/4639/2276 f 1182/4651/2275 1156/4639/2276 1146/4650/2272 f 1156/4639/2276 1182/4651/2275 1155/4581/2254 f 1157/4591/2260 1178/4624/2255 1182/4623/2275 f 1166/4583/2256 1153/4563/2237 1154/4565/2239 f 1186/4652/2278 1185/4653/2279 1187/4654/2280 f 1227/4655/2281 12/4656/2282 1228/4657/2283 f 1233/4658/2284 1196/4659/2285 1197/4660/2286 f 1233/4661/2284 1197/4662/2286 1198/4663/2287 f 1241/4664/2288 1205/4665/2289 1204/4666/2290 f 1224/4667/2291 1209/4668/2292 1213/4669/2293 f 1193/4670/2294 1231/4671/2295 1210/22/2296 f 1227/4672/2281 1235/4673/2297 1192/4674/2298 f 1235/4673/2297 1227/4672/2281 1187/4654/2280 f 1194/4675/2299 1190/4676/2300 1195/4677/2301 f 1188/4678/2302 1190/4676/2300 1189/4679/2303 f 1198/4663/2287 1220/4680/2304 1200/4681/2305 f 1216/4682/2306 1211/4683/2307 1196/4659/2285 f 1216/4682/2306 1199/4684/2308 1205/4665/2289 f 1212/4685/2309 1214/4686/2310 1213/4669/2293 f 1238/4687/2311 1213/4669/2293 1209/4668/2292 f 1210/22/2296 1232/4688/2312 1206/4689/2313 f 1206/4689/2313 1237/4690/2314 1210/22/2296 f 1213/4669/2293 1214/4686/2310 1224/4667/2291 f 1212/4685/2309 1202/4691/2315 1214/4686/2310 f 1208/4692/2316 1217/4693/2317 1235/4673/2297 f 1230/4694/2318 1239/4695/2319 1229/4696/2320 f 1229/4696/2320 1219/4697/2321 1230/4694/2318 f 1219/4697/2321 1229/4696/2320 1238/4698/2311 f 1239/4695/2319 1230/4694/2318 1234/4699/2322 f 1239/4695/2319 1234/4699/2322 1202/4700/2315 f 1241/4664/2288 1204/4666/2290 1237/4690/2314 f 1199/4701/2308 1202/4700/2315 1234/4699/2322 f 1185/4653/2279 1208/4692/2316 1235/4673/2297 f 1215/4702/2323 1236/4703/2324 1221/4704/2325 f 1203/4705/2326 1222/4706/2327 1223/4707/2328 f 1240/4708/2329 1187/4654/2280 1227/4672/2281 f 1238/4698/2311 1229/4696/2320 1213/4709/2293 f 1200/4710/2305 1202/4691/2315 1242/4711/2330 f 1235/4673/2297 1193/4712/2294 1192/4674/2298 f 1208/4692/2316 1236/4713/2324 1217/4693/2317 f 1207/4714/2331 1218/4715/2332 1211/4683/2307 f 1207/4716/2331 1215/4717/2323 1218/4718/2332 f 1212/4719/2309 1229/4696/2320 1239/4695/2319 f 1187/4654/2280 1240/4708/2329 1191/4720/2333 f 1226/4721/2334 1193/4712/2294 1217/4693/2317 f 1204/4722/2290 1234/4699/2322 1230/4694/2318 f 1190/4676/2300 1194/4675/2299 1219/4723/2321 f 1242/4724/2330 1233/4661/2284 1198/4663/2287 f 1188/4678/2302 1191/4725/2333 1240/4726/2329 f 1215/4717/2323 1207/4716/2331 1232/4727/2312 f 1216/4682/2306 1207/4714/2331 1211/4683/2307 f 1200/4710/2305 1225/4728/2335 1202/4691/2315 f 12/4656/2282 1194/4729/2299 1195/4730/2301 f 1226/4721/2334 1217/4693/2317 1236/4713/2324 f 1191/4731/2333 1188/4732/2302 1209/4668/2292 f 1204/4666/2290 8/13/2336 1237/4690/2314 f 1194/4729/2299 12/4656/2282 8/13/2336 f 1206/4689/2313 1241/4664/2288 1237/4690/2314 f 1243/4733/2337 1218/4718/2332 1215/4717/2323 f 1222/4734/2327 1208/4692/2316 1185/4653/2279 f 1185/4653/2279 1186/4652/2278 1222/4734/2327 f 1229/4735/2320 1212/4685/2309 1213/4669/2293 f 1209/4668/2292 1223/4707/2328 1222/4706/2327 f 1214/4686/2310 1202/4691/2315 1225/4728/2335 f 1203/4736/2326 1221/4737/2325 1208/4692/2316 f 1233/4738/2284 1242/4739/2330 1199/4701/2308 f 1208/4740/2316 1222/4706/2327 1203/4705/2326 f 1202/4691/2315 1212/4685/2309 1239/4741/2319 f 1202/4700/2315 1199/4701/2308 1242/4739/2330 f 1225/4728/2335 1201/4742/2338 1203/4705/2326 f 1227/4672/2281 1228/4743/2283 1240/4708/2329 f 12/4744/2282 1227/4672/2281 1192/4674/2298 f 1193/4670/2294 7/12/2339 12/4656/2282 f 1188/4678/2302 1189/4679/2303 1238/4745/2311 f 1238/4745/2311 1209/4746/2292 1188/4678/2302 f 1194/4747/2299 1204/4722/2290 1230/4694/2318 f 1208/4692/2316 1221/4737/2325 1236/4713/2324 f 1193/4712/2294 1226/4721/2334 1231/4748/2295 f 1240/4726/2329 1190/4676/2300 1188/4678/2302 f 1206/4689/2313 1232/4688/2312 1207/4714/2331 f 1224/4667/2291 1225/4728/2335 1223/4707/2328 f 1207/4714/2331 1216/4682/2306 1241/4664/2288 f 1241/4664/2288 1206/4689/2313 1207/4714/2331 f 1243/4733/2337 1221/4749/2325 1201/4750/2338 f 1199/4701/2308 1196/4751/2285 1233/4738/2284 f 12/4656/2282 1192/4752/2298 1193/4670/2294 f 1221/4749/2325 1203/4753/2326 1201/4750/2338 f 1201/4742/2338 1225/4728/2335 1200/4710/2305 f 1190/4676/2300 1240/4726/2329 1228/4754/2283 f 1228/4754/2283 1195/4677/2301 1190/4676/2300 f 8/13/2336 1204/4666/2290 1194/4729/2299 f 1201/4755/2338 1200/4681/2305 1220/4680/2304 f 1191/4720/2333 1186/4652/2278 1187/4654/2280 f 1220/4680/2304 1197/4662/2286 1218/4756/2332 f 1221/4749/2325 1243/4733/2337 1215/4717/2323 f 1211/4683/2307 1197/4660/2286 1196/4659/2285 f 1234/4699/2322 1204/4722/2290 1205/4757/2289 f 1215/4702/2323 1226/4758/2334 1236/4703/2324 f 1232/4688/2312 1210/22/2296 1231/4671/2295 f 1195/4730/2301 1228/4657/2283 12/4656/2282 f 1197/4662/2286 1220/4680/2304 1198/4663/2287 f 1223/4707/2328 1225/4728/2335 1203/4705/2326 f 1222/4706/2327 1191/4731/2333 1209/4668/2292 f 1215/4702/2323 1231/4759/2295 1226/4758/2334 f 1231/4759/2295 1215/4702/2323 1232/4760/2312 f 1225/4728/2335 1224/4667/2291 1214/4686/2310 f 1218/4756/2332 1243/4761/2337 1220/4680/2304 f 1234/4699/2322 1205/4757/2289 1199/4701/2308 f 1191/4731/2333 1222/4706/2327 1186/4762/2278 f 1243/4761/2337 1201/4755/2338 1220/4680/2304 f 1223/4707/2328 1209/4668/2292 1224/4667/2291 f 1189/4763/2303 1219/4697/2321 1238/4698/2311 f 1193/4712/2294 1235/4673/2297 1217/4693/2317 f 1190/4676/2300 1219/4723/2321 1189/4679/2303 f 1185/4653/2279 1235/4673/2297 1187/4654/2280 f 1205/4665/2289 1241/4664/2288 1216/4682/2306 f 1193/4670/2294 1210/22/2296 7/12/2339 f 1242/4724/2330 1198/4663/2287 1200/4681/2305 f 1216/4682/2306 1196/4659/2285 1199/4684/2308 f 1197/4662/2286 1211/4764/2307 1218/4756/2332 f 1230/4694/2318 1219/4697/2321 1194/4747/2299 f 10/21/2340 12/4656/2282 7/12/2339 f 1210/22/2296 1237/4690/2314 8/13/2336 f 4/9/2220 1/1/2219 6/4501/2162 f 6/4501/2162 3/3/2217 2/2/2341 f 1094/11/2171 3/3/2217 1122/4466/2193 f 10/21/2340 11/20/2342 12/4656/2282 f 9/14/2343 8/13/2336 12/4656/2282 f 3024/4765/2344 3042/4766/2345 3016/4767/2346 f 3021/4768/2347 3022/4769/2348 3052/4770/2349 f 3062/4771/2350 3045/4772/2351 3029/4773/2352 f 3027/4774/2353 3055/4775/2354 3026/4776/2355 f 3040/4777/2356 3018/4778/2357 3022/4769/2348 f 3061/4779/2358 3024/4765/2344 3023/4780/2359 f 3028/4781/2360 3025/4782/2361 3019/4783/2362 f 3044/4784/2363 3019/4783/2362 3025/4782/2361 f 3030/4785/2364 3029/4786/2352 3063/4787/2365 f 3020/4788/2366 3046/4789/2367 3047/4790/2368 f 3037/4791/2369 3041/4792/2370 3064/4793/2371 f 3033/4794/2372 3047/4795/2368 3032/4796/2373 f 3047/4795/2368 3059/4797/2374 3020/4798/2366 f 3053/4799/2375 3056/4800/2376 3043/4801/2377 f 3060/4802/2378 3068/4803/2379 3048/4804/2380 f 3054/4805/2381 3053/4799/2375 3043/4801/2377 f 3063/4806/2365 3066/4807/2382 3031/4808/2383 f 3059/4809/2374 3066/4810/2382 3057/4811/2384 f 3058/4812/2385 3041/4792/2370 3037/4791/2369 f 3018/4778/2357 3040/4777/2356 3020/4813/2366 f 3065/4814/2386 3015/4815/2387 3061/4779/2358 f 3031/4808/2383 3066/4807/2382 3033/4794/2372 f 3048/4804/2380 3045/4772/2351 3060/4802/2378 f 3068/4816/2379 3060/4817/2378 3034/4818/2388 f 3050/4819/2389 3068/4816/2379 3067/4820/2390 f 3037/4791/2369 3038/4821/2391 3058/4812/2385 f 3046/4822/2367 3035/4823/2392 3051/4824/2393 f 3025/4825/2361 3028/4826/2360 3026/4776/2355 f 3053/4827/2375 3020/4798/2366 3059/4797/2374 f 3057/4828/2384 3066/4829/2382 3027/4774/2353 f 3019/4783/2362 3044/4784/2363 3052/4770/2349 f 3062/4830/2350 3031/4808/2383 3033/4794/2372 f 3050/4819/2389 3067/4820/2390 3049/4831/2394 f 3041/4832/2370 3065/4814/2386 3064/4833/2371 f 3039/4834/2395 3067/4820/2390 3035/4823/2392 f 3060/4817/2378 3045/4835/2351 3036/4836/2396 f 3035/4823/2392 3046/4822/2367 3039/4834/2395 f 3059/4797/2374 3033/4794/2372 3066/4807/2382 f 3045/4835/2351 3032/4837/2373 3051/4824/2393 f 3039/4834/2395 3049/4831/2394 3067/4820/2390 f 3047/4795/2368 3051/4838/2393 3032/4796/2373 f 3039/4834/2395 3046/4822/2367 3040/4839/2356 f 3057/4811/2384 3053/4840/2375 3059/4809/2374 f 3041/4792/2370 3058/4812/2385 3068/4803/2379 f 3023/4841/2359 3025/4842/2361 3064/4793/2371 f 3045/4835/2351 3062/4843/2350 3032/4837/2373 f 3055/4775/2354 3063/4787/2365 3038/4844/2391 f 3019/4783/2362 3043/4801/2377 3028/4781/2360 f 3052/4845/2349 3024/4765/2344 3016/4767/2346 f 3052/4845/2349 3016/4767/2346 3021/4846/2347 f 3027/4774/2353 3028/4826/2360 3043/4847/2377 f 3050/4848/2389 3049/4849/2394 3041/4792/2370 f 3065/4814/2386 3041/4832/2370 3049/4850/2394 f 3045/4772/2351 3048/4804/2380 3029/4773/2352 f 3046/4822/2367 3020/4851/2366 3040/4839/2356 f 3033/4794/2372 3059/4797/2374 3047/4795/2368 f 3017/4852/2397 3022/4769/2348 3054/4805/2381 f 3064/4793/2371 3025/4842/2361 3037/4791/2369 f 3044/4853/2363 3024/4765/2344 3052/4845/2349 f 3024/4854/2344 3044/4855/2363 3025/4825/2361 f 3060/4817/2378 3036/4836/2396 3034/4818/2388 f 3039/4856/2395 3065/4857/2386 3049/4858/2394 f 3015/4859/2387 3040/4839/2356 3021/4860/2347 f 3016/4767/2346 3042/4766/2345 3015/4815/2387 f 3018/4778/2357 3054/4805/2381 3022/4769/2348 f 3043/4847/2377 3056/4861/2376 3027/4774/2353 f 3052/4770/2349 3017/4852/2397 3019/4783/2362 f 3020/4813/2366 3053/4799/2375 3018/4778/2357 f 3029/4773/2352 3030/4862/2364 3062/4771/2350 f 3031/4863/2383 3062/4771/2350 3030/4862/2364 f 3054/4805/2381 3019/4783/2362 3017/4852/2397 f 3024/4765/2344 3061/4779/2358 3042/4766/2345 f 3025/4825/2361 3023/4864/2359 3024/4854/2344 f 3066/4829/2382 3055/4775/2354 3027/4774/2353 f 3051/4824/2393 3035/4823/2392 3034/4818/2388 f 3068/4865/2379 3058/4866/2385 3048/4867/2380 f 3026/4776/2355 3037/4868/2369 3025/4825/2361 f 3017/4852/2397 3052/4770/2349 3022/4769/2348 f 3068/4803/2379 3050/4848/2389 3041/4792/2370 f 3051/4824/2393 3047/4869/2368 3046/4822/2367 f 3021/4860/2347 3016/4870/2346 3015/4859/2387 f 3057/4871/2384 3056/4872/2376 3053/4827/2375 f 3029/4786/2352 3038/4844/2391 3063/4787/2365 f 3051/4824/2393 3036/4836/2396 3045/4835/2351 f 3061/4779/2358 3015/4815/2387 3042/4766/2345 f 3022/4873/2348 3021/4860/2347 3040/4839/2356 f 3015/4859/2387 3039/4834/2395 3040/4839/2356 f 3066/4829/2382 3063/4787/2365 3055/4775/2354 f 3062/4830/2350 3033/4794/2372 3032/4796/2373 f 3055/4775/2354 3038/4844/2391 3037/4868/2369 f 3056/4861/2376 3057/4828/2384 3027/4774/2353 f 3019/4783/2362 3054/4805/2381 3043/4801/2377 f 3038/4821/2391 3029/4773/2352 3048/4804/2380 f 3038/4874/2391 3048/4867/2380 3058/4866/2385 f 3054/4805/2381 3018/4778/2357 3053/4799/2375 f 3037/4868/2369 3026/4776/2355 3055/4775/2354 f 3068/4875/2379 3034/4876/2388 3067/4877/2390 f 3027/4774/2353 3026/4776/2355 3028/4826/2360 f 3064/4833/2371 3065/4814/2386 3061/4779/2358 f 3065/4814/2386 3039/4878/2395 3015/4815/2387 f 3035/4823/2392 3067/4820/2390 3034/4818/2388 f 3030/4785/2364 3063/4787/2365 3031/4879/2383 f 3051/4824/2393 3034/4818/2388 3036/4836/2396 f 3064/4793/2371 3061/4880/2358 3023/4841/2359 f 3071/4881/2398 3070/4882/2399 3069/4883/2400 f 3108/4884/2401 3073/4885/2402 3072/4886/2403 f 3103/4887/2404 3075/4888/2405 3073/4889/2402 f 3076/4890/2406 3077/4891/2407 3069/4883/2400 f 3074/4892/2408 3072/4886/2403 3076/4893/2406 f 3076/4893/2406 3072/4886/2403 3077/4894/2407 f 3084/4895/2409 3085/4896/2410 3119/4897/2411 f 3097/4898/2412 3105/4899/2413 3098/4900/2414 f 3093/4901/2415 3092/4902/2416 3100/4903/2417 f 3080/4904/2418 3116/4905/2419 3074/4892/2408 f 3116/4905/2419 3080/4904/2418 3082/4906/2420 f 3123/4907/2421 3102/4908/2422 3099/4909/2423 f 3107/4910/2424 3071/4881/2398 3120/4911/2425 f 3120/4912/2425 3091/4913/2426 3107/4914/2424 f 3102/4908/2422 3098/4900/2414 3099/4909/2423 f 3089/4915/2427 3090/4916/2428 3104/4917/2429 f 3118/4918/2430 3071/4881/2398 3107/4910/2424 f 3113/4919/2431 3121/4920/2432 3122/4921/2433 f 3116/4922/2419 3122/4921/2433 3121/4920/2432 f 3121/4920/2432 3108/4923/2401 3116/4922/2419 f 3122/4921/2433 3114/4924/2434 3113/4919/2431 f 3123/4925/2421 3110/4926/2435 3109/4927/2436 f 3089/4928/2427 3113/4919/2431 3086/4929/2437 f 3117/4930/2438 3089/4928/2427 3086/4929/2437 f 3121/4920/2432 3103/4931/2404 3073/4932/2402 f 3091/4933/2426 3110/4934/2435 3111/4935/2439 f 3092/4936/2416 3122/4921/2433 3116/4922/2419 f 3100/4937/2417 3094/4938/2440 3093/4939/2415 f 3120/4912/2425 3069/4940/2400 3077/4941/2407 f 3073/4889/2402 3077/4941/2407 3072/4942/2403 f 3113/4919/2431 3103/4931/2404 3121/4920/2432 f 3118/4918/2430 3112/4943/2441 3079/4944/2442 f 3124/4945/2443 3085/4896/2410 3084/4895/2409 f 3092/4902/2416 3115/4946/2444 3101/4947/2445 f 3119/4897/2411 3085/4896/2410 3117/4948/2438 f 3108/4923/2401 3121/4920/2432 3073/4932/2402 f 3075/4888/2405 3120/4912/2425 3073/4889/2402 f 3080/4949/2418 3115/4946/2444 3082/4950/2420 f 3087/4951/2446 3117/4930/2438 3086/4929/2437 f 3090/4916/2428 3089/4915/2427 3085/4952/2410 f 3126/4953/2447 3107/4954/2424 3091/4933/2426 f 3119/4897/2411 3083/4955/2448 3084/4895/2409 f 3115/4946/2444 3080/4949/2418 3079/4956/2442 f 3106/4957/2449 3078/4958/2450 3080/4959/2418 f 3069/4883/2400 3070/4882/2399 3076/4890/2406 f 3105/4960/2413 3123/4907/2421 3099/4909/2423 f 3101/4947/2445 3115/4946/2444 3079/4956/2442 f 3096/4961/2451 3087/4962/2446 3086/4963/2437 f 3095/4964/2452 3102/4908/2422 3096/4961/2451 f 3103/4931/2404 3113/4919/2431 3104/4965/2429 f 3114/4924/2434 3122/4921/2433 3093/4966/2415 f 3116/4905/2419 3108/4884/2401 3074/4892/2408 f 3104/4967/2429 3113/4919/2431 3089/4928/2427 f 3093/4966/2415 3122/4921/2433 3092/4936/2416 f 3116/4922/2419 3081/4968/2453 3092/4936/2416 f 3095/4964/2452 3100/4903/2417 3098/4900/2414 f 3102/4908/2422 3095/4964/2452 3098/4900/2414 f 3090/4916/2428 3075/4888/2405 3103/4887/2404 f 3092/4902/2416 3081/4969/2453 3115/4946/2444 f 3105/4970/2413 3099/4971/2423 3098/4972/2414 f 3109/4927/2436 3110/4926/2435 3091/4973/2426 f 3090/4916/2428 3120/4912/2425 3075/4888/2405 f 3112/4974/2441 3101/4947/2445 3079/4956/2442 f 3111/4975/2439 3118/4918/2430 3107/4910/2424 f 3103/4887/2404 3104/4917/2429 3090/4916/2428 f 3107/4910/2424 3126/4976/2447 3111/4975/2439 f 3102/4908/2422 3083/4977/2448 3087/4962/2446 f 3083/4977/2448 3102/4908/2422 3084/4978/2409 f 3070/4882/2399 3078/4958/2450 3106/4957/2449 f 3100/4903/2417 3092/4902/2416 3101/4947/2445 f 3090/4916/2428 3085/4952/2410 3088/4979/2454 f 3102/4908/2422 3123/4907/2421 3084/4978/2409 f 3076/4893/2406 3106/4980/2449 3074/4892/2408 f 3077/4941/2407 3073/4889/2402 3120/4912/2425 f 3087/4962/2446 3119/4981/2411 3117/4982/2438 f 3069/4883/2400 3120/4983/2425 3071/4881/2398 f 3072/4886/2403 3074/4892/2408 3108/4884/2401 f 3085/4952/2410 3124/4984/2443 3088/4979/2454 f 3086/4963/2437 3114/4985/2434 3096/4961/2451 f 3095/4986/2452 3096/4987/2451 3114/4924/2434 f 3078/4988/2450 3079/4956/2442 3080/4949/2418 f 3091/4913/2426 3120/4912/2425 3090/4916/2428 f 3109/4989/2436 3124/4945/2443 3123/4990/2421 f 3105/4991/2413 3112/4992/2441 3110/4926/2435 f 3084/4895/2409 3123/4990/2421 3124/4945/2443 f 3112/4993/2441 3111/4935/2439 3110/4934/2435 f 3070/4994/2399 3106/4980/2449 3076/4893/2406 f 3114/4924/2434 3086/4929/2437 3113/4919/2431 f 3100/4995/2417 3095/4996/2452 3094/4997/2440 f 3110/4926/2435 3123/4925/2421 3105/4991/2413 f 3098/4900/2414 3101/4947/2445 3097/4898/2412 f 3089/4998/2427 3117/4948/2438 3085/4896/2410 f 3081/4969/2453 3082/4950/2420 3115/4946/2444 f 3082/4999/2420 3081/4968/2453 3116/4922/2419 f 3070/4882/2399 3071/4881/2398 3125/5000/2455 f 3114/4924/2434 3093/4966/2415 3095/4986/2452 f 3101/4947/2445 3098/4900/2414 3100/4903/2417 f 3124/4945/2443 3109/4989/2436 3088/5001/2454 f 3125/5000/2455 3079/4944/2442 3078/4958/2450 f 3078/4958/2450 3070/4882/2399 3125/5000/2455 f 3101/4947/2445 3112/4974/2441 3097/4898/2412 f 3080/4904/2418 3074/4892/2408 3106/4980/2449 f 3087/4962/2446 3096/4961/2451 3102/4908/2422 f 3118/4918/2430 3125/5000/2455 3071/4881/2398 f 3125/5000/2455 3118/4918/2430 3079/4944/2442 f 3119/4981/2411 3087/4962/2446 3083/4977/2448 f 3111/4975/2439 3112/4943/2441 3118/4918/2430 f 3105/4991/2413 3097/5002/2412 3112/4992/2441 f 3088/4979/2454 3091/4913/2426 3090/4916/2428 f 3094/5003/2440 3095/4964/2452 3093/5004/2415 f 3109/4927/2436 3091/4973/2426 3088/5005/2454 f 3111/4935/2439 3126/4953/2447 3091/4933/2426 f 3179/5006/2456 3128/5007/2457 3154/5008/2458 f 3133/5009/2459 3166/5010/2460 3134/5011/2461 f 3176/5012/2462 3140/5013/2463 3156/5014/2464 f 3140/5015/2463 3141/5016/2465 3147/5017/2466 f 3138/5018/2467 3137/5019/2468 3169/5020/2469 f 3152/5021/2470 3134/5011/2461 3130/5022/2471 f 3139/5023/2472 3131/5024/2473 3136/5025/2474 f 3150/5026/2475 3156/5014/2464 3140/5013/2463 f 3132/5027/2476 3158/5028/2477 3157/5029/2478 f 3148/5030/2479 3177/5031/2480 3153/5032/2481 f 3154/5008/2458 3135/5033/2482 3179/5006/2456 f 3150/5026/2475 3159/5034/2483 3149/5035/2484 f 3147/5017/2466 3169/5020/2469 3159/5036/2483 f 3158/5037/2477 3132/5038/2476 3173/5039/2485 f 3167/5040/2486 3155/5041/2487 3170/5042/2488 f 3174/5043/2489 3180/5044/2490 3164/5045/2491 f 3168/5046/2492 3155/5041/2487 3167/5040/2486 f 3173/5047/2485 3171/5048/2493 3162/5049/2494 f 3172/5050/2495 3148/5030/2479 3153/5032/2481 f 3130/5022/2471 3132/5051/2476 3152/5021/2470 f 3178/5052/2496 3175/5053/2497 3127/5054/2498 f 3141/5055/2465 3143/5056/2499 3162/5057/2494 f 3180/5044/2490 3174/5043/2489 3156/5014/2464 f 3164/5058/2491 3144/5059/2500 3174/5060/2489 f 3163/5061/2501 3160/5062/2502 3164/5058/2491 f 3148/5063/2479 3172/5064/2495 3149/5065/2484 f 3157/5066/2478 3165/5067/2503 3145/5068/2504 f 3136/5025/2474 3137/5019/2468 3139/5023/2472 f 3167/5069/2486 3173/5039/2485 3132/5038/2476 f 3171/5048/2493 3138/5018/2467 3162/5049/2494 f 3131/5070/2473 3166/5010/2460 3179/5071/2456 f 3176/5072/2462 3143/5056/2499 3141/5055/2465 f 3163/5061/2501 3161/5073/2505 3160/5062/2502 f 3153/5074/2481 3177/5075/2480 3178/5052/2496 f 3151/5076/2506 3145/5068/2504 3160/5062/2502 f 3174/5060/2489 3146/5077/2507 3156/5078/2464 f 3143/5056/2499 3176/5072/2462 3156/5079/2464 f 3145/5068/2504 3151/5076/2506 3157/5066/2478 f 3173/5039/2485 3162/5057/2494 3143/5056/2499 f 3156/5080/2464 3165/5081/2503 3142/5082/2508 f 3142/5083/2508 3143/5084/2499 3156/5078/2464 f 3151/5076/2506 3160/5062/2502 3161/5073/2505 f 3158/5037/2477 3142/5082/2508 3165/5081/2503 f 3151/5076/2506 3152/5085/2470 3157/5066/2478 f 3171/5086/2493 3173/5087/2485 3167/5088/2486 f 3173/5039/2485 3143/5056/2499 3142/5082/2508 f 3135/5089/2482 3177/5031/2480 3136/5090/2474 f 3179/5091/2456 3136/5025/2474 3131/5024/2473 f 3169/5020/2469 3149/5092/2484 3159/5036/2483 f 3131/5070/2473 3139/5093/2472 3155/5094/2487 f 3166/5095/2460 3128/5007/2457 3179/5006/2456 f 3166/5095/2460 3133/5096/2459 3128/5007/2457 f 3138/5018/2467 3155/5041/2487 3139/5023/2472 f 3163/5097/2501 3153/5032/2481 3161/5098/2505 f 3178/5052/2496 3161/5099/2505 3153/5074/2481 f 3156/5014/2464 3150/5026/2475 3180/5044/2490 f 3157/5100/2478 3152/5021/2470 3132/5051/2476 f 3142/5082/2508 3158/5037/2477 3173/5039/2485 f 3129/5101/2509 3168/5102/2492 3134/5011/2461 f 3177/5031/2480 3148/5030/2479 3136/5090/2474 f 3174/5060/2489 3144/5059/2500 3146/5077/2507 f 3151/5103/2506 3161/5104/2505 3178/5105/2496 f 3127/5106/2498 3133/5107/2459 3152/5085/2470 f 3128/5108/2457 3127/5054/2498 3154/5008/2458 f 3130/5022/2471 3134/5011/2461 3168/5102/2492 f 3155/5041/2487 3138/5018/2467 3170/5042/2488 f 3166/5010/2460 3131/5070/2473 3129/5101/2509 f 3132/5051/2476 3130/5022/2471 3167/5109/2486 f 3141/5110/2465 3140/5013/2463 3176/5012/2462 f 3168/5102/2492 3129/5101/2509 3131/5070/2473 f 3135/5033/2482 3154/5008/2458 3175/5053/2497 f 3163/5097/2501 3164/5045/2491 3172/5050/2495 f 3162/5049/2494 3138/5018/2467 3169/5020/2469 f 3165/5067/2503 3144/5059/2500 3145/5068/2504 f 3164/5111/2491 3180/5112/2490 3172/5064/2495 f 3137/5019/2468 3136/5025/2474 3148/5113/2479 f 3129/5101/2509 3134/5011/2461 3166/5010/2460 f 3172/5050/2495 3153/5032/2481 3163/5097/2501 f 3165/5067/2503 3157/5066/2478 3158/5114/2477 f 3133/5107/2459 3127/5106/2498 3128/5115/2457 f 3171/5116/2493 3167/5069/2486 3170/5117/2488 f 3165/5067/2503 3156/5078/2464 3146/5077/2507 f 3175/5053/2497 3154/5008/2458 3127/5054/2498 f 3134/5118/2461 3152/5085/2470 3133/5107/2459 f 3136/5119/2474 3179/5006/2456 3135/5033/2482 f 3127/5106/2498 3152/5085/2470 3151/5076/2506 f 3162/5049/2494 3169/5020/2469 3147/5017/2466 f 3169/5020/2469 3148/5120/2479 3149/5092/2484 f 3170/5042/2488 3138/5018/2467 3171/5048/2493 f 3131/5070/2473 3155/5094/2487 3168/5102/2492 f 3149/5035/2484 3180/5044/2490 3150/5026/2475 f 3149/5065/2484 3172/5064/2495 3180/5112/2490 f 3168/5102/2492 3167/5109/2486 3130/5022/2471 f 3148/5120/2479 3169/5020/2469 3137/5019/2468 f 3164/5058/2491 3160/5062/2502 3144/5059/2500 f 3138/5018/2467 3139/5023/2472 3137/5019/2468 f 3177/5075/2480 3175/5053/2497 3178/5052/2496 f 3150/5026/2475 3140/5013/2463 3159/5034/2483 f 3178/5052/2496 3127/5054/2498 3151/5121/2506 f 3145/5068/2504 3144/5059/2500 3160/5062/2502 f 3147/5017/2466 3141/5016/2465 3162/5049/2494 f 3165/5067/2503 3146/5077/2507 3144/5059/2500 f 3177/5031/2480 3135/5089/2482 3175/5122/2497 f 3159/5036/2483 3140/5015/2463 3147/5017/2466 f 3183/5123/2510 3181/5124/2511 3182/5125/2512 f 3220/5126/2513 3184/5127/2514 3185/5128/2515 f 3215/5129/2516 3185/5128/2515 3226/5130/2517 f 3187/5131/2518 3181/5124/2511 3188/5132/2519 f 3186/5133/2520 3187/5134/2518 3184/5135/2514 f 3187/5134/2518 3188/5136/2519 3184/5135/2514 f 3195/5137/2521 3196/5138/2522 3197/5139/2523 f 3208/5140/2524 3209/5141/2525 3217/5142/2526 f 3204/5143/2527 3211/5144/2528 3203/5145/2529 f 3191/5146/2530 3186/5133/2520 3213/5147/2531 f 3213/5147/2531 3193/5148/2532 3191/5146/2530 f 3234/5149/2533 3210/5150/2534 3214/5151/2535 f 3219/5152/2536 3231/5153/2537 3183/5123/2510 f 3231/5154/2537 3219/5155/2536 3202/5156/2538 f 3214/5151/2535 3210/5150/2534 3209/5141/2525 f 3201/5157/2539 3216/5158/2540 3228/5159/2541 f 3230/5160/2542 3219/5152/2536 3183/5123/2510 f 3224/5161/2543 3233/5162/2544 3232/5163/2545 f 3213/5164/2531 3232/5163/2545 3233/5162/2544 f 3232/5163/2545 3213/5164/2531 3220/5165/2513 f 3233/5162/2544 3224/5161/2543 3225/5166/2546 f 3201/5167/2539 3198/5168/2547 3224/5161/2543 f 3229/5169/2548 3198/5168/2547 3201/5167/2539 f 3232/5163/2545 3185/5170/2515 3215/5171/2516 f 3203/5172/2529 3213/5164/2531 3233/5162/2544 f 3211/5144/2528 3204/5143/2527 3205/5173/2549 f 3231/5154/2537 3188/5174/2519 3181/5175/2511 f 3185/5128/2515 3184/5127/2514 3188/5174/2519 f 3224/5161/2543 3232/5163/2545 3215/5171/2516 f 3230/5160/2542 3190/5176/2550 3223/5177/2551 f 3235/5178/2552 3195/5137/2521 3197/5139/2523 f 3203/5145/2529 3212/5179/2553 3227/5180/2554 f 3196/5138/2522 3229/5181/2548 3197/5139/2523 f 3220/5165/2513 3185/5170/2515 3232/5163/2545 f 3226/5130/2517 3185/5128/2515 3231/5154/2537 f 3191/5182/2530 3193/5183/2532 3227/5180/2554 f 3199/5184/2555 3198/5168/2547 3229/5169/2548 f 3228/5159/2541 3197/5185/2523 3201/5157/2539 f 3222/5186/2556 3238/5187/2557 3237/5188/2558 f 3238/5189/2557 3202/5190/2538 3219/5191/2536 f 3196/5138/2522 3195/5137/2521 3194/5192/2559 f 3227/5180/2554 3190/5193/2550 3191/5182/2530 f 3218/5194/2560 3191/5195/2530 3189/5196/2561 f 3181/5124/2511 3187/5131/2518 3182/5125/2512 f 3217/5197/2526 3210/5150/2534 3234/5149/2533 f 3234/5198/2533 3221/5199/2562 3222/5200/2556 f 3212/5179/2553 3190/5193/2550 3227/5180/2554 f 3207/5201/2563 3198/5202/2547 3199/5203/2555 f 3206/5204/2564 3207/5201/2563 3214/5151/2535 f 3215/5171/2516 3216/5205/2540 3224/5161/2543 f 3225/5166/2546 3204/5206/2527 3233/5162/2544 f 3213/5147/2531 3186/5133/2520 3220/5207/2513 f 3216/5158/2540 3201/5157/2539 3224/5208/2543 f 3204/5206/2527 3203/5172/2529 3233/5162/2544 f 3213/5164/2531 3203/5172/2529 3192/5209/2565 f 3206/5204/2564 3209/5141/2525 3211/5144/2528 f 3214/5151/2535 3209/5141/2525 3206/5204/2564 f 3228/5159/2541 3215/5129/2516 3226/5130/2517 f 3203/5145/2529 3227/5180/2554 3192/5210/2565 f 3217/5211/2526 3209/5212/2525 3210/5213/2534 f 3221/5199/2562 3202/5214/2538 3222/5200/2556 f 3228/5159/2541 3226/5130/2517 3231/5154/2537 f 3223/5215/2551 3190/5193/2550 3212/5179/2553 f 3237/5188/2558 3219/5152/2536 3230/5160/2542 f 3215/5129/2516 3228/5159/2541 3216/5158/2540 f 3219/5152/2536 3237/5188/2558 3238/5187/2557 f 3214/5151/2535 3199/5203/2555 3194/5216/2559 f 3194/5216/2559 3195/5217/2521 3214/5151/2535 f 3182/5125/2512 3218/5194/2560 3189/5196/2561 f 3211/5144/2528 3212/5179/2553 3203/5145/2529 f 3228/5159/2541 3200/5218/2566 3197/5185/2523 f 3214/5151/2535 3195/5217/2521 3234/5149/2533 f 3187/5134/2518 3186/5133/2520 3218/5219/2560 f 3188/5174/2519 3231/5154/2537 3185/5128/2515 f 3199/5203/2555 3229/5220/2548 3196/5221/2522 f 3181/5124/2511 3183/5123/2510 3231/5153/2537 f 3184/5135/2514 3220/5207/2513 3186/5133/2520 f 3197/5139/2523 3200/5222/2566 3235/5178/2552 f 3198/5168/2547 3207/5223/2563 3225/5166/2546 f 3206/5224/2564 3225/5166/2546 3207/5223/2563 f 3189/5225/2561 3191/5182/2530 3190/5193/2550 f 3202/5156/2538 3228/5159/2541 3231/5154/2537 f 3221/5226/2562 3234/5227/2533 3235/5178/2552 f 3217/5228/2526 3222/5200/2556 3223/5229/2551 f 3195/5137/2521 3235/5178/2552 3234/5227/2533 f 3223/5230/2551 3222/5231/2556 3237/5232/2558 f 3182/5233/2512 3187/5134/2518 3218/5219/2560 f 3225/5166/2546 3224/5161/2543 3198/5168/2547 f 3211/5234/2528 3205/5235/2549 3206/5236/2564 f 3222/5200/2556 3217/5228/2526 3234/5198/2533 f 3209/5141/2525 3208/5140/2524 3212/5179/2553 f 3201/5237/2539 3197/5139/2523 3229/5181/2548 f 3192/5210/2565 3227/5180/2554 3193/5183/2532 f 3193/5238/2532 3213/5164/2531 3192/5209/2565 f 3182/5125/2512 3236/5239/2567 3183/5123/2510 f 3225/5166/2546 3206/5224/2564 3204/5206/2527 f 3212/5179/2553 3211/5144/2528 3209/5141/2525 f 3235/5178/2552 3200/5222/2566 3221/5226/2562 f 3236/5239/2567 3189/5196/2561 3190/5176/2550 f 3189/5196/2561 3236/5239/2567 3182/5125/2512 f 3212/5179/2553 3208/5140/2524 3223/5215/2551 f 3191/5146/2530 3218/5219/2560 3186/5133/2520 f 3199/5203/2555 3214/5151/2535 3207/5201/2563 f 3230/5160/2542 3183/5123/2510 3236/5239/2567 f 3236/5239/2567 3190/5176/2550 3230/5160/2542 f 3196/5221/2522 3194/5216/2559 3199/5203/2555 f 3237/5188/2558 3230/5160/2542 3223/5177/2551 f 3217/5228/2526 3223/5229/2551 3208/5240/2524 f 3200/5218/2566 3228/5159/2541 3202/5156/2538 f 3205/5173/2549 3204/5241/2527 3206/5204/2564 f 3221/5199/2562 3200/5242/2566 3202/5214/2538 f 3222/5231/2556 3202/5190/2538 3238/5189/2557 f 3241/5243/2568 3240/5244/2569 3239/5245/2570 f 3279/5246/2571 3244/5247/2402 3243/5248/2572 f 3275/5249/2573 3246/5250/2574 3244/5251/2402 f 3247/5252/2575 3248/5253/2576 3239/5245/2570 f 3245/5254/2577 3243/5248/2572 3273/5255/2578 f 3247/5256/2575 3243/5248/2572 3248/5257/2576 f 3253/5258/2579 3245/5254/2577 3250/5259/2580 f 3255/5260/2581 3256/5261/2582 3289/5262/2583 f 3264/5263/2584 3265/5264/2585 3266/5265/2586 f 3263/5266/2587 3264/5267/2584 3266/5268/2586 f 3265/5269/2585 3267/5270/2588 3266/5271/2586 f 3269/5272/2589 3277/5273/2590 3270/5274/2591 f 3286/5275/2592 3245/5254/2577 3253/5258/2579 f 3273/5255/2578 3250/5259/2580 3245/5254/2577 f 3293/5276/2593 3274/5277/2594 3271/5278/2595 f 3278/5279/2596 3241/5243/2568 3290/5280/2597 f 3290/5281/2597 3262/5282/2598 3278/5283/2596 f 3274/5277/2594 3270/5274/2591 3271/5278/2595 f 3260/5284/2599 3261/5285/2600 3276/5286/2601 f 3251/5287/2602 3240/5244/2569 3242/5288/2603 f 3288/5289/2604 3241/5243/2568 3278/5279/2596 f 3284/5290/2605 3291/5291/2606 3292/5292/2607 f 3286/5293/2592 3292/5292/2607 3291/5291/2606 f 3291/5291/2606 3279/5294/2571 3286/5293/2592 f 3292/5292/2607 3266/5295/2586 3284/5290/2605 f 3260/5296/2599 3284/5290/2605 3257/5297/2608 f 3287/5298/2609 3260/5296/2599 3257/5297/2608 f 3291/5291/2606 3275/5299/2573 3244/5300/2402 f 3262/5301/2598 3281/5302/2610 3282/5303/2611 f 3263/5304/2587 3292/5292/2607 3286/5293/2592 f 3290/5281/2597 3239/5305/2570 3248/5306/2576 f 3244/5251/2402 3248/5306/2576 3243/5307/2572 f 3284/5290/2605 3275/5299/2573 3291/5291/2606 f 3288/5289/2604 3283/5308/2441 3249/5309/2612 f 3294/5310/2613 3256/5261/2582 3255/5260/2581 f 3263/5311/2587 3285/5312/2614 3272/5313/2615 f 3289/5262/2583 3256/5261/2582 3287/5314/2609 f 3279/5294/2571 3291/5291/2606 3244/5300/2402 f 3246/5250/2574 3290/5281/2597 3244/5251/2402 f 3250/5315/2580 3285/5312/2614 3253/5316/2579 f 3258/5317/2616 3287/5298/2609 3257/5297/2608 f 3261/5285/2600 3260/5284/2599 3256/5318/2582 f 3296/5319/2617 3278/5320/2596 3262/5301/2598 f 3289/5262/2583 3254/5321/2618 3255/5260/2581 f 3285/5312/2614 3250/5315/2580 3249/5322/2612 f 3239/5245/2570 3240/5244/2569 3247/5252/2575 f 3277/5323/2590 3293/5276/2593 3271/5278/2595 f 3273/5255/2578 3247/5256/2575 3240/5324/2569 f 3293/5325/2593 3281/5326/2610 3280/5327/2619 f 3272/5313/2615 3285/5312/2614 3249/5322/2612 f 3268/5328/2620 3258/5329/2616 3257/5330/2608 f 3267/5270/2588 3274/5277/2594 3268/5328/2620 f 3275/5299/2573 3284/5290/2605 3276/5331/2601 f 3286/5275/2592 3279/5246/2571 3245/5254/2577 f 3276/5332/2601 3284/5290/2605 3260/5296/2599 f 3266/5295/2586 3292/5292/2607 3263/5304/2587 f 3257/5297/2608 3284/5290/2605 3266/5295/2586 f 3286/5293/2592 3252/5333/2621 3263/5304/2587 f 3267/5270/2588 3264/5334/2584 3270/5274/2591 f 3274/5277/2594 3267/5270/2588 3270/5274/2591 f 3261/5285/2600 3246/5250/2574 3275/5249/2573 f 3263/5311/2587 3252/5335/2621 3285/5312/2614 f 3277/5336/2590 3271/5337/2595 3270/5338/2591 f 3280/5327/2619 3281/5326/2610 3262/5339/2598 f 3261/5285/2600 3290/5281/2597 3246/5250/2574 f 3283/5340/2441 3272/5313/2615 3249/5322/2612 f 3268/5328/2620 3266/5271/2586 3267/5270/2588 f 3282/5341/2611 3288/5289/2604 3278/5279/2596 f 3275/5249/2573 3276/5286/2601 3261/5285/2600 f 3278/5279/2596 3296/5342/2617 3282/5341/2611 f 3274/5277/2594 3254/5343/2618 3258/5329/2616 f 3254/5343/2618 3274/5277/2594 3255/5344/2581 f 3264/5334/2584 3263/5311/2587 3272/5313/2615 f 3261/5285/2600 3256/5318/2582 3259/5345/2622 f 3274/5277/2594 3293/5276/2593 3255/5344/2581 f 3248/5306/2576 3244/5251/2402 3290/5281/2597 f 3258/5329/2616 3289/5346/2583 3287/5347/2609 f 3239/5245/2570 3290/5348/2597 3241/5243/2568 f 3250/5315/2580 3273/5349/2578 3251/5350/2602 f 3243/5248/2572 3245/5254/2577 3279/5246/2571 f 3256/5318/2582 3294/5351/2613 3259/5345/2622 f 3262/5282/2598 3290/5281/2597 3261/5285/2600 f 3280/5352/2619 3294/5310/2613 3293/5353/2593 f 3277/5354/2590 3283/5355/2441 3281/5326/2610 f 3255/5260/2581 3293/5353/2593 3294/5310/2613 f 3257/5297/2608 3266/5295/2586 3268/5356/2620 f 3283/5357/2441 3282/5303/2611 3281/5302/2610 f 3240/5324/2569 3251/5358/2602 3273/5255/2578 f 3264/5359/2584 3267/5360/2588 3265/5361/2585 f 3281/5326/2610 3293/5325/2593 3277/5354/2590 f 3242/5288/2603 3249/5309/2612 3250/5362/2580 f 3270/5274/2591 3272/5313/2615 3269/5272/2589 f 3260/5363/2599 3287/5314/2609 3256/5261/2582 f 3242/5288/2603 3250/5362/2580 3251/5287/2602 f 3252/5335/2621 3253/5316/2579 3285/5312/2614 f 3253/5364/2579 3252/5333/2621 3286/5293/2592 f 3240/5244/2569 3241/5243/2568 3295/5365/2623 f 3272/5313/2615 3270/5274/2591 3264/5334/2584 f 3294/5310/2613 3280/5352/2619 3259/5366/2622 f 3295/5365/2623 3249/5309/2612 3242/5288/2603 f 3272/5313/2615 3283/5340/2441 3269/5272/2589 f 3258/5329/2616 3268/5328/2620 3274/5277/2594 f 3288/5289/2604 3295/5365/2623 3241/5243/2568 f 3295/5365/2623 3288/5289/2604 3249/5309/2612 f 3289/5346/2583 3258/5329/2616 3254/5343/2618 f 3295/5365/2623 3242/5288/2603 3240/5244/2569 f 3273/5255/2578 3243/5248/2572 3247/5256/2575 f 3282/5341/2611 3283/5308/2441 3288/5289/2604 f 3277/5354/2590 3269/5367/2589 3283/5355/2441 f 3259/5345/2622 3262/5282/2598 3261/5285/2600 f 3280/5327/2619 3262/5339/2598 3259/5368/2622 f 3282/5303/2611 3296/5319/2617 3262/5301/2598 usemtl wire_228153184 f 1244/5369/2624 1245/5370/2625 1246/5371/2626 f 1248/5372/2627 1246/5373/2626 1245/5374/2625 f 1251/5375/2628 1250/5376/2629 1248/5372/2627 f 1250/5376/2629 1251/5375/2628 1253/5377/2630 f 1251/5375/2628 1254/5378/2631 1607/5379/2632 f 1251/5375/2628 1255/5380/2633 1253/5377/2630 f 1256/5381/2634 1257/5382/2635 1244/5369/2624 f 1258/5383/2636 1249/5384/2637 1245/5374/2625 f 1245/5385/2625 1257/5382/2635 1258/5386/2636 f 1252/5387/2638 1249/5384/2637 1259/5388/2639 f 1259/5388/2639 1254/5378/2631 1252/5387/2638 f 1244/5369/2624 1247/5389/2640 1261/5390/2641 f 1263/5391/2642 1265/5392/2643 1261/5390/2641 f 1266/5393/2644 1268/5394/2645 1265/5392/2643 f 1268/5394/2645 1266/5393/2644 1269/5395/2646 f 1269/5395/2646 1270/5396/2647 1268/5394/2645 f 1272/5397/2648 1271/5398/2649 1273/5399/2650 f 1273/5399/2650 1274/5400/2651 1272/5397/2648 f 1276/5401/2652 1275/5402/2653 1274/5400/2651 f 1276/5401/2652 1274/5400/2651 1273/5399/2650 f 1276/5401/2652 1277/5403/2654 1275/5402/2653 f 1277/5403/2654 1276/5401/2652 1279/5404/2655 f 1256/5381/2634 1244/5369/2624 1284/5405/2656 f 1261/5390/2641 1285/5406/2657 1298/5407/2658 f 1261/5390/2641 1286/5408/2659 1285/5406/2657 f 1270/5396/2647 1287/5409/2660 1268/5394/2645 f 1272/5397/2648 1274/5400/2651 1288/5410/2661 f 1275/5402/2653 1288/5410/2661 1274/5400/2651 f 1278/5411/2662 1290/5412/2663 1583/5413/2664 f 1278/5411/2662 1282/5414/2665 1290/5412/2663 f 1293/5415/2666 1258/5383/2636 1294/5416/2667 f 1293/5415/2666 1291/5417/2668 1259/5388/2639 f 1296/5418/2669 1257/5382/2635 1256/5381/2634 f 1256/5381/2634 1297/5419/2670 1296/5418/2669 f 1256/5381/2634 1298/5407/2658 1297/5419/2670 f 1295/5420/2671 1294/5421/2667 1258/5386/2636 f 1295/5420/2671 1258/5386/2636 1257/5382/2635 f 1285/5406/2657 1286/5408/2659 1299/5422/2672 f 1299/5422/2672 1366/5423/2673 1285/5406/2657 f 1270/5396/2647 1300/5424/2674 1287/5409/2660 f 1270/5396/2647 1272/5397/2648 1301/5425/2675 f 1270/5396/2647 1301/5425/2675 1302/5426/2676 f 1288/5410/2661 1303/5427/2677 1304/5428/2678 f 1289/5429/2679 1303/5427/2677 1288/5410/2661 f 1300/5424/2674 1270/5396/2647 1307/5430/2680 f 1302/5426/2676 1301/5425/2675 1304/5428/2678 f 1304/5428/2678 1316/5431/2681 1302/5426/2676 f 1306/5432/2682 1304/5428/2678 1303/5427/2677 f 1304/5428/2678 1309/5433/2683 1310/5434/2684 f 1306/5432/2682 1305/5435/2685 1311/5436/2686 f 1309/5433/2683 1311/5436/2686 1312/5437/2687 f 1313/5438/2688 1309/5433/2683 1312/5437/2687 f 1310/5434/2684 1309/5433/2683 1313/5438/2688 f 1315/5439/2689 1313/5438/2688 1314/5440/2690 f 1316/5431/2681 1317/5441/2691 1307/5430/2680 f 1264/5442/2692 1318/5443/2693 1267/5444/2694 f 1319/5445/2695 1264/5446/2692 1263/5391/2642 f 1340/5447/2696 1247/5389/2640 1246/5371/2626 f 1246/5371/2626 1320/5448/2697 1340/5447/2696 f 1321/5449/2698 1322/5450/2699 1320/5448/2697 f 1321/5451/2698 1246/5452/2626 1248/5453/2627 f 1321/5451/2698 1248/5453/2627 1250/5454/2629 f 1323/5455/2700 1321/5451/2698 1250/5454/2629 f 1250/5454/2629 1324/5456/2701 1323/5455/2700 f 1325/5457/2702 1324/5458/2701 1332/5459/2703 f 1332/5459/2703 1324/5458/2701 1326/5460/2704 f 1332/5459/2703 1328/5461/2705 1325/5457/2702 f 1325/5457/2702 1329/5462/2706 1330/5463/2707 f 1325/5457/2702 1330/5463/2707 1331/5464/2708 f 1322/5465/2699 1331/5464/2708 1336/5466/2709 f 1335/5467/2710 1334/5468/2711 1336/5466/2709 f 1336/5469/2709 1334/5470/2711 1320/5448/2697 f 1337/5471/2712 1339/5472/2713 1340/5447/2696 f 1337/5471/2712 1340/5447/2696 1320/5448/2697 f 1262/5473/2714 1341/5474/2715 1342/5475/2716 f 1262/5473/2714 1342/5475/2716 1319/5445/2695 f 1262/5473/2714 1340/5447/2696 1344/5476/2717 f 1340/5447/2696 1343/5477/2718 1344/5476/2717 f 1345/5478/2719 1342/5475/2716 1341/5474/2715 f 1319/5445/2695 1342/5475/2716 1264/5446/2692 f 1342/5475/2716 1345/5478/2719 1346/5479/2720 f 1346/5479/2720 1264/5446/2692 1342/5475/2716 f 1346/5479/2720 1318/5480/2693 1264/5446/2692 f 1318/5481/2693 1346/5482/2720 1347/5483/2721 f 1267/5444/2694 1347/5484/2721 1349/5485/2722 f 1348/5486/2723 1349/5485/2722 1347/5484/2721 f 1267/5444/2694 1349/5485/2722 1350/5487/2724 f 1351/5488/2725 1349/5485/2722 1348/5486/2723 f 1352/5489/2726 1353/5490/2727 1351/5488/2725 f 1350/5487/2724 1351/5488/2725 1354/5491/2728 f 1269/5492/2646 1354/5491/2728 1355/5493/2729 f 1269/5492/2646 1350/5487/2724 1354/5491/2728 f 1354/5491/2728 1357/5494/2730 1356/5495/2731 f 1353/5496/2727 1359/5497/2732 1360/5498/2733 f 1353/5490/2727 1360/5499/2733 1358/5500/2734 f 1356/5495/2731 1357/5494/2730 1361/5501/2735 f 1355/5493/2729 1361/5501/2735 1273/5502/2650 f 1362/5503/2736 1273/5502/2650 1361/5501/2735 f 1308/5504/2737 1307/5430/2680 1363/5505/2738 f 1300/5424/2674 1308/5504/2737 1299/5422/2672 f 1299/5422/2672 1364/5506/2739 1366/5423/2673 f 1366/5507/2673 1365/5508/2740 1367/5509/2741 f 1368/5510/2742 1297/5419/2670 1298/5407/2658 f 1366/5423/2673 1298/5407/2658 1285/5406/2657 f 1296/5418/2669 1367/5511/2741 1369/5512/2743 f 1370/5513/2744 1296/5418/2669 1369/5512/2743 f 1371/5514/2745 1372/5515/2746 1373/5516/2747 f 1373/5517/2747 1294/5421/2667 1371/5518/2745 f 1373/5516/2747 1291/5519/2668 1293/5520/2666 f 1373/5516/2747 1293/5520/2666 1294/5521/2667 f 1375/5522/2748 1376/5523/2749 1374/5524/2750 f 1374/5524/2750 1292/5525/2751 1291/5519/2668 f 1374/5524/2750 1372/5515/2746 1375/5522/2748 f 1377/5526/2752 1378/5527/2753 1379/5528/2754 f 1379/5528/2754 1380/5529/2755 1377/5526/2752 f 1381/5530/2756 1379/5528/2754 1378/5527/2753 f 1382/5531/2757 1383/5532/2758 1379/5528/2754 f 1384/5533/2759 1385/5534/2760 1382/5531/2757 f 1384/5533/2759 1386/5535/2761 1387/5536/2762 f 1387/5536/2762 1484/5537/2763 1384/5533/2759 f 1387/5536/2762 1386/5535/2761 1388/5538/2764 f 1388/5538/2764 1389/5539/2765 1387/5536/2762 f 1390/5540/2766 1391/5541/2767 1389/5539/2765 f 1389/5539/2765 1392/5542/2768 1390/5540/2766 f 1400/5543/2769 1401/5544/2770 1402/5545/2771 f 1402/5545/2771 1403/5546/2772 1400/5543/2769 f 1406/5547/2773 1397/5548/2774 1407/5549/2775 f 1407/5549/2775 1404/5550/2776 1406/5547/2773 f 1408/5551/2777 1404/5552/2776 1401/5544/2770 f 1401/5544/2770 1400/5543/2769 1408/5551/2777 f 1410/5553/2778 1400/5543/2769 1403/5546/2772 f 1411/5554/2779 1412/5555/2780 1413/5556/2781 f 1411/5557/2779 1409/5558/2782 1408/5551/2777 f 1410/5553/2778 1408/5551/2777 1400/5543/2769 f 1414/5559/2783 1416/5560/2784 1417/5561/2785 f 1415/5562/2786 1419/5563/2787 1420/5564/2788 f 1423/5565/2789 1412/5555/2780 1418/5566/2790 f 1418/5566/2790 1421/5567/2791 1423/5565/2789 f 1423/5565/2789 1424/5568/2792 1422/5569/2793 f 1413/5556/2781 1422/5569/2793 1425/5570/2794 f 1413/5571/2781 1425/5572/2794 1426/5573/2795 f 1406/5547/2773 1426/5573/2795 1398/5574/2796 f 1409/5575/2782 1406/5547/2773 1404/5550/2776 f 1422/5569/2793 1427/5576/2797 1428/5577/2798 f 1422/5578/2793 1428/5579/2798 1429/5580/2799 f 1430/5581/2800 1398/5574/2796 1426/5573/2795 f 1432/5582/2801 1396/5583/2802 1398/5574/2796 f 1429/5580/2799 1434/5584/2803 1433/5585/2804 f 1435/5586/2805 1395/5587/2806 1432/5582/2801 f 1435/5586/2805 1440/5588/2807 1445/5589/2808 f 1395/5587/2806 1445/5589/2808 1393/5590/2809 f 1434/5591/2803 1436/5592/2810 1437/5593/2811 f 1437/5593/2811 1433/5594/2804 1434/5591/2803 f 1438/5595/2812 1432/5582/2801 1431/5596/2813 f 1438/5595/2812 1431/5596/2813 1433/5585/2804 f 1439/5597/2814 1440/5598/2807 1435/5599/2805 f 1442/5600/2815 1436/5592/2810 1443/5601/2816 f 1442/5602/2815 1444/5603/2817 1441/5604/2818 f 1441/5604/2818 1440/5588/2807 1442/5602/2815 f 1442/5602/2815 1439/5605/2814 1438/5595/2812 f 1446/5606/2819 1391/5541/2767 1445/5589/2808 f 1446/5606/2819 1447/5607/2820 1391/5541/2767 f 1447/5607/2820 1446/5606/2819 1440/5588/2807 f 1440/5588/2807 1456/5608/2821 1447/5607/2820 f 1441/5604/2818 1444/5603/2817 1456/5608/2821 f 1444/5609/2817 1448/5610/2822 1455/5611/2823 f 1449/5612/2824 1450/5613/2825 1451/5614/2826 f 1452/5615/2827 1453/5616/2828 1454/5617/2829 f 1455/5611/2823 1454/5617/2829 1453/5616/2828 f 1457/5618/2830 1449/5612/2824 1451/5614/2826 f 1451/5619/2826 1458/5620/2831 1457/5621/2830 f 1459/5622/2832 1449/5612/2824 1457/5618/2830 f 1449/5612/2824 1459/5622/2832 1453/5616/2828 f 1459/5623/2832 1460/5624/2833 1456/5608/2821 f 1461/5625/2834 1459/5623/2832 1457/5621/2830 f 1460/5624/2833 1461/5625/2834 1463/5626/2835 f 1460/5624/2833 1463/5626/2835 1447/5607/2820 f 1464/5627/2836 1462/5628/2837 1465/5629/2838 f 1391/5541/2767 1463/5626/2835 1464/5627/2836 f 1464/5627/2836 1389/5539/2765 1391/5541/2767 f 1465/5629/2838 1466/5630/2839 1387/5536/2762 f 1465/5629/2838 1387/5536/2762 1389/5539/2765 f 1465/5629/2838 1467/5631/2840 1475/5632/2841 f 1465/5629/2838 1475/5632/2841 1466/5630/2839 f 1462/5628/2837 1451/5619/2826 1468/5633/2842 f 1468/5634/2842 1450/5613/2825 1469/5635/2843 f 1473/5636/2844 1469/5635/2843 1470/5637/2845 f 1474/5638/2846 1468/5633/2842 1473/5639/2844 f 1474/5638/2846 1475/5632/2841 1467/5631/2840 f 1475/5632/2841 1474/5638/2846 1476/5640/2847 f 1476/5640/2847 1474/5638/2846 1477/5641/2848 f 1477/5641/2848 1473/5639/2844 1472/5642/2849 f 1471/5643/2850 1478/5644/2851 1472/5642/2849 f 1471/5643/2850 1479/5645/2852 1482/5646/2853 f 1384/5533/2759 1484/5537/2763 1385/5534/2760 f 1383/5532/2758 1385/5534/2760 1483/5647/2854 f 1476/5640/2847 1484/5537/2763 1466/5630/2839 f 1485/5648/2855 1472/5642/2849 1478/5644/2851 f 1484/5537/2763 1485/5648/2855 1481/5649/2856 f 1481/5649/2856 1485/5648/2855 1486/5650/2857 f 1487/5651/2858 1478/5644/2851 1480/5652/2859 f 1478/5644/2851 1487/5651/2858 1488/5653/2860 f 1385/5534/2760 1486/5650/2857 1489/5654/2861 f 1488/5653/2860 1490/5655/2862 1489/5654/2861 f 1487/5651/2858 1491/5656/2863 1492/5657/2864 f 1491/5658/2863 1482/5659/2853 1496/5660/2865 f 1491/5656/2863 1480/5652/2859 1482/5646/2853 f 1498/5661/2866 1496/5660/2865 1482/5659/2853 f 1498/5661/2866 1499/5662/2867 1500/5663/2868 f 1498/5661/2866 1314/5664/2690 1499/5662/2867 f 1498/5661/2866 1482/5659/2853 1479/5665/2852 f 1315/5666/2689 1498/5661/2866 1501/5667/2869 f 1470/5637/2845 1315/5666/2689 1501/5667/2869 f 1502/5668/2870 1470/5637/2845 1469/5635/2843 f 1502/5668/2870 1315/5666/2689 1470/5637/2845 f 1502/5668/2870 1469/5635/2843 1450/5613/2825 f 1502/5668/2870 1450/5613/2825 1503/5669/2871 f 1503/5670/2871 1316/5431/2681 1502/5671/2870 f 1452/5615/2827 1317/5672/2691 1503/5669/2871 f 1317/5441/2691 1452/5673/2827 1454/5674/2829 f 1363/5505/2738 1317/5441/2691 1504/5675/2872 f 1455/5676/2823 1504/5677/2872 1454/5678/2829 f 1504/5679/2872 1448/5680/2822 1363/5681/2738 f 1448/5680/2822 1308/5682/2737 1363/5681/2738 f 1505/5683/2873 1365/5684/2740 1364/5685/2739 f 1505/5686/2873 1367/5509/2741 1365/5508/2740 f 1434/5591/2803 1506/5687/2874 1436/5592/2810 f 1506/5687/2874 1434/5591/2803 1427/5576/2797 f 1427/5688/2797 1369/5689/2743 1506/5690/2874 f 1507/5691/2875 1424/5568/2792 1508/5692/2876 f 1371/5514/2745 1508/5693/2876 1372/5515/2746 f 1508/5692/2876 1421/5567/2791 1509/5694/2877 f 1509/5695/2877 1510/5696/2878 1372/5515/2746 f 1510/5696/2878 1419/5697/2787 1850/5698/2879 f 1357/5699/2730 1514/5700/2880 1361/5701/2735 f 1512/5702/2881 1384/5533/2759 1382/5531/2757 f 1512/5702/2881 1382/5531/2757 1381/5530/2756 f 1511/5703/2882 1514/5700/2880 1384/5533/2759 f 1514/5700/2880 1358/5704/2734 1360/5498/2733 f 1516/5705/2883 1518/5706/2884 1517/5707/2885 f 1402/5545/2771 1401/5544/2770 1518/5706/2884 f 1518/5706/2884 1401/5544/2770 1405/5708/2886 f 1519/5709/2887 1520/5710/2888 1517/5707/2885 f 1517/5707/2885 1520/5710/2888 1516/5705/2883 f 1521/5711/2889 1519/5709/2887 1517/5707/2885 f 1521/5712/2889 1517/5713/2885 1405/5714/2886 f 1596/5715/2890 1523/5716/2891 1402/5545/2771 f 1402/5545/2771 1524/5717/2892 1596/5715/2890 f 1525/5718/2893 1522/5719/2894 1521/5712/2889 f 1521/5712/2889 1526/5720/2895 1525/5718/2893 f 1407/5549/2775 1526/5720/2895 1405/5714/2886 f 1397/5548/2774 1399/5721/2896 1526/5720/2895 f 1395/5587/2806 1394/5722/2897 1399/5721/2896 f 1532/5723/2898 1394/5722/2897 1531/5724/2899 f 1534/5725/2900 1497/5726/2901 1500/5663/2868 f 1534/5725/2900 1500/5663/2868 1535/5727/2902 f 1535/5727/2902 1500/5663/2868 1499/5728/2867 f 1313/5438/2688 1536/5729/2903 1535/5730/2902 f 1535/5730/2902 1537/5731/2904 1538/5732/2905 f 1534/5725/2900 1539/5733/2906 1540/5734/2907 f 1534/5725/2900 1540/5734/2907 1497/5726/2901 f 1497/5726/2901 1541/5735/2908 1493/5736/2909 f 1541/5737/2908 1540/5738/2907 1539/5739/2906 f 1494/5740/2910 1493/5741/2909 1542/5742/2911 f 1541/5737/2908 1543/5743/2912 1544/5744/2913 f 1544/5744/2913 1542/5745/2911 1541/5737/2908 f 1541/5737/2908 1546/5746/2914 1543/5743/2912 f 1547/5747/2915 1534/5748/2900 1538/5732/2905 f 1548/5749/2916 1549/5750/2917 1550/5751/2918 f 1548/5749/2916 1538/5732/2905 1551/5752/2919 f 1550/5753/2918 1552/5754/2920 1553/5755/2921 f 1555/5756/2922 1556/5757/2923 1554/5758/2924 f 1557/5759/2925 1556/5757/2923 1555/5756/2922 f 1494/5740/2910 1558/5760/2926 1557/5761/2925 f 1557/5761/2925 1495/5762/2927 1494/5740/2910 f 1558/5760/2926 1542/5742/2911 1544/5763/2913 f 1553/5755/2921 1556/5757/2923 1559/5764/2928 f 1560/5765/2929 1539/5739/2906 1547/5766/2915 f 1560/5765/2929 1547/5766/2915 1548/5767/2916 f 1560/5768/2929 1550/5753/2918 1553/5755/2921 f 1560/5765/2929 1546/5746/2914 1539/5739/2906 f 1561/5769/2930 1492/5657/2864 1495/5762/2927 f 1561/5769/2930 1495/5762/2927 1562/5770/2931 f 1490/5655/2862 1492/5657/2864 1561/5769/2930 f 1562/5770/2931 1495/5762/2927 1557/5761/2925 f 1537/5731/2904 1563/5771/2932 1551/5752/2919 f 1551/5752/2919 1563/5771/2932 1549/5750/2917 f 1537/5731/2904 1551/5752/2919 1538/5732/2905 f 1549/5772/2917 1563/5773/2932 1564/5774/2933 f 1554/5758/2924 1552/5754/2920 1565/5775/2934 f 1566/5776/2935 1568/5777/2936 1569/5778/2937 f 1569/5778/2937 1567/5779/2938 1566/5776/2935 f 1489/5654/2861 1490/5655/2862 1569/5780/2937 f 1571/5781/2939 1569/5778/2937 1568/5777/2936 f 1383/5532/2758 1572/5782/2940 1379/5528/2754 f 1489/5654/2861 1570/5783/2941 1574/5784/2942 f 1575/5785/2943 1379/5786/2754 1572/5787/2940 f 1577/5788/2944 1381/5530/2756 1576/5789/2945 f 1564/5774/2933 1578/5790/2946 1579/5791/2947 f 1582/5792/2948 1580/5793/2949 1305/5435/2685 f 1582/5792/2948 1305/5435/2685 1583/5413/2664 f 1563/5771/2932 1537/5731/2904 1536/5729/2903 f 1573/5794/2950 1581/5795/2951 1582/5796/2948 f 1581/5795/2951 1573/5794/2950 1574/5797/2942 f 1581/5798/2951 1574/5799/2942 1570/5800/2941 f 1583/5413/2664 1290/5412/2663 1584/5801/2952 f 1584/5802/2952 1380/5803/2755 1583/5804/2664 f 1377/5805/2752 1280/5806/2953 1585/5807/2954 f 1585/5808/2954 1280/5809/2953 1586/5810/2955 f 1576/5789/2945 1587/5811/2956 1577/5788/2944 f 1587/5811/2956 1576/5789/2945 1586/5812/2955 f 1362/5813/2736 1513/5814/2957 1577/5788/2944 f 1577/5788/2944 1587/5815/2956 1362/5813/2736 f 1513/5814/2957 1362/5816/2736 1512/5702/2881 f 1359/5817/2732 1392/5818/2768 1388/5819/2764 f 1589/5820/2958 1392/5818/2768 1359/5817/2732 f 1392/5821/2768 1589/5822/2958 1588/5823/2959 f 1353/5490/2727 1589/5824/2958 1359/5825/2732 f 1588/5826/2959 1348/5486/2723 1532/5827/2898 f 1348/5486/2723 1533/5828/2960 1532/5827/2898 f 1347/5483/2721 1530/5829/2961 1533/5830/2960 f 1590/5831/2962 1529/5832/2963 1530/5833/2961 f 1591/5834/2964 1528/5835/2965 1529/5836/2963 f 1591/5837/2964 1529/5838/2963 1345/5839/2719 f 1592/5840/2966 1341/5841/2715 1344/5842/2717 f 1592/5840/2966 1344/5842/2717 1343/5843/2718 f 1527/5844/2967 1528/5845/2965 1592/5840/2966 f 1335/5467/2710 1336/5466/2709 1516/5846/2883 f 1329/5462/2706 1594/5847/2968 1330/5463/2707 f 1515/5848/2969 1518/5706/2884 1329/5849/2706 f 1527/5844/2967 1592/5840/2966 1343/5843/2718 f 1522/5850/2894 1527/5844/2967 1343/5843/2718 f 1595/5851/2970 1343/5852/2718 1339/5853/2713 f 1595/5851/2970 1519/5854/2887 1522/5855/2894 f 1524/5856/2892 1515/5857/2969 1328/5461/2705 f 1255/5858/2633 1326/5859/2704 1253/5860/2630 f 1253/5860/2630 1326/5859/2704 1324/5456/2701 f 1332/5459/2703 1326/5460/2704 1598/5861/2971 f 1598/5861/2971 1599/5862/2972 1332/5459/2703 f 1600/5863/2973 1601/5864/2974 1602/5865/2975 f 1602/5865/2975 1601/5864/2974 1603/5866/2976 f 1607/5379/2632 1605/5867/2977 1608/5868/2978 f 1604/5869/2979 1609/5870/2980 1606/5871/2981 f 1607/5379/2632 1254/5378/2631 1609/5870/2980 f 1600/5872/2973 1610/5873/2982 1601/5874/2974 f 1609/5870/2980 1611/5875/2983 1606/5871/2981 f 1609/5870/2980 1254/5378/2631 1260/5876/2984 f 1260/5876/2984 1612/5877/2985 1609/5870/2980 f 1603/5878/2976 1601/5874/2974 1613/5879/2986 f 1616/5880/2987 1617/5881/2988 1615/5882/2989 f 1618/5883/2990 1620/5884/2991 1616/5885/2987 f 1618/5886/2990 1619/5887/2992 1621/5888/2993 f 1623/5889/2994 1624/5890/2995 1625/5891/2996 f 1627/5892/2997 1629/5893/2998 1626/5894/2999 f 1626/5894/2999 1629/5893/2998 1625/5891/2996 f 1628/5895/3000 1629/5893/2998 1627/5892/2997 f 1627/5892/2997 1630/5896/3001 1628/5895/3000 f 1633/5897/3002 1631/5898/3003 1628/5895/3000 f 1601/5874/2974 1610/5873/2982 1636/5899/3004 f 1638/5900/3005 1613/5879/2986 1637/5901/3006 f 1638/5900/3005 1619/5887/2992 1616/5880/2987 f 1639/5902/3007 1622/5903/3008 1619/5887/2992 f 1622/5903/3008 1624/5890/2995 1623/5889/2994 f 1640/5904/3009 1627/5892/2997 1626/5894/2999 f 1630/5896/3001 1627/5892/2997 1641/5905/3010 f 1630/5896/3001 1635/5906/3011 1634/5907/3012 f 1292/5908/2751 1612/5877/2985 1260/5876/2984 f 1612/5877/2985 1611/5875/2983 1609/5870/2980 f 1611/5875/2983 1643/5909/3013 1644/5910/3014 f 1647/5911/3015 1610/5873/2982 1646/5912/3016 f 1646/5912/3016 1600/5872/2973 1645/5913/3017 f 1648/5914/3018 1610/5915/2982 1647/5916/3015 f 1644/5917/3014 1645/5913/3017 1611/5918/2983 f 1611/5875/2983 1645/5919/3017 1600/5863/2973 f 1638/5900/3005 1637/5901/3006 1649/5920/3019 f 1649/5920/3019 1639/5902/3007 1638/5900/3005 f 1650/5921/3020 1622/5903/3008 1639/5902/3007 f 1640/5904/3009 1652/5922/3021 1654/5923/3022 f 1653/5924/3023 1641/5905/3010 1640/5904/3009 f 1655/5925/3024 1653/5924/3023 1656/5926/3025 f 1650/5921/3020 1658/5927/3026 1657/5928/3027 f 1651/5929/3028 1657/5928/3027 1666/5930/3029 f 1666/5930/3029 1654/5923/3022 1651/5929/3028 f 1654/5923/3022 1660/5931/3030 1656/5926/3025 f 1654/5923/3022 1656/5926/3025 1653/5924/3023 f 1661/5932/3031 1660/5931/3030 1662/5933/3032 f 1660/5931/3030 1663/5934/3033 1662/5933/3032 f 1663/5934/3033 1665/5935/3034 1664/5936/3035 f 1668/5937/3036 1617/5938/2988 1620/5884/2991 f 1614/5939/3037 1615/5882/2989 1670/5940/3038 f 1603/5878/2976 1691/5941/3039 1602/5942/2975 f 1604/5943/2979 1672/5944/3040 1605/5945/2977 f 1672/5944/3040 1674/5946/3041 1605/5945/2977 f 1605/5945/2977 1675/5947/3042 1608/5948/2978 f 1674/5946/3041 1676/5949/3043 1675/5947/3042 f 1675/5950/3042 1676/5951/3043 1677/5952/3044 f 1677/5952/3044 1678/5953/3045 1679/5954/3046 f 1675/5950/3042 1677/5952/3044 1680/5955/3047 f 1676/5951/3043 1681/5956/3048 1678/5953/3045 f 1682/5957/3049 1676/5951/3043 1683/5958/3050 f 1673/5959/3051 1683/5958/3050 1676/5951/3043 f 1683/5958/3050 1673/5959/3051 1687/5960/3052 f 1677/5952/3044 1679/5954/3046 1684/5961/3053 f 1685/5962/3054 1686/5963/3055 1687/5960/3052 f 1691/5941/3039 1688/5964/3056 1671/5965/3057 f 1688/5964/3056 1690/5966/3058 1689/5967/3059 f 1614/5939/3037 1692/5968/3060 1694/5969/3061 f 1692/5968/3060 1614/5939/3037 1670/5940/3038 f 1691/5970/3039 1693/5971/3062 1690/5972/3058 f 1693/5973/3062 1691/5941/3039 1694/5969/3061 f 1692/5968/3060 1670/5940/3038 1695/5974/3063 f 1695/5974/3063 1670/5940/3038 1617/5881/2988 f 1617/5881/2988 1696/5975/3064 1695/5974/3063 f 1669/5976/3065 1696/5975/3064 1617/5881/2988 f 1668/5937/3036 1697/5977/3066 1669/5978/3065 f 1697/5977/3066 1668/5937/3036 1699/5979/3067 f 1699/5979/3067 1701/5980/3068 1698/5981/3069 f 1701/5980/3068 1700/5982/3070 1704/5983/3071 f 1704/5983/3071 1703/5984/3072 1701/5980/3068 f 1705/5985/3073 1706/5986/3074 1704/5983/3071 f 1707/5987/3075 1708/5988/3076 1703/5984/3072 f 1707/5987/3075 1704/5983/3071 1706/5986/3074 f 1710/5989/3077 1703/5990/3072 1708/5991/3076 f 1707/5992/3075 1706/5993/3074 1711/5994/3078 f 1705/5985/3073 1623/5995/2994 1625/5996/2996 f 1705/5985/3073 1711/5997/3078 1706/5986/3074 f 1625/5996/2996 1712/5998/3079 1711/5997/3078 f 1657/5928/3027 1658/5927/3026 1713/5999/3080 f 1658/5927/3026 1650/5921/3020 1649/5920/3019 f 1714/6000/3081 1649/5920/3019 1716/6001/3082 f 1716/6001/3082 1715/6002/3083 1714/6000/3081 f 1715/6003/3083 1716/6004/3082 1717/6005/3084 f 1718/6006/3085 1717/6005/3084 1716/6004/3082 f 1648/6007/3018 1716/6001/3082 1637/5901/3006 f 1646/5912/3016 1717/6008/3084 1718/6009/3085 f 1646/5912/3016 1720/6010/3086 1719/6011/3087 f 1721/6012/3088 1645/6013/3017 1722/6014/3089 f 1722/6015/3089 1645/5913/3017 1644/5917/3014 f 1723/6016/3090 1722/6014/3089 1724/6017/3091 f 1643/6018/3013 1722/6014/3089 1644/6019/3014 f 1376/5523/2749 1723/6016/3090 1724/6017/3091 f 1724/6017/3091 1292/5525/2751 1376/5523/2749 f 1725/6020/3092 1635/6021/3011 1727/6022/3093 f 1727/6023/3093 1728/6024/3094 1725/6025/3092 f 1728/6024/3094 1729/6026/3095 1726/6027/3096 f 1730/6028/3097 1731/6029/3098 1728/6024/3094 f 1728/6024/3094 1731/6029/3098 1729/6026/3095 f 1734/6030/3099 1732/6031/3100 1735/6032/3101 f 1736/6033/3102 1737/6034/3103 1735/6032/3101 f 1738/6035/3104 1739/6036/3105 1736/6037/3102 f 1739/6036/3105 1738/6035/3104 1740/6038/3106 f 1745/6039/3107 1746/6040/3108 1743/6041/3109 f 1745/6039/3107 1743/6041/3109 1744/6042/3110 f 1747/6043/3111 1403/5546/2772 1523/5716/2891 f 1523/5716/2891 1748/6044/3112 1747/6043/3111 f 1747/6043/3111 1749/6045/3113 1750/6046/3114 f 1745/6039/3107 1751/6047/3115 1752/6048/3116 f 1403/5546/2772 1747/6043/3111 1753/6049/3117 f 1753/6049/3117 1747/6043/3111 1755/6050/3118 f 1755/6050/3118 1750/6046/3114 1754/6051/3119 f 1416/6052/2784 1410/5553/2778 1756/6053/3120 f 1755/6050/3118 1756/6053/3120 1753/6049/3117 f 1756/6054/3120 1754/6055/3119 1757/6056/3121 f 1417/5561/2785 1759/6057/3122 1415/5562/2786 f 1417/5561/2785 1416/5560/2784 1758/6058/3123 f 1417/5561/2785 1758/6058/3123 1760/6059/3124 f 1419/5563/2787 1759/6057/3122 1761/6060/3125 f 1759/6057/3122 1419/5563/2787 1415/5562/2786 f 1760/6059/3124 1761/6060/3125 1759/6057/3122 f 1762/6061/3126 1764/6062/3127 1761/6060/3125 f 1761/6060/3125 1760/6059/3124 1762/6061/3126 f 1757/6056/3121 1763/6063/3128 1762/6061/3126 f 1751/6047/3115 1754/6064/3119 1750/6065/3114 f 1751/6047/3115 1766/6066/3129 1754/6067/3119 f 1763/6063/3128 1767/6068/3130 1764/6062/3127 f 1768/6069/3131 1763/6063/3128 1769/6070/3132 f 1765/6071/3133 1769/6072/3132 1763/6073/3128 f 1744/6042/3110 1771/6074/3134 1770/6075/3135 f 1744/6042/3110 1770/6075/3135 1766/6066/3129 f 1772/6076/3136 1743/6041/3109 1742/6077/3137 f 1771/6074/3134 1773/6078/3138 1770/6075/3135 f 1774/6079/3139 1769/6072/3132 1773/6078/3138 f 1768/6069/3131 1774/6080/3139 1767/6068/3130 f 1785/6081/3140 1742/6077/3137 1740/6038/3106 f 1773/6082/3138 1777/6083/3141 1774/6080/3139 f 1771/6074/3134 1779/6084/3142 1773/6078/3138 f 1779/6085/3142 1772/6086/3136 1780/6087/3143 f 1773/6078/3138 1779/6084/3142 1777/6088/3141 f 1780/6087/3143 1772/6086/3136 1775/6089/3144 f 1782/6090/3145 1778/6091/3146 1777/6083/3141 f 1782/6092/3145 1780/6093/3143 1776/6094/3147 f 1776/6094/3147 1781/6095/3148 1782/6092/3145 f 1786/6096/3149 1787/6097/3150 1776/6094/3147 f 1776/6094/3147 1796/6098/3151 1781/6095/3148 f 1789/6099/3152 1790/6100/3153 1791/6101/3154 f 1790/6100/3153 1792/6102/3155 1793/6103/3156 f 1793/6103/3156 1792/6102/3155 1794/6104/3157 f 1795/6105/3158 1796/6106/3151 1799/6107/3159 f 1795/6108/3158 1783/6109/3160 1796/6098/3151 f 1798/6110/3161 1791/6101/3154 1797/6111/3162 f 1799/6107/3159 1790/6100/3153 1793/6103/3156 f 1800/6112/3163 1799/6113/3159 1796/6098/3151 f 1801/6114/3164 1802/6115/3165 1798/6116/3161 f 1800/6112/3163 1801/6114/3164 1799/6113/3159 f 1803/6117/3166 1800/6112/3163 1787/6097/3150 f 1787/6097/3150 1800/6112/3163 1796/6098/3151 f 1804/6118/3167 1802/6115/3165 1801/6114/3164 f 1803/6117/3166 1738/6035/3104 1804/6118/3167 f 1804/6118/3167 1736/6037/3102 1805/6119/3168 f 1735/6120/3101 1805/6121/3168 1736/6122/3102 f 1805/6119/3168 1807/6123/3169 1802/6115/3165 f 1815/6124/3170 1805/6119/3168 1806/6125/3171 f 1802/6115/3165 1791/6126/3154 1798/6116/3161 f 1808/6127/3172 1789/6099/3152 1791/6101/3154 f 1810/6128/3173 1812/6129/3174 1813/6130/3175 f 1812/6131/3174 1809/6132/3176 1808/6133/3172 f 1809/6134/3176 1812/6135/3174 1811/6136/3177 f 1814/6137/3178 1808/6138/3172 1807/6123/3169 f 1815/6124/3170 1806/6125/3171 1816/6139/3179 f 1815/6124/3170 1814/6137/3178 1807/6123/3169 f 1814/6137/3178 1815/6124/3170 1816/6139/3179 f 1810/6128/3173 1818/6140/3180 1819/6141/3181 f 1824/6142/3182 1732/6031/3100 1733/6143/3183 f 1733/6143/3183 1821/6144/3184 1824/6142/3182 f 1733/6143/3183 1730/6028/3097 1823/6145/3185 f 1825/6146/3186 1817/6147/3187 1824/6142/3182 f 1813/6130/3175 1825/6146/3186 1818/6140/3180 f 1826/6148/3188 1818/6140/3180 1825/6146/3186 f 1818/6140/3180 1828/6149/3189 1819/6141/3181 f 1733/6143/3183 1826/6148/3188 1821/6144/3184 f 1829/6150/3190 1827/6151/3191 1826/6148/3188 f 1826/6148/3188 1733/6143/3183 1829/6150/3190 f 1828/6149/3189 1831/6152/3192 1819/6141/3181 f 1831/6152/3192 1828/6149/3189 1832/6153/3193 f 1831/6152/3192 1833/6154/3194 1834/6155/3195 f 1822/6156/3196 1831/6157/3192 1836/6158/3197 f 1837/6159/3198 1836/6158/3197 1835/6160/3199 f 1836/6158/3197 1837/6159/3198 1839/6161/3200 f 1841/6162/3201 1820/6163/3202 1838/6164/3203 f 1665/6165/3034 1838/6164/3203 1664/6166/3035 f 1841/6162/3201 1811/6136/3177 1820/6163/3202 f 1843/6167/3204 1666/5930/3029 1667/6168/3205 f 1843/6169/3204 1792/6102/3155 1789/6099/3152 f 1844/6170/3206 1794/6171/3157 1667/6168/3205 f 1844/6172/3206 1788/6173/3207 1795/6174/3158 f 1714/6175/3081 1784/6176/3208 1788/6177/3207 f 1845/6178/3209 1784/6176/3208 1714/6175/3081 f 1845/6179/3209 1717/6005/3084 1778/6180/3146 f 1778/6091/3146 1717/6181/3084 1846/6182/3210 f 1767/6068/3130 1719/6183/3087 1847/6184/3211 f 1847/6184/3211 1764/6062/3127 1767/6068/3130 f 1847/6185/3211 1720/6186/3086 1848/6187/3212 f 1721/6012/3088 1848/6187/3212 1720/6186/3086 f 1848/6188/3212 1761/6060/3125 1764/6062/3127 f 1848/6187/3212 1721/6012/3088 1849/6189/3213 f 1849/6189/3213 1721/6012/3088 1723/6016/3090 f 1850/6190/2879 1761/6060/3125 1849/6191/3213 f 1375/5522/2748 1850/5698/2879 1723/6016/3090 f 1711/5994/3078 1851/6192/3214 1854/6193/3215 f 1854/6193/3215 1707/5992/3075 1711/5994/3078 f 1732/6031/3100 1852/6194/3216 1731/6029/3098 f 1854/6193/3215 1851/6192/3214 1732/6031/3100 f 1854/6193/3215 1734/6030/3099 1710/5989/3077 f 1737/6034/3103 1710/5989/3077 1734/6030/3099 f 1710/5989/3077 1737/6034/3103 1709/6195/3217 f 1858/6196/3218 1856/6197/3219 1857/6198/3220 f 1747/6043/3111 1748/6044/3112 1858/6196/3218 f 1747/6043/3111 1858/6196/3218 1749/6045/3113 f 1859/6199/3221 1860/6200/3222 1857/6198/3220 f 1859/6199/3221 1857/6198/3220 1856/6197/3219 f 1861/6201/3223 1860/6202/3222 1862/6203/3224 f 1857/6198/3220 1861/6204/3223 1749/6045/3113 f 1523/5716/2891 1863/6205/3225 1748/6044/3112 f 1864/6206/3226 1866/6207/3227 1865/6208/3228 f 1861/6201/3223 1865/6209/3228 1749/6210/3113 f 1865/6209/3228 1752/6048/3116 1749/6210/3113 f 1746/6040/3108 1745/6039/3107 1865/6209/3228 f 1865/6209/3228 1868/6211/3229 1746/6040/3108 f 1741/6212/3230 1742/6077/3137 1746/6040/3108 f 1746/6040/3108 1869/6213/3231 1741/6212/3230 f 1741/6212/3230 1871/6214/3232 1870/6215/3233 f 1872/6216/3234 1741/6217/3230 1869/6218/3231 f 1839/6161/3200 1873/6219/3235 1874/6220/3236 f 1839/6221/3200 1874/6222/3236 1840/6223/3237 f 1663/5934/3033 1840/6223/3237 1874/6222/3236 f 1874/6222/3236 1876/6224/3238 1875/6225/3239 f 1878/6226/3240 1873/6219/3235 1837/6159/3198 f 1878/6227/3240 1880/6228/3241 1879/6229/3242 f 1880/6230/3241 1837/6159/3198 1835/6160/3199 f 1882/6231/3243 1880/6228/3241 1883/6232/3244 f 1883/6232/3244 1884/6233/3245 1882/6231/3243 f 1885/6234/3246 1880/6228/3241 1882/6231/3243 f 1886/6235/3247 1873/6236/3235 1879/6237/3242 f 1887/6238/3248 1888/6239/3249 1889/6240/3250 f 1887/6238/3248 1877/6241/3251 1886/6235/3247 f 1890/6242/3252 1891/6243/3253 1888/6244/3249 f 1891/6243/3253 1890/6242/3252 1892/6245/3254 f 1894/6246/3255 1904/6247/3256 1893/6248/3257 f 1895/6249/3258 1896/6250/3259 1894/6251/3255 f 1894/6251/3255 1896/6250/3259 1901/6252/3260 f 1897/6253/3261 1834/6155/3195 1896/6250/3259 f 1895/6254/3258 1892/6245/3254 1898/6255/3262 f 1898/6255/3262 1884/6256/3245 1895/6254/3258 f 1899/6257/3263 1890/6258/3252 1887/6259/3248 f 1890/6242/3252 1899/6260/3263 1892/6245/3254 f 1892/6261/3254 1899/6257/3263 1898/6262/3262 f 1885/6234/3246 1899/6257/3263 1879/6229/3242 f 1833/6154/3194 1900/6263/3264 1901/6252/3260 f 1830/6264/3265 1832/6153/3193 1828/6149/3189 f 1833/6154/3194 1901/6252/3260 1896/6250/3259 f 1902/6265/3266 1876/6224/3238 1889/6240/3250 f 1889/6240/3250 1876/6224/3238 1877/6241/3251 f 1891/6243/3253 1893/6248/3257 1904/6247/3256 f 1901/6266/3260 1904/6247/3256 1894/6246/3255 f 1906/6267/3267 1901/6268/3260 1900/6269/3264 f 1907/6270/3268 1905/6271/3269 1908/6272/3270 f 1906/6267/3267 1908/6272/3270 1905/6271/3269 f 1829/6150/3190 1913/6273/3271 1908/6274/3270 f 1907/6270/3268 1903/6275/3272 1904/6247/3256 f 1910/6276/3273 1823/6145/3185 1730/6028/3097 f 1910/6276/3273 1730/6028/3097 1728/6024/3094 f 1910/6277/3273 1911/6278/3274 1823/6279/3185 f 1913/6273/3271 1829/6150/3190 1912/6280/3275 f 1912/6281/3275 1829/6282/3190 1823/6279/3185 f 1914/6283/3276 1728/6284/3094 1727/6022/3093 f 1729/6026/3095 1916/6285/3277 1915/6286/3278 f 1903/6275/3272 1918/6287/3279 1902/6288/3266 f 1917/6289/3280 1909/6290/3281 1913/6291/3271 f 1917/6292/3280 1920/6293/3282 1919/6294/3283 f 1655/5925/3024 1921/6295/3284 1922/6296/3285 f 1922/6296/3285 1641/5905/3010 1655/5925/3024 f 1662/5933/3032 1919/6294/3283 1661/5932/3031 f 1919/6294/3283 1662/5933/3032 1918/6297/3279 f 1661/5932/3031 1919/6294/3283 1655/5925/3024 f 1920/6298/3282 1917/6289/3280 1913/6291/3271 f 1912/6299/3275 1920/6298/3282 1913/6291/3271 f 1920/6300/3282 1911/6278/3274 1921/6301/3284 f 1922/6296/3285 1914/6302/3276 1727/6303/3093 f 1914/6283/3276 1921/6301/3284 1911/6278/3274 f 1642/6304/3286 1922/6296/3285 1923/6305/3287 f 1642/6304/3286 1923/6305/3287 1635/5906/3011 f 1725/6306/3092 1628/6307/3000 1634/6308/3012 f 1725/6020/3092 1634/6309/3012 1635/6021/3011 f 1725/6310/3092 1726/6311/3096 1924/6312/3288 f 1725/6313/3092 1632/6314/3289 1628/6315/3000 f 1924/6312/3288 1726/6311/3096 1915/6316/3278 f 1924/6317/3288 1915/6318/3278 1925/6319/3290 f 1926/6320/3291 1631/6321/3003 1633/6322/3002 f 1926/6323/3291 1915/6286/3278 1916/6285/3277 f 1926/6324/3291 1629/6325/2998 1631/6326/3003 f 1712/5998/3079 1629/6327/2998 1926/6328/3291 f 1926/6329/3291 1916/6285/3277 1712/6330/3079 f 1852/6194/3216 1711/5994/3078 1712/6331/3079 f 1870/6215/3233 1927/6332/3292 1928/6333/3293 f 1870/6215/3233 1928/6333/3293 1739/6036/3105 f 1929/6334/3294 1702/6335/3295 1703/6336/3072 f 1929/6337/3294 1703/5990/3072 1709/6195/3217 f 1929/6338/3294 1928/6339/3293 1927/6340/3292 f 1927/6341/3292 1701/5980/3068 1702/6335/3295 f 1927/6340/3292 1702/6342/3295 1929/6338/3294 f 1927/6341/3292 1698/5981/3069 1701/5980/3068 f 1698/5981/3069 1927/6341/3292 1871/6343/3232 f 1930/6344/3296 1669/6345/3065 1697/6346/3066 f 1930/6344/3296 1697/6346/3066 1869/6218/3231 f 1930/6347/3296 1868/6348/3229 1696/6349/3064 f 1695/6350/3063 1696/6349/3064 1868/6348/3229 f 1932/6351/3297 1692/6352/3060 1931/6353/3298 f 1932/6351/3297 1931/6353/3298 1867/6354/3299 f 1859/6355/3221 1856/6356/3219 1686/5963/3055 f 1686/5963/3055 1933/6357/3300 1859/6355/3221 f 1683/5958/3050 1687/5960/3052 1856/6356/3219 f 1683/5958/3050 1856/6356/3219 1934/6358/3301 f 1683/6359/3050 1934/6360/3301 1682/6361/3049 f 1934/6362/3301 1858/6363/3218 1681/6364/3048 f 1935/6365/3302 1693/5971/3062 1862/6366/3224 f 1935/6365/3302 1689/6367/3059 1690/5972/3058 f 1860/6368/3222 1688/6369/3056 1689/6367/3059 f 1933/6357/3300 1686/5963/3055 1685/5962/3054 f 1933/6370/3300 1685/6371/3054 1688/6372/3056 f 1678/5953/3045 1681/5956/3048 1855/6373/3303 f 1679/6374/3046 1678/6375/3045 1863/6205/3225 f 1684/6376/3053 1523/5716/2891 1599/6377/2972 f 1684/6376/3053 1679/6374/3046 1523/5716/2891 f 1680/6378/3047 1255/5858/2633 1608/5948/2978 f 1680/6378/3047 1608/5948/2978 1675/5947/3042 f 1677/5952/3044 1684/5961/3053 1599/5862/2972 f 1680/5955/3047 1677/5952/3044 1598/5861/2971 f 1598/5861/2971 1597/6379/3304 1680/5955/3047 f 1246/5371/2626 1247/5389/2640 1244/5369/2624 f 1248/5372/2627 1245/5374/2625 1249/5384/2637 f 1249/5384/2637 1251/5375/2628 1248/5372/2627 f 1251/5375/2628 1249/5384/2637 1252/5387/2638 f 1251/5375/2628 1252/5387/2638 1254/5378/2631 f 1251/5375/2628 1607/5379/2632 1255/5380/2633 f 1244/5369/2624 1257/5382/2635 1245/5370/2625 f 1259/5388/2639 1260/5876/2984 1254/5378/2631 f 1262/5473/2714 1261/5390/2641 1247/5389/2640 f 1262/5473/2714 1263/5391/2642 1261/5390/2641 f 1264/5446/2692 1267/6380/2694 1265/5392/2643 f 1265/5392/2643 1263/5391/2642 1264/5446/2692 f 1266/5393/2644 1265/5392/2643 1267/6380/2694 f 1267/6380/2694 1269/5395/2646 1266/5393/2644 f 1271/5398/2649 1270/5396/2647 1269/5395/2646 f 1275/5402/2653 1277/5403/2654 1278/5411/2662 f 1281/6381/3305 1277/5403/2654 1279/5404/2655 f 1277/5403/2654 1281/6381/3305 1280/6382/2953 f 1244/5369/2624 1261/5390/2641 1284/5405/2656 f 1284/5405/2656 1261/5390/2641 1298/5407/2658 f 1286/5408/2659 1261/5390/2641 1265/5392/2643 f 1268/5394/2645 1287/5409/2660 1286/5408/2659 f 1286/5408/2659 1265/5392/2643 1268/5394/2645 f 1270/5396/2647 1271/5398/2649 1272/5397/2648 f 1275/5402/2653 1289/5429/2679 1288/5410/2661 f 1289/5429/2679 1278/5411/2662 1583/5413/2664 f 1278/5411/2662 1289/5429/2679 1275/5402/2653 f 1278/5411/2662 1277/5403/2654 1283/6383/3306 f 1278/5411/2662 1283/6383/3306 1282/5414/2665 f 1292/5908/2751 1259/5388/2639 1291/5417/2668 f 1292/5908/2751 1260/5876/2984 1259/5388/2639 f 1293/5415/2666 1249/5384/2637 1258/5383/2636 f 1249/5384/2637 1293/5415/2666 1259/5388/2639 f 1296/5418/2669 1295/5420/2671 1257/5382/2635 f 1256/5381/2634 1284/5405/2656 1298/5407/2658 f 1299/5422/2672 1286/5408/2659 1287/5409/2660 f 1287/5409/2660 1300/5424/2674 1299/5422/2672 f 1288/5410/2661 1304/5428/2678 1301/5425/2675 f 1301/5425/2675 1272/5397/2648 1288/5410/2661 f 1305/5435/2685 1306/5432/2682 1303/5427/2677 f 1289/5429/2679 1305/5435/2685 1303/5427/2677 f 1300/5424/2674 1307/5430/2680 1308/5504/2737 f 1307/5430/2680 1270/5396/2647 1302/5426/2676 f 1304/5428/2678 1310/5434/2684 1316/5431/2681 f 1302/5426/2676 1316/5431/2681 1307/5430/2680 f 1304/5428/2678 1306/5432/2682 1309/5433/2683 f 1309/5433/2683 1306/5432/2682 1311/5436/2686 f 1313/5438/2688 1499/6384/2867 1314/5440/2690 f 1315/5439/2689 1310/5434/2684 1313/5438/2688 f 1310/5434/2684 1315/5439/2689 1316/5431/2681 f 1262/5473/2714 1319/5445/2695 1263/5391/2642 f 1246/5371/2626 1321/5449/2698 1320/5448/2697 f 1323/5455/2700 1322/6385/2699 1321/5451/2698 f 1250/5454/2629 1253/5860/2630 1324/5456/2701 f 1323/5455/2700 1324/5456/2701 1325/6386/2702 f 1332/5459/2703 1327/6387/3307 1328/5461/2705 f 1325/5457/2702 1328/5461/2705 1329/5462/2706 f 1322/5465/2699 1325/5457/2702 1331/5464/2708 f 1325/5457/2702 1322/5465/2699 1323/6388/2700 f 1332/5459/2703 1333/6389/3308 1327/6387/3307 f 1320/5448/2697 1322/6390/2699 1336/5469/2709 f 1320/5448/2697 1334/5470/2711 1337/5471/2712 f 1337/5471/2712 1338/6391/3309 1339/5472/2713 f 1262/5473/2714 1344/5476/2717 1341/5474/2715 f 1262/5473/2714 1247/5389/2640 1340/5447/2696 f 1340/6392/2696 1339/5853/2713 1343/5852/2718 f 1267/5444/2694 1318/5443/2693 1347/5484/2721 f 1269/5492/2646 1267/5444/2694 1350/5487/2724 f 1349/5485/2722 1351/5488/2725 1350/5487/2724 f 1354/5491/2728 1351/5488/2725 1353/5490/2727 f 1355/5493/2729 1354/5491/2728 1356/5495/2731 f 1271/5398/2649 1269/5395/2646 1355/6393/2729 f 1357/5494/2730 1353/5490/2727 1358/5500/2734 f 1353/5490/2727 1357/5494/2730 1354/5491/2728 f 1355/6393/2729 1273/5399/2650 1271/5398/2649 f 1355/5493/2729 1356/5495/2731 1361/5501/2735 f 1276/6394/2652 1273/5502/2650 1362/5503/2736 f 1307/5430/2680 1317/5441/2691 1363/5505/2738 f 1299/5422/2672 1308/5504/2737 1364/5506/2739 f 1366/5423/2673 1364/5506/2739 1365/6395/2740 f 1368/6396/2742 1366/5507/2673 1367/5509/2741 f 1366/5423/2673 1368/5510/2742 1298/5407/2658 f 1296/5418/2669 1368/5510/2742 1367/5511/2741 f 1368/5510/2742 1296/5418/2669 1297/5419/2670 f 1370/5513/2744 1295/5420/2671 1296/5418/2669 f 1295/5420/2671 1370/5513/2744 1371/5518/2745 f 1371/5518/2745 1294/5421/2667 1295/5420/2671 f 1374/5524/2750 1373/5516/2747 1372/5515/2746 f 1373/5516/2747 1374/5524/2750 1291/5519/2668 f 1374/5524/2750 1376/5523/2749 1292/5525/2751 f 1377/5526/2752 1380/5529/2755 1282/6397/2665 f 1382/5531/2757 1385/5534/2760 1383/5532/2758 f 1379/5528/2754 1381/5530/2756 1382/5531/2757 f 1387/5536/2762 1466/5630/2839 1484/5537/2763 f 1389/5539/2765 1388/5538/2764 1392/5542/2768 f 1390/5540/2766 1393/5590/2809 1391/5541/2767 f 1393/5590/2809 1390/5540/2766 1394/5722/2897 f 1395/5587/2806 1393/5590/2809 1394/5722/2897 f 1395/5587/2806 1399/5721/2896 1396/5583/2802 f 1397/5548/2774 1398/5574/2796 1396/5583/2802 f 1397/5548/2774 1396/5583/2802 1399/5721/2896 f 1402/5545/2771 1523/5716/2891 1403/5546/2772 f 1401/5544/2770 1404/5552/2776 1405/5708/2886 f 1406/5547/2773 1398/5574/2796 1397/5548/2774 f 1407/5549/2775 1405/5714/2886 1404/5550/2776 f 1408/5551/2777 1409/5558/2782 1404/5552/2776 f 1410/5553/2778 1416/6052/2784 1411/6398/2779 f 1411/5554/2779 1413/5556/2781 1409/6399/2782 f 1410/5553/2778 1411/5557/2779 1408/5551/2777 f 1414/5559/2783 1411/5554/2779 1416/5560/2784 f 1415/5562/2786 1414/5559/2783 1417/5561/2785 f 1414/5559/2783 1415/5562/2786 1418/5566/2790 f 1414/5559/2783 1418/5566/2790 1412/5555/2780 f 1414/5559/2783 1412/5555/2780 1411/5554/2779 f 1418/5566/2790 1415/5562/2786 1420/5564/2788 f 1418/5566/2790 1420/5564/2788 1421/5567/2791 f 1423/5565/2789 1421/5567/2791 1424/5568/2792 f 1413/5556/2781 1423/5565/2789 1422/5569/2793 f 1423/5565/2789 1413/5556/2781 1412/5555/2780 f 1409/5575/2782 1413/5571/2781 1426/5573/2795 f 1406/5547/2773 1409/5575/2782 1426/5573/2795 f 1422/5569/2793 1424/5568/2792 1427/5576/2797 f 1429/5580/2799 1430/5581/2800 1425/5572/2794 f 1425/5572/2794 1422/5578/2793 1429/5580/2799 f 1425/5572/2794 1430/5581/2800 1426/5573/2795 f 1398/5574/2796 1430/5581/2800 1431/5596/2813 f 1432/5582/2801 1395/5587/2806 1396/5583/2802 f 1431/5596/2813 1432/5582/2801 1398/5574/2796 f 1431/5596/2813 1430/5581/2800 1433/5585/2804 f 1430/5581/2800 1429/5580/2799 1433/5585/2804 f 1428/5577/2798 1427/5576/2797 1434/5591/2803 f 1429/5580/2799 1428/5579/2798 1434/5584/2803 f 1395/5587/2806 1435/5586/2805 1445/5589/2808 f 1438/6400/2812 1439/5597/2814 1432/6401/2801 f 1433/5585/2804 1437/6402/2811 1438/5595/2812 f 1439/5597/2814 1435/5599/2805 1432/6401/2801 f 1442/5600/2815 1437/5593/2811 1436/5592/2810 f 1444/5609/2817 1442/5600/2815 1443/5601/2816 f 1438/5595/2812 1437/6402/2811 1442/5602/2815 f 1442/5602/2815 1440/5588/2807 1439/5605/2814 f 1445/5589/2808 1391/5541/2767 1393/5590/2809 f 1445/5589/2808 1440/5588/2807 1446/5606/2819 f 1440/5588/2807 1441/5604/2818 1456/5608/2821 f 1444/5609/2817 1443/5601/2816 1448/5610/2822 f 1449/5612/2824 1452/5615/2827 1450/5613/2825 f 1449/5612/2824 1453/5616/2828 1452/5615/2827 f 1455/5611/2823 1459/6403/2832 1456/6404/2821 f 1459/6403/2832 1455/5611/2823 1453/5616/2828 f 1455/6405/2823 1456/5608/2821 1444/5603/2817 f 1461/5625/2834 1458/5620/2831 1462/5628/2837 f 1458/5620/2831 1461/5625/2834 1457/5621/2830 f 1460/5624/2833 1459/5623/2832 1461/5625/2834 f 1447/5607/2820 1456/5608/2821 1460/5624/2833 f 1461/5625/2834 1464/5627/2836 1463/5626/2835 f 1464/5627/2836 1461/5625/2834 1462/5628/2837 f 1391/5541/2767 1447/5607/2820 1463/5626/2835 f 1464/5627/2836 1465/5629/2838 1389/5539/2765 f 1465/5629/2838 1462/5628/2837 1467/5631/2840 f 1462/5628/2837 1458/5620/2831 1451/5619/2826 f 1467/5631/2840 1462/5628/2837 1468/5633/2842 f 1468/5634/2842 1451/5614/2826 1450/5613/2825 f 1470/5637/2845 1479/5665/2852 1471/6406/2850 f 1471/5643/2850 1472/5642/2849 1473/5639/2844 f 1470/5637/2845 1471/6406/2850 1473/5636/2844 f 1473/5636/2844 1468/6407/2842 1469/5635/2843 f 1474/5638/2846 1467/5631/2840 1468/5633/2842 f 1475/5632/2841 1476/5640/2847 1466/5630/2839 f 1477/5641/2848 1474/5638/2846 1473/5639/2844 f 1471/5643/2850 1480/5652/2859 1478/5644/2851 f 1480/5652/2859 1471/5643/2850 1482/5646/2853 f 1385/5534/2760 1484/5537/2763 1481/5649/2856 f 1476/5640/2847 1477/5641/2848 1484/5537/2763 f 1485/5648/2855 1484/5537/2763 1477/5641/2848 f 1485/5648/2855 1477/5641/2848 1472/5642/2849 f 1486/5650/2857 1485/5648/2855 1478/5644/2851 f 1486/5650/2857 1478/5644/2851 1488/5653/2860 f 1385/5534/2760 1481/5649/2856 1486/5650/2857 f 1385/5534/2760 1489/5654/2861 1483/5647/2854 f 1489/5654/2861 1486/5650/2857 1488/5653/2860 f 1488/5653/2860 1487/5651/2858 1490/5655/2862 f 1487/5651/2858 1480/5652/2859 1491/5656/2863 f 1494/5740/2910 1491/5656/2863 1493/5741/2909 f 1491/5656/2863 1494/5740/2910 1495/5762/2927 f 1492/5657/2864 1491/5656/2863 1495/5762/2927 f 1491/5658/2863 1496/5660/2865 1493/5736/2909 f 1497/5726/2901 1493/5736/2909 1496/5660/2865 f 1496/5660/2865 1500/5663/2868 1497/5726/2901 f 1496/5660/2865 1498/5661/2866 1500/5663/2868 f 1501/5667/2869 1498/5661/2866 1479/5665/2852 f 1315/5666/2689 1314/5664/2690 1498/5661/2866 f 1501/5667/2869 1479/5665/2852 1470/5637/2845 f 1316/6408/2681 1315/5666/2689 1502/5668/2870 f 1503/5670/2871 1317/5441/2691 1316/5431/2681 f 1503/5669/2871 1450/5613/2825 1452/5615/2827 f 1504/5675/2872 1317/5441/2691 1454/5674/2829 f 1504/5679/2872 1455/6409/2823 1448/5680/2822 f 1364/6410/2739 1308/5682/2737 1448/5680/2822 f 1364/6411/2739 1448/6412/2822 1443/5601/2816 f 1443/5601/2816 1436/5592/2810 1505/6413/2873 f 1505/6413/2873 1364/6411/2739 1443/5601/2816 f 1505/5686/2873 1436/6414/2810 1367/5509/2741 f 1436/5592/2810 1506/5687/2874 1367/6415/2741 f 1369/6416/2743 1367/6415/2741 1506/5687/2874 f 1427/5576/2797 1507/5691/2875 1369/6416/2743 f 1370/6417/2744 1369/6418/2743 1507/6419/2875 f 1507/6420/2875 1508/5693/2876 1370/6421/2744 f 1507/5691/2875 1427/5576/2797 1424/5568/2792 f 1371/5514/2745 1370/6421/2744 1508/5693/2876 f 1508/5693/2876 1509/5695/2877 1372/5515/2746 f 1508/5692/2876 1424/5568/2792 1421/5567/2791 f 1509/5694/2877 1421/5567/2791 1420/5564/2788 f 1420/5564/2788 1419/5563/2787 1510/6422/2878 f 1510/6422/2878 1509/5694/2877 1420/5564/2788 f 1510/5696/2878 1850/5698/2879 1375/5522/2748 f 1375/5522/2748 1372/5515/2746 1510/5696/2878 f 1511/5703/2882 1512/5702/2881 1361/5701/2735 f 1357/5699/2730 1358/5704/2734 1514/5700/2880 f 1361/5701/2735 1514/5700/2880 1511/5703/2882 f 1512/5702/2881 1511/5703/2882 1384/5533/2759 f 1381/5530/2756 1513/5814/2957 1512/5702/2881 f 1386/5535/2761 1384/5533/2759 1514/5700/2880 f 1514/5700/2880 1360/5498/2733 1386/5535/2761 f 1360/5498/2733 1359/5497/2732 1388/5538/2764 f 1388/5538/2764 1386/5535/2761 1360/5498/2733 f 1402/5545/2771 1518/5706/2884 1515/5848/2969 f 1515/5848/2969 1524/5717/2892 1402/5545/2771 f 1516/5705/2883 1594/6423/2968 1518/5706/2884 f 1518/5706/2884 1405/5708/2886 1517/5707/2885 f 1519/5709/2887 1593/6424/3310 1520/5710/2888 f 1521/5712/2889 1522/5719/2894 1519/6425/2887 f 1596/5715/2890 1599/6377/2972 1523/5716/2891 f 1525/6426/2893 1526/6427/2895 1527/5844/2967 f 1527/5844/2967 1522/5850/2894 1525/6426/2893 f 1521/5712/2889 1405/5714/2886 1526/5720/2895 f 1407/5549/2775 1397/5548/2774 1526/5720/2895 f 1528/5845/2965 1527/5844/2967 1526/6427/2895 f 1526/5720/2895 1399/5721/2896 1529/6428/2963 f 1529/6428/2963 1528/6429/2965 1526/5720/2895 f 1399/5721/2896 1394/5722/2897 1530/6430/2961 f 1530/6430/2961 1529/6428/2963 1399/5721/2896 f 1394/5722/2897 1390/5540/2766 1531/5724/2899 f 1532/5723/2898 1533/6431/2960 1394/5722/2897 f 1533/6432/2960 1530/6430/2961 1394/5722/2897 f 1313/5438/2688 1312/5437/2687 1536/5729/2903 f 1313/5438/2688 1535/5730/2902 1499/6384/2867 f 1535/5730/2902 1536/5729/2903 1537/5731/2904 f 1534/5725/2900 1535/5727/2902 1538/6433/2905 f 1497/5726/2901 1540/5734/2907 1541/5735/2908 f 1493/5736/2909 1541/5735/2908 1542/6434/2911 f 1544/5744/2913 1543/5743/2912 1545/6435/3311 f 1541/5737/2908 1539/5739/2906 1546/5746/2914 f 1547/5766/2915 1539/5739/2906 1534/6436/2900 f 1548/5749/2916 1551/5752/2919 1549/5750/2917 f 1548/5749/2916 1547/5747/2915 1538/5732/2905 f 1550/5753/2918 1549/5772/2917 1552/5754/2920 f 1553/5755/2921 1552/5754/2920 1554/5758/2924 f 1555/5756/2922 1554/5758/2924 1565/5775/2934 f 1557/5761/2925 1558/5760/2926 1556/6437/2923 f 1555/5756/2922 1562/6438/2931 1557/6439/2925 f 1494/5740/2910 1542/5742/2911 1558/5760/2926 f 1544/5744/2913 1545/6435/3311 1558/6440/2926 f 1558/6441/2926 1545/6442/3311 1556/5757/2923 f 1553/5755/2921 1554/5758/2924 1556/5757/2923 f 1559/5764/2928 1556/5757/2923 1545/6443/3311 f 1545/6435/3311 1543/5743/2912 1559/6444/2928 f 1560/5765/2929 1548/5767/2916 1550/6445/2918 f 1553/6446/2921 1559/6444/2928 1560/5765/2929 f 1559/6444/2928 1543/5743/2912 1546/5746/2914 f 1560/5765/2929 1559/6444/2928 1546/5746/2914 f 1490/5655/2862 1487/5651/2858 1492/5657/2864 f 1567/6447/2938 1490/5655/2862 1561/5769/2930 f 1552/5754/2920 1549/5772/2917 1564/5774/2933 f 1552/5754/2920 1564/5774/2933 1565/5775/2934 f 1565/5775/2934 1566/5776/2935 1562/6438/2931 f 1562/6438/2931 1555/5756/2922 1565/5775/2934 f 1566/5776/2935 1567/5779/2938 1562/6438/2931 f 1567/5779/2938 1561/6448/2930 1562/6449/2931 f 1566/5776/2935 1565/5775/2934 1568/5777/2936 f 1569/5778/2937 1490/6450/2862 1567/5779/2938 f 1489/6451/2861 1569/5778/2937 1570/5800/2941 f 1571/5781/2939 1570/5800/2941 1569/5778/2937 f 1568/5777/2936 1565/5775/2934 1564/5774/2933 f 1564/5774/2933 1571/5781/2939 1568/5777/2936 f 1572/5782/2940 1383/5532/2758 1483/5647/2854 f 1572/5787/2940 1483/6452/2854 1573/5794/2950 f 1574/5797/2942 1573/5794/2950 1483/6452/2854 f 1574/5784/2942 1483/5647/2854 1489/5654/2861 f 1572/5787/2940 1573/5794/2950 1575/5785/2943 f 1575/6453/2943 1380/5529/2755 1379/5528/2754 f 1381/5530/2756 1378/5527/2753 1576/5789/2945 f 1577/5788/2944 1513/5814/2957 1381/5530/2756 f 1564/5774/2933 1563/5773/2932 1578/5790/2946 f 1579/5791/2947 1571/5781/2939 1564/5774/2933 f 1579/5791/2947 1570/5800/2941 1571/5781/2939 f 1578/6454/2946 1580/5793/2949 1579/6455/2947 f 1579/6455/2947 1580/5793/2949 1581/6456/2951 f 1580/5793/2949 1582/5792/2948 1581/6456/2951 f 1583/5413/2664 1305/5435/2685 1289/5429/2679 f 1536/5729/2903 1578/6454/2946 1563/5771/2932 f 1536/5729/2903 1312/5437/2687 1578/6454/2946 f 1580/5793/2949 1578/6454/2946 1312/5437/2687 f 1312/5437/2687 1311/5436/2686 1580/5793/2949 f 1311/5436/2686 1305/5435/2685 1580/5793/2949 f 1581/5798/2951 1570/5800/2941 1579/5791/2947 f 1575/6457/2943 1582/5792/2948 1583/5413/2664 f 1583/5413/2664 1380/6458/2755 1575/6457/2943 f 1575/5785/2943 1573/5794/2950 1582/5796/2948 f 1282/6459/2665 1380/5803/2755 1584/5802/2952 f 1290/5412/2663 1282/5414/2665 1584/5801/2952 f 1377/6460/2752 1283/6461/3306 1277/6462/2654 f 1377/6463/2752 1282/6459/2665 1283/6464/3306 f 1377/5805/2752 1277/6465/2654 1280/5806/2953 f 1377/6466/2752 1585/6467/2954 1378/6468/2753 f 1585/6469/2954 1576/5789/2945 1378/5527/2753 f 1585/6470/2954 1586/6471/2955 1576/6472/2945 f 1586/5810/2955 1280/5809/2953 1281/6473/3305 f 1587/6474/2956 1281/6475/3305 1279/6476/2655 f 1281/6473/3305 1587/6477/2956 1586/5810/2955 f 1587/6478/2956 1279/6479/2655 1276/6480/2652 f 1362/5503/2736 1587/6481/2956 1276/6394/2652 f 1512/5702/2881 1362/5816/2736 1361/5701/2735 f 1588/6482/2959 1532/5723/2898 1531/5724/2899 f 1531/5724/2899 1392/5542/2768 1588/6482/2959 f 1531/5724/2899 1390/5540/2766 1392/5542/2768 f 1589/5824/2958 1353/5490/2727 1352/5489/2726 f 1588/5826/2959 1352/5489/2726 1351/5488/2725 f 1588/5823/2959 1589/5822/2958 1352/6483/2726 f 1588/5826/2959 1351/5488/2725 1348/5486/2723 f 1348/5486/2723 1347/5484/2721 1533/5828/2960 f 1590/6484/2962 1347/5483/2721 1346/5482/2720 f 1590/6484/2962 1530/5829/2961 1347/5483/2721 f 1590/5831/2962 1346/6485/2720 1345/6486/2719 f 1590/5831/2962 1345/6486/2719 1529/5832/2963 f 1345/6487/2719 1341/6488/2715 1591/6489/2964 f 1592/5840/2966 1591/6490/2964 1341/5841/2715 f 1592/5840/2966 1528/5845/2965 1591/6490/2964 f 1335/5467/2710 1520/6491/2888 1593/6492/3310 f 1520/6491/2888 1335/5467/2710 1516/5846/2883 f 1331/5464/2708 1516/5846/2883 1336/5466/2709 f 1331/5464/2708 1594/6493/2968 1516/5846/2883 f 1331/6494/2708 1330/6495/2707 1594/6496/2968 f 1594/6497/2968 1329/6498/2706 1518/6499/2884 f 1595/5851/2970 1522/5855/2894 1343/5852/2718 f 1595/5851/2970 1339/5853/2713 1338/6500/3309 f 1595/5851/2970 1338/6500/3309 1519/5854/2887 f 1519/5854/2887 1338/6500/3309 1337/6501/2712 f 1519/5709/2887 1337/6502/2712 1593/6424/3310 f 1593/6492/3310 1334/5468/2711 1335/5467/2710 f 1593/6424/3310 1337/6502/2712 1334/6503/2711 f 1328/5461/2705 1515/5857/2969 1329/5462/2706 f 1524/5717/2892 1327/6504/3307 1596/5715/2890 f 1327/6504/3307 1524/5717/2892 1328/6505/2705 f 1596/5715/2890 1327/6504/3307 1333/6506/3308 f 1333/6506/3308 1599/6377/2972 1596/5715/2890 f 1255/5858/2633 1597/6507/3304 1326/5859/2704 f 1332/5459/2703 1599/5862/2972 1333/6389/3308 f 1598/5861/2971 1326/5460/2704 1597/6379/3304 f 1604/5869/2979 1600/5863/2973 1602/5865/2975 f 1600/5863/2973 1604/5869/2979 1606/5871/2981 f 1607/5379/2632 1604/5869/2979 1605/5867/2977 f 1604/5869/2979 1607/5379/2632 1609/5870/2980 f 1607/5379/2632 1608/5868/2978 1255/5380/2633 f 1606/5871/2981 1611/5875/2983 1600/5863/2973 f 1613/5879/2986 1615/5882/2989 1614/5939/3037 f 1603/6508/2976 1613/6509/2986 1614/6510/3037 f 1615/5882/2989 1613/5879/2986 1616/5880/2987 f 1616/5885/2987 1620/5884/2991 1617/5938/2988 f 1618/5886/2990 1616/5880/2987 1619/5887/2992 f 1618/5886/2990 1621/5888/2993 1620/6511/2991 f 1621/5888/2993 1619/5887/2992 1622/5903/3008 f 1621/5888/2993 1622/5903/3008 1623/5889/2994 f 1625/5891/2996 1624/5890/2995 1626/5894/2999 f 1628/5895/3000 1631/5898/3003 1629/5893/2998 f 1632/6512/3289 1633/5897/3002 1628/5895/3000 f 1636/5899/3004 1613/5879/2986 1601/5874/2974 f 1613/5879/2986 1648/6007/3018 1637/5901/3006 f 1648/6007/3018 1613/5879/2986 1636/5899/3004 f 1616/5880/2987 1613/5879/2986 1638/5900/3005 f 1638/5900/3005 1639/5902/3007 1619/5887/2992 f 1624/5890/2995 1640/5904/3009 1626/5894/2999 f 1640/5904/3009 1641/5905/3010 1627/5892/2997 f 1630/5896/3001 1922/6296/3285 1642/6304/3286 f 1922/6296/3285 1630/5896/3001 1641/5905/3010 f 1634/5907/3012 1628/5895/3000 1630/5896/3001 f 1630/5896/3001 1642/6304/3286 1635/5906/3011 f 1292/5908/2751 1643/5909/3013 1612/5877/2985 f 1611/5875/2983 1612/5877/2985 1643/5909/3013 f 1646/5912/3016 1610/5873/2982 1600/5872/2973 f 1648/6007/3018 1636/5899/3004 1610/5873/2982 f 1649/5920/3019 1637/5901/3006 1716/6001/3082 f 1649/5920/3019 1650/5921/3020 1639/5902/3007 f 1622/5903/3008 1651/5929/3028 1652/5922/3021 f 1622/5903/3008 1652/5922/3021 1624/5890/2995 f 1640/5904/3009 1654/5923/3022 1653/5924/3023 f 1640/5904/3009 1624/5890/2995 1652/5922/3021 f 1653/5924/3023 1655/5925/3024 1641/5905/3010 f 1650/5921/3020 1657/5928/3027 1622/5903/3008 f 1651/5929/3028 1622/5903/3008 1657/5928/3027 f 1666/5930/3029 1659/6513/3312 1654/5923/3022 f 1651/5929/3028 1654/5923/3022 1652/5922/3021 f 1654/5923/3022 1659/6513/3312 1660/5931/3030 f 1661/5932/3031 1656/5926/3025 1660/5931/3030 f 1656/5926/3025 1661/5932/3031 1655/5925/3024 f 1664/5936/3035 1840/6223/3237 1663/5934/3033 f 1659/6513/3312 1663/5934/3033 1660/5931/3030 f 1663/5934/3033 1659/6513/3312 1665/5935/3034 f 1666/5930/3029 1665/5935/3034 1659/6513/3312 f 1666/5930/3029 1657/5928/3027 1667/6168/3205 f 1617/5938/2988 1668/5937/3036 1669/5978/3065 f 1670/5940/3038 1615/5882/2989 1617/5881/2988 f 1602/5942/2975 1691/5941/3039 1671/5965/3057 f 1672/6514/3040 1671/6515/3057 1673/6516/3051 f 1672/5944/3040 1604/5943/2979 1602/6517/2975 f 1671/6518/3057 1672/6519/3040 1602/6520/2975 f 1672/5944/3040 1673/6521/3051 1674/5946/3041 f 1605/5945/2977 1674/5946/3041 1675/5947/3042 f 1677/5952/3044 1676/5951/3043 1678/5953/3045 f 1676/5951/3043 1682/5957/3049 1681/5956/3048 f 1674/6522/3041 1673/5959/3051 1676/5951/3043 f 1687/6523/3052 1673/6521/3051 1671/6524/3057 f 1687/6525/3052 1671/5965/3057 1685/6526/3054 f 1688/6527/3056 1685/5962/3054 1671/6528/3057 f 1688/5964/3056 1691/5941/3039 1690/5966/3058 f 1614/5939/3037 1694/5969/3061 1691/5941/3039 f 1691/5941/3039 1603/5878/2976 1614/5939/3037 f 1698/5981/3069 1697/5977/3066 1699/5979/3067 f 1668/5937/3036 1620/5884/2991 1621/6529/2993 f 1700/5982/3070 1668/5937/3036 1621/6529/2993 f 1668/5937/3036 1700/5982/3070 1699/5979/3067 f 1700/5982/3070 1701/5980/3068 1699/5979/3067 f 1702/6335/3295 1701/5980/3068 1703/5984/3072 f 1621/6529/2993 1705/5985/3073 1704/5983/3071 f 1621/6529/2993 1704/5983/3071 1700/5982/3070 f 1705/6530/3073 1621/5888/2993 1623/5889/2994 f 1704/5983/3071 1707/5987/3075 1703/5984/3072 f 1703/5990/3072 1710/5989/3077 1709/6195/3217 f 1705/5985/3073 1625/5996/2996 1711/5997/3078 f 1712/5998/3079 1625/5996/2996 1629/6327/2998 f 1713/5999/3080 1667/6168/3205 1657/5928/3027 f 1714/6000/3081 1658/5927/3026 1649/5920/3019 f 1648/6007/3018 1718/6531/3085 1716/6001/3082 f 1718/6532/3085 1648/6533/3018 1647/6534/3015 f 1646/5912/3016 1719/6011/3087 1717/6008/3084 f 1647/5911/3015 1646/5912/3016 1718/6009/3085 f 1646/5912/3016 1645/5913/3017 1720/6010/3086 f 1721/6012/3088 1720/6186/3086 1645/6013/3017 f 1723/6016/3090 1721/6012/3088 1722/6014/3089 f 1643/6018/3013 1724/6017/3091 1722/6014/3089 f 1376/5523/2749 1375/5522/2748 1723/6016/3090 f 1724/6017/3091 1643/6018/3013 1292/5525/2751 f 1725/6025/3092 1728/6024/3094 1726/6027/3096 f 1730/6028/3097 1733/6143/3183 1731/6029/3098 f 1732/6031/3100 1731/6029/3098 1733/6143/3183 f 1735/6032/3101 1732/6031/3100 1824/6142/3182 f 1824/6142/3182 1806/6125/3171 1735/6032/3101 f 1735/6032/3101 1737/6034/3103 1734/6030/3099 f 1736/6037/3102 1739/6036/3105 1928/6333/3293 f 1928/6535/3293 1737/6536/3103 1736/6537/3102 f 1741/6212/3230 1739/6036/3105 1740/6038/3106 f 1741/6212/3230 1740/6038/3106 1742/6077/3137 f 1743/6041/3109 1746/6040/3108 1742/6077/3137 f 1745/6039/3107 1744/6042/3110 1751/6047/3115 f 1752/6048/3116 1751/6047/3115 1750/6065/3114 f 1750/6065/3114 1749/6210/3113 1752/6048/3116 f 1755/6050/3118 1747/6043/3111 1750/6046/3114 f 1403/5546/2772 1756/6053/3120 1410/5553/2778 f 1756/6053/3120 1403/5546/2772 1753/6049/3117 f 1756/6054/3120 1758/6058/3123 1416/5560/2784 f 1756/6053/3120 1755/6050/3118 1754/6051/3119 f 1756/6054/3120 1757/6056/3121 1758/6058/3123 f 1760/6059/3124 1759/6057/3122 1417/5561/2785 f 1762/6061/3126 1763/6063/3128 1764/6062/3127 f 1762/6061/3126 1760/6059/3124 1758/6058/3123 f 1757/6056/3121 1765/6538/3133 1763/6063/3128 f 1758/6058/3123 1757/6056/3121 1762/6061/3126 f 1766/6539/3129 1757/6056/3121 1754/6055/3119 f 1757/6056/3121 1766/6539/3129 1765/6538/3133 f 1751/6047/3115 1744/6042/3110 1766/6066/3129 f 1763/6063/3128 1768/6069/3131 1767/6068/3130 f 1765/6071/3133 1770/6075/3135 1769/6072/3132 f 1766/6066/3129 1770/6075/3135 1765/6071/3133 f 1744/6042/3110 1772/6076/3136 1771/6074/3134 f 1772/6076/3136 1744/6042/3110 1743/6041/3109 f 1773/6078/3138 1769/6072/3132 1770/6075/3135 f 1774/6079/3139 1768/6540/3131 1769/6072/3132 f 1775/6541/3144 1772/6076/3136 1742/6077/3137 f 1785/6081/3140 1775/6541/3144 1742/6077/3137 f 1775/6089/3144 1785/6542/3140 1776/6543/3147 f 1774/6080/3139 1777/6083/3141 1778/6091/3146 f 1779/6084/3142 1771/6074/3134 1772/6076/3136 f 1780/6087/3143 1775/6089/3144 1776/6543/3147 f 1782/6090/3145 1784/6176/3208 1778/6091/3146 f 1784/6176/3208 1782/6090/3145 1783/6544/3160 f 1782/6090/3145 1777/6083/3141 1779/6545/3142 f 1782/6092/3145 1779/6084/3142 1780/6093/3143 f 1782/6092/3145 1781/6095/3148 1783/6109/3160 f 1740/6038/3106 1738/6035/3104 1785/6081/3140 f 1786/6096/3149 1738/6035/3104 1787/6097/3150 f 1786/6096/3149 1776/6094/3147 1785/6081/3140 f 1786/6096/3149 1785/6081/3140 1738/6035/3104 f 1776/6094/3147 1787/6097/3150 1796/6098/3151 f 1781/6095/3148 1796/6098/3151 1783/6109/3160 f 1788/6546/3207 1784/6176/3208 1783/6544/3160 f 1783/6544/3160 1795/6105/3158 1788/6546/3207 f 1789/6099/3152 1792/6102/3155 1790/6100/3153 f 1793/6103/3156 1795/6105/3158 1799/6107/3159 f 1795/6105/3158 1793/6103/3156 1794/6104/3157 f 1797/6111/3162 1791/6101/3154 1790/6100/3153 f 1799/6107/3159 1797/6111/3162 1790/6100/3153 f 1797/6547/3162 1801/6114/3164 1798/6116/3161 f 1801/6548/3164 1797/6111/3162 1799/6107/3159 f 1800/6112/3163 1803/6117/3166 1801/6114/3164 f 1804/6118/3167 1805/6119/3168 1802/6115/3165 f 1803/6117/3166 1804/6118/3167 1801/6114/3164 f 1803/6117/3166 1787/6097/3150 1738/6035/3104 f 1804/6118/3167 1738/6035/3104 1736/6037/3102 f 1805/6119/3168 1735/6032/3101 1806/6125/3171 f 1805/6119/3168 1815/6124/3170 1807/6123/3169 f 1802/6115/3165 1808/6138/3172 1791/6126/3154 f 1808/6138/3172 1802/6115/3165 1807/6123/3169 f 1808/6127/3172 1809/6134/3176 1789/6099/3152 f 1810/6549/3173 1820/6163/3202 1811/6136/3177 f 1812/6135/3174 1810/6549/3173 1811/6136/3177 f 1814/6137/3178 1812/6129/3174 1808/6138/3172 f 1816/6139/3179 1817/6147/3187 1814/6137/3178 f 1812/6129/3174 1814/6137/3178 1817/6147/3187 f 1817/6147/3187 1813/6130/3175 1812/6129/3174 f 1810/6128/3173 1813/6130/3175 1818/6140/3180 f 1822/6550/3196 1810/6128/3173 1819/6141/3181 f 1810/6128/3173 1822/6550/3196 1820/6551/3202 f 1816/6139/3179 1806/6125/3171 1824/6142/3182 f 1824/6142/3182 1817/6147/3187 1816/6139/3179 f 1813/6130/3175 1817/6147/3187 1825/6146/3186 f 1824/6142/3182 1821/6144/3184 1825/6146/3186 f 1821/6144/3184 1826/6148/3188 1825/6146/3186 f 1827/6151/3191 1818/6140/3180 1826/6148/3188 f 1818/6140/3180 1827/6151/3191 1828/6149/3189 f 1823/6145/3185 1829/6150/3190 1733/6143/3183 f 1827/6151/3191 1829/6150/3190 1830/6264/3265 f 1830/6264/3265 1828/6149/3189 1827/6151/3191 f 1833/6154/3194 1831/6152/3192 1832/6153/3193 f 1835/6552/3199 1831/6152/3192 1834/6155/3195 f 1835/6160/3199 1836/6158/3197 1831/6157/3192 f 1831/6152/3192 1822/6550/3196 1819/6141/3181 f 1838/6164/3203 1822/6156/3196 1836/6158/3197 f 1839/6161/3200 1838/6164/3203 1836/6158/3197 f 1838/6164/3203 1839/6161/3200 1840/6553/3237 f 1838/6164/3203 1820/6163/3202 1822/6156/3196 f 1838/6164/3203 1840/6553/3237 1664/6166/3035 f 1665/6554/3034 1841/6555/3201 1838/6556/3203 f 1811/6136/3177 1841/6162/3201 1665/6165/3034 f 1842/6557/3313 1809/6134/3176 1811/6136/3177 f 1842/6557/3313 1811/6136/3177 1665/6165/3034 f 1842/6557/3313 1789/6099/3152 1809/6134/3176 f 1842/6557/3313 1665/6165/3034 1666/6558/3029 f 1843/6167/3204 1842/6559/3313 1666/5930/3029 f 1842/6557/3313 1843/6169/3204 1789/6099/3152 f 1792/6102/3155 1843/6169/3204 1667/6560/3205 f 1667/6168/3205 1794/6171/3157 1792/6561/3155 f 1713/5999/3080 1844/6170/3206 1667/6168/3205 f 1844/6172/3206 1713/6562/3080 1788/6173/3207 f 1795/6563/3158 1794/6564/3157 1844/6565/3206 f 1788/6173/3207 1713/6562/3080 1658/6566/3026 f 1788/6173/3207 1658/6566/3026 1714/6567/3081 f 1845/6178/3209 1778/6091/3146 1784/6176/3208 f 1845/6568/3209 1714/6569/3081 1715/6570/3083 f 1845/6179/3209 1715/6003/3083 1717/6005/3084 f 1774/6080/3139 1778/6091/3146 1846/6182/3210 f 1846/6182/3210 1717/6181/3084 1719/6183/3087 f 1767/6571/3130 1846/6572/3210 1719/6573/3087 f 1846/6182/3210 1767/6068/3130 1774/6080/3139 f 1847/6574/3211 1719/6575/3087 1720/6576/3086 f 1847/6184/3211 1848/6188/3212 1764/6062/3127 f 1848/6188/3212 1849/6191/3213 1761/6060/3125 f 1850/6190/2879 1419/5563/2787 1761/6060/3125 f 1849/6189/3213 1723/6016/3090 1850/5698/2879 f 1711/5994/3078 1852/6194/3216 1851/6192/3214 f 1854/6193/3215 1708/5991/3076 1707/5992/3075 f 1732/6031/3100 1851/6192/3214 1852/6194/3216 f 1852/6194/3216 1853/6577/3314 1729/6026/3095 f 1852/6194/3216 1729/6026/3095 1731/6029/3098 f 1854/6193/3215 1710/5989/3077 1708/5991/3076 f 1854/6193/3215 1732/6031/3100 1734/6030/3099 f 1855/6578/3303 1858/6196/3218 1748/6044/3112 f 1748/6044/3112 1863/6205/3225 1855/6578/3303 f 1858/6196/3218 1934/6579/3301 1856/6197/3219 f 1857/6198/3220 1749/6045/3113 1858/6196/3218 f 1859/6199/3221 1933/6370/3300 1860/6200/3222 f 1861/6204/3223 1857/6198/3220 1860/6200/3222 f 1864/6580/3226 1861/6201/3223 1862/6203/3224 f 1864/6206/3226 1862/6581/3224 1866/6207/3227 f 1861/6201/3223 1864/6580/3226 1865/6209/3228 f 1865/6209/3228 1745/6039/3107 1752/6048/3116 f 1865/6208/3228 1866/6207/3227 1867/6354/3299 f 1865/6209/3228 1867/6582/3299 1868/6211/3229 f 1746/6040/3108 1868/6211/3229 1869/6213/3231 f 1870/6215/3233 1739/6036/3105 1741/6212/3230 f 1741/6212/3230 1872/6583/3234 1871/6214/3232 f 1873/6219/3235 1839/6161/3200 1837/6159/3198 f 1875/6225/3239 1662/5933/3032 1663/5934/3033 f 1663/5934/3033 1874/6222/3236 1875/6225/3239 f 1874/6222/3236 1877/6241/3251 1876/6224/3238 f 1877/6241/3251 1874/6222/3236 1873/6236/3235 f 1873/6219/3235 1878/6226/3240 1879/6584/3242 f 1880/6230/3241 1878/6226/3240 1837/6159/3198 f 1881/6585/3315 1880/6230/3241 1835/6160/3199 f 1834/6586/3195 1881/6585/3315 1835/6160/3199 f 1883/6232/3244 1880/6228/3241 1881/6587/3315 f 1885/6234/3246 1879/6229/3242 1880/6228/3241 f 1886/6235/3247 1877/6241/3251 1873/6236/3235 f 1887/6588/3248 1890/6242/3252 1888/6244/3249 f 1887/6238/3248 1889/6240/3250 1877/6241/3251 f 1893/6248/3257 1891/6243/3253 1892/6245/3254 f 1894/6246/3255 1893/6248/3257 1895/6254/3258 f 1895/6249/3258 1897/6253/3261 1896/6250/3259 f 1897/6253/3261 1881/6589/3315 1834/6155/3195 f 1896/6250/3259 1834/6155/3195 1833/6154/3194 f 1897/6590/3261 1884/6233/3245 1883/6232/3244 f 1897/6590/3261 1883/6232/3244 1881/6587/3315 f 1895/6591/3258 1884/6233/3245 1897/6590/3261 f 1895/6254/3258 1893/6248/3257 1892/6245/3254 f 1898/6262/3262 1882/6231/3243 1884/6233/3245 f 1899/6257/3263 1886/6592/3247 1879/6229/3242 f 1899/6257/3263 1887/6259/3248 1886/6592/3247 f 1885/6234/3246 1882/6231/3243 1898/6262/3262 f 1885/6234/3246 1898/6262/3262 1899/6257/3263 f 1900/6263/3264 1833/6154/3194 1832/6153/3193 f 1830/6264/3265 1900/6263/3264 1832/6153/3193 f 1900/6263/3264 1830/6264/3265 1906/6593/3267 f 1889/6240/3250 1888/6239/3249 1902/6265/3266 f 1903/6275/3272 1888/6244/3249 1891/6243/3253 f 1888/6244/3249 1903/6275/3272 1902/6288/3266 f 1904/6247/3256 1903/6275/3272 1891/6243/3253 f 1901/6266/3260 1905/6271/3269 1904/6247/3256 f 1901/6266/3260 1906/6267/3267 1905/6271/3269 f 1907/6270/3268 1904/6247/3256 1905/6271/3269 f 1906/6593/3267 1830/6264/3265 1908/6594/3270 f 1829/6150/3190 1908/6594/3270 1830/6264/3265 f 1908/6272/3270 1913/6291/3271 1909/6290/3281 f 1909/6290/3281 1907/6270/3268 1908/6272/3270 f 1907/6270/3268 1909/6290/3281 1903/6275/3272 f 1823/6279/3185 1911/6278/3274 1912/6281/3275 f 1914/6283/3276 1911/6278/3274 1910/6277/3273 f 1914/6283/3276 1910/6277/3273 1728/6284/3094 f 1915/6286/3278 1726/6027/3096 1729/6026/3095 f 1729/6026/3095 1853/6577/3314 1916/6285/3277 f 1903/6275/3272 1909/6290/3281 1917/6289/3280 f 1903/6275/3272 1917/6289/3280 1918/6287/3279 f 1917/6289/3280 1919/6595/3283 1918/6287/3279 f 1921/6295/3284 1655/5925/3024 1919/6294/3283 f 1920/6293/3282 1921/6295/3284 1919/6294/3283 f 1902/6265/3266 1875/6225/3239 1876/6224/3238 f 1918/6297/3279 1662/5933/3032 1875/6225/3239 f 1902/6265/3266 1918/6297/3279 1875/6225/3239 f 1920/6300/3282 1912/6281/3275 1911/6278/3274 f 1922/6296/3285 1921/6295/3284 1914/6302/3276 f 1923/6596/3287 1922/6597/3285 1727/6022/3093 f 1923/6596/3287 1727/6022/3093 1635/6021/3011 f 1725/6313/3092 1924/6598/3288 1632/6314/3289 f 1924/6599/3288 1925/6600/3290 1632/6601/3289 f 1633/6602/3002 1632/6601/3289 1925/6600/3290 f 1925/6600/3290 1926/6603/3291 1633/6602/3002 f 1926/6323/3291 1925/6604/3290 1915/6286/3278 f 1712/6330/3079 1916/6285/3277 1853/6577/3314 f 1853/6577/3314 1852/6194/3216 1712/6331/3079 f 1870/6215/3233 1871/6214/3232 1927/6605/3292 f 1709/6606/3217 1737/6536/3103 1928/6535/3293 f 1929/6607/3294 1709/6606/3217 1928/6535/3293 f 1872/6608/3234 1697/5977/3066 1698/5981/3069 f 1698/6609/3069 1871/6610/3232 1872/6611/3234 f 1697/6346/3066 1872/6216/3234 1869/6218/3231 f 1930/6612/3296 1696/6613/3064 1669/6614/3065 f 1930/6347/3296 1869/6615/3231 1868/6348/3229 f 1931/6616/3298 1692/6617/3060 1695/6350/3063 f 1931/6618/3298 1695/6619/3063 1868/6620/3229 f 1931/6621/3298 1868/6622/3229 1867/6623/3299 f 1932/6351/3297 1694/6624/3061 1692/6352/3060 f 1932/6351/3297 1693/6625/3062 1694/6624/3061 f 1866/6207/3227 1932/6351/3297 1867/6354/3299 f 1686/5963/3055 1856/6356/3219 1687/5960/3052 f 1681/6364/3048 1682/6626/3049 1934/6362/3301 f 1855/6578/3303 1681/6627/3048 1858/6196/3218 f 1866/6207/3227 1693/6625/3062 1932/6351/3297 f 1862/6581/3224 1693/6625/3062 1866/6207/3227 f 1935/6365/3302 1690/5972/3058 1693/5971/3062 f 1860/6368/3222 1689/6367/3059 1935/6365/3302 f 1935/6628/3302 1862/6629/3224 1860/6630/3222 f 1933/6370/3300 1688/6372/3056 1860/6200/3222 f 1863/6631/3225 1678/5953/3045 1855/6373/3303 f 1523/5716/2891 1679/6374/3046 1863/6205/3225 f 1680/6378/3047 1597/6507/3304 1255/5858/2633 f 1598/5861/2971 1677/5952/3044 1599/5862/2972 usemtl wire_028089177 f 3299/6632/3316 3298/6633/3317 3300/6634/3318 f 3302/6635/3319 3303/6636/3320 3304/6637/3321 f 3302/6638/3319 3304/6639/3321 3305/6640/3322 f 3305/6640/3322 3306/6641/3323 3302/6638/3319 f 3302/6638/3319 3345/6642/3324 3303/6643/3320 f 3304/6637/3321 3303/6636/3320 3308/6644/3325 f 3307/6645/3326 3313/6646/3327 3311/6647/3328 f 3314/6648/3329 3315/6649/3330 3313/6646/3327 f 3314/6648/3329 3312/6650/3331 3316/6651/3332 f 3317/6652/3333 3315/6653/3330 3314/6654/3329 f 3321/6655/3334 3322/6656/3335 3347/6657/3336 f 3347/6657/3336 3323/6658/3337 3321/6655/3334 f 3321/6655/3334 3324/6659/3338 3325/6660/3339 f 3328/6661/3340 3327/6662/3341 3320/6663/3342 f 3330/6664/3343 3331/6665/3344 3329/6666/3345 f 3329/6666/3345 3328/6667/3340 3330/6664/3343 f 3331/6665/3344 3330/6664/3343 3332/6668/3346 f 3336/6669/3347 3335/6670/3348 3305/6640/3322 f 3305/6640/3322 3304/6639/3321 3336/6669/3347 f 3336/6669/3347 3307/6671/3326 3337/6672/3349 f 3337/6672/3349 3307/6671/3326 3311/6673/3328 f 3339/6674/3350 3334/6675/3351 3333/6676/3352 f 3333/6677/3352 3340/6678/3353 3339/6679/3350 f 3339/6680/3350 3332/6681/3346 3341/6682/3354 f 3299/6632/3316 3300/6634/3318 3306/6641/3323 f 3342/6683/3355 3343/6684/3356 3344/6685/3357 f 3345/6642/3324 3346/6686/3358 3347/6657/3336 f 3347/6657/3336 3348/6687/3359 3345/6642/3324 f 3349/6688/3360 3347/6657/3336 3346/6686/3358 f 3325/6660/3339 3351/6689/3361 3352/6690/3362 f 3352/6690/3362 3350/6691/3363 3325/6660/3339 f 3354/6692/3364 3353/6693/3365 3357/6694/3366 f 3355/6695/3367 3356/6696/3368 3353/6693/3365 f 3357/6697/3366 3356/6698/3368 3358/6699/3369 f 3358/6699/3369 3356/6698/3368 3359/6700/3370 f 3358/6699/3369 3360/6701/3371 3357/6697/3366 f 3333/6702/3352 3362/6703/3372 3361/6704/3373 f 3349/6688/3360 3363/6705/3374 3364/6706/3375 f 3349/6688/3360 3364/6706/3375 3323/6658/3337 f 3364/6707/3375 3368/6708/3376 3324/6659/3338 f 3368/6708/3376 3364/6707/3375 3367/6709/3377 f 3367/6709/3377 3365/6710/3378 3366/6711/3379 f 3370/6712/3380 3363/6705/3374 3369/6713/3381 f 3366/6711/3379 3370/6712/3380 3372/6714/3382 f 3337/6672/3349 3311/6673/3328 3551/6715/3383 f 3315/6653/3330 3550/6716/3384 3313/6717/3327 f 3374/6718/3385 3318/6719/3386 3319/6720/3387 f 3375/6721/3388 3327/6662/3341 3376/6722/3389 f 3376/6722/3389 3329/6723/3345 3377/6724/3390 f 3377/6725/3390 3329/6726/3345 3378/6727/3391 f 3379/6728/3392 3378/6727/3391 3331/6665/3344 f 3380/6729/3393 3331/6665/3344 3340/6730/3353 f 3381/6731/3394 3316/6651/3332 3312/6650/3331 f 3312/6650/3331 3310/6732/3395 3381/6731/3394 f 3383/6733/3396 3303/6636/3320 3345/6734/3324 f 3308/6644/3325 3303/6636/3320 3384/6735/3397 f 3414/6736/3398 3320/6737/3342 3413/6738/3399 f 3387/6739/3400 3330/6740/3343 3328/6661/3340 f 3332/6681/3346 3388/6741/3401 3389/6742/3402 f 3388/6741/3401 3332/6681/3346 3330/6743/3343 f 3332/6681/3346 3390/6744/3403 3341/6682/3354 f 3341/6682/3354 3391/6745/3404 3334/6746/3351 f 3362/6703/3372 3334/6747/3351 3392/6748/3405 f 3393/6749/3406 3360/6750/3371 3407/6751/3407 f 3407/6751/3407 3394/6752/3408 3393/6749/3406 f 3395/6753/3409 3360/6750/3371 3393/6749/3406 f 3357/6694/3366 3395/6753/3409 3396/6754/3410 f 3396/6755/3410 3397/6756/3411 3354/6757/3364 f 3350/6691/3363 3399/6758/3412 3321/6655/3334 f 3400/6759/3413 3321/6655/3334 3399/6758/3412 f 3348/6760/3359 3322/6761/3335 3400/6762/3413 f 3383/6733/3396 3345/6763/3324 3348/6764/3359 f 3401/6765/3414 3402/6766/3415 3348/6760/3359 f 3400/6762/3413 3404/6767/3416 3401/6765/3414 f 3404/6767/3416 3399/6768/3412 3405/6769/3417 f 3406/6770/3418 3395/6753/3409 3394/6752/3408 f 3362/6703/3372 3409/6771/3419 3408/6772/3420 f 3385/6773/3421 3317/6774/3333 3410/6775/3422 f 3385/6773/3421 3411/6776/3423 3386/6777/3424 f 3387/6778/3400 3416/6779/3425 3388/6741/3401 f 3416/6779/3425 3387/6778/3400 3414/6736/3398 f 3417/6780/3426 3309/6781/3427 3384/6782/3397 f 3382/6783/3428 3316/6651/3332 3381/6731/3394 f 3421/6784/3429 3316/6785/3332 3420/6786/3430 f 3410/6775/3422 3421/6787/3429 3411/6776/3423 f 3411/6776/3423 3423/6788/3431 3412/6789/3432 f 3414/6736/3398 3424/6790/3433 3415/6791/3434 f 3424/6790/3433 3425/6792/3435 3415/6791/3434 f 3415/6791/3434 3425/6792/3435 3427/6793/3436 f 3426/6794/3437 3388/6741/3401 3416/6779/3425 f 3426/6795/3437 3430/6796/3438 3389/6797/3402 f 3409/6798/3419 3392/6799/3405 3391/6800/3404 f 3391/6800/3404 3390/6801/3403 3446/6802/3439 f 3435/6803/3440 3434/6804/3441 3419/6805/3442 f 3405/6769/3417 3447/6806/3443 3436/6807/3444 f 3437/6808/3445 3420/6809/3430 3432/6810/3446 f 3432/6810/3446 3438/6811/3447 3437/6808/3445 f 3439/6812/3448 3421/6813/3429 3437/6814/3445 f 3440/6815/3449 3422/6816/3450 3439/6817/3448 f 3422/6816/3450 3440/6815/3449 3441/6818/3451 f 3423/6788/3431 3441/6818/3451 3424/6790/3433 f 3440/6815/3449 3442/6819/3452 3441/6818/3451 f 3443/6820/3453 3425/6792/3435 3442/6819/3452 f 3445/6821/3454 3444/6822/3455 3429/6823/3456 f 3446/6824/3439 3466/6825/3457 3409/6771/3419 f 3409/6771/3419 3466/6825/3457 3408/6772/3420 f 3397/6826/3411 3406/6770/3418 3448/6827/3458 f 3405/6769/3417 3398/6828/3459 3447/6806/3443 f 3447/6806/3443 3397/6756/3411 3448/6829/3458 f 3418/6830/3460 3449/6831/3461 3433/6832/3462 f 3417/6833/3426 3433/6832/3462 3450/6834/3463 f 3434/6835/3441 3451/6836/3464 3449/6837/3461 f 3417/6780/3426 3452/6838/3465 3432/6810/3446 f 3417/6780/3426 3450/6839/3463 3452/6838/3465 f 3438/6811/3447 3432/6810/3446 3452/6838/3465 f 3438/6811/3447 3452/6838/3465 3453/6840/3466 f 3453/6841/3466 3437/6842/3445 3438/6843/3447 f 3454/6844/3467 3440/6815/3449 3439/6817/3448 f 3455/6845/3468 3443/6820/3453 3442/6819/3452 f 3455/6845/3468 3454/6844/3467 3456/6846/3469 f 3457/6847/3470 3443/6820/3453 3455/6845/3468 f 3428/6848/3471 3457/6847/3470 3429/6823/3456 f 3457/6847/3470 3458/6849/3472 3445/6821/3454 f 3445/6821/3454 3429/6823/3456 3457/6847/3470 f 3483/6850/3473 3460/6851/3474 3461/6852/3475 f 3461/6852/3475 3435/6853/3440 3402/6854/3415 f 3404/6767/3416 3436/6807/3444 3483/6855/3473 f 3404/6767/3416 3405/6769/3417 3436/6807/3444 f 3434/6804/3441 3435/6803/3440 3461/6856/3475 f 3461/6856/3475 3460/6857/3474 3451/6858/3464 f 3447/6806/3443 3462/6859/3476 3436/6807/3444 f 3463/6860/3477 3448/6829/3458 3406/6861/3418 f 3463/6862/3477 3407/6751/3407 3464/6863/3478 f 3466/6864/3457 3431/6865/3479 3467/6866/3480 f 3467/6867/3480 3459/6868/3481 3468/6869/3482 f 3469/6870/3483 3468/6871/3482 3458/6872/3472 f 3458/6849/3472 3457/6847/3470 3469/6873/3483 f 3456/6846/3469 3471/6874/3484 3469/6873/3483 f 3471/6874/3484 3456/6846/3469 3454/6844/3467 f 3472/6875/3485 3454/6876/3467 3439/6877/3448 f 3473/6878/3486 3430/6796/3438 3444/6879/3455 f 3473/6878/3486 3431/6880/3479 3430/6796/3438 f 3473/6878/3486 3444/6879/3455 3445/6881/3454 f 3459/6882/3481 3431/6880/3479 3473/6878/3486 f 3472/6875/3485 3439/6877/3448 3453/6841/3466 f 3453/6840/3466 3475/6883/3487 3474/6884/3488 f 3452/6838/3465 3450/6839/3463 3475/6883/3487 f 3476/6885/3489 3449/6831/3461 3477/6886/3490 f 3477/6887/3490 3451/6836/3464 3478/6888/3491 f 3480/6889/3492 3451/6890/3464 3460/6851/3474 f 3480/6889/3492 3460/6851/3474 3481/6891/3493 f 3481/6891/3493 3436/6892/3444 3484/6893/3494 f 3484/6893/3494 3485/6894/3495 3481/6891/3493 f 3484/6895/3494 3462/6859/3476 3486/6896/3496 f 3462/6897/3476 3484/6893/3494 3436/6892/3444 f 3462/6898/3476 3464/6863/3478 3486/6899/3496 f 3464/6900/3478 3465/6901/3497 3488/6902/3498 f 3464/6863/3478 3408/6772/3420 3465/6903/3497 f 3489/6904/3499 3465/6901/3497 3466/6905/3457 f 3490/6906/3500 3470/6907/3501 3469/6873/3483 f 3471/6908/3484 3492/6909/3502 3490/6910/3500 f 3471/6908/3484 3472/6875/3485 3493/6911/3503 f 3501/6912/3504 3474/6884/3488 3494/6913/3505 f 3479/6914/3506 3494/6913/3505 3476/6915/3489 f 3478/6888/3491 3480/6889/3492 3495/6916/3507 f 3497/6917/3508 3487/6918/3509 3486/6899/3496 f 3506/6919/3510 3497/6920/3508 3488/6902/3498 f 3499/6921/3511 3467/6867/3480 3468/6869/3482 f 3492/6922/3502 3493/6923/3503 3500/6924/3512 f 3479/6914/3506 3502/6925/3513 3494/6913/3505 f 3502/6926/3513 3479/6927/3506 3503/6928/3514 f 3478/6888/3491 3503/6929/3514 3479/6930/3506 f 3503/6929/3514 3504/6931/3515 3507/6932/3516 f 3503/6929/3514 3495/6916/3507 3504/6931/3515 f 3496/6933/3517 3505/6934/3518 3504/6931/3515 f 3504/6931/3515 3495/6916/3507 3496/6933/3517 f 3505/6934/3518 3496/6933/3517 3506/6935/3510 f 3489/6904/3499 3498/6936/3519 3506/6919/3510 f 3498/6937/3519 3505/6934/3518 3506/6935/3510 f 3507/6932/3516 3502/6938/3513 3503/6929/3514 f 3502/6926/3513 3507/6939/3516 3500/6940/3512 f 3500/6940/3512 3501/6941/3504 3502/6926/3513 f 3500/6942/3512 3507/6932/3516 3492/6943/3502 f 3498/6936/3519 3499/6921/3511 3507/6944/3516 f 3508/6945/3520 3509/6946/3521 3510/6947/3522 f 3372/6714/3382 3510/6947/3522 3366/6711/3379 f 3509/6946/3521 3508/6945/3520 3511/6948/3523 f 3511/6948/3523 3508/6945/3520 3512/6949/3524 f 3513/6950/3525 3511/6948/3523 3514/6951/3526 f 3513/6950/3525 3516/6952/3527 3642/6953/3528 f 3517/6954/3529 3516/6952/3527 3513/6950/3525 f 3518/6955/3530 3517/6954/3529 3519/6956/3531 f 3521/6957/3532 3517/6954/3529 3518/6955/3530 f 3522/6958/3533 3543/6959/3534 3521/6957/3532 f 3521/6957/3532 4984/6960/3535 3522/6958/3533 f 3523/6961/3536 3522/6958/3533 4984/6960/3535 f 3522/6958/3533 3523/6961/3536 3524/6962/3537 f 3526/6963/3538 3522/6958/3533 3525/6964/3539 f 3527/6965/3540 3529/6966/3541 3526/6963/3538 f 3527/6967/3540 3526/6968/3538 3525/6969/3539 f 3530/6970/3542 3528/6971/3543 3531/6972/3544 f 3529/6966/3541 3528/6973/3543 3532/6974/3545 f 3532/6975/3545 3528/6976/3543 3530/6970/3542 f 3537/6977/3546 3534/6978/3547 3536/6979/3548 f 3536/6979/3548 3534/6978/3547 3535/6980/3549 f 3536/6981/3548 3538/6982/3550 3539/6983/3551 f 3539/6984/3551 3540/6985/3552 3541/6986/3553 f 3543/6959/3534 3522/6958/3533 3526/6963/3538 f 3529/6966/3541 3516/6952/3527 3543/6959/3534 f 3533/6987/3554 3537/6977/3546 3693/6988/3555 f 3378/6727/3391 3547/6989/3556 3377/6725/3390 f 3548/6990/3557 3549/6991/3558 3315/6653/3330 f 3552/6992/3559 3548/6990/3557 3553/6993/3560 f 3552/6992/3559 3554/6994/3561 3550/6716/3384 f 3550/6716/3384 3554/6994/3561 3555/6995/3562 f 3550/6716/3384 3555/6995/3562 3551/6715/3383 f 3551/6715/3383 3555/6995/3562 3373/6996/3563 f 3376/6722/3389 3568/6997/3564 3375/6721/3388 f 3374/6718/3385 3553/6993/3560 3548/6990/3557 f 3560/6998/3565 3546/6999/3566 3379/6728/3392 f 3379/6728/3392 3561/7000/3567 3560/6998/3565 f 3562/7001/3568 3560/6998/3565 3561/7000/3567 f 3560/6998/3565 3563/7002/3569 3559/7003/3570 f 3559/7003/3570 3546/6999/3566 3560/6998/3565 f 3380/6729/3393 3564/7004/3571 3565/7005/3572 f 3566/7006/3573 3562/7001/3568 3565/7005/3572 f 3552/6992/3559 3567/7007/3574 3554/6994/3561 f 3742/7008/3575 3571/7009/3576 3563/7002/3569 f 3571/7009/3576 3573/7010/3577 3574/7011/3578 f 3574/7011/3578 3572/7012/3579 3571/7009/3576 f 3576/7013/3580 3575/7014/3581 3577/7015/3582 f 3577/7015/3582 3578/7016/3583 3576/7013/3580 f 3577/7015/3582 3581/7017/3584 3578/7016/3583 f 3579/7018/3585 3577/7015/3582 3580/7019/3586 f 3579/7018/3585 3583/7020/3587 3581/7017/3584 f 3579/7018/3585 3580/7019/3586 3582/7021/3588 f 3583/7020/3587 3584/7022/3589 3585/7023/3590 f 3583/7020/3587 3579/7018/3585 3584/7022/3589 f 3586/7024/3591 3585/7023/3590 3584/7022/3589 f 3588/7025/3592 3589/7026/3593 3586/7024/3591 f 3586/7024/3591 3590/7027/3594 3588/7025/3592 f 3592/7028/3595 3554/6994/3561 3567/7007/3574 f 3567/7007/3574 3553/6993/3560 3593/7029/3596 f 3594/7030/3597 3553/6993/3560 3568/6997/3564 f 3553/6993/3560 3594/7030/3597 3593/7029/3596 f 3568/6997/3564 3595/7031/3598 3594/7030/3597 f 3595/7031/3598 3556/7032/3599 3596/7033/3600 f 3596/7034/3600 3557/7035/3601 3597/7036/3602 f 3597/7036/3602 3558/7037/3603 3569/7038/3604 f 3598/7039/3605 3558/7037/3603 3570/7040/3606 f 3570/7040/3606 3600/7041/3607 3599/7042/3608 f 3601/7043/3609 3602/7044/3610 3603/7045/3611 f 3576/7013/3580 3603/7045/3611 3599/7042/3608 f 3578/7016/3583 3604/7046/3612 3601/7043/3609 f 3607/7047/3613 3589/7026/3593 3608/7048/3614 f 3608/7048/3614 3609/7049/3615 3610/7050/3616 f 3615/7051/3617 3612/7052/3618 3614/7053/3619 f 3616/7054/3620 3617/7055/3621 3618/7056/3622 f 3617/7057/3621 3616/7058/3620 3619/7059/3623 f 3619/7060/3623 3620/7061/3624 3617/7055/3621 f 3622/7062/3625 3624/7063/3626 3625/7064/3627 f 3450/6839/3463 3433/7065/3462 3476/6915/3489 f 3611/7066/3628 3628/7067/3629 3609/7049/3615 f 3609/7049/3615 3588/7025/3592 3611/7066/3628 f 3628/7067/3629 3611/7066/3628 3613/7068/3630 f 3615/7051/3617 3618/7069/3622 3613/7068/3630 f 3613/7068/3630 3885/7070/3631 3629/7071/3632 f 3618/7056/3622 3630/7072/3633 3886/7073/3634 f 3621/7074/3635 3631/7075/3636 3630/7072/3633 f 3623/7076/3637 3632/7077/3638 3631/7075/3636 f 3631/7075/3636 3621/7074/3635 3623/7076/3637 f 3632/7077/3638 3623/7076/3637 3622/7062/3625 f 3622/7062/3625 3626/7078/3639 3632/7077/3638 f 3627/7079/3640 3633/7080/3641 3626/7078/3639 f 4984/6960/3535 3518/6955/3530 3634/7081/3642 f 3635/7082/3643 3636/7083/3644 3520/7084/3645 f 3520/7084/3645 3636/7083/3644 3518/6955/3530 f 3635/7082/3643 3520/7084/3645 3519/6956/3531 f 3510/6947/3522 3637/7085/3646 3366/6711/3379 f 3367/7086/3377 3638/7087/3647 3368/7088/3376 f 3638/7087/3647 3366/7089/3379 3637/7090/3646 f 3639/7091/3648 3368/7088/3376 3638/7087/3647 f 3368/7088/3376 3639/7091/3648 3326/7092/3649 f 3639/7091/3648 3640/7093/3650 3351/7094/3361 f 3509/6946/3521 3643/7095/3651 3641/7096/3652 f 3641/7096/3652 3510/6947/3522 3509/6946/3521 f 3642/6953/3528 3643/7095/3651 3509/6946/3521 f 3644/7097/3653 3355/6695/3367 3353/6693/3365 f 3353/6693/3365 3351/7098/3361 3644/7097/3653 f 3645/7099/3654 3646/7100/3655 3647/7101/3656 f 3645/7102/3654 3356/6698/3368 3355/7103/3367 f 3641/7104/3652 3648/7105/3657 3649/7106/3658 f 3649/7107/3658 3637/7090/3646 3510/7108/3522 f 3650/7109/3659 3638/7087/3647 3637/7090/3646 f 3650/7109/3659 3651/7110/3660 3640/7093/3650 f 3640/7093/3650 3639/7091/3648 3650/7109/3659 f 3640/7111/3650 3651/7112/3660 3652/7113/3661 f 3646/7100/3655 3652/7113/3661 3653/7114/3662 f 3359/6700/3370 3647/7115/3656 3655/7116/3663 f 3359/6700/3370 3656/7117/3664 3358/7118/3369 f 3360/6750/3371 3656/7119/3664 3361/6704/3373 f 3657/7120/3665 3361/6704/3373 3656/7119/3664 f 3649/7107/3658 3658/7121/3666 3650/7109/3659 f 3650/7109/3659 3659/7122/3667 3651/7110/3660 f 3660/7123/3668 3652/7124/3661 3651/7110/3660 f 3660/7123/3668 3659/7122/3667 3661/7125/3669 f 3653/7114/3662 3660/7126/3668 3662/7127/3670 f 3654/7128/3671 3653/7129/3662 3662/7130/3670 f 3655/7116/3663 3647/7115/3656 3654/7131/3671 f 3664/7132/3672 3656/7117/3664 3359/6700/3370 f 3359/6700/3370 3674/7133/3673 3664/7132/3672 f 3666/7134/3674 3659/7135/3667 3658/7136/3666 f 3666/7137/3674 3661/7125/3669 3659/7122/3667 f 3661/7125/3669 3666/7137/3674 3668/7138/3675 f 3667/7139/3676 3660/7123/3668 3661/7125/3669 f 3655/7116/3663 3672/7140/3677 3665/7141/3678 f 3674/7133/3673 3665/7141/3678 3675/7142/3679 f 3675/7142/3679 3676/7143/3680 3674/7133/3673 f 3677/7144/3681 3678/7145/3682 3676/7143/3680 f 3678/7145/3682 3677/7144/3681 3679/7146/3683 f 3681/7147/3684 3665/7141/3678 3673/7148/3685 f 3672/7140/3677 3682/7149/3686 3673/7148/3685 f 3672/7140/3677 3669/7150/3687 3670/7151/3688 f 3670/7152/3688 3671/7153/3689 3683/7154/3690 f 3685/7155/3691 3686/7156/3692 3683/7154/3690 f 3683/7154/3690 3663/7157/3693 3685/7155/3691 f 3668/7138/3675 3687/7158/3694 3685/7155/3691 f 3685/7155/3691 3667/7139/3676 3668/7138/3675 f 3666/7137/3674 3689/7159/3695 3688/7160/3696 f 3689/7161/3695 3658/7136/3666 3690/7162/3697 f 3690/7162/3697 3649/7163/3658 3648/7164/3657 f 3643/7165/3651 3691/7166/3698 3648/7105/3657 f 3691/7166/3698 3643/7165/3651 3692/7167/3699 f 3643/7095/3651 3693/6988/3555 3692/7168/3699 f 3516/6952/3527 3521/6957/3532 3543/6959/3534 f 3642/6953/3528 3545/7169/3700 3693/6988/3555 f 3642/6953/3528 3516/6952/3527 3545/7169/3700 f 3692/7168/3699 3693/6988/3555 3537/6977/3546 f 3691/7166/3698 3692/7167/3699 3544/7170/3701 f 3691/7166/3698 3709/7171/3702 3648/7105/3657 f 3648/7105/3657 3694/7172/3703 3690/7173/3697 f 3688/7160/3696 3695/7174/3704 3696/7175/3705 f 3697/7176/3706 3698/7177/3707 3699/7178/3708 f 3698/7177/3707 3697/7176/3706 3701/7179/3709 f 3702/7180/3710 3701/7179/3709 3697/7176/3706 f 3702/7180/3710 3704/7181/3711 3701/7179/3709 f 3705/7182/3712 3706/7183/3713 3704/7181/3711 f 3705/7184/3712 3703/7185/3714 3707/7186/3715 f 3705/7182/3712 3708/7187/3716 3706/7183/3713 f 3542/7188/3717 3707/7186/3715 3541/7189/3553 f 3710/7190/3718 3703/7185/3714 3697/7191/3706 f 3710/7190/3718 3697/7191/3706 3711/7192/3719 f 3700/7193/3720 3711/7192/3719 3697/7191/3706 f 3711/7192/3719 3700/7193/3720 3712/7194/3721 f 3696/7195/3705 3710/7190/3718 3711/7192/3719 f 3695/7196/3704 3694/7172/3703 3703/7185/3714 f 3694/7172/3703 3709/7171/3702 3707/7186/3715 f 3340/6730/3353 3657/7197/3665 3713/7198/3722 f 3657/7197/3665 3656/7117/3664 3664/7132/3672 f 3715/7199/3723 3676/7143/3680 3678/7145/3682 f 3678/7145/3682 3716/7200/3724 3717/7201/3725 f 3678/7145/3682 3717/7201/3725 3715/7199/3723 f 3678/7202/3682 3791/7203/3726 3716/7204/3724 f 3677/7144/3681 3719/7205/3727 3679/7146/3683 f 3718/7206/3728 3677/7144/3681 3680/7207/3729 f 3718/7206/3728 3720/7208/3730 3722/7209/3731 f 3724/7210/3732 3723/7211/3733 3722/7209/3731 f 3722/7209/3731 3723/7211/3733 3721/7212/3734 f 3724/7210/3732 3725/7213/3735 3723/7211/3733 f 3725/7214/3735 3724/7215/3732 3726/7216/3736 f 3726/7217/3736 3728/7218/3737 3725/7219/3735 f 3725/7213/3735 3728/7220/3737 3729/7221/3738 f 3727/7222/3739 3730/7223/3740 3732/7224/3741 f 3727/7222/3739 3733/7225/3742 3728/7218/3737 f 3728/7226/3737 3734/7227/3743 3729/7221/3738 f 3735/7228/3744 3732/7224/3741 3730/7223/3740 f 3735/7228/3744 3736/7229/3745 3732/7224/3741 f 3732/7224/3741 3736/7229/3745 3737/7230/3746 f 3729/7221/3738 3740/7231/3747 3741/7232/3748 f 3741/7232/3748 3725/7213/3735 3729/7221/3738 f 3742/7008/3575 3563/7002/3569 3566/7006/3573 f 3744/7233/3749 3577/7015/3582 3575/7014/3581 f 3577/7015/3582 3745/7234/3750 3746/7235/3751 f 3747/7236/3752 3748/7237/3753 3749/7238/3754 f 3747/7236/3752 3580/7019/3586 3577/7015/3582 f 3380/6729/3393 3762/7239/3755 3564/7004/3571 f 3713/7198/3722 3657/7197/3665 3714/7240/3756 f 3752/7241/3757 3751/7242/3758 3714/7240/3756 f 3714/7240/3756 3664/7132/3672 3752/7241/3757 f 3674/7133/3673 3752/7241/3757 3664/7132/3672 f 3756/7243/3759 3717/7244/3725 3716/7204/3724 f 3753/7245/3760 3715/7246/3723 3757/7247/3761 f 3757/7247/3761 3717/7244/3725 3756/7243/3759 f 3757/7248/3761 3758/7249/3762 3753/7250/3760 f 3753/7251/3760 3758/7252/3762 3759/7253/3763 f 3753/7250/3760 3759/7254/3763 3760/7255/3764 f 3761/7256/3765 3752/7241/3757 3760/7255/3764 f 3751/7257/3758 3763/7258/3766 3762/7259/3755 f 3749/7238/3754 3764/7260/3767 3740/7231/3747 f 3765/7261/3768 3565/7005/3572 3763/7262/3766 f 3566/7006/3573 3766/7263/3769 3573/7010/3577 f 3573/7010/3577 3775/7264/3770 3743/7265/3771 f 3744/7233/3749 3767/7266/3772 3768/7267/3773 f 3764/7260/3767 3770/7268/3774 3741/7232/3748 f 3764/7269/3767 3748/7270/3753 3769/7271/3775 f 3771/7272/3776 3769/7271/3775 3772/7273/3777 f 3773/7274/3778 3769/7275/3775 3746/7235/3751 f 3745/7234/3750 3768/7267/3773 3774/7276/3779 f 3765/7261/3768 3776/7277/3780 3766/7263/3769 f 3765/7261/3768 3763/7262/3766 3777/7278/3781 f 3765/7261/3768 3777/7278/3781 3776/7277/3780 f 3498/6936/3519 3507/6944/3516 3504/7279/3515 f 3498/7280/3519 3504/6931/3515 3505/6934/3518 f 3763/7258/3766 3564/7281/3571 3762/7259/3755 f 3778/7282/3782 3763/7258/3766 3751/7257/3758 f 3778/7283/3782 3751/7284/3758 3761/7285/3765 f 3780/7286/3783 3761/7287/3765 3760/7288/3764 f 3782/7289/3784 3783/7290/3785 3775/7291/3770 f 3775/7291/3770 3784/7292/3786 3767/7293/3772 f 3782/7289/3784 3775/7291/3770 3776/7294/3780 f 3785/7295/3787 3767/7293/3772 3784/7292/3786 f 3772/7273/3777 3787/7296/3788 3771/7272/3776 f 3721/7297/3734 3788/7298/3789 3719/7299/3727 f 3789/7300/3790 3721/7212/3734 3770/7268/3774 f 3790/7301/3791 3719/7299/3727 3788/7298/3789 f 3792/7302/3792 3776/7303/3780 3777/7304/3781 f 3793/7305/3793 3794/7306/3794 3792/7302/3792 f 3792/7302/3792 3779/7307/3795 3793/7305/3793 f 3783/7290/3785 3782/7289/3784 3794/7308/3794 f 3794/7308/3794 3795/7309/3796 3783/7290/3785 f 3795/7310/3796 3796/7311/3797 3784/7312/3786 f 3796/7311/3797 3797/7313/3798 3798/7314/3799 f 3796/7315/3797 3798/7316/3799 4213/7317/3800 f 4213/7318/3800 3799/7319/3801 3796/7311/3797 f 3799/7319/3801 3801/7320/3802 3802/7321/3803 f 3799/7319/3801 3784/7312/3786 3796/7311/3797 f 3803/7322/3804 3804/7323/3805 3784/7312/3786 f 3806/7324/3806 3774/7325/3779 3785/7295/3787 f 3773/7274/3778 3807/7326/3807 3772/7327/3777 f 3808/7328/3808 3772/7327/3777 3807/7326/3807 f 3790/7301/3791 3788/7298/3789 3809/7329/3809 f 3813/7330/3810 3791/7203/3726 3790/7301/3791 f 3754/7331/3811 3791/7203/3726 3813/7330/3810 f 3814/7332/3812 3810/7333/3813 3789/7334/3790 f 3814/7332/3812 3770/7335/3774 3786/7336/3814 f 3814/7332/3812 3786/7336/3814 3815/7337/3815 f 3816/7338/3816 3799/7319/3801 3800/7339/3817 f 3816/7338/3816 3803/7322/3804 3799/7319/3801 f 3817/7340/3818 3803/7322/3804 3816/7338/3816 f 3817/7341/3818 3804/7342/3805 3803/7343/3804 f 3805/7344/3819 3818/7345/3820 3806/7346/3806 f 3806/7346/3806 3819/7347/3821 3823/7348/3822 f 3818/7345/3820 3804/7342/3805 3817/7341/3818 f 3817/7341/3818 3820/7349/3823 3818/7345/3820 f 3821/7350/3824 3817/7351/3818 3816/7338/3816 f 3820/7349/3823 3817/7341/3818 3821/7352/3824 f 3807/7353/3807 3806/7346/3806 3823/7348/3822 f 3824/7354/3825 3823/7348/3822 3819/7347/3821 f 3814/7332/3812 3826/7355/3826 3810/7333/3813 f 3810/7333/3813 3827/7356/3827 3825/7357/3828 f 3828/7358/3829 3815/7337/3815 3787/7296/3788 f 3828/7358/3829 3787/7296/3788 3808/7359/3808 f 3828/7358/3829 3829/7360/3830 3826/7355/3826 f 3830/7361/3831 3811/7362/3832 3809/7363/3809 f 3812/7364/3833 3811/7365/3832 3831/7366/3834 f 3825/7357/3828 3827/7356/3827 3832/7367/3835 f 3832/7367/3835 3827/7356/3827 4156/7368/3836 f 3825/7357/3828 3830/7361/3831 3809/7363/3809 f 3827/7356/3827 3833/7369/3837 4156/7368/3836 f 3833/7369/3837 3827/7356/3827 3826/7355/3826 f 3828/7358/3829 3835/7370/3838 3829/7360/3830 f 3835/7371/3838 3808/7372/3808 3807/7353/3807 f 3592/7028/3595 3840/7373/3839 3838/7374/3840 f 3838/7374/3840 3839/7375/3841 3837/7376/3842 f 3840/7373/3839 3567/7007/3574 3593/7029/3596 f 3593/7029/3596 3842/7377/3843 3843/7378/3844 f 3593/7029/3596 3843/7378/3844 3840/7373/3839 f 3595/7031/3598 3846/7379/3845 3844/7380/3846 f 3837/7376/3842 3847/7381/3847 3856/7382/3848 f 3841/7383/3849 3847/7381/3847 3839/7375/3841 f 3839/7375/3841 3840/7373/3839 3841/7383/3849 f 3843/7378/3844 3847/7381/3847 3841/7383/3849 f 3848/7384/3850 3843/7378/3844 3842/7377/3843 f 3848/7384/3850 3849/7385/3851 3843/7378/3844 f 3848/7384/3850 3842/7377/3843 3851/7386/3852 f 3850/7387/3853 3851/7386/3852 3852/7388/3854 f 3851/7386/3852 3842/7377/3843 3845/7389/3855 f 3845/7389/3855 3853/7390/3856 3851/7386/3852 f 3856/7382/3848 3855/7391/3857 3857/7392/3858 f 3849/7385/3851 3858/7393/3859 3847/7381/3847 f 3859/7394/3860 3849/7385/3851 3850/7387/3853 f 3852/7388/3854 3860/7395/3861 3850/7387/3853 f 3854/7396/3862 3860/7395/3861 3852/7388/3854 f 3862/7397/3863 3857/7392/3858 3855/7391/3857 f 3858/7393/3859 3863/7398/3864 3855/7391/3857 f 3860/7395/3861 3865/7399/3865 3859/7394/3860 f 3596/7034/3600 3868/7400/3866 3846/7401/3845 f 3870/7402/3867 3569/7038/3604 3598/7039/3605 f 3569/7038/3604 3870/7402/3867 3868/7400/3866 f 3874/7403/3868 3598/7039/3605 3599/7042/3608 f 3875/7404/3869 3871/7405/3870 3872/7406/3871 f 3599/7042/3608 3875/7404/3869 3874/7403/3868 f 3875/7404/3869 3872/7406/3871 3873/7407/3872 f 3874/7403/3868 3873/7407/3872 3870/7402/3867 f 3602/7044/3610 3876/7408/3873 3871/7405/3870 f 3877/7409/3874 3602/7044/3610 3605/7410/3875 f 3605/7410/3875 3879/7411/3876 3878/7412/3877 f 3608/7048/3614 3880/7413/3878 3606/7414/3879 f 3606/7414/3879 3607/7047/3613 3608/7048/3614 f 3608/7048/3614 3882/7415/3880 3881/7416/3881 f 3884/7417/3882 3610/7050/3616 3883/7418/3883 f 3883/7418/3883 3629/7071/3632 3885/7070/3631 f 3888/7419/3884 3631/7075/3636 3632/7077/3638 f 3853/7420/3856 3845/7421/3855 3869/7422/3885 f 3869/7422/3885 3892/7423/3886 3894/7424/3887 f 3869/7422/3885 3868/7400/3866 3870/7402/3867 f 3853/7425/3856 3894/7424/3887 3854/7426/3862 f 3897/7427/3888 3896/7428/3889 3872/7406/3871 f 3897/7427/3888 3872/7406/3871 3871/7405/3870 f 3898/7429/3890 3897/7427/3888 3871/7405/3870 f 3898/7429/3890 3871/7405/3870 3876/7408/3873 f 3877/7409/3874 3898/7429/3890 3876/7408/3873 f 3900/7430/3891 3899/7431/3892 3878/7412/3877 f 3879/7411/3876 3900/7430/3891 3878/7412/3877 f 3900/7430/3891 3902/7432/3893 3901/7433/3894 f 3902/7432/3893 3879/7411/3876 3880/7413/3878 f 3903/7434/3895 3880/7413/3878 3881/7416/3881 f 3882/7415/3880 3905/7435/3896 3904/7436/3897 f 3906/7437/3898 3882/7415/3880 3884/7417/3882 f 3907/7438/3899 3884/7417/3882 3885/7070/3631 f 3908/7439/3900 3885/7070/3631 3886/7440/3634 f 3886/7073/3634 3887/7441/3901 3908/7442/3900 f 3887/7441/3901 3909/7443/3902 3908/7442/3900 f 3888/7419/3884 3911/7444/3903 3910/7445/3904 f 3912/7446/3905 3890/7447/3906 3913/7448/3907 f 3913/7448/3907 3891/7449/3908 3914/7450/3909 f 3894/7424/3887 3861/7451/3910 3854/7426/3862 f 3916/7452/3911 3915/7453/3912 3894/7424/3887 f 3916/7452/3911 3894/7424/3887 3892/7423/3886 f 3916/7452/3911 3893/7454/3913 3918/7455/3914 f 3918/7455/3914 3893/7454/3913 3895/7456/3915 f 3918/7455/3914 3920/7457/3916 3917/7458/3917 f 3918/7455/3914 3895/7456/3915 3919/7459/3918 f 3919/7459/3918 3920/7457/3916 3918/7455/3914 f 3922/7460/3919 3921/7461/3920 3919/7459/3918 f 3919/7459/3918 3898/7429/3890 3922/7460/3919 f 3922/7460/3919 3898/7429/3890 3899/7431/3892 f 3901/7433/3894 3924/7462/3921 3925/7463/3922 f 3924/7462/3921 3901/7433/3894 3926/7464/3923 f 3902/7432/3893 3927/7465/3924 3926/7464/3923 f 3929/7466/3925 3928/7467/3926 3904/7436/3897 f 3904/7436/3897 3928/7467/3926 3903/7434/3895 f 3905/7435/3896 3882/7415/3880 3930/7468/3927 f 3931/7469/3928 3907/7438/3899 3908/7439/3900 f 3908/7470/3900 3933/7471/3929 3931/7472/3928 f 3932/7473/3930 3908/7442/3900 3909/7443/3902 f 3934/7474/3931 3909/7443/3902 3910/7445/3904 f 3911/7444/3903 3936/7475/3932 3937/7476/3933 f 3938/7477/3934 3913/7478/3907 3914/7479/3909 f 3939/7480/3935 3940/7481/3936 3941/7482/3937 f 3915/7483/3912 3941/7482/3937 3867/7484/3938 f 3939/7485/3935 3915/7453/3912 3917/7458/3917 f 3940/7486/3936 3939/7485/3935 3942/7487/3939 f 3942/7487/3939 3917/7458/3917 3920/7457/3916 f 3921/7461/3920 3943/7488/3940 3942/7487/3939 f 3942/7487/3939 3920/7457/3916 3921/7461/3920 f 3921/7461/3920 3922/7460/3919 3945/7489/3941 f 3944/7490/3942 3945/7489/3941 3980/7491/3943 f 3945/7489/3941 3923/7492/3944 3925/7463/3922 f 3923/7492/3944 3945/7489/3941 3922/7460/3919 f 3924/7462/3921 3946/7493/3945 3925/7463/3922 f 3947/7494/3946 3926/7464/3923 3927/7465/3924 f 3947/7494/3946 3927/7465/3924 3928/7467/3926 f 3947/7495/3946 3950/7496/3947 3948/7497/3948 f 3947/7494/3946 3905/7435/3896 3950/7498/3947 f 3950/7498/3947 3930/7468/3927 3949/7499/3949 f 3930/7468/3927 3951/7500/3950 3949/7499/3949 f 3907/7501/3899 3952/7502/3951 3951/7503/3950 f 3951/7500/3950 3906/7437/3898 3907/7438/3899 f 3952/7502/3951 3907/7501/3899 3931/7472/3928 f 3953/7504/3952 3933/7471/3929 3954/7505/3953 f 3953/7504/3952 3931/7472/3928 3933/7471/3929 f 3954/7505/3953 3935/7506/3954 3955/7507/3955 f 3954/7505/3953 3933/7471/3929 3932/7508/3930 f 3937/7509/3933 3955/7507/3955 3934/7510/3931 f 3956/7511/3956 3957/7512/3957 3937/7509/3933 f 3956/7511/3956 3937/7513/3933 3936/7514/3932 f 3936/7514/3932 3958/7515/3958 3956/7511/3956 f 3959/7516/3959 3936/7517/3932 3938/7518/3934 f 3958/7515/3958 3938/7519/3934 3960/7520/3960 f 3960/7520/3960 3962/7521/3961 3961/7522/3962 f 3961/7522/3962 3963/7523/3963 3958/7515/3958 f 3965/7524/3964 3964/7525/3965 3966/7526/3966 f 3965/7524/3964 3957/7512/3957 3964/7525/3965 f 3965/7524/3964 3954/7505/3953 3955/7507/3955 f 3965/7524/3964 3953/7504/3952 3954/7505/3953 f 3967/7527/3967 3966/7526/3966 3968/7528/3968 f 3952/7502/3951 3967/7527/3967 3969/7529/3969 f 3969/7529/3969 3951/7503/3950 3952/7502/3951 f 3971/7530/3970 3970/7531/3971 3972/7532/3972 f 3971/7530/3970 3972/7532/3972 3973/7533/3973 f 3971/7530/3970 3951/7503/3950 3969/7529/3969 f 3973/7533/3973 3974/7534/3974 3971/7530/3970 f 3971/7530/3970 3948/7497/3948 3950/7496/3947 f 3975/7535/3975 3948/7497/3948 3974/7534/3974 f 3976/7536/3976 3974/7534/3974 3973/7533/3973 f 3975/7537/3975 3946/7493/3945 3948/7538/3948 f 3975/7539/3975 3977/7540/3977 3946/7493/3945 f 3978/7541/3978 3979/7542/3979 3977/7540/3977 f 3978/7543/3978 3977/7544/3977 3976/7536/3976 f 3978/7545/3978 3980/7491/3943 3979/7542/3979 f 3982/7546/3980 3981/7547/3981 3983/7548/3982 f 3984/7549/3983 3942/7487/3939 3943/7488/3940 f 3940/7550/3936 3984/7551/3983 3986/7552/3984 f 3867/7484/3938 3990/7553/3985 3866/7554/3986 f 3866/7554/3986 3991/7555/3987 3865/7399/3865 f 3865/7399/3865 3991/7555/3987 3992/7556/3988 f 3992/7556/3988 3993/7557/3989 3994/7558/3990 f 3994/7558/3990 3864/7559/3991 3992/7556/3988 f 3994/7558/3990 3995/7560/3992 3863/7398/3864 f 3963/7523/3963 3962/7521/3961 3998/7561/3993 f 3999/7562/3994 3962/7521/3961 5382/7563/3995 f 4001/7564/3996 3963/7523/3963 4000/7565/3997 f 4001/7564/3996 3966/7526/3966 3964/7525/3965 f 4000/7565/3997 4002/7566/3998 4001/7564/3996 f 4002/7566/3998 3968/7528/3968 3966/7526/3966 f 4004/7567/3999 4003/7568/4000 4005/7569/4001 f 4002/7566/3998 3970/7531/3971 3968/7528/3968 f 4006/7570/4002 4007/7571/4003 4008/7572/4004 f 4008/7572/4004 3970/7531/3971 4006/7570/4002 f 4008/7572/4004 4007/7571/4003 4009/7573/4005 f 4008/7572/4004 3972/7532/3972 3970/7531/3971 f 3973/7533/3973 3972/7532/3972 4010/7574/4006 f 4012/7575/4007 3972/7532/3972 4009/7573/4005 f 4011/7576/4008 4013/7577/4009 4014/7578/4010 f 4014/7578/4010 3976/7536/3976 4011/7576/4008 f 4015/7579/4011 4014/7578/4010 4013/7577/4009 f 4016/7580/4012 3978/7543/3978 4014/7578/4010 f 3981/7581/3981 4016/7580/4012 4017/7582/4013 f 4017/7582/4013 3983/7583/3982 3981/7581/3981 f 4020/7584/4014 3985/7585/4015 3983/7548/3982 f 4020/7586/4014 3986/7587/3984 3985/7588/4015 f 4020/7586/4014 4019/7589/4016 4021/7590/4017 f 4020/7586/4014 4021/7590/4017 3986/7587/3984 f 3986/7587/3984 3987/7591/4018 3940/7592/3936 f 3988/7593/4019 4021/7594/4017 4022/7595/4020 f 3988/7593/4019 3987/7591/4018 3986/7587/3984 f 3986/7587/3984 4021/7590/4017 3988/7593/4019 f 3995/7560/3992 4023/7596/4021 3996/7597/4022 f 3996/7597/4022 3863/7398/3864 3995/7560/3992 f 3995/7560/3992 3994/7558/3990 4024/7598/4023 f 4025/7599/4024 4024/7598/4023 4026/7600/4025 f 4024/7598/4023 4028/7601/4026 4026/7600/4025 f 4029/7602/4027 4028/7601/4026 4024/7598/4023 f 4024/7598/4023 3991/7555/3987 4029/7602/4027 f 4029/7602/4027 3991/7555/3987 3866/7554/3986 f 4030/7603/4028 4022/7604/4020 4021/7605/4017 f 4022/7606/4020 4030/7607/4028 4029/7608/4027 f 4022/7609/4020 3866/7554/3986 3990/7553/3985 f 4032/7610/4029 4033/7611/4030 4031/7612/4031 f 4034/7613/4032 4033/7611/4030 4032/7610/4029 f 4034/7613/4032 4003/7568/4000 4000/7565/3997 f 4003/7568/4000 4034/7613/4032 4035/7614/4033 f 4034/7613/4032 4032/7610/4029 4035/7614/4033 f 4005/7569/4001 4007/7571/4003 4006/7570/4002 f 4005/7569/4001 4035/7614/4033 4036/7615/4034 f 4036/7615/4034 4009/7573/4005 4007/7571/4003 f 4012/7575/4007 4009/7573/4005 4036/7615/4034 f 4037/7616/4035 4036/7615/4034 4038/7617/4036 f 4038/7617/4036 4013/7577/4009 4037/7616/4035 f 4039/7618/4037 4038/7617/4036 4040/7619/4038 f 4039/7618/4037 4015/7579/4011 4013/7577/4009 f 4015/7579/4011 4039/7618/4037 4018/7620/4039 f 4018/7620/4039 4039/7618/4037 4041/7621/4040 f 4041/7621/4040 4040/7619/4038 4042/7622/4041 f 4018/7620/4039 4041/7621/4040 4019/7623/4016 f 4043/7624/4042 4021/7605/4017 4019/7623/4016 f 4044/7625/4043 4021/7605/4017 4043/7624/4042 f 4043/7624/4042 4042/7622/4041 4045/7626/4044 f 4043/7624/4042 4045/7626/4044 4044/7625/4043 f 4030/7603/4028 4044/7625/4043 4046/7627/4045 f 4046/7627/4045 4028/7628/4026 4030/7603/4028 f 4027/7629/4046 4026/7630/4025 4045/7626/4044 f 4027/7631/4046 4045/7632/4044 4047/7633/4047 f 4027/7631/4046 4025/7599/4024 4026/7600/4025 f 4048/7634/4048 4038/7617/4036 4036/7615/4034 f 4049/7635/4049 4050/7636/4050 4038/7617/4036 f 4052/7637/4051 4040/7619/4038 4050/7636/4050 f 4052/7637/4051 4045/7626/4044 4042/7622/4041 f 4054/7638/4052 4045/7626/4044 4052/7637/4051 f 4055/7639/4053 4048/7634/4048 4035/7614/4033 f 4056/7640/4054 4048/7634/4048 4055/7639/4053 f 4048/7634/4048 4056/7640/4054 4049/7635/4049 f 4049/7635/4049 4057/7641/4055 4051/7642/4056 f 4058/7643/4057 4053/7644/4058 4052/7637/4051 f 4058/7643/4057 4052/7637/4051 4051/7642/4056 f 3734/7227/3743 3728/7226/3737 3733/7645/3742 f 4059/7646/4059 3733/7645/3742 4060/7647/4060 f 4061/7648/4061 4062/7649/4062 3587/7650/4063 f 4064/7651/4064 3612/7052/3618 3591/7652/4065 f 4064/7653/4064 4065/7654/4066 3612/7655/3618 f 3612/7655/3618 4065/7654/4066 3614/7656/3619 f 4066/7657/4067 3620/7061/3624 3619/7060/3623 f 4067/7658/4068 3620/7061/3624 4068/7659/4069 f 4068/7659/4069 3620/7061/3624 4066/7657/4067 f 3624/7063/3626 4069/7660/4070 4070/7661/4071 f 4061/7648/4061 3750/7662/4072 4059/7646/4059 f 4061/7648/4061 4071/7663/4073 4062/7649/4062 f 3590/7027/3594 4072/7664/4074 4063/7665/4075 f 3591/7652/4065 4073/7666/4076 4064/7651/4064 f 4065/7667/4066 4064/7651/4064 4073/7666/4076 f 3614/7656/3619 4074/7668/4077 3619/7060/3623 f 4075/7669/4078 4067/7658/4068 4068/7659/4069 f 4067/7658/4068 4075/7669/4078 4076/7670/4079 f 4072/7664/4074 4062/7649/4062 4071/7663/4073 f 4061/7648/4061 3587/7650/4063 3586/7024/3591 f 4077/7671/4080 4060/7647/4060 3739/7672/4081 f 4077/7671/4080 4089/7673/4082 4071/7663/4073 f 4071/7663/4073 4093/7674/4083 4078/7675/4084 f 4078/7675/4084 4079/7676/4085 4080/7677/4086 f 4080/7677/4086 4079/7676/4085 4063/7665/4075 f 4063/7665/4075 4072/7664/4074 4080/7677/4086 f 4063/7665/4075 4079/7676/4085 4081/7678/4087 f 4082/7679/4088 4073/7666/4076 4081/7678/4087 f 4082/7679/4088 4083/7680/4089 4065/7667/4066 f 4084/7681/4090 4065/7654/4066 4083/7682/4089 f 4086/7683/4091 4075/7669/4078 4068/7659/4069 f 4075/7669/4078 4086/7683/4091 4087/7684/4092 f 4076/7670/4079 4088/7685/4093 4070/7661/4071 f 4076/7670/4079 4087/7684/4092 4088/7685/4093 f 4077/7686/4080 3739/7687/4081 3738/7688/4094 f 3738/7689/4094 4090/7690/4095 4091/7691/4096 f 4092/7692/4097 4089/7673/4082 4077/7671/4080 f 4077/7693/4080 3738/7688/4094 4092/7694/4097 f 4079/7676/4085 4078/7675/4084 4095/7695/4098 f 4091/7691/4096 4098/7696/4099 4101/7697/4100 f 4095/7695/4098 4093/7674/4083 4099/7698/4101 f 4100/7699/4102 4094/7700/4103 4092/7692/4097 f 4101/7701/4100 4092/7692/4097 4091/7702/4096 f 4094/7700/4103 4100/7699/4102 4102/7703/4104 f 4103/7704/4105 4101/7697/4100 4098/7696/4099 f 4105/7705/4106 4099/7698/4101 4102/7703/4104 f 4095/7695/4098 4106/7706/4107 4096/7707/4108 f 4106/7706/4107 4095/7695/4098 4105/7705/4106 f 4103/7704/4105 4112/7708/4109 4107/7709/4110 f 4097/7710/4111 4090/7690/4095 4098/7711/4099 f 3736/7229/3745 4108/7712/4112 4090/7713/4095 f 4109/7714/4113 4090/7690/4095 4108/7715/4112 f 4111/7716/4114 4090/7690/4095 4109/7714/4113 f 4112/7708/4109 4113/7717/4115 4107/7709/4110 f 4112/7718/4109 4111/7719/4114 4114/7720/4116 f 4115/7721/4117 4114/7722/4116 4309/7723/4118 f 4116/7724/4119 4117/7725/4120 4110/7726/4121 f 4110/7727/4121 4117/7728/4120 4109/7729/4113 f 4118/7730/4122 4116/7731/4119 3735/7228/3744 f 3735/7228/3744 3730/7223/3740 4118/7730/4122 f 4118/7730/4122 3730/7223/3740 3731/7732/4123 f 4119/7733/4124 4120/7734/4125 4121/7735/4126 f 4121/7735/4126 4118/7736/4122 4119/7733/4124 f 4122/7737/4127 3726/7216/3736 4123/7738/4128 f 3724/7215/3732 4123/7738/4128 3726/7216/3736 f 3724/7215/3732 4125/7739/4129 4124/7740/4130 f 4125/7741/4129 3722/7209/3731 4126/7742/4131 f 4127/7743/4132 3720/7208/3730 3718/7206/3728 f 4127/7743/4132 3718/7206/3728 3680/7207/3729 f 4128/7744/4133 4127/7745/4132 3680/7746/3729 f 3680/7207/3729 3681/7147/3684 4129/7747/4134 f 4130/7748/4135 4129/7747/4134 3682/7149/3686 f 3682/7749/3686 3684/7750/4136 4130/7751/4135 f 4131/7752/4137 3683/7154/3690 4132/7753/4138 f 3687/7158/3694 4136/7754/4139 4134/7755/4140 f 4137/7756/4141 3696/7195/3705 4180/7757/4142 f 4140/7758/4143 4129/7759/4134 4130/7760/4135 f 4142/7761/4144 4140/7758/4143 4143/7762/4145 f 4144/7763/4146 4145/7764/4147 4143/7762/4145 f 4143/7765/4145 4131/7752/4137 4144/7766/4146 f 4144/7767/4146 4131/7768/4137 4133/7769/4148 f 4144/7763/4146 4132/7770/4138 4134/7771/4140 f 4147/7772/4149 4134/7771/4140 4148/7773/4150 f 4132/7774/4138 4144/7767/4146 4133/7769/4148 f 4139/7775/4151 4149/7776/4152 4128/7744/4133 f 4139/7775/4151 4128/7744/4133 4129/7759/4134 f 4139/7775/4151 4138/7777/4153 4149/7776/4152 f 4150/7778/4154 4128/7744/4133 4149/7776/4152 f 4128/7779/4133 4151/7780/4155 4127/7781/4132 f 4152/7782/4156 4153/7783/4157 4151/7780/4155 f 4155/7784/4158 4154/7785/4159 4153/7783/4157 f 4154/7785/4159 4126/7786/4131 3720/7787/3730 f 4155/7784/4158 4499/7788/4160 4154/7785/4159 f 3834/7789/4161 4156/7368/3836 3833/7369/3837 f 4157/7790/4162 4155/7791/4158 4158/7792/4163 f 4161/7793/4164 4159/7794/4165 4165/7795/4166 f 4159/7794/4165 4161/7793/4164 4162/7796/4167 f 4160/7797/4168 4162/7796/4167 4163/7798/4169 f 4164/7799/4170 4165/7795/4166 4159/7794/4165 f 4173/7800/4171 4159/7794/4165 4160/7797/4168 f 4166/7801/4172 4165/7795/4166 4164/7799/4170 f 4166/7801/4172 4164/7799/4170 4173/7802/4171 f 4165/7795/4166 4167/7803/4173 4168/7804/4174 f 4237/7805/4175 4170/7806/4176 4163/7798/4169 f 4170/7807/4176 4172/7808/4177 4160/7809/4168 f 4173/7810/4171 4160/7809/4168 4172/7808/4177 f 4173/7810/4171 4174/7811/4178 4166/7812/4172 f 3711/7192/3719 4177/7813/4179 3696/7195/3705 f 4134/7771/4140 4178/7814/4180 4148/7773/4150 f 4136/7815/4139 4179/7816/4181 4178/7817/4180 f 4179/7818/4181 4136/7754/4139 4137/7819/4141 f 4177/7813/4179 4181/7820/4182 4182/7821/4183 f 4182/7821/4183 4180/7757/4142 4177/7813/4179 f 4184/7822/4184 3699/7178/3708 3698/7177/3707 f 4184/7823/4184 4185/7824/4185 3699/7825/3708 f 4180/7757/4142 4186/7826/4186 4187/7827/4187 f 4188/7828/4188 4148/7773/4150 4178/7814/4180 f 4191/7829/4189 4142/7761/4144 4145/7764/4147 f 4142/7761/4144 4191/7829/4189 4193/7830/4190 f 4187/7827/4187 4195/7831/4191 4196/7832/4192 f 4204/7833/4193 4197/7834/4194 4196/7835/4192 f 4196/7832/4192 4188/7836/4188 4179/7816/4181 f 4179/7816/4181 4187/7827/4187 4196/7832/4192 f 4198/7837/4195 4189/7838/4196 4188/7828/4188 f 4188/7836/4188 4197/7839/4194 4198/7840/4195 f 4189/7841/4196 4199/7842/4197 4200/7843/4198 f 4189/7838/4196 4200/7844/4198 4190/7845/4199 f 4193/7830/4190 4201/7846/4200 4202/7847/4201 f 4192/7848/4202 4193/7830/4190 4191/7829/4189 f 4196/7832/4192 4195/7831/4191 4204/7849/4193 f 4198/7840/4195 4206/7850/4203 4207/7851/4204 f 4207/7852/4204 4199/7853/4197 4198/7837/4195 f 4190/7845/4199 4200/7844/4198 4208/7854/4205 f 4201/7846/4200 4192/7848/4202 4190/7845/4199 f 4209/7855/4206 4206/7850/4203 4204/7849/4193 f 4211/7856/4207 3802/7321/3803 3801/7320/3802 f 4208/7857/4205 4211/7856/4207 3801/7320/3802 f 4142/7761/4144 4194/7858/4208 4214/7859/4209 f 4214/7859/4209 4194/7858/4208 4215/7860/4210 f 4214/7861/4209 4141/7862/4211 4142/7863/4144 f 4202/7847/4201 4215/7860/4210 4194/7858/4208 f 4217/7864/4212 4216/7865/4213 3798/7866/3799 f 4216/7865/4213 4212/7867/4214 4218/7868/4215 f 4212/7867/4214 4216/7865/4213 4203/7869/4216 f 4213/7870/3800 4218/7868/4215 4212/7867/4214 f 4217/7864/4212 3798/7866/3799 3797/7871/3798 f 3780/7872/3783 4215/7860/4210 4217/7864/4212 f 3793/7305/3793 4217/7864/4212 3797/7871/3798 f 4215/7860/4210 3780/7872/3783 3781/7873/4217 f 4221/7874/4218 4220/7875/4219 4222/7876/4220 f 4222/7876/4220 4223/7877/4221 4221/7874/4218 f 3832/7878/3835 4156/7879/3836 4158/7880/4163 f 4158/7792/4163 4153/7881/4157 3811/7365/3832 f 4152/7882/4156 4151/7883/4155 3831/7366/3834 f 3811/7365/3832 4152/7882/4156 3831/7366/3834 f 4150/7884/4154 3831/7366/3834 4151/7883/4155 f 3755/7885/4222 4223/7877/4221 4224/7886/4223 f 3755/7887/4222 3754/7331/3811 4223/7888/4221 f 3754/7889/3811 3813/7890/3810 4221/7874/4218 f 4221/7874/4218 3813/7890/3810 3812/7364/3833 f 4221/7874/4218 3812/7364/3833 3831/7366/3834 f 4141/7891/4211 4138/7892/4153 4140/7893/4143 f 4225/7894/4224 4222/7876/4220 4141/7891/4211 f 4225/7894/4224 4141/7891/4211 4219/7895/4225 f 4225/7896/4224 4224/7897/4223 4222/7898/4220 f 4224/7897/4223 4225/7896/4224 3781/7899/4217 f 3781/7899/4217 3759/7900/3763 4224/7897/4223 f 4228/7901/4226 4227/7902/4227 4229/7903/4228 f 4230/7904/4229 4165/7795/4166 4228/7901/4226 f 4228/7901/4226 4229/7903/4228 4230/7904/4229 f 4231/7905/4230 4175/7906/4231 4176/7907/4232 f 4168/7804/4174 4167/7803/4173 4232/7908/4233 f 4226/7909/4234 4234/7910/4235 4227/7911/4227 f 4236/7912/4236 4235/7913/4237 4237/7914/4175 f 4238/7915/4238 4240/7916/4239 4169/7917/4240 f 4238/7915/4238 4241/7918/4241 4239/7919/4242 f 4243/7920/4243 4169/7921/4240 4242/7922/4244 f 4242/7923/4244 4169/7917/4240 4240/7916/4239 f 4244/7924/4245 4170/7806/4176 4243/7920/4243 f 4246/7925/4246 4175/7926/4231 4174/7811/4178 f 4104/7927/4247 4247/7928/4248 4248/7929/4249 f 4102/7703/4104 4100/7699/4102 4249/7930/4250 f 4248/7931/4249 4100/7699/4102 4101/7701/4100 f 4112/7708/4109 4303/7932/4251 4113/7717/4115 f 4113/7717/4115 4303/7932/4251 4297/7933/4252 f 4250/7934/4253 4102/7703/4104 4249/7930/4250 f 4105/7935/4106 4251/7936/4254 4253/7937/4255 f 4081/7678/4087 4079/7676/4085 4096/7707/4108 f 4106/7706/4107 4252/7938/4256 4081/7678/4087 f 4255/7939/4257 4081/7940/4087 4252/7941/4256 f 4253/7937/4255 4257/7942/4258 4256/7943/4259 f 4256/7943/4259 4255/7939/4257 4253/7937/4255 f 4253/7937/4255 4254/7944/4260 4257/7942/4258 f 4260/7945/4261 4087/7684/4092 4086/7683/4091 f 4087/7684/4092 4261/7946/4262 4262/7947/4263 f 4263/7948/4264 4264/7949/4265 4088/7685/4093 f 4264/7949/4265 4263/7948/4264 4265/7950/4266 f 4267/7951/4267 4266/7952/4268 4262/7947/4263 f 4267/7951/4267 4262/7947/4263 4261/7946/4262 f 4268/7953/4269 4261/7946/4262 4260/7945/4261 f 4259/7954/4270 4258/7955/4271 4269/7956/4272 f 4270/7957/4273 4083/7682/4089 4272/7958/4274 f 4272/7958/4274 4255/7939/4257 4270/7957/4273 f 4271/7959/4275 4270/7957/4273 4273/7960/4276 f 4266/7952/4268 4267/7951/4267 4274/7961/4277 f 4266/7962/4268 4275/7963/4278 4276/7964/4279 f 4277/7965/4280 4256/7943/4259 4257/7942/4258 f 4256/7943/4259 4278/7966/4281 4273/7960/4276 f 4273/7960/4276 4279/7967/4282 4271/7959/4275 f 4280/7968/4283 4269/7956/4272 4279/7967/4282 f 4279/7967/4282 4281/7969/4284 4280/7968/4283 f 4282/7970/4285 4275/7971/4278 4280/7968/4283 f 4283/7972/4286 4275/7963/4278 4282/7973/4285 f 4275/7963/4278 4283/7972/4286 4276/7964/4279 f 4257/7942/4258 4284/7974/4287 4277/7965/4280 f 4285/7975/4288 4278/7966/4281 4277/7965/4280 f 4277/7976/4280 4284/7977/4287 4285/7978/4288 f 4281/7979/4284 4279/7980/4282 4285/7978/4288 f 4288/7981/4289 4280/7982/4283 4287/7983/4290 f 4283/7984/4286 4282/7985/4285 4288/7986/4289 f 4289/7987/4291 4251/7936/4254 4290/7988/4292 f 4251/7936/4254 4291/7989/4293 4292/7990/4294 f 4251/7936/4254 4293/7991/4295 4291/7989/4293 f 4293/7992/4295 4302/7993/4296 4291/7994/4293 f 4294/7995/4297 4302/7996/4296 4293/7997/4295 f 4295/7998/4298 4247/7928/4248 4296/7999/4299 f 4247/7928/4248 4297/7933/4252 4296/7999/4299 f 4298/8000/4300 4254/7944/4260 4289/7987/4291 f 4299/8001/4301 3802/7321/3803 4210/8002/4302 f 4301/8003/4303 4302/7993/4296 4294/8004/4297 f 4294/8005/4297 4295/8006/4298 4301/8007/4303 f 4292/7990/4294 4304/8008/4304 4290/7988/4292 f 4298/8009/4300 4290/8010/4292 4304/8011/4304 f 4304/8012/4304 4311/8013/4305 4298/8014/4300 f 4292/7990/4294 4332/8015/4306 4304/8008/4304 f 4292/8016/4294 4305/8017/4307 4332/8018/4306 f 4292/8016/4294 4291/7994/4293 4306/8019/4308 f 4306/8019/4308 4305/8017/4307 4292/8016/4294 f 4302/7993/4296 4306/8019/4308 4291/7994/4293 f 4301/8003/4303 4306/8019/4308 4302/7993/4296 f 4301/8003/4303 4296/8020/4299 4307/8021/4309 f 4307/8021/4309 4296/8020/4299 4308/8022/4310 f 4115/7721/4117 4309/7723/4118 4310/8023/4311 f 4325/8024/4312 4312/8025/4313 4311/8026/4305 f 4312/8027/4313 4284/8028/4287 4298/8029/4300 f 4313/8030/4314 4240/7916/4239 4239/7919/4242 f 4240/8031/4239 4315/8032/4315 4314/8033/4316 f 4172/8034/4177 4244/7924/4245 4317/8035/4317 f 4173/7810/4171 4172/7808/4177 4319/8036/4318 f 4319/8036/4318 4174/7811/4178 4173/7810/4171 f 4287/7983/4290 4321/8037/4319 4322/8038/4320 f 4324/8039/4321 4321/8037/4319 4287/7983/4290 f 4324/8039/4321 4286/8040/4322 4323/8041/4323 f 4323/8042/4323 4285/8043/4288 4325/8044/4312 f 4323/8041/4323 4326/8045/4324 4327/8046/4325 f 4325/8047/4312 4285/8048/4288 4284/8049/4287 f 4328/8050/4326 4310/8023/4311 4309/7723/4118 f 4329/8051/4327 4297/7933/4252 4303/7932/4251 f 4331/8052/4328 4306/8019/4308 4307/8021/4309 f 4332/8053/4306 4305/8054/4307 4331/8055/4328 f 4311/8056/4305 4304/8008/4304 4333/8057/4329 f 4310/8058/4311 4334/8059/4330 4329/8060/4327 f 4336/8061/4331 4328/8050/4326 4337/8062/4332 f 4338/8063/4333 4329/8060/4327 4334/8059/4330 f 4330/8064/4334 4339/8065/4335 4340/8066/4336 f 4330/8064/4334 4340/8066/4336 4331/8055/4328 f 4330/8064/4334 4308/8067/4310 4338/8063/4333 f 4333/8068/4329 4340/8066/4336 4341/8069/4337 f 4333/8068/4329 4342/8070/4338 4311/8071/4305 f 4344/8072/4339 4345/8073/4340 4343/8074/4341 f 4343/8074/4341 4337/8062/4332 4328/8050/4326 f 4343/8074/4341 4328/8050/4326 4344/8072/4339 f 4347/8075/4342 4114/8076/4116 4111/8077/4114 f 4347/8075/4342 4346/8078/4343 4114/8076/4116 f 4348/8079/4344 4350/8080/4345 4349/8081/4346 f 4350/8080/4345 4355/8082/4347 4349/8081/4346 f 4327/8046/4325 4351/8083/4348 4355/8082/4347 f 4351/8083/4348 4327/8046/4325 4326/8045/4324 f 4326/8045/4324 4353/8084/4349 4352/8085/4350 f 4354/8086/4351 4355/8082/4347 4351/8083/4348 f 4357/8087/4352 4311/8026/4305 4342/8088/4338 f 4357/8087/4352 4342/8088/4338 4341/8089/4337 f 4357/8090/4352 4341/8091/4337 4339/8092/4335 f 4361/8093/4353 3534/8094/3547 3532/6975/3545 f 3532/6975/3545 3530/6970/3542 4361/8093/4353 f 4362/8095/4354 3708/7187/3716 3542/8096/3717 f 3343/8097/3356 4365/8098/4355 4366/8099/4356 f 3344/8100/3357 4367/8101/4357 3369/8102/3381 f 4368/8103/4358 4369/8104/4359 4367/8101/4357 f 3369/8105/3381 4369/8104/4359 3371/8106/4360 f 4369/8107/4359 4370/8108/4361 4371/8109/4362 f 4372/8110/4363 4371/8109/4362 4373/8111/4364 f 4372/8112/4363 3372/8113/3382 3371/8114/4360 f 4374/8115/4365 3515/8116/4366 3514/6951/3526 f 4374/8117/4365 3512/8118/3524 4375/8119/4367 f 4376/8120/4368 4375/8121/4367 3512/8118/3524 f 4376/8122/4368 3512/6949/3524 3508/6945/3520 f 3508/6945/3520 4372/8123/4363 4376/8122/4368 f 4377/8124/4369 4372/8110/4363 4373/8111/4364 f 4379/8125/4370 3635/7082/3643 3519/6956/3531 f 4379/8126/4370 4378/8127/4371 4380/8128/4372 f 4379/8126/4370 4380/8128/4372 4381/8129/4373 f 4374/8130/4365 4375/8131/4367 4381/8129/4373 f 4382/8132/4374 4367/8101/4357 4366/8099/4356 f 4379/8126/4370 4383/8133/4375 3635/8134/3643 f 4386/8135/4376 4385/8136/4377 4384/8137/4378 f 4389/8138/4379 4387/8139/4380 4388/8140/4381 f 4389/8138/4379 4390/8141/4382 5775/8142/4383 f 4391/8143/4384 4381/8129/4373 4392/8144/4385 f 4394/8145/4386 4393/8146/4387 4375/8121/4367 f 4375/8121/4367 4373/8111/4364 4394/8145/4386 f 4398/8147/4388 4373/8111/4364 4371/8109/4362 f 4399/8148/4389 4397/8149/4390 4398/8147/4388 f 4508/8150/4391 4399/8148/4389 4401/8151/4392 f 4401/8151/4392 4370/8108/4361 4368/8152/4358 f 4382/8132/4374 4368/8103/4358 4367/8101/4357 f 4401/8151/4392 4402/8153/4393 4403/8154/4394 f 4404/8155/4395 4405/8156/4396 4406/8157/4397 f 4404/8155/4395 4406/8157/4397 4402/8158/4393 f 4407/8159/4398 4389/8138/4379 4742/8160/4399 f 4407/8159/4398 4408/8161/4400 4446/8162/4401 f 4411/8163/4402 4390/8141/4382 4407/8159/4398 f 4407/8159/4398 4410/8164/4403 4411/8163/4402 f 4406/8165/4397 4410/8164/4403 4412/8166/4404 f 4412/8166/4404 4410/8164/4403 4409/8167/4405 f 4412/8168/4404 4402/8158/4393 4406/8157/4397 f 4413/8169/4406 4425/8170/4407 4416/8171/4408 f 4416/8171/4408 4425/8170/4407 4426/8172/4409 f 4426/8172/4409 4417/8173/4410 4416/8171/4408 f 4418/8174/4411 4419/8175/4412 4420/8176/4413 f 4421/8177/4414 4429/8178/4415 4422/8179/4416 f 4421/8177/4414 4423/8180/4417 4348/8079/4344 f 4322/8038/4320 4321/8037/4319 4423/8180/4417 f 4424/8181/4418 4423/8180/4417 4422/8179/4416 f 4418/8174/4411 4428/8182/4419 4419/8175/4412 f 4429/8178/4415 4419/8175/4412 4428/8182/4419 f 4430/8183/4420 4431/8184/4421 4414/8185/4422 f 4433/8186/4423 4432/8187/4424 4414/8185/4422 f 4324/8039/4321 4350/8080/4345 4321/8037/4319 f 4434/8188/4425 4433/8186/4423 4431/8184/4421 f 4431/8184/4421 4435/8189/4426 4434/8188/4425 f 4436/8190/4427 4437/8191/4428 4434/8188/4425 f 4438/8192/4429 4437/8191/4428 4436/8190/4427 f 4439/8193/4430 4441/8194/4431 4440/8195/4432 f 4444/8196/4433 4442/8197/4434 4443/8198/4435 f 4445/8199/4436 4446/8200/4401 4443/8198/4435 f 4444/8201/4433 4446/8202/4401 4447/8203/4437 f 4446/8162/4401 4408/8161/4400 4447/8204/4437 f 4446/8200/4401 4445/8199/4436 4409/8205/4405 f 4429/8178/4415 5816/8206/4438 4422/8179/4416 f 4427/8207/4439 4448/8208/4440 4449/8209/4441 f 4449/8210/4441 4428/8182/4419 4427/8211/4439 f 4415/8212/4442 4448/8213/4440 4425/8170/4407 f 4448/8213/4440 4415/8212/4442 4451/8214/4443 f 4432/8187/4424 4451/8214/4443 4415/8212/4442 f 4433/8186/4423 4451/8214/4443 4432/8187/4424 f 4452/8215/4444 4453/8216/4445 4454/8217/4446 f 4452/8218/4444 4455/8219/4447 4456/8220/4448 f 4457/8221/4449 4458/8222/4450 4454/8223/4446 f 4454/8224/4446 4459/8225/4451 4457/8226/4449 f 4460/8227/4452 4465/8228/4453 4467/8229/4454 f 4457/8221/4449 4467/8230/4454 4458/8222/4450 f 4465/8231/4453 4460/8232/4452 4337/8233/4332 f 4458/8222/4450 4466/8234/4455 4455/8219/4447 f 4469/8235/4456 4470/8236/4457 4471/8237/4458 f 4468/8238/4459 4471/8239/4458 4478/8240/4460 f 4478/8241/4460 4471/8237/4458 4472/8242/4461 f 4345/8243/4340 4472/8242/4461 4471/8237/4458 f 4466/8244/4455 4467/8245/4454 4465/8228/4453 f 4470/8236/4457 4465/8228/4453 4345/8243/4340 f 4469/8246/4456 4468/8247/4459 4452/8248/4444 f 4452/8248/4444 4456/8249/4448 4469/8246/4456 f 4468/8247/4459 4453/8216/4445 4452/8248/4444 f 4475/8250/4462 4453/8251/4445 4476/8252/4463 f 4475/8250/4462 4454/8224/4446 4453/8251/4445 f 4453/8253/4445 4477/8254/4464 4476/8255/4463 f 4477/8254/4464 4453/8253/4445 4468/8238/4459 f 4478/8240/4460 4476/8255/4463 4477/8254/4464 f 4478/8240/4460 4472/8256/4461 4479/8257/4465 f 4473/8258/4466 4480/8259/4467 4464/8260/4468 f 4479/8257/4465 4472/8256/4461 4344/8261/4339 f 4479/8257/4465 4344/8261/4339 4481/8262/4469 f 4482/8263/4470 4483/8264/4471 4481/8262/4469 f 4484/8265/4472 4481/8262/4469 4483/8264/4471 f 4486/8266/4473 4109/7729/4113 4117/7728/4120 f 4487/8267/4474 4485/8268/4475 4484/8265/4472 f 4488/8269/4476 4479/8270/4465 4485/8271/4475 f 4488/8272/4476 4485/8268/4475 4487/8267/4474 f 4488/8273/4476 4489/8274/4477 4480/8275/4467 f 4490/8276/4478 4119/7733/4124 4491/8277/4479 f 4493/8278/4480 4492/8279/4481 4495/8280/4482 f 4492/8281/4481 4496/8282/4483 4497/8283/4484 f 4497/8284/4484 4124/7740/4130 4492/8279/4481 f 4123/8285/4128 4497/8286/4484 4122/8287/4127 f 4499/8288/4160 4494/8289/4485 4124/7740/4130 f 4499/7788/4160 4155/7784/4158 4500/8290/4486 f 4500/8290/4486 4494/8291/4485 4499/7788/4160 f 4494/8289/4485 4501/8292/4487 4492/8279/4481 f 4501/8292/4487 4500/8293/4486 4502/8294/4488 f 4490/8295/4478 4491/8296/4479 4498/8297/4489 f 4490/8295/4478 4498/8297/4489 4503/8298/4490 f 4490/8295/4478 4503/8298/4490 4504/8299/4491 f 4120/8300/4125 4504/8301/4491 4505/8302/4492 f 3834/8303/4161 4502/8304/4488 4156/8305/3836 f 4502/8304/4488 3834/8303/4161 4506/8306/4493 f 3826/7355/3826 3836/8307/4494 3834/8308/4161 f 4507/8309/4495 4508/8310/4391 4403/8311/4394 f 4403/8311/4394 4412/8168/4404 4507/8309/4495 f 4509/8312/4496 4510/8313/4497 4511/8314/4498 f 4510/8315/4497 4509/8316/4496 4508/8317/4391 f 4512/8318/4499 4513/8319/4500 4514/8320/4501 f 4512/8318/4499 4514/8320/4501 4515/8321/4502 f 4517/8322/4503 4515/8321/4502 4516/8323/4504 f 4517/8322/4503 4445/8199/4436 4443/8198/4435 f 4518/8324/4505 4516/8323/4504 4510/8313/4497 f 4519/8325/4506 4436/8326/4427 4434/8327/4425 f 4519/8325/4506 4520/8328/4507 4521/8329/4508 f 4522/8330/4509 4513/8319/4500 4512/8318/4499 f 4438/8192/4429 4512/8318/4499 4439/8193/4430 f 4519/8325/4506 4434/8327/4425 4435/8331/4426 f 4435/8189/4426 4430/8183/4420 4523/8332/4510 f 4524/8333/4511 4355/8082/4347 4354/8086/4351 f 4420/8176/4413 4524/8333/4511 4417/8173/4410 f 4525/8334/4512 4526/8335/4513 4527/8336/4514 f 4417/8173/4410 4527/8336/4514 4416/8171/4408 f 4525/8334/4512 4417/8173/4410 4524/8333/4511 f 4528/8337/4515 4527/8336/4514 4526/8335/4513 f 4527/8336/4514 4530/8338/4516 4413/8169/4406 f 4430/8183/4420 4530/8338/4516 4531/8339/4517 f 4531/8339/4517 4523/8332/4510 4430/8183/4420 f 4520/8340/4507 4532/8341/4518 4533/8342/4519 f 4534/8343/4520 4535/8344/4521 4536/8345/4522 f 4537/8346/4523 4533/8342/4519 4532/8341/4518 f 4531/8339/4517 4539/8347/4524 4537/8346/4523 f 4538/8348/4525 4540/8349/4526 4539/8350/4524 f 4528/8337/4515 4541/8351/4527 4540/8352/4526 f 4541/8351/4527 4542/8353/4528 4543/8354/4529 f 4541/8351/4527 4526/8335/4513 4542/8353/4528 f 4542/8353/4528 4354/8086/4351 4356/8355/4530 f 4542/8353/4528 4356/8355/4530 4543/8354/4529 f 4545/8356/4531 4356/8355/4530 4357/8087/4352 f 4547/8357/4532 4548/8358/4533 4546/8359/4534 f 4544/8360/4535 4548/8358/4533 4543/8354/4529 f 4547/8357/4532 4546/8359/4534 4549/8361/4536 f 4550/8362/4537 4462/8363/4538 4461/8364/4539 f 4550/8365/4537 4551/8366/4540 4547/8367/4532 f 4335/8368/4541 4549/8361/4536 4546/8359/4534 f 4336/8369/4331 4547/8370/4532 4552/8371/4542 f 4336/8369/4331 4337/8233/4332 4462/8363/4538 f 4335/8368/4541 4546/8359/4534 4545/8356/4531 f 4553/8372/4543 4505/8373/4492 4554/8374/4544 f 4482/8375/4470 4486/8266/4473 4554/8374/4544 f 4554/8374/4544 4486/8266/4473 4117/7728/4120 f 4555/8376/4545 4554/8377/4544 4505/8378/4492 f 4555/8379/4545 4483/8264/4471 4482/8380/4470 f 4503/8298/4490 4556/8381/4546 4504/8299/4491 f 4555/8379/4545 4557/8382/4547 4483/8264/4471 f 4556/8381/4546 4557/8383/4547 4555/8384/4545 f 4559/8385/4548 4560/8386/4549 4561/8387/4550 f 4562/8388/4551 4484/8265/4472 4563/8389/4552 f 4564/8390/4553 4558/8391/4554 4556/8381/4546 f 4565/8392/4555 4503/8298/4490 4498/8297/4489 f 4564/8393/4553 4565/8394/4555 4566/8395/4556 f 4566/8395/4556 4565/8394/4555 4567/8396/4557 f 4565/8392/4555 4496/8397/4483 4567/8398/4557 f 4568/8399/4558 4569/8400/4559 4570/8401/4560 f 4569/8400/4559 4568/8399/4558 4495/8280/4482 f 4567/8402/4557 4496/8403/4483 4568/8399/4558 f 4493/8278/4480 4495/8280/4482 4568/8399/4558 f 4572/8404/4561 4495/8280/4482 4571/8405/4562 f 4502/8406/4488 4506/8407/4493 4571/8408/4562 f 4506/8306/4493 3834/8303/4161 3836/8409/4494 f 4506/8407/4493 4573/8410/4563 4571/8408/4562 f 4574/8411/4564 4572/8412/4561 4571/8413/4562 f 4569/8414/4559 4574/8415/4564 4575/8416/4565 f 4575/8416/4565 4574/8415/4564 4576/8417/4566 f 4577/8418/4567 4578/8419/4568 4579/8420/4569 f 4579/8420/4569 4569/8400/4559 4577/8418/4567 f 4570/8401/4560 4580/8421/4570 4581/8422/4571 f 4566/8395/4556 4581/8423/4571 4564/8393/4553 f 3835/8424/3838 4582/8425/4572 3836/8426/4494 f 3824/7354/3825 4583/8427/4573 3835/8424/3838 f 4584/8428/4574 3824/7354/3825 3819/7347/3821 f 4585/8429/4575 3835/8424/3838 4583/8427/4573 f 4587/8430/4576 3819/7347/3821 3820/7349/3823 f 4583/8427/4573 4588/8431/4577 4586/8432/4578 f 4588/8431/4577 4584/8428/4574 4587/8430/4576 f 4587/8430/4576 3822/8433/4579 4589/8434/4580 f 4587/8430/4576 3820/7349/3823 3822/8433/4579 f 4591/8435/4581 3822/8433/4579 4590/8436/4582 f 4592/8437/4583 4587/8430/4576 4589/8434/4580 f 4586/8432/4578 4594/8438/4584 4595/8439/4585 f 4596/8440/4586 4582/8425/4572 4585/8429/4575 f 4585/8429/4575 4586/8432/4578 4596/8440/4586 f 4582/8425/4572 4576/8417/4566 4574/8415/4564 f 4576/8417/4566 4582/8425/4572 4596/8440/4586 f 4597/8441/4587 4598/8442/4588 4578/8419/4568 f 4597/8443/4587 4596/8440/4586 4599/8444/4589 f 4578/8419/4568 4600/8445/4590 4601/8446/4591 f 4579/8420/4569 4601/8446/4591 4580/8421/4570 f 4602/8447/4592 4598/8448/4588 4603/8449/4593 f 4602/8450/4592 4604/8451/4594 4600/8452/4590 f 4598/8448/4588 4605/8453/4595 4603/8449/4593 f 4599/8444/4589 4596/8440/4586 4595/8439/4585 f 4599/8444/4589 4606/8454/4596 4605/8453/4595 f 4594/8438/4584 4607/8455/4597 4606/8454/4596 f 4609/8456/4598 4605/8457/4595 4610/8458/4599 f 4609/8459/4598 4603/8449/4593 4605/8453/4595 f 4612/8460/4600 4614/8461/4601 4613/8462/4602 f 4615/8463/4603 4606/8454/4596 4607/8455/4597 f 4604/8464/4594 4602/8447/4592 4603/8449/4593 f 4603/8449/4593 4611/8465/4604 4616/8466/4605 f 4604/8464/4594 4616/8466/4605 4617/8467/4606 f 4564/8390/4553 4618/8468/4607 4558/8391/4554 f 4600/8469/4590 4619/8470/4608 4620/8471/4609 f 4620/8472/4609 4557/8383/4547 4621/8473/4610 f 4618/8468/4607 4601/8474/4591 4621/8473/4610 f 4621/8473/4610 4558/8391/4554 4618/8468/4607 f 4604/8475/4594 4617/8476/4606 4622/8477/4611 f 4557/8383/4547 4624/8478/4612 4563/8479/4552 f 4557/8383/4547 4625/8480/4613 4624/8478/4612 f 4557/8382/4547 4563/8389/4552 4484/8265/4472 f 4622/8481/4611 4619/8482/4608 4604/8464/4594 f 4626/8483/4614 4627/8484/4615 4628/8485/4616 f 4628/8485/4616 4536/8345/4522 4626/8483/4614 f 4629/8486/4617 4617/8467/4606 4616/8466/4605 f 4629/8487/4617 4616/8488/4605 4611/8489/4604 f 4631/8490/4618 4632/8491/4619 4563/8479/4552 f 4617/8476/4606 4563/8492/4552 4623/8493/4620 f 4631/8494/4618 4617/8476/4606 4630/8495/4621 f 4631/8490/4618 4630/8496/4621 4633/8497/4622 f 4633/8498/4622 4632/8499/4619 4631/8500/4618 f 4535/8344/4521 4626/8483/4614 4536/8345/4522 f 4535/8344/4521 4634/8501/4623 4626/8483/4614 f 4627/8484/4615 4626/8483/4614 4635/8502/4624 f 4635/8502/4624 4636/8503/4625 4633/8497/4622 f 4633/8497/4622 4637/8504/4626 4638/8505/4627 f 4635/8502/4624 4633/8497/4622 4627/8484/4615 f 4563/8479/4552 4632/8491/4619 4639/8506/4628 f 4562/8507/4551 4639/8506/4628 4560/8508/4549 f 4563/8492/4552 4624/8509/4612 4623/8493/4620 f 4639/8506/4628 4638/8505/4627 4640/8510/4629 f 4550/8511/4537 4641/8512/4630 4551/8513/4540 f 4641/8512/4630 4489/8514/4477 4551/8513/4540 f 4489/8514/4477 4561/8515/4550 4560/8516/4549 f 4561/8515/4550 4489/8514/4477 4488/8517/4476 f 4642/8518/4631 4560/8508/4549 4640/8510/4629 f 4643/8519/4632 4535/8344/4521 4537/8346/4523 f 4643/8519/4632 4636/8503/4625 4634/8501/4623 f 4643/8519/4632 4540/8352/4526 4636/8503/4625 f 4540/8352/4526 4541/8351/4527 4636/8503/4625 f 4548/8358/4533 4551/8520/4540 4642/8518/4631 f 4642/8518/4631 4637/8504/4626 4548/8358/4533 f 4593/8521/4633 4644/8522/4634 4608/8523/4635 f 4589/8524/4580 4644/8522/4634 4593/8521/4633 f 4644/8522/4634 4589/8525/4580 4591/8526/4581 f 4647/8527/4636 4645/8528/4637 4608/8523/4635 f 4649/8529/4638 4648/8530/4639 4650/8531/4640 f 4647/8527/4636 4608/8523/4635 4644/8522/4634 f 4651/8532/4641 4644/8522/4634 4591/8526/4581 f 4651/8532/4641 4652/8533/4642 4647/8527/4636 f 4653/8534/4643 4591/8435/4581 4646/8535/4644 f 4646/8535/4644 4590/8436/4582 4654/8536/4645 f 4300/8537/4646 3800/8538/3817 4655/8539/4647 f 4654/8536/4645 3821/7352/3824 4300/8537/4646 f 4657/8540/4648 4656/8541/4649 4210/8542/4302 f 4656/8543/4649 4654/8536/4645 4655/8539/4647 f 4658/8544/4650 4646/8535/4644 4654/8536/4645 f 4658/8545/4650 4659/8546/4651 4660/8547/4652 f 4658/8545/4650 4654/8548/4645 4659/8546/4651 f 4659/8549/4651 4654/8550/4645 4657/8551/4648 f 4209/7855/4206 4661/8552/4653 4659/8546/4651 f 4661/8552/4653 4660/8547/4652 4659/8546/4651 f 4660/8547/4652 4653/8553/4643 4658/8545/4650 f 4195/7831/4191 4663/8554/4654 4661/8552/4653 f 4663/8554/4654 4195/7831/4191 4187/7827/4187 f 4664/8555/4655 4187/7827/4187 4186/7826/4186 f 4665/8556/4656 4661/8552/4653 4663/8554/4654 f 4665/8556/4656 4666/8557/4657 4667/8558/4658 f 4182/7821/4183 4181/7820/4182 4186/7826/4186 f 4669/8559/4659 4668/8560/4660 4670/8561/4661 f 4670/8562/4661 4183/8563/4662 4671/8564/4663 f 4185/8565/4185 4671/8564/4663 4183/8563/4662 f 4185/8566/4185 4184/7822/4184 4672/8567/4664 f 4521/8568/4508 4534/8343/4520 4673/8569/4665 f 4521/8570/4508 4674/8571/4666 4513/8572/4500 f 4513/8572/4500 4674/8571/4666 4675/8573/4667 f 4677/8574/4668 4678/8575/4669 4675/8573/4667 f 4679/8576/4670 4674/8577/4666 4673/8569/4665 f 4609/8459/4598 4536/8345/4522 4628/8485/4616 f 4609/8578/4598 4610/8579/4599 4680/8580/4671 f 4680/8581/4671 4610/8582/4599 4612/8460/4600 f 4681/8583/4672 4676/8584/4673 4679/8585/4670 f 4679/8576/4670 4680/8581/4671 4681/8586/4672 f 4681/8586/4672 4612/8460/4600 4613/8462/4602 f 4681/8587/4672 4682/8588/4674 4676/8589/4673 f 4682/8590/4674 4613/8462/4602 4614/8461/4601 f 4677/8574/4668 4683/8591/4675 4684/8592/4676 f 4683/8593/4675 4676/8589/4673 4682/8588/4674 f 4615/8594/4603 4608/8595/4635 4684/8592/4676 f 4608/8595/4635 4615/8594/4603 4607/8596/4597 f 4686/8597/4677 4685/8598/4678 4687/8599/4679 f 4688/8600/4680 4687/8599/4679 4685/8598/4678 f 4678/8575/4669 4685/8598/4678 4675/8573/4667 f 4678/8575/4669 4650/8601/4640 4688/8600/4680 f 4691/8602/4681 4690/8603/4682 4692/8604/4683 f 4689/8605/4684 4690/8603/4682 4694/8606/4685 f 4511/8314/4498 4695/8607/4686 4696/8608/4687 f 4691/8602/4681 4695/8609/4686 4693/8610/4688 f 4695/8609/4686 4516/8611/4504 4697/8612/4689 f 4695/8609/4686 4697/8612/4689 4693/8610/4688 f 4697/8613/4689 4515/8321/4502 4698/8614/4690 f 4686/8615/4677 4515/8321/4502 4514/8320/4501 f 4686/8616/4677 4699/8617/4691 4698/8618/4690 f 4698/8618/4690 4699/8617/4691 4693/8610/4688 f 4518/8324/4505 4409/8205/4405 4445/8199/4436 f 4507/8309/4495 4510/8313/4497 4508/8310/4391 f 4700/8619/4692 4237/7914/4175 4694/8606/4685 f 4700/8620/4692 4702/8621/4693 4236/8622/4236 f 4703/8623/4694 4238/7915/4238 4236/7912/4236 f 4704/8624/4695 4701/8625/4696 4705/8626/4697 f 4705/8626/4697 4694/8606/4685 4690/8603/4682 f 4705/8626/4697 4706/8627/4698 4704/8624/4695 f 4707/8628/4699 4702/8629/4693 4704/8624/4695 f 4707/8628/4699 4704/8624/4695 4706/8627/4698 f 4707/8628/4699 4703/8623/4694 4702/8629/4693 f 4708/8630/4700 4693/8610/4688 4699/8617/4691 f 4710/8631/4701 4648/8530/4639 4647/8527/4636 f 4647/8527/4636 4709/8632/4702 4710/8631/4701 f 4710/8631/4701 4650/8531/4640 4648/8530/4639 f 4709/8632/4702 4647/8527/4636 4652/8533/4642 f 4709/8632/4702 4652/8533/4642 4653/8553/4643 f 4660/8547/4652 4712/8633/4703 4709/8632/4702 f 4660/8547/4652 4709/8632/4702 4653/8553/4643 f 4713/8634/4704 4662/8635/4705 4714/8636/4706 f 4713/8634/4704 4714/8636/4706 4715/8637/4707 f 4713/8634/4704 4710/8631/4701 4712/8633/4703 f 4716/8638/4708 4717/8639/4709 4711/8640/4710 f 4711/8641/4710 4710/8631/4701 4716/8642/4708 f 4688/8600/4680 4718/8643/4711 4687/8599/4679 f 4717/8639/4709 4650/8601/4640 4711/8640/4710 f 4714/8636/4706 4662/8635/4705 4665/8556/4656 f 4665/8556/4656 4667/8558/4658 4714/8636/4706 f 4167/8644/4173 4719/8645/4712 4720/8646/4713 f 4721/8647/4714 4167/8644/4173 4720/8646/4713 f 4722/8648/4715 4719/8645/4712 4167/8644/4173 f 4233/8649/4716 4723/8650/4717 4234/7910/4235 f 4724/8651/4718 4232/8652/4233 4725/8653/4719 f 4232/8652/4233 4724/8651/4718 4233/8654/4716 f 4724/8655/4718 4726/8656/4720 4723/8657/4717 f 4723/8658/4717 4726/8659/4720 4234/8660/4235 f 4234/8660/4235 4726/8659/4720 4727/8661/4721 f 4234/8662/4235 4727/8663/4721 4227/8664/4227 f 4391/8143/4384 4387/8665/4380 4386/8666/4376 f 4165/7795/4166 4230/7904/4229 4728/8667/4722 f 4728/8667/4722 4161/7793/4164 4165/7795/4166 f 4161/8668/4164 4728/8669/4722 4729/8670/4723 f 4696/8671/4687 4397/8149/4390 4400/8672/4724 f 4730/8673/4725 4692/8604/4683 4690/8603/4682 f 4171/8674/4726 4163/7798/4169 4162/7796/4167 f 4162/7796/4167 4733/8675/4727 4731/8676/4728 f 4732/8677/4729 4161/7793/4164 4729/8678/4723 f 4734/8679/4730 4395/8680/4731 4396/8681/4732 f 4734/8679/4730 4396/8681/4732 4689/8605/4684 f 4731/8682/4728 4694/8606/4685 4237/7914/4175 f 4735/8683/4733 4731/8676/4728 4733/8675/4727 f 4735/8684/4733 4393/8685/4387 4394/8686/4386 f 4736/8687/4734 4733/8675/4727 4732/8677/4729 f 4736/8687/4734 4732/8677/4729 4729/8678/4723 f 4736/8688/4734 4393/8685/4387 4733/8689/4727 f 4391/8690/4384 4737/8691/4735 4738/8692/4736 f 4739/8693/4737 4737/8691/4735 4729/8694/4723 f 4738/8692/4736 4387/8695/4380 4391/8690/4384 f 4392/8696/4385 4736/8697/4734 4737/8698/4735 f 4740/8699/4738 4741/8700/4739 4742/8701/4399 f 4742/8160/4399 4388/8140/4381 4740/8702/4738 f 4740/8703/4738 4388/8140/4381 4387/8139/4380 f 4742/8701/4399 4741/8700/4739 4743/8704/4740 f 4742/8160/4399 4743/8705/4740 4408/8161/4400 f 4744/8706/4741 4739/8693/4737 4729/8694/4723 f 4739/8693/4737 4741/8700/4739 4740/8699/4738 f 4743/8705/4740 4447/8204/4437 4408/8161/4400 f 3346/6686/3358 3342/6683/3355 3363/6705/3374 f 3540/8707/3552 3708/7187/3716 4362/8095/4354 f 4722/8708/4715 4745/8709/4742 4746/8710/4743 f 4745/8711/4742 3538/8712/3550 3535/8713/3549 f 4745/8714/4742 4747/8715/4744 3538/8716/3550 f 4747/8717/4744 4748/8718/4745 4749/8719/4746 f 4748/8720/4745 4246/8721/4246 4749/8722/4746 f 3708/7187/3716 4749/8719/4746 4246/8723/4246 f 4245/8724/4747 3708/7187/3716 4246/8723/4246 f 4319/8725/4318 3706/7183/3713 3708/7187/3716 f 4319/8725/4318 3708/7187/3716 4245/8724/4747 f 4320/8726/4748 4319/8727/4318 4317/8728/4317 f 4320/8729/4748 4316/8730/4749 3704/7181/3711 f 4361/8093/4353 4750/8731/4750 4719/8645/4712 f 4750/8731/4750 4720/8646/4713 4719/8645/4712 f 4751/8732/4751 4752/8733/4752 4359/8734/4753 f 4725/8653/4719 3531/6972/3544 4360/8735/4754 f 4753/8736/4755 3531/6972/3544 4721/8647/4714 f 4750/8731/4750 4753/8736/4755 4720/8737/4713 f 3701/7179/3709 3704/7181/3711 4318/8738/4756 f 4315/8032/4315 4240/8031/4239 4672/8567/4664 f 4754/8739/4757 4313/8740/4314 4241/8741/4241 f 4754/8742/4757 4672/8743/4664 4313/8744/4314 f 4754/8742/4757 4241/8745/4241 4755/8746/4758 f 4671/8564/4663 4755/8746/4758 4667/8558/4658 f 4756/8747/4759 4667/8748/4658 4755/8749/4758 f 4755/8749/4758 4241/8750/4241 4756/8747/4759 f 4756/8747/4759 4715/8751/4707 4667/8748/4658 f 4757/8752/4760 4715/8751/4707 4703/8753/4694 f 4757/8752/4760 4703/8753/4694 4707/8754/4699 f 4757/8752/4760 4717/8639/4709 4716/8638/4708 f 4757/8752/4760 4718/8643/4711 4717/8639/4709 f 4718/8643/4711 4706/8755/4698 4708/8756/4700 f 3582/7021/3588 3749/7238/3754 3734/7227/3743 f 4758/8757/4761 4663/8554/4654 4664/8555/4655 f 4758/8757/4761 4669/8758/4659 4670/8562/4661 f 4758/8757/4761 4667/8558/4658 4666/8557/4657 f 4299/8759/4301 4210/8760/4302 4656/8761/4649 f 4299/8759/4301 4656/8761/4649 3800/8762/3817 f 4465/8228/4453 4337/8763/4332 4345/8243/4340 f 4454/8224/4446 4475/8250/4462 4459/8225/4451 f 4475/8764/4462 4476/8255/4463 4473/8765/4466 f 4759/8766/4762 4406/8165/4397 4405/8767/4396 f 4751/8732/4751 4760/8768/4763 4724/8651/4718 f 4760/8768/4763 3524/8769/3537 4358/8770/4764 f 3636/7083/3644 3635/7082/3643 4384/8771/4378 f 3301/8772/4765 4363/8773/4766 4364/8774/4767 f 4411/8163/4402 4410/8164/4403 4759/8766/4762 f 4762/8775/4768 4764/8776/4769 4765/8777/4770 f 4765/8778/4770 4766/8779/4771 4762/8780/4768 f 4767/8781/4772 4768/8782/4773 4769/8783/4774 f 4768/8782/4773 4771/8784/4775 4769/8783/4774 f 4773/8785/4776 4771/8784/4775 4768/8782/4773 f 4774/8786/4777 4768/8782/4773 4772/8787/4778 f 4773/8785/4776 4775/8788/4779 4777/8789/4780 f 4776/8790/4781 4778/8791/4782 4775/8788/4779 f 4775/8788/4779 4778/8791/4782 4777/8789/4780 f 4779/8792/4783 4780/8793/4784 4778/8794/4782 f 4779/8792/4783 4782/8795/4785 4780/8793/4784 f 4781/8796/4786 4784/8797/4787 4782/8795/4785 f 4785/8798/4788 4786/8799/4789 4810/8800/4790 f 4810/8800/4790 4787/8801/4791 4788/8802/4792 f 4786/8799/4789 4789/8803/4793 4787/8801/4791 f 4791/8804/4794 4792/8805/4795 4789/8803/4793 f 4789/8803/4793 4786/8799/4789 4791/8804/4794 f 4791/8804/4794 4786/8799/4789 4790/8806/4796 f 4781/8796/4786 4783/8807/4797 4784/8797/4787 f 4793/8808/4798 4783/8807/4797 4794/8809/4799 f 4793/8810/4798 4796/8811/4800 4795/8812/4801 f 3299/8813/3316 3335/8814/3348 4765/8815/4770 f 4802/8816/4802 4768/8817/4773 4767/8818/4772 f 4767/8818/4772 4766/8819/4771 4802/8816/4802 f 4802/8816/4802 3335/6670/3348 3336/6669/3347 f 4768/8817/4773 4802/8816/4802 4772/8820/4778 f 4804/8821/4803 4799/8822/4804 4803/8823/4805 f 4798/8824/4806 4804/8825/4803 4803/8826/4805 f 4801/8827/4807 3299/8828/3316 4765/8777/4770 f 4807/8829/4808 4806/8830/4809 4808/8831/4810 f 4806/8830/4809 4807/8829/4808 4801/8832/4807 f 4809/8833/4811 4764/8834/4769 4810/8800/4790 f 4810/8800/4790 4788/8802/4792 4809/8833/4811 f 4790/8806/4796 4813/8835/4812 4791/8804/4794 f 4817/8836/4813 4814/8837/4814 4818/8838/4815 f 4817/8836/4813 4812/8839/4816 4813/8835/4812 f 4816/8840/4817 4815/8841/4818 4817/8842/4813 f 4816/8840/4817 4819/8843/4819 4821/8844/4820 f 4819/8845/4819 4822/8846/4821 4823/8847/4822 f 4823/8847/4822 4821/8848/4820 4819/8845/4819 f 4824/8849/4823 4799/8850/4804 4822/8846/4821 f 4825/8851/4824 4809/8833/4811 4788/8802/4792 f 4826/8852/4825 4788/8802/4792 4787/8801/4791 f 4829/8853/4826 4827/8854/4827 4826/8852/4825 f 4826/8852/4825 4828/8855/4828 4829/8853/4826 f 4808/8856/4810 4806/8857/4809 4825/8851/4824 f 4832/8858/4829 4825/8851/4824 4827/8854/4827 f 4832/8859/4829 4833/8860/4830 4831/8861/4831 f 4832/8862/4829 4830/8863/4832 4834/8864/4833 f 4834/8865/4833 4833/8860/4830 4832/8859/4829 f 4802/8816/4802 3338/8866/4834 3373/6996/3563 f 4772/8820/4778 5016/8867/4835 4774/8868/4777 f 5016/8867/4835 4776/8869/4781 4774/8868/4777 f 4776/8869/4781 5011/8870/4836 4835/8871/4837 f 4835/8871/4837 4779/8792/4783 4776/8869/4781 f 4837/8872/4838 4783/8807/4797 4781/8796/4786 f 4797/8873/4839 4796/8811/4800 4839/8874/4840 f 4839/8874/4840 4840/8875/4841 4797/8873/4839 f 4797/8873/4839 4841/8876/4842 4804/8825/4803 f 4777/8789/4780 4842/8877/4843 4771/8784/4775 f 4771/8784/4775 4773/8785/4776 4777/8789/4780 f 4771/8784/4775 4842/8877/4843 4843/8878/4844 f 4763/8879/4845 4844/8880/4846 4764/8881/4769 f 4770/8882/4847 4769/8783/4774 4845/8883/4848 f 4784/8884/4787 4873/8885/4849 4846/8886/4850 f 4795/8812/4801 4847/8887/4851 4793/8810/4798 f 4798/8824/4806 4848/8888/4852 4795/8812/4801 f 4848/8889/4852 4798/8890/4806 4849/8891/4853 f 4798/8890/4806 4850/8892/4854 4849/8891/4853 f 4805/8893/4855 4851/8894/4856 4850/8892/4854 f 4800/8895/4857 4824/8849/4823 4852/8896/4858 f 4819/8845/4819 4853/8897/4859 4867/8898/4860 f 4867/8898/4860 4824/8849/4823 4819/8845/4819 f 4855/8899/4861 4819/8845/4819 4818/8838/4815 f 4855/8899/4861 4818/8838/4815 4856/8900/4862 f 4856/8900/4862 4818/8838/4815 4814/8837/4814 f 4857/8901/4863 4814/8837/4814 4790/8806/4796 f 4857/8901/4863 4790/8806/4796 4786/8799/4789 f 4858/8902/4864 4786/8799/4789 4785/8798/4788 f 4764/8881/4769 4844/8880/4846 4811/8903/4865 f 4860/8904/4866 4859/8905/4867 4811/8906/4865 f 4811/8906/4865 4861/8907/4868 4860/8904/4866 f 4855/8908/4861 4856/8909/4862 4865/8910/4869 f 4855/8899/4861 4866/8911/4870 4854/8912/4871 f 4824/8849/4823 4868/8913/4872 4852/8896/4858 f 4777/8789/4780 4870/8914/4873 4842/8877/4843 f 4778/8791/4782 4780/8915/4784 4870/8914/4873 f 4782/8916/4785 4846/8886/4850 4872/8917/4874 f 4875/8918/4875 4847/8919/4851 4848/8889/4852 f 4876/8920/4876 4769/8783/4774 4843/8878/4844 f 4878/8921/4877 4763/8879/4845 4845/8922/4848 f 4861/8923/4868 4811/8903/4865 4844/8880/4846 f 4842/8924/4843 4880/8925/4878 4879/8926/4879 f 4871/8927/4880 4882/8928/4881 4881/8929/4882 f 4846/8886/4850 4883/8930/4883 4882/8928/4881 f 4883/8930/4883 4873/8885/4849 4874/8931/4884 f 4884/8932/4885 4883/8930/4883 4874/8931/4884 f 4886/8933/4886 4887/8934/4887 4888/8935/4888 f 4889/8936/4889 4885/8937/4890 4849/8938/4853 f 4850/8939/4854 4890/8940/4891 4889/8941/4889 f 4852/8942/4858 4868/8943/4872 4851/8944/4856 f 4851/8945/4856 4868/8946/4872 4891/8947/4892 f 4892/8948/4893 4876/8920/4876 4843/8878/4844 f 4877/8949/4894 4876/8950/4876 4893/8951/4895 f 4892/8948/4893 4843/8878/4844 4879/8952/4879 f 4860/8904/4866 4949/8953/4896 4862/8954/4897 f 4896/8955/4898 4863/8956/4899 4922/8957/4900 f 4879/8952/4879 4897/8958/4901 4892/8948/4893 f 4897/8958/4901 4879/8952/4879 4880/8959/4878 f 4898/8960/4902 4880/8961/4878 4881/8929/4882 f 4899/8962/4903 4882/8928/4881 4883/8930/4883 f 4881/8929/4882 4900/8963/4904 4898/8960/4902 f 4899/8962/4903 4883/8930/4883 4884/8932/4885 f 4901/8964/4905 4900/8963/4904 4899/8962/4903 f 4902/8965/4906 4884/8932/4885 4888/8966/4888 f 4903/8967/4907 4904/8968/4908 4887/8969/4887 f 4903/8970/4907 4886/8933/4886 4889/8936/4889 f 4905/8971/4909 4867/8898/4860 4854/8912/4871 f 4854/8972/4871 4866/8973/4870 4905/8974/4909 f 4866/8911/4870 4865/8975/4869 4906/8976/4910 f 4864/8977/4911 4863/8956/4899 4896/8955/4898 f 4907/8978/4912 4877/8949/4894 4893/8951/4895 f 4893/8951/4895 4876/8950/4876 4908/8979/4913 f 4908/8980/4913 4876/8920/4876 4910/8981/4914 f 4910/8981/4914 4876/8920/4876 4892/8948/4893 f 4892/8948/4893 4912/8982/4915 4910/8981/4914 f 4898/8983/4902 4912/8984/4915 4897/8985/4901 f 4913/8986/4916 4898/8960/4902 4900/8963/4904 f 4901/8964/4905 4914/8987/4917 4900/8963/4904 f 4917/8988/4918 4902/8965/4906 4888/8966/4888 f 4917/8988/4918 4888/8966/4888 4887/8969/4887 f 4917/8988/4918 4916/8989/4919 4915/8990/4920 f 4918/8991/4921 4917/8988/4918 4904/8968/4908 f 4904/8992/4908 4919/8993/4922 4918/8994/4921 f 4920/8995/4923 4949/8996/4896 4921/8997/4924 f 4922/8957/4900 4862/8954/4897 4949/8953/4896 f 4863/8956/4899 4862/8954/4897 4922/8957/4900 f 4895/8998/4925 4894/8999/4926 4921/9000/4924 f 4923/9001/4927 4896/8955/4898 4922/8957/4900 f 4923/9001/4927 4906/9002/4910 4896/8955/4898 f 4923/9003/4927 4924/9004/4928 4905/8971/4909 f 4906/9005/4910 4905/9006/4909 4866/9007/4870 f 4925/9008/4929 4926/9009/4930 4869/9010/4931 f 4925/9011/4929 4869/9012/4931 4867/8898/4860 f 4867/8898/4860 4905/8971/4909 4925/9011/4929 f 4869/9012/4931 4927/9013/4932 4929/9014/4933 f 4869/9012/4931 4926/9015/4930 4928/9016/4934 f 4930/9017/4935 4890/9018/4891 4891/9019/4892 f 4932/9020/4936 4933/9021/4937 4918/9022/4921 f 4933/9023/4937 4916/8989/4919 4917/8988/4918 f 4916/9024/4919 4938/9025/4938 4936/9026/4939 f 4916/9024/4919 4936/9026/4939 4914/9027/4917 f 4937/9028/4940 4914/9029/4917 4938/9030/4938 f 4938/9031/4938 4914/8987/4917 4936/9032/4939 f 4939/9033/4941 4914/9034/4917 4937/9028/4940 f 4919/9035/4922 4903/8970/4907 4889/8936/4889 f 4939/9033/4941 4941/9036/4942 4942/9037/4943 f 4913/9038/4916 4941/9036/4942 4912/8984/4915 f 4942/9039/4943 4913/9040/4916 4940/9041/4944 f 4911/9042/4945 4912/8982/4915 4941/9043/4942 f 4907/8978/4912 4943/9044/4946 4944/9045/4947 f 4944/9046/4947 4909/9047/4948 4907/9048/4912 f 4946/9049/4949 4909/9050/4948 4945/9051/4950 f 4909/9050/4948 4946/9049/4949 4920/9052/4923 f 4948/9053/4951 4922/9054/4900 4949/8996/4896 f 4950/9055/4952 4923/9056/4927 4922/9054/4900 f 4950/9055/4952 4948/9053/4951 4951/9057/4953 f 4924/9004/4928 4923/9003/4927 4952/9058/4954 f 4952/9058/4954 4953/9059/4955 4924/9004/4928 f 4925/9011/4929 4924/9004/4928 4953/9059/4955 f 4925/9011/4929 4928/9016/4934 4926/9015/4930 f 4927/9013/4932 4930/9017/4935 4929/9014/4933 f 4938/9060/4938 4934/9061/4956 4955/9062/4957 f 4939/9033/4941 4937/9028/4940 4956/9063/4958 f 4956/9063/4958 4938/9030/4938 4955/9064/4957 f 4957/9065/4959 4939/9033/4941 4956/9063/4958 f 4941/9036/4942 4967/9066/4960 4958/9067/4961 f 4958/9067/4961 4911/9068/4945 4941/9036/4942 f 4945/9069/4950 4960/9070/4962 4961/9071/4963 f 4948/9053/4951 4947/9072/4964 4962/9073/4965 f 4951/9057/4953 4963/9074/4966 4952/9058/4954 f 4951/9057/4953 4962/9073/4965 4963/9074/4966 f 4953/9075/4955 4952/9058/4954 4963/9074/4966 f 4953/9076/4955 4963/9077/4966 4964/9078/4967 f 4953/9076/4955 4964/9078/4967 4927/9079/4932 f 4931/9080/4968 4965/9081/4969 4932/9082/4936 f 4966/9083/4970 4956/9084/4958 4955/9085/4957 f 4959/9086/4971 4958/9067/4961 4968/9087/4972 f 4960/9070/4962 4959/9088/4971 4969/9089/4973 f 4964/9090/4967 4963/9074/4966 4971/9091/4974 f 4965/9092/4969 4964/9090/4967 4970/9093/4975 f 4970/9093/4975 4964/9090/4967 4971/9091/4974 f 4965/9081/4969 4970/9094/4975 4969/9095/4973 f 4969/9089/4973 4959/9088/4971 4968/9096/4972 f 4965/9097/4969 4969/9089/4973 4954/9098/4976 f 4972/9099/4977 4834/8864/4833 4830/8863/4832 f 4972/9099/4977 4973/9100/4978 4974/9101/4979 f 4974/9101/4979 4976/9102/4980 4977/9103/4981 f 4976/9102/4980 4978/9104/4982 4977/9103/4981 f 4979/9105/4983 4980/9106/4984 4981/9107/4985 f 4981/9108/4985 4982/9109/4986 4979/9110/4983 f 4983/9111/4987 4984/9112/3535 3634/9113/3642 f 3523/6961/3536 4985/9114/4988 4986/9115/4989 f 4985/9114/4988 4988/9116/4990 4987/9117/4991 f 4988/9118/4990 4990/9119/4992 4987/9120/4991 f 4990/9121/4992 4991/9122/4993 4989/9123/4994 f 4989/9124/4994 4992/9125/4995 4993/9126/4996 f 4989/9123/4994 4994/9127/4997 4992/9128/4995 f 4989/9123/4994 4991/9122/4993 4994/9127/4997 f 4996/9129/4998 4999/9130/4999 4997/9131/5000 f 5002/9132/5001 5001/9133/5002 5003/9134/5003 f 5003/9135/5003 5004/9136/5004 5002/9137/5001 f 4985/9114/4988 5005/9138/5005 4988/9116/4990 f 4991/9122/4993 4988/9116/4990 5005/9138/5005 f 4999/9130/4999 4995/9139/5006 5142/9140/5007 f 4794/9141/4799 5008/9142/5008 4839/8874/4840 f 4839/8874/4840 5008/9142/5008 5009/9143/5009 f 5010/9144/5010 4836/9145/5011 4835/8871/4837 f 4835/8871/4837 4836/9145/5011 4779/8792/4783 f 5010/9144/5010 4835/8871/4837 5011/8870/4836 f 5010/9144/5010 5013/9146/5012 5014/9147/5013 f 5015/9148/5014 5013/9146/5012 5016/8867/4835 f 5017/9149/5015 5016/8867/4835 5012/9150/5016 f 3373/6996/3563 5017/9149/5015 5012/9150/5016 f 5018/9151/5017 4838/9152/5018 4837/8872/4838 f 4838/9153/5018 5018/9154/5017 5008/9142/5008 f 5008/9142/5008 5018/9154/5017 5019/9155/5019 f 5019/9155/5019 5020/9156/5020 5008/9142/5008 f 5014/9147/5013 4836/9145/5011 5010/9144/5010 f 5021/9157/5021 5009/9143/5009 5020/9156/5020 f 5009/9143/5009 5022/9158/5022 4840/8875/4841 f 4840/8875/4841 4839/8874/4840 5009/9143/5009 f 5009/9143/5009 5021/9157/5021 5022/9158/5022 f 5022/9158/5022 5024/9159/5023 5025/9160/5024 f 5022/9158/5022 5025/9160/5024 5023/9161/5025 f 4841/8876/4842 4840/8875/4841 5023/9161/5025 f 5027/9162/5026 5023/9161/5025 5025/9160/5024 f 5025/9160/5024 5028/9163/5027 5027/9162/5026 f 5029/9164/5028 5013/9146/5012 5015/9148/5014 f 5024/9159/5023 5021/9157/5021 5031/9165/5029 f 5031/9165/5029 5034/9166/5030 5193/9167/5031 f 5031/9165/5029 5193/9167/5031 5024/9159/5023 f 5035/9168/5032 5038/9169/5033 5037/9170/5034 f 5039/9171/5035 5037/9170/5034 5038/9169/5033 f 5037/9170/5034 5040/9172/5036 5041/9173/5037 f 5045/9174/5038 5043/9175/5039 5041/9173/5037 f 5041/9173/5037 5044/9176/5040 5045/9174/5038 f 5045/9174/5038 5044/9176/5040 5046/9177/5041 f 5049/9178/5042 5050/9179/5043 5047/9180/5044 f 5047/9180/5044 5051/9181/5045 5048/9182/5046 f 5047/9180/5044 5046/9177/5041 5049/9178/5042 f 5017/9149/5015 3554/6994/3561 5015/9148/5014 f 5015/9148/5014 3592/7028/3595 5029/9164/5028 f 5029/9164/5028 5014/9147/5013 5013/9146/5012 f 5014/9147/5013 5055/9183/5047 5030/9184/5048 f 5056/9185/5049 5030/9184/5048 5055/9183/5047 f 5056/9185/5049 5018/9151/5017 5030/9184/5048 f 5057/9186/5050 5019/9155/5019 5018/9154/5017 f 5058/9187/5051 5020/9156/5020 5019/9155/5019 f 5060/9188/5052 5020/9156/5020 5059/9189/5053 f 5062/9190/5054 5032/9191/5055 5061/9192/5056 f 5062/9190/5054 5061/9192/5056 5038/9169/5033 f 5038/9169/5033 5063/9193/5057 5039/9171/5035 f 5038/9169/5033 5064/9194/5058 5063/9193/5057 f 5066/9195/5059 5063/9193/5057 5065/9196/5060 f 5066/9195/5059 5039/9171/5035 5063/9193/5057 f 5072/9197/5061 5052/9198/5062 5050/9179/5043 f 5073/9199/5063 5052/9198/5062 5072/9197/5061 f 5075/9200/5064 5074/9201/5065 5073/9199/5063 f 5077/9202/5066 5078/9203/5067 5079/9204/5068 f 5077/9202/5066 5076/9205/5069 5075/9206/5064 f 5081/9207/5070 5079/9204/5068 5078/9203/5067 f 5078/9203/5067 5082/9208/5071 5081/9207/5070 f 5081/9207/5070 5083/9209/5072 5084/9210/5073 f 5086/9211/5074 3627/7079/3640 3625/7064/3627 f 4893/8951/4895 4908/8979/4913 4943/9044/4946 f 4943/9044/4946 4907/8978/4912 4893/8951/4895 f 5087/9212/5075 5072/9197/5061 5071/9213/5076 f 5080/9214/5077 5075/9200/5064 5089/9215/5078 f 5089/9215/5078 5090/9216/5079 5080/9214/5077 f 5080/9217/5077 5322/9218/5080 5082/9208/5071 f 5082/9208/5071 5091/9219/5081 5083/9209/5072 f 5085/9220/5082 5084/9210/5073 5092/9221/5083 f 3633/7080/3641 3627/7079/3640 5085/9220/5082 f 4908/8980/4913 4911/9042/4945 4958/9222/4961 f 4943/9223/4946 4958/9222/4961 4959/9224/4971 f 3636/7083/3644 4982/9109/4986 4981/9108/4985 f 5094/9225/5084 4972/9226/4977 5093/9227/5085 f 5093/9228/5085 4972/9099/4977 4830/8863/4832 f 5095/9229/5086 4830/9230/4832 4829/9231/4826 f 5095/9229/5086 4829/9231/4826 4828/9232/4828 f 5095/9229/5086 5096/9233/5087 5104/9234/5088 f 5096/9235/5087 4792/8805/4795 4812/8839/4816 f 5097/9236/5089 4974/9101/4979 4973/9100/4978 f 4974/9101/4979 5097/9236/5089 5098/9237/5090 f 5099/9238/5091 4815/9239/4818 5100/9240/5092 f 5101/9241/5093 5102/9242/5094 5100/9240/5092 f 4816/8840/4817 5101/9243/5093 4815/8841/4818 f 4820/9244/5095 5114/9245/5096 5101/9243/5093 f 5094/9225/5084 5138/9246/5097 5140/9247/5098 f 5140/9247/5098 5097/9248/5089 5094/9225/5084 f 5103/9249/5099 5093/9227/5085 5104/9250/5088 f 5093/9227/5085 5103/9249/5099 5094/9225/5084 f 5105/9251/5100 5104/9234/5088 5096/9233/5087 f 5099/9252/5091 5105/9251/5100 5096/9233/5087 f 5100/9240/5092 5102/9242/5094 5107/9253/5101 f 5102/9254/5094 5108/9255/5102 5107/9256/5101 f 5111/9257/5103 5104/9234/5088 5105/9251/5100 f 5106/9258/5104 5112/9259/5105 5105/9251/5100 f 5107/9260/5101 5112/9259/5105 5106/9261/5104 f 5102/9254/5094 5113/9262/5106 5108/9255/5102 f 5112/9259/5105 5117/9263/5107 5111/9257/5103 f 5135/9264/5108 5112/9259/5105 5119/9265/5109 f 5119/9265/5109 5107/9260/5101 5118/9266/5110 f 5107/9260/5101 5119/9265/5109 5112/9259/5105 f 5120/9267/5111 5115/9268/5112 5124/9269/5113 f 5126/9270/5114 5125/9271/5115 5127/9272/5116 f 5126/9270/5114 5122/9273/5117 5125/9271/5115 f 5127/9272/5116 5128/9274/5118 5126/9270/5114 f 5126/9270/5114 5116/9275/5119 5120/9267/5111 f 5128/9274/5118 5129/9276/5120 5130/9277/5121 f 5131/9278/5122 5118/9279/5110 5130/9277/5121 f 5133/9280/5123 5134/9281/5124 5132/9282/5125 f 5103/9249/5099 5137/9283/5126 5138/9246/5097 f 5097/9248/5089 5140/9247/5098 5141/9284/5127 f 5139/9285/5128 5140/9247/5098 5138/9246/5097 f 5097/9236/5089 5142/9140/5007 5098/9237/5090 f 5142/9286/5007 5097/9248/5089 5141/9284/5127 f 4983/9287/4987 5143/9288/5129 5005/9138/5005 f 5143/9288/5129 5098/9237/5090 5007/9289/5130 f 5007/9289/5130 5098/9237/5090 5142/9140/5007 f 5007/9289/5130 5142/9140/5007 4995/9139/5006 f 5141/9284/5127 4997/9290/5000 4999/9291/4999 f 5141/9284/5127 5006/9292/5131 4997/9290/5000 f 5144/9293/5132 5006/9292/5131 5140/9247/5098 f 5144/9293/5132 5003/9135/5003 5006/9292/5131 f 5144/9293/5132 5140/9247/5098 5139/9285/5128 f 5163/9294/5133 5139/9285/5128 5138/9246/5097 f 5145/9295/5134 5163/9294/5133 5138/9246/5097 f 5117/9263/5107 5145/9296/5134 5137/9297/5126 f 5117/9263/5107 5136/9298/5135 5145/9296/5134 f 5147/9299/5136 5148/9300/5137 5149/9301/5138 f 5152/9302/5139 5153/9303/5140 5147/9299/5136 f 5152/9302/5139 5154/9304/5141 5155/9305/5142 f 5154/9304/5141 5152/9302/5139 5149/9301/5138 f 5156/9306/5143 5155/9305/5142 5154/9304/5141 f 5155/9305/5142 5158/9307/5144 5004/9308/5004 f 5158/9307/5144 5155/9305/5142 5156/9306/5143 f 5161/9309/5145 5150/9310/5146 5147/9311/5136 f 5160/9312/5147 5146/9313/5148 5161/9309/5145 f 5146/9313/5148 5160/9312/5147 5145/9295/5134 f 5159/9314/5149 5003/9135/5003 5144/9293/5132 f 5163/9294/5133 5153/9315/5140 5157/9316/5150 f 5165/9317/5151 4823/9318/4822 4799/9319/4804 f 4823/9318/4822 5166/9320/5152 5110/9321/5153 f 5167/9322/5154 5124/9269/5113 5115/9268/5112 f 5123/9323/5155 5121/9324/5156 5124/9269/5113 f 5169/9325/5157 5124/9326/5113 5168/9327/5158 f 5170/9328/5159 5173/9329/5160 5174/9330/5161 f 5174/9330/5161 5173/9329/5160 5175/9331/5162 f 5175/9331/5162 5514/9332/5163 5174/9330/5161 f 5175/9333/5162 5176/9334/5164 5177/9335/5165 f 5177/9336/5165 5178/9337/5166 5179/9338/5167 f 5178/9339/5166 5176/9340/5164 5180/9341/5168 f 5179/9338/5167 5181/9342/5169 5182/9343/5170 f 5183/9344/5171 5181/9342/5169 5185/9345/5172 f 5187/9346/5173 5185/9345/5172 5181/9342/5169 f 5188/9347/5174 5186/9348/5175 5185/9345/5172 f 5190/9349/5176 5180/9341/5168 5191/9350/5177 f 5191/9350/5177 5176/9340/5164 5175/9331/5162 f 5194/9351/5178 5034/9166/5030 5035/9168/5032 f 5196/9352/5179 5037/9170/5034 5197/9353/5180 f 5037/9170/5034 5195/9354/5181 5035/9168/5032 f 5197/9353/5180 5037/9170/5034 5198/9355/5182 f 5042/9356/5183 5199/9357/5184 5198/9355/5182 f 5042/9356/5183 5198/9355/5182 5037/9170/5034 f 5043/9175/5039 5199/9357/5184 5042/9356/5183 f 5164/9358/5185 5202/9359/5186 5166/9320/5152 f 5164/9358/5185 4823/9318/4822 5165/9317/5151 f 5110/9321/5153 5166/9320/5152 5203/9360/5187 f 5203/9360/5187 5114/9245/5096 5110/9321/5153 f 5167/9322/5154 5204/9361/5188 5205/9362/5189 f 5205/9363/5189 5208/9364/5190 5168/9327/5158 f 5168/9327/5158 5167/9365/5154 5205/9363/5189 f 5168/9327/5158 5206/9366/5191 5169/9325/5157 f 5205/9363/5189 5204/9367/5188 5209/9368/5192 f 5204/9361/5188 5203/9360/5187 5211/9369/5193 f 5203/9360/5187 5202/9359/5186 5211/9369/5193 f 5211/9370/5193 5202/9371/5186 5213/9372/5194 f 5213/9373/5194 5202/9374/5186 5164/9375/5185 f 5180/9341/5168 5199/9357/5184 5184/9376/5195 f 5216/9377/5196 5199/9357/5184 5190/9349/5176 f 5027/9378/5026 5214/9379/5197 5026/9380/5198 f 5217/9381/5199 5028/9163/5027 5193/9167/5031 f 5027/9162/5026 5217/9381/5199 5214/9382/5197 f 5219/9383/5200 5034/9166/5030 5194/9351/5178 f 5220/9384/5201 5195/9354/5181 5221/9385/5202 f 5196/9352/5179 5221/9385/5202 5195/9354/5181 f 5197/9353/5180 5200/9386/5203 5222/9387/5204 f 5216/9377/5196 5190/9349/5176 5191/9350/5177 f 5222/9388/5204 5216/9389/5196 5192/9390/5205 f 5223/9391/5206 5222/9388/5204 5192/9390/5205 f 5196/9352/5179 5197/9353/5180 5225/9392/5207 f 5225/9392/5207 5222/9387/5204 5224/9393/5208 f 5221/9385/5202 5196/9352/5179 5238/9394/5209 f 5221/9385/5202 5238/9394/5209 5226/9395/5210 f 5173/9329/5160 5192/9396/5205 5191/9350/5177 f 5227/9397/5211 5218/9398/5212 5219/9383/5200 f 5217/9381/5199 5215/9399/5213 5214/9382/5197 f 5214/9379/5197 5164/9375/5185 5026/9380/5198 f 5215/9400/5213 5230/9401/5214 5231/9402/5215 f 5231/9403/5215 5232/9404/5216 5211/9405/5193 f 5229/9406/5217 5230/9407/5214 5215/9408/5213 f 5235/9409/5218 5236/9410/5219 5227/9411/5211 f 5227/9411/5211 5236/9410/5219 5228/9412/5220 f 5227/9411/5211 5237/9413/5221 5235/9409/5218 f 5220/9414/5201 5226/9415/5210 5237/9413/5221 f 5225/9392/5207 5224/9393/5208 5239/9416/5222 f 5196/9352/5179 5239/9416/5222 5238/9394/5209 f 5223/9391/5206 5240/9417/5223 5224/9418/5208 f 5241/9419/5224 5242/9420/5225 5243/9421/5226 f 5173/9329/5160 5243/9421/5226 5192/9396/5205 f 5173/9329/5160 5170/9328/5159 5241/9419/5224 f 5244/9422/5227 5171/9423/5228 5122/9273/5117 f 5171/9424/5228 5244/9425/5227 5242/9426/5225 f 5264/9427/5229 5169/9325/5157 5206/9366/5191 f 5169/9325/5157 5122/9428/5117 5123/9429/5155 f 5245/9430/5230 5228/9431/5220 5236/9432/5219 f 5246/9433/5231 5247/9434/5232 5245/9435/5230 f 5245/9435/5230 5236/9436/5219 5246/9433/5231 f 5235/9409/5218 5237/9413/5221 5248/9437/5233 f 5248/9437/5233 5246/9438/5231 5235/9409/5218 f 5250/9439/5234 5248/9440/5233 5249/9441/5235 f 5251/9442/5236 5599/9443/5237 5249/9441/5235 f 5251/9442/5236 5252/9444/5238 5253/9445/5239 f 5237/9446/5221 5256/9447/5240 5248/9440/5233 f 5226/9415/5210 5257/9448/5241 5237/9413/5221 f 5261/9449/5242 5242/9426/5225 5244/9425/5227 f 5261/9449/5242 5262/9450/5243 5263/9451/5244 f 5242/9426/5225 5263/9451/5244 5260/9452/5245 f 5244/9425/5227 5264/9427/5229 5261/9449/5242 f 5266/9453/5246 5192/9390/5205 5243/9454/5226 f 5259/9455/5247 5240/9417/5223 5267/9456/5248 f 5275/9457/5249 5258/9458/5250 5239/9459/5222 f 5252/9444/5238 5256/9447/5240 5270/9460/5251 f 5269/9461/5252 5274/9462/5253 5273/9463/5254 f 5276/9464/5255 5239/9459/5222 5259/9465/5247 f 5269/9461/5252 5268/9466/5256 5274/9462/5253 f 5278/9467/5257 5279/9468/5258 5280/9469/5259 f 5280/9469/5259 5266/9453/5246 5278/9467/5257 f 5281/9470/5260 5267/9456/5248 5280/9469/5259 f 5282/9471/5261 5280/9469/5259 5279/9468/5258 f 5263/9472/5244 5284/9473/5262 5260/9474/5245 f 5278/9467/5257 5284/9475/5262 5547/9476/5263 f 5279/9468/5258 5547/9476/5263 5545/9477/5264 f 5285/9478/5265 5279/9468/5258 5545/9477/5264 f 5276/9479/5255 5259/9480/5247 5281/9481/5260 f 5276/9482/5255 5281/9470/5260 5283/9483/5266 f 5283/9484/5266 5286/9485/5267 5276/9464/5255 f 5287/9486/5268 5053/9487/5269 3838/7374/3840 f 5053/9487/5269 5287/9486/5268 5289/9488/5270 f 5054/9489/5271 5288/9490/5272 5055/9183/5047 f 5055/9183/5047 5290/9491/5273 5291/9492/5274 f 5291/9492/5274 5056/9185/5049 5055/9183/5047 f 3837/7376/3842 5293/9493/5275 5287/9486/5268 f 5289/9488/5270 5287/9486/5268 5294/9494/5276 f 5289/9488/5270 5294/9494/5276 5288/9490/5272 f 5288/9490/5272 5294/9494/5276 5295/9495/5277 f 5296/9496/5278 5295/9495/5277 5297/9497/5279 f 5296/9496/5278 5290/9491/5273 5288/9490/5272 f 5290/9491/5273 5296/9496/5278 5292/9498/5280 f 5302/9499/5281 5296/9496/5278 5297/9497/5279 f 5296/9500/5278 5298/9501/5282 5292/9502/5280 f 5294/9494/5276 5293/9493/5275 5300/9503/5283 f 5300/9503/5283 5295/9495/5277 5294/9494/5276 f 5300/9503/5283 5304/9504/5284 5295/9495/5277 f 5295/9495/5277 5304/9504/5284 5301/9505/5285 f 5303/9506/5286 3857/7392/3858 3862/7397/3863 f 5304/9504/5284 5300/9503/5283 5303/9506/5286 f 5305/9507/5287 5301/9505/5285 5304/9504/5284 f 5302/9508/5281 5306/9509/5288 5307/9510/5289 f 5302/9508/5281 5307/9510/5289 5298/9501/5282 f 5308/9511/5290 5057/9186/5050 5291/9512/5274 f 5291/9512/5274 5292/9502/5280 5308/9511/5290 f 5308/9511/5290 5292/9502/5280 5309/9513/5291 f 5059/9189/5053 5310/9514/5292 5060/9188/5052 f 5060/9188/5052 5312/9515/5293 5061/9192/5056 f 5065/9196/5060 5064/9194/5058 5313/9516/5294 f 5313/9516/5294 5061/9192/5056 5312/9515/5293 f 5311/9517/5295 5313/9516/5294 5312/9515/5293 f 5314/9518/5296 5065/9196/5060 5311/9517/5295 f 5065/9196/5060 5314/9518/5296 5067/9519/5297 f 5067/9519/5297 5066/9195/5059 5065/9196/5060 f 5315/9520/5298 5067/9519/5297 5314/9518/5296 f 5317/9521/5299 5070/9522/5300 5069/9523/5301 f 5069/9523/5301 5068/9524/5302 5317/9521/5299 f 5317/9521/5299 5315/9520/5298 5316/9525/5303 f 5070/9522/5300 5317/9521/5299 5071/9213/5076 f 5318/9526/5304 5071/9213/5076 5317/9521/5299 f 5071/9213/5076 5318/9526/5304 5087/9212/5075 f 5320/9527/5305 5087/9212/5075 5318/9526/5304 f 5322/9218/5080 5323/9528/5306 5091/9219/5081 f 5092/9221/5083 5091/9219/5081 5324/9529/5307 f 5325/9530/5308 5085/9220/5082 5092/9221/5083 f 5326/9531/5309 3633/7080/3641 5325/9530/5308 f 5328/9532/5310 5310/9514/5292 5327/9533/5311 f 5329/9534/5312 5327/9533/5311 5309/9513/5291 f 5309/9513/5291 5327/9533/5311 5310/9514/5292 f 5309/9513/5291 5330/9535/5313 5329/9534/5312 f 5292/9502/5280 5330/9535/5313 5309/9513/5291 f 5332/9536/5314 5311/9517/5295 5331/9537/5315 f 5331/9537/5315 5333/9538/5316 5332/9536/5314 f 5334/9539/5317 5335/9540/5318 5332/9536/5314 f 5332/9536/5314 5333/9538/5316 5334/9539/5317 f 5335/9540/5318 5315/9520/5298 5314/9518/5296 f 5316/9525/5303 5315/9520/5298 5335/9540/5318 f 5319/9541/5319 5317/9521/5299 5337/9542/5320 f 5338/9543/5321 5318/9526/5304 5319/9541/5319 f 5339/9544/5322 5320/9527/5305 5340/9545/5323 f 5340/9545/5323 5320/9527/5305 5338/9543/5321 f 5339/9546/5322 5341/9547/5324 5322/9218/5080 f 5322/9218/5080 5321/9548/5325 5339/9546/5322 f 5343/9549/5326 5091/9219/5081 5323/9528/5306 f 5344/9550/5327 5324/9529/5307 5343/9549/5326 f 5326/9531/5309 5345/9551/5328 3914/7479/3909 f 3914/7450/3909 3891/7449/3908 5326/9552/5309 f 5346/9553/5329 5329/9534/5312 5330/9535/5313 f 5330/9535/5313 5298/9501/5282 5346/9553/5329 f 5348/9554/5330 5333/9538/5316 5331/9537/5315 f 5333/9538/5316 5348/9554/5330 5349/9555/5331 f 5349/9555/5331 5334/9539/5317 5333/9538/5316 f 5353/9556/5332 5352/9557/5333 5354/9558/5334 f 5338/9543/5321 5319/9541/5319 5353/9556/5332 f 5353/9556/5332 5354/9558/5334 5338/9543/5321 f 5338/9559/5321 5355/9560/5335 5340/9561/5323 f 5358/9562/5336 5344/9550/5327 5359/9563/5337 f 5359/9563/5337 5343/9549/5326 5356/9564/5338 f 5345/9551/5328 3938/7477/3934 3914/7479/3909 f 5346/9553/5329 5298/9501/5282 5307/9510/5289 f 5361/9565/5339 5346/9553/5329 5362/9566/5340 f 5361/9565/5339 5347/9567/5341 5346/9553/5329 f 5361/9565/5339 5362/9566/5340 5363/9568/5342 f 5363/9568/5342 5348/9554/5330 5347/9567/5341 f 5363/9568/5342 5350/9569/5343 5348/9554/5330 f 5366/9570/5344 5351/9571/5345 5364/9572/5346 f 5367/9573/5347 5351/9571/5345 5366/9570/5344 f 5354/9558/5334 5367/9573/5347 5370/9574/5348 f 5370/9575/5348 5368/9576/5349 5369/9577/5350 f 5370/9575/5348 5369/9577/5350 5355/9560/5335 f 5355/9560/5335 5354/9578/5334 5370/9575/5348 f 5355/9560/5335 5372/9579/5351 5371/9580/5352 f 5339/9581/5322 5371/9580/5352 5341/9582/5324 f 5373/9583/5353 5341/9582/5324 5371/9580/5352 f 5371/9580/5352 5374/9584/5354 5373/9583/5353 f 5373/9585/5353 5357/9586/5355 5342/9587/5356 f 5375/9588/5357 5377/9589/5358 5378/9590/5359 f 5359/9591/5337 5378/9590/5359 5358/9592/5336 f 5379/9593/5360 3960/7520/3960 3938/7519/3934 f 5380/9594/5361 5381/9595/5362 3960/7520/3960 f 5376/9596/5363 5383/9597/5364 5377/9589/5358 f 5383/9597/5364 5384/9598/5365 5385/9599/5366 f 5386/9600/5367 5385/9599/5366 5384/9598/5365 f 5357/9601/5355 5384/9598/5365 5375/9588/5357 f 5385/9599/5366 5386/9600/5367 5387/9602/5368 f 5374/9584/5354 5386/9600/5367 5373/9583/5353 f 5386/9600/5367 5372/9579/5351 5388/9603/5369 f 5388/9603/5369 5387/9602/5368 5386/9600/5367 f 5389/9604/5370 5369/9577/5350 5390/9605/5371 f 5389/9604/5370 5387/9602/5368 5388/9603/5369 f 5390/9605/5371 5369/9577/5350 5392/9606/5372 f 5368/9576/5349 5393/9607/5373 5392/9606/5372 f 5393/9607/5373 5395/9608/5374 5394/9609/5375 f 5366/9610/5344 5365/9611/5376 5393/9607/5373 f 5365/9611/5376 5396/9612/5377 5395/9608/5374 f 5397/9613/5378 5398/9614/5379 5396/9615/5377 f 5397/9616/5378 5364/9572/5346 5350/9569/5343 f 5397/9616/5378 5350/9569/5343 5399/9617/5380 f 5399/9617/5380 5363/9568/5342 5400/9618/5381 f 5400/9618/5381 5363/9568/5342 5402/9619/5382 f 5305/9507/5287 5304/9504/5284 5303/9506/5286 f 5407/9620/5383 3999/7562/3994 5408/9621/5384 f 5408/9621/5384 5382/7563/3995 5381/9595/5362 f 5409/9622/5385 5410/9623/5386 5408/9621/5384 f 5408/9621/5384 5385/9599/5366 5409/9622/5385 f 5411/9624/5387 5410/9623/5386 5409/9622/5385 f 5410/9623/5386 5411/9624/5387 5413/9625/5388 f 5389/9604/5370 5411/9624/5387 5387/9602/5368 f 5389/9604/5370 5412/9626/5389 5411/9624/5387 f 5391/9627/5390 5412/9626/5389 5390/9605/5371 f 5412/9626/5389 5415/9628/5391 5413/9625/5388 f 5412/9626/5389 5391/9627/5390 5414/9629/5392 f 5415/9628/5391 5414/9629/5392 5416/9630/5393 f 5416/9630/5393 5418/9631/5394 5415/9628/5391 f 5417/9632/5395 5395/9608/5374 5396/9612/5377 f 5417/9632/5395 5401/9633/5396 5419/9634/5397 f 5419/9634/5397 5420/9635/5398 5417/9632/5395 f 5421/9636/5399 5420/9635/5398 5419/9634/5397 f 5419/9634/5397 5401/9633/5396 5421/9636/5399 f 5422/9637/5400 5421/9636/5399 5423/9638/5401 f 5303/9506/5286 3996/7597/4022 5425/9639/5402 f 5305/9507/5287 5425/9639/5402 5426/9640/5403 f 5426/9640/5403 5405/9641/5404 5406/9642/5405 f 5423/9638/5401 5427/9643/5406 5424/9644/5407 f 5407/9620/5383 5410/9623/5386 5428/9645/5408 f 4031/7612/4031 5428/9645/5408 4032/7610/4029 f 5428/9645/5408 5413/9625/5388 5429/9646/5409 f 5430/9647/5410 5415/9628/5391 5431/9648/5411 f 5415/9628/5391 5430/9647/5410 5413/9625/5388 f 5431/9648/5411 5415/9628/5391 5418/9631/5394 f 5418/9631/5394 5432/9649/5412 5431/9648/5411 f 5431/9648/5411 5432/9649/5412 5433/9650/5413 f 5432/9649/5412 5420/9635/5398 5434/9651/5414 f 5432/9649/5412 5434/9651/5414 5433/9650/5413 f 5434/9651/5414 5420/9635/5398 5435/9652/5415 f 5435/9652/5415 5420/9635/5398 5422/9637/5400 f 5424/9644/5407 5437/9653/5416 5435/9652/5415 f 5424/9644/5407 5435/9652/5415 5422/9637/5400 f 5437/9653/5416 5427/9643/5406 5438/9654/5417 f 5438/9654/5417 5436/9655/5418 5437/9653/5416 f 5440/9656/5419 5439/9657/5420 5438/9654/5417 f 5426/9658/5403 5438/9654/5417 5427/9643/5406 f 4023/7596/4021 5439/9659/5420 5440/9660/5419 f 5425/9639/5402 5440/9660/5419 5426/9640/5403 f 5430/9647/5410 5431/9648/5411 5441/9661/5421 f 5433/9650/5413 5442/9662/5422 5431/9648/5411 f 5436/9655/5418 5433/9650/5413 5434/9651/5414 f 5439/9657/5420 5444/9663/5423 5436/9655/5418 f 4054/7638/4052 5444/9663/5423 4047/9664/4047 f 5430/9647/5410 4055/7639/4053 5429/9646/5409 f 5442/9662/5422 4057/7641/4055 5441/9661/5421 f 5443/9665/5424 4058/7643/4057 4057/7641/4055 f 5184/9376/5195 5181/9666/5169 5178/9339/5166 f 5445/9667/5425 5184/9376/5195 5201/9668/5426 f 5188/9669/5174 5446/9670/5427 5189/9671/5428 f 5447/9672/5429 5048/9182/5046 5448/9673/5430 f 5074/9201/5065 5449/9674/5431 5052/9198/5062 f 5451/9675/5432 5074/9676/5065 5076/9205/5069 f 5079/9204/5068 5076/9205/5069 5077/9202/5066 f 5081/9207/5070 5454/9677/5433 5455/9678/5434 f 5454/9677/5433 5081/9207/5070 5084/9210/5073 f 5456/9679/5435 5454/9677/5433 5084/9210/5073 f 5456/9679/5435 3624/7063/3626 4070/7661/4071 f 5048/9182/5046 5051/9181/5045 5457/9680/5436 f 5449/9681/5431 5451/9675/5432 5459/9682/5437 f 5076/9205/5069 5460/9683/5438 5451/9675/5432 f 5452/9684/5439 5453/9685/5440 5461/9686/5441 f 5079/9204/5068 5461/9686/5441 5460/9683/5438 f 5454/9677/5433 5462/9687/5442 5455/9678/5434 f 5462/9687/5442 5456/9679/5435 5463/9688/5443 f 5464/9689/5444 5463/9688/5443 5456/9679/5435 f 5045/9174/5038 5447/9672/5429 5201/9668/5426 f 5447/9672/5429 5045/9174/5038 5047/9180/5044 f 5189/9671/5428 5446/9670/5427 5445/9667/5425 f 5466/9690/5445 5445/9667/5425 5448/9673/5430 f 5465/9691/5446 5467/9692/5447 5480/9693/5448 f 5480/9693/5448 5466/9690/5445 5465/9691/5446 f 5468/9694/5449 5457/9680/5436 5469/9695/5450 f 5469/9695/5450 5457/9680/5436 5450/9696/5451 f 5468/9694/5449 5458/9697/5452 5470/9698/5453 f 5451/9675/5432 5460/9683/5438 5471/9699/5454 f 5472/9700/5455 5453/9685/5440 5473/9701/5456 f 5453/9685/5440 5472/9700/5455 5461/9686/5441 f 5473/9701/5456 5462/9687/5442 5474/9702/5457 f 5462/9687/5442 5473/9701/5456 5453/9685/5440 f 5463/9688/5443 5474/9702/5457 5462/9687/5442 f 5189/9703/5428 5475/9704/5458 5476/9705/5459 f 5188/9347/5174 5477/9706/5460 5186/9348/5175 f 5479/9707/5461 5478/9708/5462 5188/9709/5174 f 5479/9710/5461 5188/9347/5174 5476/9711/5459 f 5482/9712/5463 5483/9713/5464 5475/9714/5458 f 5480/9693/5448 5484/9715/5465 5482/9712/5463 f 5484/9715/5465 5486/9716/5466 5485/9717/5467 f 5484/9715/5465 5481/9718/5468 5467/9692/5447 f 5486/9716/5466 5467/9692/5447 5468/9694/5449 f 5478/9708/5462 5487/9719/5469 5477/9720/5460 f 5488/9721/5470 5483/9713/5464 5482/9712/5463 f 5485/9717/5467 5486/9716/5466 5489/9722/5471 f 5479/9707/5461 5491/9723/5472 5478/9708/5462 f 5493/9724/5473 5491/9723/5472 5492/9725/5474 f 5490/9726/5475 5492/9725/5474 5491/9723/5472 f 5497/9727/5476 5477/9728/5460 5487/9729/5469 f 5183/9344/5171 5186/9348/5175 5499/9730/5477 f 5498/9731/5478 5186/9348/5175 5477/9706/5460 f 5477/9728/5460 5500/9732/5479 5501/9733/5480 f 5503/9734/5481 5497/9735/5476 5502/9736/5482 f 5503/9737/5481 5504/9738/5483 5505/9739/5484 f 5501/9733/5480 5500/9732/5479 5506/9740/5485 f 5507/9741/5486 5508/9742/5487 5506/9743/5485 f 5506/9744/5485 5498/9731/5478 5501/9745/5480 f 5182/9343/5170 5509/9746/5488 5179/9338/5167 f 5182/9343/5170 5499/9730/5477 5509/9746/5488 f 5509/9746/5488 5498/9731/5478 5508/9747/5487 f 5510/9748/5489 5179/9749/5167 5509/9750/5488 f 5509/9750/5488 5508/9751/5487 5510/9748/5489 f 5177/9335/5165 5512/9752/5490 5513/9753/5491 f 5513/9753/5491 5514/9754/5163 5177/9335/5165 f 5516/9755/5492 5517/9756/5493 5515/9757/5494 f 5170/9328/5159 5519/9758/5495 5125/9271/5115 f 5519/9759/5495 5520/9760/5496 5521/9761/5497 f 5521/9762/5497 5125/9271/5115 5519/9758/5495 f 5522/9763/5498 5521/9761/5497 5520/9760/5496 f 5521/9761/5497 5522/9763/5498 5127/9764/5116 f 5127/9765/5116 5523/9766/5499 5129/9767/5120 f 5129/9768/5120 5524/9769/5500 5131/9770/5122 f 5524/9769/5500 5132/9282/5125 5131/9770/5122 f 5133/9280/5123 5525/9771/5501 5537/9772/5502 f 5133/9280/5123 5528/9773/5503 5136/9298/5135 f 5528/9774/5503 5146/9313/5148 5136/9775/5135 f 5532/9776/5504 5522/9763/5498 5530/9777/5505 f 5530/9777/5505 5531/9778/5506 5532/9776/5504 f 5532/9779/5504 5531/9780/5506 5533/9781/5507 f 5532/9779/5504 5534/9782/5508 5535/9783/5509 f 5535/9784/5509 5523/9785/5499 5532/9776/5504 f 5536/9786/5510 5535/9784/5509 5534/9787/5508 f 5537/9772/5502 5525/9771/5501 5524/9769/5500 f 5524/9769/5500 5535/9788/5509 5537/9772/5502 f 5537/9789/5502 5538/9790/5511 5539/9791/5512 f 5520/9760/5496 5541/9792/5513 5540/9793/5514 f 5542/9794/5515 5541/9795/5513 5519/9796/5495 f 5519/9796/5495 5518/9797/5516 5542/9794/5515 f 5543/9798/5517 5544/9799/5518 5518/9797/5516 f 5518/9797/5516 5172/9800/5519 5543/9798/5517 f 5517/9756/5493 5543/9798/5517 5172/9800/5519 f 5516/9755/5492 5546/9801/5520 5543/9798/5517 f 5546/9801/5520 5545/9802/5264 5547/9803/5263 f 5544/9804/5518 5546/9805/5520 5547/9806/5263 f 5548/9807/5521 5551/9808/5522 5552/9809/5523 f 5557/9810/5524 5553/9811/5525 5555/9812/5526 f 5553/9811/5525 5554/9813/5527 5564/9814/5528 f 5558/9815/5529 5559/9816/5530 5560/9817/5531 f 5561/9818/5532 5560/9819/5531 5549/9820/5533 f 5558/9821/5529 5561/9822/5532 5630/9823/5534 f 5549/9824/5533 5548/9825/5521 5563/9826/5535 f 5548/9825/5521 5564/9827/5528 5563/9826/5535 f 5565/9828/5536 5564/9827/5528 5554/9829/5527 f 5554/9829/5527 5566/9830/5537 5565/9828/5536 f 5557/9831/5524 5567/9832/5538 5566/9830/5537 f 5566/9830/5537 5554/9829/5527 5557/9831/5524 f 5568/9833/5539 5161/9309/5145 5146/9313/5148 f 5146/9313/5148 5529/9834/5540 5568/9833/5539 f 5526/9835/5541 5569/9836/5542 5528/9773/5503 f 5570/9837/5543 5529/9834/5540 5528/9774/5503 f 5570/9837/5543 5528/9774/5503 5569/9838/5542 f 5571/9839/5544 5568/9833/5539 5529/9834/5540 f 5568/9833/5539 5572/9840/5545 5162/9841/5546 f 5151/9842/5547 5162/9841/5546 5573/9843/5548 f 5573/9844/5548 5148/9845/5137 5151/9846/5547 f 5574/9847/5549 5571/9839/5544 5575/9848/5550 f 5569/9849/5542 5576/9850/5551 5570/9851/5543 f 5577/9852/5552 5578/9853/5553 5539/9854/5512 f 5539/9791/5512 5578/9855/5553 5569/9849/5542 f 5579/9856/5554 5578/9855/5553 5577/9857/5552 f 5580/9858/5555 5536/9786/5510 5582/9859/5556 f 5580/9858/5555 5582/9859/5556 5583/9860/5557 f 5536/9786/5510 5580/9858/5555 5538/9790/5511 f 5583/9860/5557 5534/9787/5508 5584/9861/5558 f 5575/9848/5550 5586/9862/5559 5572/9840/5545 f 5576/9863/5551 5587/9864/5560 5585/9865/5561 f 5585/9865/5561 5570/9837/5543 5576/9863/5551 f 5578/9855/5553 5587/9866/5560 5576/9850/5551 f 5579/9856/5554 5588/9867/5562 5578/9855/5553 f 5581/9868/5563 5580/9858/5555 5589/9869/5564 f 5594/9870/5565 5584/9861/5558 5590/9871/5566 f 5591/9872/5567 5585/9865/5561 5587/9864/5560 f 5588/9867/5562 5592/9873/5568 5587/9866/5560 f 5589/9869/5564 5597/9874/5569 5581/9868/5563 f 5592/9875/5568 5254/9876/5570 5595/9877/5571 f 5253/9445/5239 5596/9878/5572 5255/9879/5573 f 5593/9880/5574 5596/9878/5572 5592/9875/5568 f 5594/9870/5565 5590/9871/5566 5598/9881/5575 f 5589/9869/5564 5594/9870/5565 5597/9874/5569 f 5255/9882/5573 5598/9881/5575 5599/9883/5237 f 5597/9884/5569 5255/9879/5573 5596/9878/5572 f 5600/9885/5576 5584/9886/5558 5534/9782/5508 f 5601/9887/5577 5602/9888/5578 5603/9889/5579 f 5601/9887/5577 5603/9889/5579 5604/9890/5580 f 5601/9887/5577 5590/9871/5566 5584/9861/5558 f 5601/9887/5577 5604/9890/5580 5598/9881/5575 f 5599/9883/5237 5604/9890/5580 5249/9891/5235 f 5250/9892/5234 5249/9891/5235 5604/9890/5580 f 5604/9890/5580 5603/9889/5579 5250/9892/5234 f 5232/9404/5216 5231/9403/5215 5603/9889/5579 f 5605/9893/5581 5602/9888/5578 5600/9894/5576 f 5605/9895/5581 5600/9896/5576 5533/9897/5507 f 5605/9898/5581 5233/9899/5582 5234/9900/5583 f 5606/9901/5584 5607/9902/5585 5608/9903/5586 f 5609/9904/5587 5530/9905/5505 5606/9901/5584 f 5610/9906/5588 5611/9907/5589 5608/9903/5586 f 5611/9907/5589 5610/9906/5588 5208/9908/5190 f 5611/9907/5589 5208/9908/5190 5209/9909/5192 f 5547/9806/5263 5284/9473/5262 5544/9804/5518 f 5612/9910/5590 5262/9911/5243 5541/9912/5513 f 5612/9910/5590 5541/9912/5513 5542/9913/5515 f 5263/9472/5244 5544/9804/5518 5284/9473/5262 f 5613/9914/5591 5540/9915/5514 5541/9912/5513 f 5540/9916/5514 5613/9914/5591 5607/9902/5585 f 5614/9917/5592 5608/9903/5586 5607/9902/5585 f 5614/9917/5592 5264/9918/5229 5206/9919/5191 f 5615/9920/5593 5613/9914/5591 5262/9911/5243 f 5615/9920/5593 5607/9902/5585 5613/9914/5591 f 5616/9921/5594 5533/9781/5507 5531/9780/5506 f 5616/9921/5594 5611/9907/5589 5617/9922/5595 f 5617/9923/5595 5212/9924/5596 5233/9925/5582 f 5617/9923/5595 5209/9368/5192 5212/9924/5596 f 4227/9926/4227 5555/9927/5526 4229/9928/4228 f 4230/7904/4229 4229/7903/4228 5555/9812/5526 f 5555/9812/5526 5553/9811/5525 4230/7904/4229 f 4230/7904/4229 5553/9811/5525 5552/9809/5523 f 5557/9810/5524 5620/9929/5597 5567/9930/5538 f 5619/9931/5598 5556/9932/5599 5621/9933/5600 f 5556/9934/5599 5622/9935/5601 5621/9936/5600 f 4727/8663/4721 5556/9932/5599 5618/9937/5602 f 4727/9938/4721 5618/9939/5602 4227/9926/4227 f 5559/9816/5530 5562/9940/5603 5623/9941/5604 f 5623/9941/5604 5562/9940/5603 5624/9942/5605 f 5559/9816/5530 5623/9941/5604 5625/9943/5606 f 5628/9944/5607 5626/9945/5608 5629/9946/5609 f 5628/9944/5607 5624/9942/5605 5626/9945/5608 f 5627/9947/5610 5624/9942/5605 5562/9940/5603 f 5563/9948/5535 5632/9949/5611 5561/9950/5532 f 5561/9950/5532 5632/9949/5611 5631/9951/5612 f 5567/9952/5538 5635/9953/5613 5634/9954/5614 f 5493/9955/5473 5636/9956/5615 5502/9957/5482 f 5493/9724/5473 5492/9725/5474 5636/9958/5615 f 5496/9959/5616 5638/9960/5617 5637/9961/5618 f 5639/9962/5619 5468/9694/5449 5470/9698/5453 f 5639/9963/5619 5640/9964/5620 5486/9965/5466 f 5641/9966/5621 5486/9965/5466 5640/9964/5620 f 5641/9967/5621 5489/9722/5471 5486/9716/5466 f 5642/9968/5622 5647/9969/5623 5638/9960/5617 f 5642/9970/5622 5496/9971/5616 5641/9967/5621 f 5643/9972/5624 5640/9964/5620 5470/9973/5453 f 5640/9964/5620 5645/9974/5625 5642/9968/5622 f 5642/9968/5622 5641/9966/5621 5640/9964/5620 f 5646/9975/5626 5642/9968/5622 5645/9974/5625 f 5471/9699/5454 5648/9976/5627 5643/9972/5624 f 5649/9977/5628 5471/9699/5454 5460/9683/5438 f 5471/9699/5454 5650/9978/5629 5648/9976/5627 f 5650/9978/5629 5472/9700/5455 5651/9979/5630 f 5472/9700/5455 5649/9977/5628 5460/9683/5438 f 5651/9979/5630 5473/9701/5456 5652/9980/5631 f 5652/9980/5631 5474/9702/5457 5653/9981/5632 f 5652/9980/5631 5473/9701/5456 5474/9702/5457 f 5653/9981/5632 5474/9702/5457 5463/9688/5443 f 4265/7950/4266 5655/9982/5633 5654/9983/5634 f 5653/9981/5632 5654/9983/5634 5655/9982/5633 f 5656/9984/5635 5657/9985/5636 5651/9979/5630 f 5651/9979/5630 5652/9980/5631 5656/9984/5635 f 5657/9985/5636 5650/9978/5629 5651/9979/5630 f 5658/9986/5637 5648/9976/5627 5650/9978/5629 f 5648/9976/5627 5658/9986/5637 5644/9987/5638 f 5643/9972/5624 5648/9976/5627 5660/9988/5639 f 5644/9987/5638 5662/9989/5640 5661/9990/5641 f 5663/9991/5642 5644/9987/5638 5658/9986/5637 f 5663/9991/5642 5658/9986/5637 5659/9992/5643 f 5664/9993/5644 5659/9992/5643 5657/9985/5636 f 5664/9993/5644 5655/9982/5633 5665/9994/5645 f 4265/7950/4266 4276/9995/4279 5655/9982/5633 f 5661/9990/5641 5667/9996/5646 5645/9974/5625 f 5668/9997/5647 5662/9989/5640 5663/9991/5642 f 5662/9989/5640 5669/9998/5648 5670/9999/5649 f 5661/10000/5641 5670/10001/5649 5667/10002/5646 f 5664/9993/5644 5665/9994/5645 5671/10003/5650 f 5672/10004/5651 5668/10005/5647 5671/10006/5650 f 5671/10003/5650 5663/9991/5642 5664/9993/5644 f 5655/9982/5633 5666/10007/5652 5665/10008/5645 f 5646/9975/5626 5673/10009/5653 5647/9969/5623 f 5673/10010/5653 5667/10011/5646 5674/10012/5654 f 5674/10012/5654 5667/10002/5646 5670/10001/5649 f 5670/10001/5649 5675/10013/5655 5674/10012/5654 f 5676/10014/5656 5672/10004/5651 5665/10015/5645 f 5665/10015/5645 4288/7981/4289 5676/10014/5656 f 5677/10016/5657 5638/9960/5617 5647/9969/5623 f 5638/9960/5617 5679/10017/5658 5637/9961/5618 f 5679/10018/5658 5494/10019/5659 5495/10020/5660 f 5681/10021/5661 5636/9958/5615 5492/9725/5474 f 5681/10021/5661 5492/9725/5474 5680/10022/5662 f 5681/10023/5661 5682/10024/5663 5636/10025/5615 f 5647/9969/5623 5684/10026/5664 5683/10027/5665 f 5683/10027/5665 5677/10016/5657 5647/9969/5623 f 5271/10028/5666 5254/9876/5570 5253/9445/5239 f 5271/10028/5666 5253/9445/5239 5252/9444/5238 f 5685/10029/5667 5270/9460/5251 5272/10030/5668 f 5504/10031/5483 5503/10032/5481 5687/10033/5669 f 5689/10034/5670 5678/10035/5671 5677/10016/5657 f 5683/10027/5665 5691/10036/5672 5690/10037/5673 f 5690/10037/5673 5677/10016/5657 5683/10027/5665 f 5678/10038/5671 5689/10039/5670 5694/10040/5674 f 5694/10040/5674 5686/10041/5675 5678/10038/5671 f 5694/10040/5674 5681/10023/5661 5686/10041/5675 f 5698/10042/5676 5687/10033/5669 5699/10043/5677 f 5687/10033/5669 5682/10044/5663 5695/10045/5678 f 5691/10046/5672 5683/10047/5665 5684/10048/5664 f 5631/10049/5612 5702/10050/5679 5703/10051/5680 f 5632/9949/5611 5563/9948/5535 5702/10052/5679 f 5702/10053/5679 5564/9827/5528 5704/10054/5681 f 5705/10055/5682 5676/10014/5656 4322/8038/4320 f 4322/8038/4320 5676/10014/5656 4288/7981/4289 f 5706/10056/5683 5675/10013/5655 5676/10014/5656 f 5708/10057/5684 5707/10058/5685 5709/10059/5686 f 5707/10058/5685 5708/10057/5684 5710/10060/5687 f 5707/10058/5685 5674/10012/5654 5675/10013/5655 f 5697/10061/5688 5504/9738/5483 5698/10062/5676 f 5697/10061/5688 5698/10062/5676 5711/10063/5689 f 5698/10064/5676 5712/10065/5690 5711/10066/5689 f 5694/10040/5674 5713/10067/5691 5695/10068/5678 f 5693/10069/5692 5692/10070/5693 5713/10071/5691 f 5714/10072/5694 5692/10070/5693 5690/10073/5673 f 5715/10074/5695 5716/10075/5696 5717/10076/5697 f 5715/10074/5695 5717/10076/5697 5718/10077/5698 f 5721/10078/5699 5712/10065/5690 5713/10071/5691 f 5721/10078/5699 5722/10079/5700 5720/10080/5701 f 5721/10078/5699 5713/10071/5691 5692/10070/5693 f 5721/10078/5699 5714/10072/5694 5722/10079/5700 f 5724/10081/5702 5718/10077/5698 5725/10082/5703 f 5725/10082/5703 5726/10083/5704 5724/10081/5702 f 5726/10083/5704 5696/10084/5705 5697/10061/5688 f 5697/10061/5688 5724/10081/5702 5726/10083/5704 f 5696/10084/5705 5727/10085/5706 5505/9739/5484 f 5727/10086/5706 5728/10087/5707 5505/10088/5484 f 5505/10089/5484 5728/10090/5707 5497/10091/5476 f 5731/10092/5708 5729/10093/5709 5730/10094/5710 f 5731/10092/5708 5736/10095/5711 5709/10059/5686 f 5732/10096/5712 5709/10059/5686 5736/10095/5711 f 5708/10057/5684 5734/10097/5713 5684/10048/5664 f 5734/10097/5713 5691/10046/5672 5684/10048/5664 f 5732/10096/5712 5735/10098/5714 5733/10099/5715 f 5738/10100/5716 5714/10101/5694 5734/10097/5713 f 5738/10100/5716 5734/10097/5713 5733/10099/5715 f 5738/10102/5716 5719/10103/5717 5720/10080/5701 f 3523/10104/3536 4986/10105/4989 4358/8770/4764 f 4987/9117/4991 6124/10106/5718 5739/10107/5719 f 5740/10108/5720 4987/9120/4991 4990/9119/4992 f 5740/10108/5720 4990/9119/4992 4993/10109/4996 f 5740/10108/5720 6124/10110/5718 4987/9120/4991 f 4996/10111/4998 5741/10112/5721 4994/10113/4997 f 4994/10114/4997 4995/10115/5006 4996/10116/4998 f 5158/9307/5144 5742/10117/5722 5004/9308/5004 f 4807/10118/4808 5746/10119/5723 5743/10120/5724 f 5747/10121/5725 5745/10122/5726 4807/10118/4808 f 5749/10123/5727 5750/10124/5728 5747/10121/5725 f 5747/10121/5725 5750/10124/5728 5748/10125/5729 f 5749/10123/5727 4831/10126/4831 4833/10127/4830 f 5749/10128/5727 4833/10129/4830 5752/10130/5730 f 4834/10131/4833 5752/10130/5730 4833/10129/4830 f 5753/10132/5731 5752/10133/5730 5754/10134/5732 f 5756/10135/5733 4978/9104/4982 5755/10136/5734 f 4975/10137/5735 5756/10138/5733 5757/10139/5736 f 5756/10135/5733 4975/10140/5735 4977/9103/4981 f 5758/10141/5737 5759/10142/5738 4975/10137/5735 f 4975/10140/5735 5759/10143/5738 4972/9099/4977 f 5758/10141/5737 4975/10137/5735 5757/10139/5736 f 5752/10144/5730 4972/9099/4977 5759/10143/5738 f 5752/10133/5730 5758/10141/5737 5754/10134/5732 f 4978/10145/4982 4982/10146/4986 5755/10147/5734 f 5763/10148/5739 5757/10149/5736 5756/10150/5733 f 5755/10147/5734 5760/10151/5740 5764/10152/5741 f 5764/10153/5741 5760/10151/5740 5762/10154/5742 f 5764/10155/5741 5763/10156/5739 5755/10157/5734 f 5764/10153/5741 5757/10149/5736 5763/10148/5739 f 5745/10158/5726 5765/10159/5743 5766/10160/5744 f 5765/10161/5743 5748/10125/5729 5766/10162/5744 f 5748/10125/5729 5765/10161/5743 5745/10122/5726 f 5767/10163/5745 5762/10154/5742 5760/10151/5740 f 4384/10164/4378 5767/10165/5745 5761/10166/5746 f 5769/10167/5747 5770/10168/5748 5768/10169/5749 f 5773/10170/5750 5772/10171/5751 5769/10167/5747 f 5773/10170/5750 5769/10167/5747 5768/10169/5749 f 5773/10170/5750 5774/10172/5752 5772/10171/5751 f 5773/10170/5750 5775/10173/4383 5774/10172/5752 f 5767/10163/5745 5770/10174/5748 5776/10175/5753 f 5776/10175/5753 5777/10176/5754 5767/10163/5745 f 5757/10149/5736 5777/10176/5754 5778/10177/5755 f 5779/10178/5756 5757/10139/5736 5778/10179/5755 f 5779/10178/5756 5778/10179/5755 5781/10180/5757 f 5779/10178/5756 5754/10134/5732 5758/10141/5737 f 5779/10178/5756 5782/10181/5758 5754/10134/5732 f 5784/10182/5759 5754/10134/5732 5782/10181/5758 f 5784/10182/5759 5782/10181/5758 5783/10183/5760 f 5784/10182/5759 5751/10184/5761 5753/10132/5731 f 5785/10185/5762 5783/10183/5760 5786/10186/5763 f 5788/10187/5764 5785/10188/5762 5786/10189/5763 f 5750/10124/5728 5766/10162/5744 5748/10125/5729 f 5789/10190/5765 5787/10191/5766 5791/10192/5767 f 5792/10193/5768 5766/10160/5744 5790/10194/5769 f 5792/10193/5768 5790/10194/5769 5789/10190/5765 f 5792/10193/5768 5746/10195/5723 5745/10158/5726 f 5792/10196/5768 4405/8156/4396 5746/10119/5723 f 5794/10197/5770 5795/10198/5771 6114/10199/5772 f 5794/10197/5770 5774/10172/5752 5775/10173/4383 f 5794/10197/5770 5796/10200/5773 5827/10201/5774 f 5794/10197/5770 5798/10202/5775 5796/10200/5773 f 5798/10202/5775 5793/10203/5776 5799/10204/5777 f 5802/10205/5778 5801/10206/5779 5803/10207/5780 f 5804/10208/5781 5812/10209/5782 5802/10205/5778 f 5804/10208/5781 5805/10210/5783 5812/10209/5782 f 5805/10210/5783 5804/10208/5781 5807/10211/5784 f 5808/10212/5785 5809/10213/5786 5816/8206/4438 f 5705/10055/5682 4322/8038/4320 5809/10213/5786 f 5809/10213/5786 5729/10093/5709 5705/10055/5682 f 5809/10213/5786 4424/8181/4418 5816/8206/4438 f 5801/10206/5779 5810/10214/5787 5811/10215/5788 f 5812/10209/5782 5805/10210/5783 5813/10216/5789 f 5806/10217/5790 5815/10218/5791 5814/10219/5792 f 5818/10220/5793 5817/10221/5794 5800/10222/5795 f 5819/10223/5796 5818/10220/5793 5800/10222/5795 f 5800/10222/5795 5801/10206/5779 5819/10223/5796 f 5818/10220/5793 5819/10223/5796 4433/8186/4423 f 5731/10092/5708 5709/10059/5686 5706/10056/5683 f 5735/10098/5714 5737/10224/5797 5733/10099/5715 f 5821/10225/5798 5818/10220/5793 5820/10226/5799 f 5823/10227/5800 4437/8191/4428 4440/8195/4432 f 5824/10228/5801 4444/8196/4433 5825/10229/5802 f 5826/10230/5803 4444/8201/4433 4447/8203/4437 f 5795/10198/5771 5826/10231/5803 4447/8204/4437 f 4448/8213/4440 5813/10216/5789 4449/8210/4441 f 5813/10216/5789 4448/8213/4440 5810/10214/5787 f 5813/10216/5789 5805/10210/5783 5828/10232/5804 f 5828/10232/5804 4449/8210/4441 5813/10216/5789 f 5814/10219/5792 5828/10232/5804 5805/10210/5783 f 5811/10215/5788 4448/8213/4440 4451/8214/4443 f 4451/8214/4443 5819/10223/5796 5811/10215/5788 f 5830/10233/5805 5829/10234/5806 5832/10235/5807 f 5833/10236/5808 5834/10237/5809 5832/10238/5807 f 5832/10238/5807 5831/10239/5810 5833/10236/5808 f 5838/10240/5811 5839/10241/5812 5835/10242/5813 f 5834/10243/5809 5836/10244/5814 5838/10240/5811 f 5834/10243/5809 5838/10240/5811 5835/10242/5813 f 5834/10237/5809 5833/10236/5808 5836/10245/5814 f 5837/10246/5815 5840/10247/5816 5718/10248/5698 f 5833/10236/5808 5841/10249/5817 5842/10250/5818 f 5846/10251/5819 5844/10252/5820 5853/10253/5821 f 5846/10251/5819 5853/10253/5821 5847/10254/5822 f 5840/10255/5816 5845/10256/5823 5725/10257/5703 f 5843/10258/5824 5845/10259/5823 5831/10260/5810 f 5845/10256/5823 5841/10261/5817 5831/10262/5810 f 5844/10263/5820 5843/10264/5824 5829/10234/5806 f 5830/10265/5805 5850/10266/5825 5851/10267/5826 f 5852/10268/5827 5853/10269/5821 5844/10270/5820 f 5851/10271/5826 5853/10269/5821 5852/10268/5827 f 5853/10269/5821 5848/10272/5828 5854/10273/5829 f 5855/10274/5830 5849/10275/5831 5839/10276/5812 f 5856/10277/5832 5727/10085/5706 5726/10083/5704 f 5726/10278/5704 5854/10273/5829 5856/10279/5832 f 5856/10279/5832 5859/10280/5833 5858/10281/5834 f 5500/10282/5479 5728/10090/5707 5861/10283/5835 f 5500/10282/5479 5861/10283/5835 5507/10284/5486 f 5860/10285/5836 5856/10286/5832 5854/10287/5829 f 5860/10288/5836 5862/10289/5837 5859/10280/5833 f 5863/10290/5838 5854/10291/5829 5848/10292/5828 f 5860/10288/5836 5863/10293/5838 5862/10289/5837 f 5510/9748/5489 5865/10294/5839 5866/10295/5840 f 5866/10295/5840 5512/9752/5490 5510/9748/5489 f 5869/10296/5841 5868/10297/5842 5944/10298/5843 f 5514/9754/5163 5871/10299/5844 5867/10300/5845 f 5871/10301/5844 5513/10302/5491 5512/10303/5490 f 5871/10301/5844 5866/10304/5840 5872/10305/5846 f 5516/9755/5492 5515/9757/5494 5873/10306/5847 f 5869/10296/5841 5944/10298/5843 5874/10307/5848 f 5873/10308/5847 5874/10307/5848 5875/10309/5849 f 5877/10310/5850 5511/10311/5851 5878/10312/5852 f 5875/10313/5849 5285/10314/5265 5545/9802/5264 f 5545/9802/5264 5873/10306/5847 5875/10313/5849 f 5286/10315/5267 5283/9483/5266 5282/9471/5261 f 5880/10316/5853 5796/10200/5773 5799/10204/5777 f 5791/10317/5767 5799/10318/5777 5789/10319/5765 f 5791/10192/5767 5787/10191/5766 5788/10320/5764 f 5788/10321/5764 5882/10322/5854 5791/10317/5767 f 5883/10323/5855 5823/10227/5800 5824/10228/5801 f 5883/10323/5855 5824/10228/5801 5885/10324/5856 f 5888/10325/5857 5890/10326/5858 5885/10324/5856 f 5885/10324/5856 5825/10229/5802 5888/10325/5857 f 5888/10325/5857 5826/10327/5803 5889/10328/5859 f 5890/10326/5858 5889/10328/5859 5882/10322/5854 f 5826/10327/5803 5888/10325/5857 5825/10229/5802 f 5891/10329/5860 5822/10330/5861 5892/10331/5862 f 5822/10330/5861 5891/10329/5860 5820/10332/5799 f 5892/10333/5862 5884/10334/5863 5893/10335/5864 f 5891/10329/5860 5895/10336/5865 5821/10337/5798 f 5896/10338/5866 5736/10095/5711 5807/10211/5784 f 5896/10338/5866 5807/10211/5784 5804/10208/5781 f 5899/10339/5867 5804/10208/5781 5802/10205/5778 f 5899/10339/5867 5900/10340/5868 5901/10341/5869 f 5899/10339/5867 5901/10341/5869 5898/10342/5870 f 5803/10207/5780 5817/10221/5794 5902/10343/5871 f 5895/10344/5865 5903/10345/5872 5817/10221/5794 f 5894/10346/5873 5904/10347/5874 5895/10344/5865 f 5906/10348/5875 5907/10349/5876 5908/10350/5877 f 5906/10348/5875 5908/10350/5877 5904/10347/5874 f 5907/10349/5876 5905/10351/5878 5909/10352/5879 f 5903/10345/5872 5904/10347/5874 5908/10350/5877 f 5903/10353/5872 5911/10354/5880 5910/10355/5881 f 5910/10356/5881 5912/10357/5882 5900/10340/5868 f 5910/10358/5881 5900/10359/5868 5902/10360/5871 f 5901/10341/5869 5913/10361/5883 5898/10342/5870 f 5914/10362/5884 5896/10338/5866 5897/10363/5885 f 5898/10342/5870 5913/10361/5883 5914/10362/5884 f 5914/10362/5884 5913/10361/5883 5915/10364/5886 f 5735/10098/5714 5914/10362/5884 5737/10224/5797 f 5737/10224/5797 5914/10362/5884 5915/10364/5886 f 5916/10365/5887 5917/10366/5888 5918/10367/5889 f 5738/10100/5716 5918/10367/5889 5719/10368/5717 f 5918/10367/5889 5737/10224/5797 5916/10365/5887 f 5919/10369/5890 5920/10370/5891 5917/10366/5888 f 5917/10366/5888 5920/10370/5891 5921/10371/5892 f 5919/10369/5890 5916/10365/5887 5915/10364/5886 f 5922/10372/5893 5837/10246/5815 5920/10373/5891 f 5716/10374/5696 5921/10371/5892 5924/10375/5894 f 5924/10376/5894 5921/10377/5892 5920/10373/5891 f 5920/10373/5891 5717/10378/5697 5924/10376/5894 f 5716/10374/5696 5719/10368/5717 5918/10367/5889 f 5925/10379/5895 5511/10380/5851 5508/9751/5487 f 5925/10379/5895 5878/10381/5852 5511/10380/5851 f 5925/10382/5895 5507/10284/5486 5926/10383/5896 f 5861/10283/5835 5857/10384/5897 5926/10383/5896 f 5861/10283/5835 5926/10383/5896 5507/10284/5486 f 5858/10281/5834 5927/10385/5898 5857/10386/5897 f 5926/10387/5896 5927/10388/5898 5878/10389/5852 f 5928/10390/5899 5876/10391/5900 5877/10392/5850 f 5877/10393/5850 5927/10385/5898 5928/10394/5899 f 5859/10280/5833 5929/10395/5901 5858/10281/5834 f 5929/10395/5901 5927/10385/5898 5858/10281/5834 f 5928/10390/5899 5930/10396/5902 5931/10397/5903 f 5932/10398/5904 5933/10399/5905 5934/10400/5906 f 5859/10280/5833 5934/10401/5906 5935/10402/5907 f 5932/10403/5904 5859/10280/5833 5862/10289/5837 f 5937/10404/5908 5939/10405/5909 5876/10391/5900 f 5876/10391/5900 5939/10405/5909 5872/10305/5846 f 5939/10406/5909 5940/10407/5910 5941/10408/5911 f 5939/10406/5909 5938/10409/5912 5940/10407/5910 f 5942/10410/5913 5943/10411/5914 5944/10298/5843 f 5942/10412/5913 5941/10408/5911 5940/10407/5910 f 5870/10413/5915 5941/10414/5911 5942/10410/5913 f 5942/10410/5913 5868/10297/5842 5870/10413/5915 f 5943/10415/5914 5947/10416/5916 5944/10417/5843 f 5879/10418/5917 5875/10419/5849 5946/10420/5918 f 5949/10421/5919 5285/10314/5265 5879/10422/5917 f 5948/10423/5920 5949/10424/5919 5946/10420/5918 f 5948/10425/5920 5950/10426/5921 5286/9485/5267 f 5950/10426/5921 5948/10425/5920 5946/10427/5918 f 5943/10428/5914 5950/10426/5921 5947/10429/5916 f 5951/10430/5922 5943/10411/5914 5952/10431/5923 f 5951/10432/5922 5952/10433/5923 5953/10434/5924 f 5954/10435/5925 5952/10431/5923 5955/10436/5926 f 5945/10437/5927 5956/10438/5928 5955/10436/5926 f 5276/9464/5255 5957/10439/5929 5277/10440/5930 f 5958/10441/5931 5276/9464/5255 5286/9485/5267 f 5277/10440/5930 5960/10442/5932 5268/9466/5256 f 5959/10443/5933 5277/10440/5930 5957/10439/5929 f 5957/10439/5929 5961/10444/5934 5959/10443/5933 f 5961/10444/5934 5960/10442/5932 5959/10443/5933 f 5963/10445/5935 5962/10446/5936 5966/10447/5937 f 5273/9463/5254 5964/10448/5938 5272/10449/5668 f 5963/10450/5935 5965/10451/5939 5964/10452/5938 f 5966/10447/5937 5967/10453/5940 5968/10454/5941 f 5968/10454/5941 5963/10445/5935 5966/10447/5937 f 5969/10455/5942 5961/10444/5934 5971/10456/5943 f 5971/10456/5943 5961/10444/5934 5972/10457/5944 f 5973/10458/5945 5972/10457/5944 5961/10444/5934 f 5961/10444/5934 5957/10439/5929 5973/10458/5945 f 5953/10434/5924 5952/10433/5923 5974/10459/5946 f 5953/10434/5924 5958/10441/5931 5950/10426/5921 f 5974/10459/5946 5975/10460/5947 5976/10461/5948 f 5977/10462/5949 5955/10436/5926 5956/10438/5928 f 5954/10435/5925 5978/10463/5950 5975/10464/5947 f 5979/10465/5951 5980/10466/5952 5981/10467/5953 f 5976/10461/5948 5975/10460/5947 5979/10468/5951 f 5982/10469/5954 5979/10468/5951 5981/10470/5953 f 5976/10461/5948 5983/10471/5955 5972/10457/5944 f 5969/10455/5942 5971/10456/5943 5972/10457/5944 f 5972/10457/5944 5983/10471/5955 5969/10455/5942 f 5967/10472/5940 5970/10473/5956 5984/10474/5957 f 5984/10475/5957 5985/10476/5958 6058/10477/5959 f 5986/10478/5960 5981/10470/5953 5993/10479/5961 f 5988/10480/5962 5983/10481/5955 5982/10482/5954 f 5989/10483/5963 5990/10484/5964 5985/10476/5958 f 5989/10485/5963 5983/10471/5955 5988/10486/5962 f 5981/10470/5953 5992/10487/5965 5993/10479/5961 f 5994/10488/5966 5938/10489/5912 5937/10404/5908 f 5994/10488/5966 5937/10404/5908 5931/10397/5903 f 5930/10490/5902 5978/10491/5950 5995/10492/5967 f 5977/10493/5949 5994/10488/5966 5996/10494/5968 f 5977/10493/5949 5996/10494/5968 5995/10495/5967 f 5980/10496/5952 5998/10497/5969 5997/10498/5970 f 5935/10499/5907 5998/10500/5969 5999/10501/5971 f 5930/10502/5902 5999/10501/5971 5980/10503/5952 f 5992/10487/5965 6005/10504/5972 6004/10505/5973 f 6005/10506/5972 5997/10507/5970 5998/10508/5969 f 6005/10509/5972 6006/10510/5974 6004/10511/5973 f 6001/10512/5975 5907/10349/5876 5909/10352/5879 f 6001/10512/5975 6008/10513/5976 5907/10349/5876 f 6001/10512/5975 6003/10514/5977 6007/10515/5978 f 6008/10513/5976 6007/10515/5978 6009/10516/5979 f 6006/10517/5974 6007/10515/5978 6003/10514/5977 f 6009/10516/5979 6010/10518/5980 6008/10513/5976 f 5935/10499/5907 6005/10504/5972 5998/10500/5969 f 6011/10519/5981 5934/10520/5906 5933/10521/5905 f 6011/10522/5981 5933/10523/5905 6012/10524/5982 f 6011/10519/5981 6006/10517/5974 6005/10504/5972 f 6012/10525/5982 6010/10518/5980 6009/10526/5979 f 5839/10241/5812 5838/10240/5811 5922/10527/5893 f 5936/10528/5983 5862/10289/5837 5863/10293/5838 f 5864/10529/5984 5923/10530/5985 5933/10531/5905 f 6013/10532/5986 5933/10521/5905 5923/10533/5985 f 6013/10532/5986 6010/10518/5980 6012/10525/5982 f 6014/10534/5987 5907/10349/5876 6008/10513/5976 f 6014/10534/5987 5912/10357/5882 5911/10535/5880 f 5912/10357/5882 6010/10518/5980 5913/10361/5883 f 6013/10532/5986 5915/10364/5886 6010/10518/5980 f 6015/10536/5988 5984/10537/5957 6016/10538/5989 f 6016/10538/5989 5984/10537/5957 6017/10539/5990 f 6015/10540/5988 5968/10454/5941 5967/10453/5940 f 5968/10541/5941 6018/10542/5991 5964/10543/5938 f 5968/10544/5941 5964/10545/5938 5965/10546/5939 f 6016/10538/5989 6017/10539/5990 6020/10547/5992 f 6021/10548/5993 6020/10547/5992 6022/10549/5994 f 6016/10538/5989 6021/10548/5993 6023/10550/5995 f 6015/10536/5988 6024/10551/5996 6018/10552/5991 f 6018/10553/5991 6026/10554/5997 6019/10555/5998 f 6025/10556/5999 6018/10552/5991 6024/10551/5996 f 6025/10557/5999 6024/10551/5996 6023/10550/5995 f 6027/10558/6000 5964/10448/5938 6019/10555/5998 f 5272/10449/5668 6029/10559/6001 5685/10560/5667 f 6031/10561/6002 6030/10562/6003 6032/10563/6004 f 6033/10564/6005 6019/10555/5998 6026/10554/5997 f 6033/10565/6005 6034/10566/6006 6027/10567/6000 f 6029/10568/6001 6027/10567/6000 6036/10569/6007 f 5254/10570/5570 6037/10571/6008 5595/9877/5571 f 5595/9877/5571 6038/10572/6009 6039/10573/6010 f 6040/10574/6011 6037/10571/6008 6034/10566/6006 f 6034/10566/6006 6036/10569/6007 6027/10567/6000 f 6040/10575/6011 6041/10576/6012 6042/10577/6013 f 6033/10565/6005 6041/10578/6012 6034/10566/6006 f 6042/10579/6013 5586/9862/5559 6038/10572/6009 f 6038/10572/6009 6040/10574/6011 6042/10579/6013 f 6045/10580/6014 6044/10581/6015 6092/10582/6016 f 6045/10580/6014 5586/9862/5559 6044/10581/6015 f 5162/9841/5546 5572/9840/5545 6045/10580/6014 f 5905/10351/5878 5893/10583/5864 6048/10584/6017 f 6048/10584/6017 5893/10583/5864 6047/10585/6018 f 6047/10586/6018 5893/10335/5864 5884/10334/5863 f 6049/10587/6019 6051/10588/6020 6052/10589/6021 f 6049/10587/6019 6053/10590/6022 6054/10591/6023 f 6055/10592/6024 6047/10585/6018 6050/10593/6025 f 6055/10592/6024 5909/10352/5879 5905/10351/5878 f 5986/10594/5960 6056/10595/6026 5987/10596/6027 f 6056/10597/6026 5993/10479/5961 6000/10598/6028 f 6057/10599/6029 5988/10486/5962 6056/10597/6026 f 6056/10597/6026 6055/10592/6024 6057/10599/6029 f 5990/10600/5964 5988/10486/5962 6057/10599/6029 f 6058/10601/5959 6050/10602/6025 6054/10603/6023 f 6059/10604/6030 6058/10477/5959 6053/10590/6022 f 6059/10604/6030 6017/10605/5990 5984/10475/5957 f 6020/10547/5992 6017/10539/5990 6059/10606/6030 f 6059/10604/6030 6022/10607/5994 6020/10608/5992 f 6051/10609/6020 5886/10610/6031 6060/10611/6032 f 6061/10612/6033 6060/10613/6032 6062/10614/6034 f 6063/10615/6035 6053/10590/6022 6052/10589/6021 f 6061/10612/6033 6052/10589/6021 6051/10588/6020 f 6064/10616/6036 6065/10617/6037 6066/10618/6038 f 6067/10619/6039 6068/10620/6040 6066/10621/6038 f 6069/10622/6041 5881/10623/6042 6070/10624/6043 f 6070/10625/6043 6064/10616/6036 6068/10626/6040 f 6069/10622/6041 6068/10627/6040 6071/10628/6044 f 6069/10629/6041 5890/10630/5858 5882/10631/5854 f 6073/10632/6045 6072/10633/6046 6071/10634/6044 f 6072/10635/6046 5887/10636/6047 5890/10326/5858 f 6074/10637/6048 6073/10632/6045 6071/10634/6044 f 6074/10637/6048 6060/10638/6032 6073/10632/6045 f 5887/10636/6047 6060/10611/6032 5886/10610/6031 f 5889/10328/5859 5796/10639/5773 5880/10640/5853 f 5882/10322/5854 5880/10640/5853 5791/10317/5767 f 5827/10641/5774 5889/10328/5859 5826/10327/5803 f 6075/10642/6049 5625/9943/5606 5623/9941/5604 f 6076/10643/6050 5623/10644/5604 5624/10645/5605 f 5625/9943/5606 6075/10642/6049 6065/10617/6037 f 6076/10646/6050 5624/9942/5605 5628/9944/5607 f 6075/10642/6049 6078/10647/6051 6079/10648/6052 f 6079/10648/6052 6065/10617/6037 6075/10642/6049 f 6078/10647/6051 6077/10649/6053 6081/10650/6054 f 6074/10637/6048 6071/10634/6044 6079/10648/6052 f 6083/10651/6055 6023/10550/5995 6082/10652/6056 f 6082/10652/6056 6022/10549/5994 6084/10653/6057 f 6025/10557/5999 6083/10651/6055 6026/10654/5997 f 6083/10651/6055 6033/10565/6005 6026/10654/5997 f 6085/10655/6058 6043/10656/6059 6035/10657/6060 f 6085/10655/6058 6083/10651/6055 6086/10658/6061 f 6085/10655/6058 6086/10658/6061 6087/10659/6062 f 6082/10652/6056 6086/10658/6061 6083/10651/6055 f 6087/10659/6062 6086/10658/6061 6088/10660/6063 f 6082/10652/6056 6084/10653/6057 6089/10661/6064 f 6090/10662/6065 6022/10607/5994 6063/10615/6035 f 6091/10663/6066 6063/10615/6035 6062/10614/6034 f 6092/10582/6016 6044/10581/6015 6087/10659/6062 f 6093/10664/6067 5619/10665/5598 6094/10666/6068 f 5619/10665/5598 6095/10667/6069 6094/10666/6068 f 6097/10668/6070 5620/9929/5597 5619/9931/5598 f 6097/10669/6070 6093/10670/6067 6116/10671/6071 f 4726/8656/4720 6098/10672/6072 5622/10673/5601 f 4728/8667/4722 4230/7904/4229 5552/9809/5523 f 5551/9808/5522 4728/8667/4722 5552/9809/5523 f 6070/10625/6043 5783/10183/5760 6099/10674/6073 f 6070/10625/6043 6099/10674/6073 6064/10616/6036 f 6100/10675/6074 6064/10616/6036 6099/10674/6073 f 6100/10675/6074 6101/10676/6075 6064/10616/6036 f 5560/10677/5531 6102/10678/6076 5550/10679/6077 f 5551/9808/5522 6104/10680/6078 4729/8678/4723 f 6104/10680/6078 5551/9808/5522 5550/10679/6077 f 6105/10681/6079 5550/10679/6077 6102/10678/6076 f 6101/10676/6075 5780/10682/6080 6106/10683/6081 f 6101/10676/6075 5783/10183/5760 5782/10181/5758 f 6107/10684/6082 6065/10617/6037 6106/10683/6081 f 6107/10684/6082 6106/10683/6081 5780/10682/6080 f 6107/10684/6082 6103/10685/6083 5625/9943/5606 f 6108/10686/6084 6107/10687/6082 5780/10688/6080 f 6107/10687/6082 6102/10678/6076 6103/10689/6083 f 5781/10180/5757 6108/10690/6084 5780/10682/6080 f 6108/10691/6084 5778/10692/5755 6105/10693/6079 f 6110/10694/6085 5776/10695/5753 6111/10696/6086 f 6111/10696/6086 5771/10697/6087 6112/10698/6088 f 6112/10698/6088 6110/10694/6085 6111/10696/6086 f 5777/10699/5754 6109/10700/6089 5778/10701/5755 f 6114/10199/5772 5772/10171/5751 5774/10172/5752 f 6112/10698/6088 5771/10697/6087 6113/10702/6090 f 6112/10698/6088 4741/8700/4739 4744/8706/4741 f 5158/9307/5144 5002/10703/5001 5742/10117/5722 f 5002/10703/5001 5004/9308/5004 5742/10117/5722 f 6097/10704/6070 6117/10705/6091 5620/10706/5597 f 6117/10707/6091 5741/10112/5721 4998/10708/6092 f 6118/10709/6093 5567/9930/5538 5620/9929/5597 f 6118/10709/6093 5620/9929/5597 6117/10710/6091 f 6119/10711/6094 6118/10712/6093 5000/10713/6095 f 6118/10712/6093 6120/10714/6096 5567/9952/5538 f 6119/10711/6094 5000/10713/6095 5002/10703/5001 f 6121/10715/6097 5704/10716/5681 5156/9306/5143 f 5154/9304/5141 6121/10715/6097 5156/9306/5143 f 6116/10717/6071 6093/10664/6067 5741/10112/5721 f 6122/10718/6098 4992/9125/4995 5741/10112/5721 f 6123/10719/6099 4986/10105/4989 5739/10720/5719 f 6096/10721/6100 6123/10719/6099 6124/10722/5718 f 6123/10719/6099 6096/10721/6100 6098/10723/6072 f 6095/10667/6069 6096/10721/6100 4993/9126/4996 f 6125/10724/6101 4993/9126/4996 4992/9125/4995 f 6094/10725/6068 6095/10667/6069 6125/10724/6101 f 6122/10718/6098 6125/10724/6101 4992/9125/4995 f 5703/10726/5680 5702/10727/5679 5154/9304/5141 f 6126/10728/6102 5149/9301/5138 5148/9300/5137 f 6046/10729/6103 5627/10730/5610 5701/10731/6104 f 6127/10732/6105 6046/10729/6103 5573/10733/5548 f 6045/10580/6014 6128/10734/6106 6127/10735/6105 f 6128/10736/6106 5628/10737/5607 5629/10738/5609 f 6129/10739/6107 6088/10740/6063 6077/10741/6053 f 6091/10663/6066 6080/10742/6108 6130/10743/6109 f 5043/9175/5039 5201/9668/5426 5184/9376/5195 f 5846/10251/5819 5725/10257/5703 5845/10256/5823 f 5850/10266/5825 5835/10242/5813 5849/10744/5831 f 5744/10745/6110 5746/10119/5723 4405/8156/4396 f 5793/10203/5776 5798/10202/5775 6131/10746/6111 f 4760/8768/4763 4986/10105/4989 6123/10719/6099 f 4384/10164/4378 4385/10747/4377 5768/10169/5749 f 3301/8772/4765 5743/10120/5724 5744/10745/6110 f 5743/10748/5724 3301/10749/4765 4761/10750/6112 f 5797/10751/6113 6131/10746/6111 5798/10202/5775 f 5775/10752/4383 4390/10753/4382 5797/10754/6113 f 5744/10745/6110 4405/8156/4396 3301/8772/4765 f 3319/6720/3387 3320/6663/3342 3327/6662/3341 f 3602/7044/3610 3601/7043/3609 3604/7046/3612 f 3583/7020/3587 3606/7414/3879 3605/7410/3875 f 3888/7419/3884 3630/7072/3633 3631/7075/3636 f 3632/7077/3638 3889/10755/6114 3888/7419/3884 f 3890/7447/3906 3633/10756/3641 3891/7449/3908 f 4779/8792/4783 4836/9145/5011 4781/8796/4786 f 3555/6995/3562 3554/6994/3561 5017/9149/5015 f 3633/10756/3641 5326/9552/5309 3891/7449/3908 f 3297/10757/6115 3301/10758/4765 3298/6633/3317 f 3299/6632/3316 3297/10757/6115 3298/6633/3317 f 3302/6638/3319 3306/6641/3323 3345/6642/3324 f 3304/10759/3321 3309/6781/3427 3307/6645/3326 f 3309/6781/3427 3304/10759/3321 3308/10760/3325 f 3307/6645/3326 3309/6781/3427 3310/6732/3395 f 3307/6645/3326 3312/6650/3331 3313/6646/3327 f 3312/6650/3331 3307/6645/3326 3310/6732/3395 f 3312/6650/3331 3314/6648/3329 3313/6646/3327 f 3314/6648/3329 3316/6651/3332 3317/6774/3333 f 3315/6653/3330 3317/6652/3333 3318/6719/3386 f 3318/6719/3386 3317/10761/3333 3385/10762/3421 f 3318/6719/3386 3385/10762/3421 3386/10763/3424 f 3319/6720/3387 3386/10763/3424 3320/6663/3342 f 3347/6657/3336 3349/6688/3360 3323/6658/3337 f 3321/6655/3334 3323/6658/3337 3324/6659/3338 f 3325/6660/3339 3350/6691/3363 3321/6655/3334 f 3325/6660/3339 3324/6659/3338 3326/10764/3649 f 3328/6661/3340 3329/6723/3345 3327/6662/3341 f 3299/10765/3316 3306/10766/3323 3335/10767/3348 f 3306/6641/3323 3305/6640/3322 3335/6670/3348 f 3337/6672/3349 3338/8866/4834 3336/6669/3347 f 3336/6669/3347 3304/6639/3321 3307/6671/3326 f 3339/6680/3350 3341/6682/3354 3334/6746/3351 f 3332/6681/3346 3339/6680/3350 3340/10768/3353 f 3340/6730/3353 3331/6665/3344 3332/6668/3346 f 3300/6634/3318 3345/6642/3324 3306/6641/3323 f 3298/6633/3317 3343/6684/3356 3300/6634/3318 f 3342/6683/3355 3300/6634/3318 3343/6684/3356 f 3345/6642/3324 3300/6634/3318 3342/6683/3355 f 3345/6642/3324 3342/6683/3355 3346/6686/3358 f 3347/6657/3336 3322/6656/3335 3348/6687/3359 f 3325/6660/3339 3326/10764/3649 3351/6689/3361 f 3352/6690/3362 3354/6692/3364 3350/6691/3363 f 3352/6690/3362 3351/6689/3361 3353/6693/3365 f 3354/6692/3364 3352/6690/3362 3353/6693/3365 f 3353/6693/3365 3356/6696/3368 3357/6694/3366 f 3361/6704/3373 3362/6703/3372 3360/6750/3371 f 3333/6702/3352 3334/6747/3351 3362/6703/3372 f 3363/6705/3374 3349/6688/3360 3346/6686/3358 f 3364/6707/3375 3324/6659/3338 3323/6658/3337 f 3364/10769/3375 3363/10770/3374 3365/10771/3378 f 3367/6709/3377 3364/6707/3375 3365/6710/3378 f 3368/6708/3376 3326/10764/3649 3324/6659/3338 f 3344/6685/3357 3363/6705/3374 3342/6683/3355 f 3363/6705/3374 3344/6685/3357 3369/6713/3381 f 3370/6712/3380 3369/6713/3381 3371/10772/4360 f 3370/6712/3380 3365/6710/3378 3363/6705/3374 f 3366/6711/3379 3365/6710/3378 3370/6712/3380 f 3372/10773/3382 3370/10774/3380 3371/10775/4360 f 3337/6672/3349 3373/6996/3563 3338/8866/4834 f 3373/6996/3563 3337/6672/3349 3551/6715/3383 f 3311/6673/3328 3313/6717/3327 3550/6716/3384 f 3315/6653/3330 3549/6991/3558 3550/6716/3384 f 3548/6990/3557 3315/6653/3330 3318/6719/3386 f 3375/6721/3388 3319/6720/3387 3327/6662/3341 f 3329/6666/3345 3331/6665/3344 3378/6727/3391 f 3380/6729/3393 3379/6728/3392 3331/6665/3344 f 3310/6732/3395 3382/6783/3428 3381/6731/3394 f 3382/6783/3428 3310/6732/3395 3309/6781/3427 f 3308/10760/3325 3384/6782/3397 3309/6781/3427 f 3413/10776/3399 3320/6663/3342 3386/10763/3424 f 3414/6736/3398 3387/6778/3400 3320/6737/3342 f 3320/6663/3342 3387/6739/3400 3328/6661/3340 f 3387/6739/3400 3388/10777/3401 3330/6740/3343 f 3332/6681/3346 3389/6742/3402 3390/6744/3403 f 3341/6682/3354 3390/6744/3403 3391/6745/3404 f 3334/6746/3351 3391/6745/3404 3392/10778/3405 f 3407/6751/3407 3360/6750/3371 3362/6703/3372 f 3395/6753/3409 3357/6694/3366 3360/6750/3371 f 3394/6752/3408 3395/6753/3409 3393/6749/3406 f 3396/6754/3410 3354/6692/3364 3357/6694/3366 f 3399/6758/3412 3350/6691/3363 3354/6692/3364 f 3398/6828/3459 3399/6768/3412 3354/6757/3364 f 3400/6759/3413 3322/6656/3335 3321/6655/3334 f 3401/6765/3414 3348/6760/3359 3400/6762/3413 f 3401/6765/3414 3404/6767/3416 3402/6766/3415 f 3348/6760/3359 3402/6766/3415 3403/10779/6116 f 3404/6767/3416 3400/6762/3413 3399/6768/3412 f 3399/6768/3412 3398/6828/3459 3405/6769/3417 f 3354/6757/3364 3397/6756/3411 3398/6828/3459 f 3395/10780/3409 3397/6756/3411 3396/6755/3410 f 3362/6703/3372 3408/6772/3420 3407/6751/3407 f 3362/6703/3372 3392/6748/3405 3409/6771/3419 f 3410/6775/3422 3317/6774/3333 3316/6651/3332 f 3385/6773/3421 3410/6775/3422 3411/6776/3423 f 3386/6777/3424 3411/6776/3423 3412/6789/3432 f 3386/6777/3424 3412/6789/3432 3413/6738/3399 f 3415/10781/3434 3416/10782/3425 3414/10783/3398 f 3417/6780/3426 3382/6783/3428 3309/6781/3427 f 3384/6735/3397 3418/6830/3460 3417/10784/3426 f 3419/6805/3442 3384/6735/3397 3303/6636/3320 f 3419/6805/3442 3418/6830/3460 3384/6735/3397 f 3419/6805/3442 3303/6636/3320 3383/6733/3396 f 3403/10785/6116 3383/6733/3396 3348/6764/3359 f 3383/6733/3396 3403/10785/6116 3419/6805/3442 f 3382/6783/3428 3420/6809/3430 3316/6651/3332 f 3421/6784/3429 3410/10786/3422 3316/6785/3332 f 3411/6776/3423 3421/6787/3429 3422/6816/3450 f 3411/6776/3423 3422/6816/3450 3423/6788/3431 f 3413/6738/3399 3423/6788/3431 3424/6790/3433 f 3414/6736/3398 3413/6738/3399 3424/6790/3433 f 3423/6788/3431 3413/6738/3399 3412/6789/3432 f 3427/10787/3436 3416/10782/3425 3415/10781/3434 f 3427/10787/3436 3426/6795/3437 3416/10782/3425 f 3427/6793/3436 3425/6792/3435 3428/6848/3471 f 3427/10787/3436 3428/10788/3471 3429/10789/3456 f 3388/6741/3401 3426/10790/3437 3389/6742/3402 f 3426/6795/3437 3427/10787/3436 3430/6796/3438 f 3389/6797/3402 3430/6796/3438 3390/6801/3403 f 3390/6801/3403 3430/6796/3438 3431/6880/3479 f 3390/6801/3403 3431/6880/3479 3446/6802/3439 f 3432/6810/3446 3382/6783/3428 3417/6780/3426 f 3418/6830/3460 3433/6832/3462 3417/10791/3426 f 3418/6830/3460 3419/6805/3442 3434/6804/3441 f 3432/6810/3446 3420/6809/3430 3382/6783/3428 f 3403/10785/6116 3435/6803/3440 3419/6805/3442 f 3402/6766/3415 3404/6767/3416 3483/6855/3473 f 3435/10792/3440 3403/10779/6116 3402/6766/3415 f 3437/6808/3445 3421/10793/3429 3420/6809/3430 f 3439/6817/3448 3422/6816/3450 3421/6787/3429 f 3423/6788/3431 3422/6816/3450 3441/6818/3451 f 3441/6818/3451 3425/6792/3435 3424/6790/3433 f 3425/6792/3435 3441/6818/3451 3442/6819/3452 f 3443/6820/3453 3428/6848/3471 3425/6792/3435 f 3444/6879/3455 3427/10787/3436 3429/10789/3456 f 3444/6879/3455 3430/6796/3438 3427/10787/3436 f 3446/10794/3439 3409/6798/3419 3391/6800/3404 f 3394/10795/3408 3463/6860/3477 3406/6861/3418 f 3397/6826/3411 3395/6753/3409 3406/6770/3418 f 3447/6806/3443 3398/6828/3459 3397/6756/3411 f 3418/6830/3460 3434/6804/3441 3449/6831/3461 f 3453/6841/3466 3439/6877/3448 3437/6842/3445 f 3440/6815/3449 3455/6845/3468 3442/6819/3452 f 3455/6845/3468 3440/6815/3449 3454/6844/3467 f 3457/6847/3470 3428/6848/3471 3443/6820/3453 f 3457/6847/3470 3455/6845/3468 3456/6846/3469 f 3445/6881/3454 3458/10796/3472 3459/6882/3481 f 3483/6850/3473 3461/6852/3475 3402/6854/3415 f 3434/6804/3441 3461/6856/3475 3451/6858/3464 f 3462/6859/3476 3447/6806/3443 3448/6829/3458 f 3463/6860/3477 3462/6859/3476 3448/6829/3458 f 3463/6862/3477 3394/6752/3408 3407/6751/3407 f 3464/6863/3478 3407/6751/3407 3408/6772/3420 f 3408/10797/3420 3466/6905/3457 3465/6901/3497 f 3466/6825/3457 3446/6824/3439 3431/10798/3479 f 3467/10799/3480 3431/10800/3479 3459/10801/3481 f 3469/10802/3483 3470/10803/3501 3468/6869/3482 f 3468/10804/3482 3459/10805/3481 3458/10806/3472 f 3469/6873/3483 3457/6847/3470 3456/6846/3469 f 3454/6876/3467 3472/6875/3485 3471/6908/3484 f 3473/6878/3486 3445/6881/3454 3459/6882/3481 f 3474/10807/3488 3472/6875/3485 3453/6841/3466 f 3453/6840/3466 3452/6838/3465 3475/6883/3487 f 3477/6887/3490 3449/6837/3461 3451/6836/3464 f 3480/6889/3492 3478/6888/3491 3451/6836/3464 f 3482/10808/6117 3480/6889/3492 3481/6891/3493 f 3481/6891/3493 3460/6851/3474 3483/6850/3473 f 3481/6891/3493 3483/6850/3473 3436/6892/3444 f 3484/6893/3494 3487/6918/3509 3485/6894/3495 f 3481/6891/3493 3485/6894/3495 3482/10808/6117 f 3487/6918/3509 3484/6893/3494 3486/6899/3496 f 3462/6898/3476 3463/6862/3477 3464/6863/3478 f 3486/6899/3496 3464/6863/3478 3488/10809/3498 f 3467/6867/3480 3489/6904/3499 3466/6905/3457 f 3470/10803/3501 3491/10810/6118 3468/6869/3482 f 3470/10803/3501 3490/10811/3500 3491/10810/6118 f 3490/6906/3500 3469/6873/3483 3471/6874/3484 f 3471/10812/3484 3493/6923/3503 3492/6922/3502 f 3490/10813/3500 3492/10814/3502 3491/10815/6118 f 3474/10807/3488 3493/6911/3503 3472/6875/3485 f 3494/6913/3505 3474/6884/3488 3475/6883/3487 f 3477/10816/3490 3479/6914/3506 3476/6915/3489 f 3479/6930/3506 3477/6887/3490 3478/6888/3491 f 3495/6916/3507 3480/6889/3492 3482/10808/6117 f 3482/10808/6117 3485/10817/3495 3496/6933/3517 f 3482/10808/6117 3496/6933/3517 3495/6916/3507 f 3485/10817/3495 3487/6918/3509 3496/6933/3517 f 3487/6918/3509 3497/6917/3508 3496/6933/3517 f 3488/10818/3498 3497/6917/3508 3486/6899/3496 f 3465/6901/3497 3489/6904/3499 3488/6902/3498 f 3489/6904/3499 3467/6867/3480 3498/6936/3519 f 3499/6921/3511 3498/6936/3519 3467/6867/3480 f 3468/6869/3482 3491/10810/6118 3499/6921/3511 f 3474/10807/3488 3501/6941/3504 3500/6940/3512 f 3500/6940/3512 3493/6911/3503 3474/10807/3488 f 3494/10819/3505 3502/6926/3513 3501/6941/3504 f 3503/6929/3514 3478/6888/3491 3495/6916/3507 f 3506/6935/3510 3496/6933/3517 3497/6917/3508 f 3489/6904/3499 3506/6919/3510 3488/6902/3498 f 3491/10820/6118 3492/6943/3502 3507/6932/3516 f 3499/10821/3511 3491/10820/6118 3507/6932/3516 f 3372/6714/3382 3508/6945/3520 3510/6947/3522 f 3513/6950/3525 3642/6953/3528 3511/6948/3523 f 3511/6948/3523 3512/6949/3524 3514/6951/3526 f 3513/6950/3525 3514/6951/3526 3515/8116/4366 f 3513/6950/3525 3515/8116/4366 3517/6954/3529 f 3518/6955/3530 3519/6956/3531 3520/7084/3645 f 3521/10822/3532 3518/10823/3530 4984/10824/3535 f 3522/6958/3533 3524/6962/3537 3525/6964/3539 f 3527/10825/3540 3531/6972/3544 3528/6971/3543 f 3527/6965/3540 3528/6973/3543 3529/6966/3541 f 3535/10826/3549 3538/10827/3550 3536/10828/3548 f 3537/6977/3546 3533/6987/3554 3534/6978/3547 f 3539/6983/3551 3538/6982/3550 3540/10829/3552 f 3541/7189/3553 3540/10829/3552 3542/7188/3717 f 3529/6966/3541 3543/6959/3534 3526/6963/3538 f 3544/10830/3701 3539/6984/3551 3541/6986/3553 f 3536/6981/3548 3539/6983/3551 3544/7170/3701 f 3529/6966/3541 3532/6974/3545 3545/7169/3700 f 3545/7169/3700 3516/6952/3527 3529/6966/3541 f 3533/6987/3554 3545/7169/3700 3532/6974/3545 f 3374/6718/3385 3319/6720/3387 3375/6721/3388 f 3548/6990/3557 3318/6719/3386 3374/6718/3385 f 3550/6716/3384 3551/6715/3383 3311/6673/3328 f 3552/6992/3559 3549/6991/3558 3548/6990/3557 f 3568/6997/3564 3374/6718/3385 3375/6721/3388 f 3376/6722/3389 3556/7032/3599 3568/6997/3564 f 3556/7032/3599 3376/6722/3389 3377/6724/3390 f 3377/6724/3390 3557/10831/3601 3556/7032/3599 f 3547/6989/3556 3557/7035/3601 3377/6725/3390 f 3557/7035/3601 3547/6989/3556 3558/7037/3603 f 3374/6718/3385 3568/6997/3564 3553/6993/3560 f 3559/7003/3570 3558/7037/3603 3546/6999/3566 f 3547/6989/3556 3546/6999/3566 3558/7037/3603 f 3379/6728/3392 3546/6999/3566 3378/6727/3391 f 3560/6998/3565 3562/7001/3568 3563/7002/3569 f 3561/7000/3567 3380/6729/3393 3565/7005/3572 f 3380/6729/3393 3561/7000/3567 3379/6728/3392 f 3566/7006/3573 3563/7002/3569 3562/7001/3568 f 3565/7005/3572 3562/7001/3568 3561/7000/3567 f 3563/7002/3569 3571/7009/3576 3559/7003/3570 f 3570/7040/3606 3559/7003/3570 3571/7009/3576 f 3570/7040/3606 3558/7037/3603 3559/7003/3570 f 3570/7040/3606 3571/7009/3576 3572/7012/3579 f 3571/7009/3576 3742/7008/3575 3573/7010/3577 f 3574/7011/3578 3573/7010/3577 3575/7014/3581 f 3576/7013/3580 3574/7011/3578 3575/7014/3581 f 3577/7015/3582 3579/7018/3585 3581/7017/3584 f 3584/7022/3589 3579/7018/3585 3582/7021/3588 f 3586/7024/3591 3589/7026/3593 3585/7023/3590 f 3586/7024/3591 3587/7650/4063 3590/7027/3594 f 3588/7025/3592 3590/7027/3594 3591/7652/4065 f 3567/7007/3574 3552/6992/3559 3553/6993/3560 f 3595/7031/3598 3568/6997/3564 3556/7032/3599 f 3596/7033/3600 3556/7032/3599 3557/10831/3601 f 3597/7036/3602 3557/7035/3601 3558/7037/3603 f 3598/7039/3605 3569/7038/3604 3558/7037/3603 f 3599/7042/3608 3598/7039/3605 3570/7040/3606 f 3570/7040/3606 3572/7012/3579 3600/7041/3607 f 3600/7041/3607 3576/7013/3580 3599/7042/3608 f 3600/7041/3607 3572/7012/3579 3574/7011/3578 f 3576/7013/3580 3601/7043/3609 3603/7045/3611 f 3578/7016/3583 3581/7017/3584 3604/7046/3612 f 3605/7410/3875 3602/7044/3610 3604/7046/3612 f 3583/7020/3587 3604/7046/3612 3581/7017/3584 f 3607/7047/3613 3585/7023/3590 3589/7026/3593 f 3608/7048/3614 3589/7026/3593 3609/7049/3615 f 3609/7049/3615 3589/7026/3593 3588/7025/3592 f 3611/7066/3628 3588/7025/3592 3591/7652/4065 f 3611/7066/3628 3612/7052/3618 3613/7068/3630 f 3612/7052/3618 3611/7066/3628 3591/7652/4065 f 3615/7051/3617 3613/7068/3630 3612/7052/3618 f 3615/10832/3617 3616/10833/3620 3618/10834/3622 f 3616/7054/3620 3615/10835/3617 3614/7656/3619 f 3617/7055/3621 3620/7061/3624 3621/7074/3635 f 3620/7061/3624 3622/7062/3625 3623/7076/3637 f 3623/7076/3637 3621/7074/3635 3620/7061/3624 f 3626/7078/3639 3622/7062/3625 3625/7064/3627 f 3627/7079/3640 3626/7078/3639 3625/7064/3627 f 3476/6885/3489 3433/6832/3462 3449/6831/3461 f 3613/7068/3630 3618/7069/3622 3885/7070/3631 f 3886/7440/3634 3885/7070/3631 3618/7069/3622 f 3618/7056/3622 3617/7055/3621 3621/7074/3635 f 3618/7056/3622 3621/7074/3635 3630/7072/3633 f 3450/6839/3463 3494/6913/3505 3475/6883/3487 f 3494/6913/3505 3450/6839/3463 3476/6915/3489 f 3518/6955/3530 3636/7083/3644 3634/7081/3642 f 3638/7087/3647 3367/7086/3377 3366/7089/3379 f 3650/7109/3659 3639/7091/3648 3638/7087/3647 f 3639/10836/3648 3351/6689/3361 3326/10764/3649 f 3641/7104/3652 3649/7106/3658 3510/10837/3522 f 3642/6953/3528 3509/6946/3521 3511/6948/3523 f 3644/10838/3653 3351/7094/3361 3640/7093/3650 f 3645/10839/3654 3644/7097/3653 3646/7100/3655 f 3644/7097/3653 3645/10839/3654 3355/6695/3367 f 3359/6700/3370 3356/6698/3368 3645/7102/3654 f 3647/7115/3656 3359/6700/3370 3645/7102/3654 f 3641/7104/3652 3643/7165/3651 3648/7105/3657 f 3649/7107/3658 3650/7109/3659 3637/7090/3646 f 3644/7097/3653 3640/7111/3650 3652/7113/3661 f 3652/7113/3661 3646/7100/3655 3644/7097/3653 f 3647/7115/3656 3653/10840/3662 3654/7131/3671 f 3647/7101/3656 3646/7100/3655 3653/7114/3662 f 3656/7119/3664 3360/6750/3371 3358/10841/3369 f 3657/7120/3665 3333/6702/3352 3361/6704/3373 f 3650/7109/3659 3658/7121/3666 3659/7122/3667 f 3660/7123/3668 3651/7110/3660 3659/7122/3667 f 3653/7114/3662 3652/7113/3661 3660/7126/3668 f 3654/7131/3671 3669/7150/3687 3655/7116/3663 f 3359/6700/3370 3655/7116/3663 3674/7133/3673 f 3665/7141/3678 3674/7133/3673 3655/7116/3663 f 3661/7125/3669 3668/7138/3675 3667/7139/3676 f 3660/7123/3668 3663/7157/3693 3662/7130/3670 f 3660/7123/3668 3667/7139/3676 3663/7157/3693 f 3671/10842/3689 3670/7151/3688 3669/7150/3687 f 3669/10843/3687 3654/7128/3671 3671/7153/3689 f 3654/7128/3671 3662/7130/3670 3671/7153/3689 f 3663/7157/3693 3671/7153/3689 3662/7130/3670 f 3672/7140/3677 3655/7116/3663 3669/7150/3687 f 3665/7141/3678 3672/7140/3677 3673/7148/3685 f 3675/7142/3679 3677/7144/3681 3676/7143/3680 f 3677/7144/3681 3675/7142/3679 3681/7147/3684 f 3680/7207/3729 3677/7144/3681 3681/7147/3684 f 3673/7148/3685 3682/7149/3686 3681/7147/3684 f 3681/7147/3684 3675/7142/3679 3665/7141/3678 f 3672/7140/3677 3670/7151/3688 3682/7149/3686 f 3684/7750/4136 3670/7152/3688 3683/7154/3690 f 3683/7154/3690 3671/7153/3689 3663/7157/3693 f 3685/7155/3691 3687/7158/3694 3686/7156/3692 f 3668/7138/3675 4135/10844/6119 3687/7158/3694 f 3685/7155/3691 3663/7157/3693 3667/7139/3676 f 3668/7138/3675 3666/7137/3674 3688/7160/3696 f 3688/7160/3696 4135/10844/6119 3668/7138/3675 f 3689/7161/3695 3666/7134/3674 3658/7136/3666 f 3690/7162/3697 3658/7136/3666 3649/7163/3658 f 3643/7095/3651 3642/6953/3528 3693/6988/3555 f 3517/6954/3529 3521/6957/3532 3516/6952/3527 f 3545/7169/3700 3533/6987/3554 3693/6988/3555 f 3692/7168/3699 3537/6977/3546 3536/6979/3548 f 3692/7167/3699 3536/6981/3548 3544/7170/3701 f 3691/7166/3698 3544/7170/3701 3541/7189/3553 f 3648/7105/3657 3709/7171/3702 3694/7172/3703 f 3689/7159/3695 3695/7174/3704 3688/7160/3696 f 3689/10845/3695 3690/10846/3697 3694/10847/3703 f 3695/10848/3704 3689/10849/3695 3694/10850/3703 f 3700/7193/3720 3697/10851/3706 3699/10852/3708 f 3702/7180/3710 3697/7176/3706 3703/10853/3714 f 3702/7180/3710 3705/7182/3712 3704/7181/3711 f 3705/7184/3712 3702/10854/3710 3703/7185/3714 f 3705/7182/3712 3542/8096/3717 3708/7187/3716 f 3542/7188/3717 3705/7184/3712 3707/7186/3715 f 3696/7195/3705 3695/10855/3704 3710/7190/3718 f 3703/7185/3714 3710/7190/3718 3695/10855/3704 f 3709/7171/3702 3691/7166/3698 3541/7189/3553 f 3709/7171/3702 3541/7189/3553 3707/7186/3715 f 3694/7172/3703 3707/7186/3715 3703/7185/3714 f 3713/7198/3722 3380/6729/3393 3340/6730/3353 f 3340/6730/3353 3333/10856/3352 3657/7197/3665 f 3657/7197/3665 3664/7132/3672 3714/7240/3756 f 3715/7199/3723 3674/7133/3673 3676/7143/3680 f 3677/7144/3681 3718/7206/3728 3719/7205/3727 f 3718/7206/3728 3722/7209/3731 3721/7212/3734 f 3726/7216/3736 3731/10857/4123 3727/10858/3739 f 3726/7217/3736 3727/7222/3739 3728/7218/3737 f 3730/7223/3740 3727/7222/3739 3731/7732/4123 f 3737/7230/3746 3727/7222/3739 3732/7224/3741 f 3727/7222/3739 3737/7230/3746 3733/7225/3742 f 3737/7230/3746 3739/7687/4081 4060/10859/4060 f 4060/10859/4060 3733/7225/3742 3737/7230/3746 f 3737/7230/3746 3736/7229/3745 3738/7688/4094 f 3737/7230/3746 3738/7688/4094 3739/7687/4081 f 3741/7232/3748 3723/7211/3733 3725/7213/3735 f 3743/7265/3771 3575/7014/3581 3573/7010/3577 f 3575/7014/3581 3743/7265/3771 3744/7233/3749 f 3744/7233/3749 3745/7234/3750 3577/7015/3582 f 3746/7235/3751 3748/7237/3753 3747/7236/3752 f 3746/7235/3751 3747/7236/3752 3577/7015/3582 f 3580/7019/3586 3747/7236/3752 3749/7238/3754 f 3582/7021/3588 3580/7019/3586 3749/7238/3754 f 3380/6729/3393 3713/7198/3722 3762/7239/3755 f 3713/7198/3722 3714/7240/3756 3751/7242/3758 f 3674/7133/3673 3753/7250/3760 3752/7241/3757 f 3753/7250/3760 3674/7133/3673 3715/7199/3723 f 3716/7204/3724 3791/7203/3726 3754/7331/3811 f 3716/7204/3724 3754/7331/3811 3755/7887/4222 f 3756/7243/3759 3716/7204/3724 3755/7887/4222 f 3757/7247/3761 3715/7246/3723 3717/7244/3725 f 3753/7250/3760 3760/7255/3764 3752/7241/3757 f 3761/7256/3765 3751/7242/3758 3752/7241/3757 f 3713/10860/3722 3751/7257/3758 3762/7259/3755 f 3734/7227/3743 3740/7231/3747 3729/7221/3738 f 3740/7231/3747 3734/7227/3743 3749/7238/3754 f 3749/7238/3754 3748/7237/3753 3764/7260/3767 f 3565/7005/3572 3564/7004/3571 3763/7262/3766 f 3765/7261/3768 3566/7006/3573 3565/7005/3572 f 3566/7006/3573 3765/7261/3768 3766/7263/3769 f 3742/7008/3575 3566/7006/3573 3573/7010/3577 f 3573/7010/3577 3766/7263/3769 3775/7264/3770 f 3767/7266/3772 3743/7265/3771 3775/7264/3770 f 3744/7233/3749 3743/7265/3771 3767/7266/3772 f 3745/7234/3750 3744/7233/3749 3768/7267/3773 f 3746/7235/3751 3769/7275/3775 3748/7237/3753 f 3764/7260/3767 3741/7232/3748 3740/7231/3747 f 3769/7271/3775 3770/7335/3774 3764/7269/3767 f 3771/7272/3776 3770/7335/3774 3769/7271/3775 f 3746/7235/3751 3745/7234/3750 3773/7274/3778 f 3773/10861/3778 3772/10862/3777 3769/10863/3775 f 3774/7276/3779 3773/7274/3778 3745/7234/3750 f 3721/7212/3734 3741/7232/3748 3770/7268/3774 f 3721/7212/3734 3723/7211/3733 3741/7232/3748 f 3766/7263/3769 3776/7277/3780 3775/7264/3770 f 3763/7258/3766 3778/7282/3782 3779/7307/3795 f 3780/7872/3783 3778/7282/3782 3761/10864/3765 f 3760/10865/3764 3759/7900/3763 3781/7899/4217 f 3781/7873/4217 3780/7872/3783 3760/10866/3764 f 3777/7304/3781 3763/7258/3766 3779/7307/3795 f 3775/7291/3770 3783/7290/3785 3784/7292/3786 f 3768/7267/3773 3785/10867/3787 3774/7276/3779 f 3785/7295/3787 3768/10868/3773 3767/7293/3772 f 3786/7336/3814 3770/7335/3774 3771/7272/3776 f 3771/7272/3776 3787/7296/3788 3786/7336/3814 f 3721/7212/3734 3789/7300/3790 3788/10869/3789 f 3721/7212/3734 3719/7205/3727 3718/7206/3728 f 3719/7299/3727 3790/7301/3791 3679/10870/3683 f 3791/10871/3726 3678/7145/3682 3679/7146/3683 f 3777/7304/3781 3779/7307/3795 3792/7302/3792 f 3792/10872/3792 3782/10873/3784 3776/10874/3780 f 3792/7302/3792 3794/7306/3794 3782/10875/3784 f 3793/7305/3793 3797/7871/3798 3794/7306/3794 f 3793/7305/3793 3779/7307/3795 3778/7282/3782 f 3783/7290/3785 3795/7309/3796 3784/7292/3786 f 3794/7306/3794 3797/7871/3798 3795/10876/3796 f 3796/7311/3797 3795/7310/3796 3797/7313/3798 f 4213/7318/3800 3801/7320/3802 3799/7319/3801 f 3799/7319/3801 3802/7321/3803 3800/7339/3817 f 3799/7319/3801 3803/7322/3804 3784/7312/3786 f 3804/7342/3805 3785/7295/3787 3784/7292/3786 f 3785/7295/3787 3804/7342/3805 3805/7344/3819 f 3785/7295/3787 3805/7344/3819 3806/7346/3806 f 3806/10877/3806 3773/7274/3778 3774/7276/3779 f 3773/7274/3778 3806/10877/3806 3807/7326/3807 f 3808/7328/3808 3787/10878/3788 3772/7327/3777 f 3810/10879/3813 3809/7329/3809 3788/7298/3789 f 3811/10880/3832 3790/7301/3791 3809/7329/3809 f 3790/7301/3791 3811/10880/3832 3812/10881/3833 f 3790/7301/3791 3791/7203/3726 3679/10870/3683 f 3790/7301/3791 3812/10881/3833 3813/7330/3810 f 3789/7334/3790 3810/7333/3813 3788/10882/3789 f 3814/7332/3812 3789/7334/3790 3770/7335/3774 f 3787/7296/3788 3815/7337/3815 3786/7336/3814 f 3806/7346/3806 3818/7345/3820 3819/7347/3821 f 3820/7349/3823 3819/7347/3821 3818/7345/3820 f 3818/7345/3820 3805/7344/3819 3804/7342/3805 f 3822/8433/4579 3820/7349/3823 3821/7352/3824 f 3807/7353/3807 3823/7348/3822 3824/7354/3825 f 3825/7357/3828 3809/7363/3809 3810/7333/3813 f 3814/7332/3812 3815/7337/3815 3826/7355/3826 f 3810/7333/3813 3826/7355/3826 3827/7356/3827 f 3828/7358/3829 3826/7355/3826 3815/7337/3815 f 3825/7357/3828 3832/7367/3835 3830/7361/3831 f 3833/7369/3837 3826/7355/3826 3834/8308/4161 f 3835/7370/3838 3828/7358/3829 3808/7359/3808 f 3824/7354/3825 3835/7371/3838 3807/7353/3807 f 3829/10883/3830 3835/8424/3838 3836/8426/4494 f 3838/7374/3840 3840/7373/3839 3839/7375/3841 f 3840/7373/3839 3592/7028/3595 3567/7007/3574 f 3840/7373/3839 3843/7378/3844 3841/7383/3849 f 3593/7029/3596 3594/7030/3597 3842/7377/3843 f 3594/7030/3597 3595/7031/3598 3844/7380/3846 f 3594/7030/3597 3844/7380/3846 3842/7377/3843 f 3845/7389/3855 3842/7377/3843 3844/7380/3846 f 3595/7031/3598 3596/7033/3600 3846/7379/3845 f 3844/7380/3846 3846/7379/3845 3845/7389/3855 f 3837/7376/3842 3839/7375/3841 3847/7381/3847 f 3843/7378/3844 3849/7385/3851 3847/7381/3847 f 3848/7384/3850 3850/7387/3853 3849/7385/3851 f 3850/7387/3853 3848/7384/3850 3851/7386/3852 f 3851/7386/3852 3853/7390/3856 3854/7396/3862 f 3854/7396/3862 3852/7388/3854 3851/7386/3852 f 3856/7382/3848 3847/7381/3847 3855/7391/3857 f 3847/7381/3847 3858/7393/3859 3855/7391/3857 f 3849/7385/3851 3859/7394/3860 3858/7393/3859 f 3850/7387/3853 3860/7395/3861 3859/7394/3860 f 3854/7396/3862 3861/10884/3910 3860/7395/3861 f 3862/7397/3863 3855/7391/3857 3863/7398/3864 f 3858/7393/3859 3994/7558/3990 3863/7398/3864 f 3858/7393/3859 3859/7394/3860 3864/7559/3991 f 3994/7558/3990 3858/7393/3859 3864/7559/3991 f 3859/7394/3860 3865/7399/3865 3864/7559/3991 f 3860/7395/3861 3866/7554/3986 3865/7399/3865 f 3867/7484/3938 3860/7395/3861 3861/10884/3910 f 3596/7034/3600 3597/7036/3602 3868/7400/3866 f 3869/7422/3885 3846/7401/3845 3868/7400/3866 f 3869/7422/3885 3845/7421/3855 3846/7401/3845 f 3597/7036/3602 3569/7038/3604 3868/7400/3866 f 3598/7039/3605 3874/7403/3868 3870/7402/3867 f 3875/7404/3869 3602/7044/3610 3871/7405/3870 f 3602/7044/3610 3875/7404/3869 3603/7045/3611 f 3599/7042/3608 3603/7045/3611 3875/7404/3869 f 3874/7403/3868 3875/7404/3869 3873/7407/3872 f 3877/7409/3874 3876/7408/3873 3602/7044/3610 f 3878/7412/3877 3877/7409/3874 3605/7410/3875 f 3605/7410/3875 3606/7414/3879 3879/7411/3876 f 3880/7413/3878 3879/7411/3876 3606/7414/3879 f 3608/7048/3614 3881/7416/3881 3880/7413/3878 f 3608/7048/3614 3610/7050/3616 3882/7415/3880 f 3628/7067/3629 3629/7071/3632 3883/7418/3883 f 3884/7417/3882 3882/7415/3880 3610/7050/3616 f 3883/7418/3883 3610/7050/3616 3628/7067/3629 f 3886/7073/3634 3630/7072/3633 3887/7441/3901 f 3889/10755/6114 3626/7078/3639 3633/7080/3641 f 3893/7454/3913 3892/7423/3886 3870/7402/3867 f 3870/7402/3867 3873/7407/3872 3893/7454/3913 f 3892/7423/3886 3869/7422/3885 3870/7402/3867 f 3853/7425/3856 3869/7422/3885 3894/7424/3887 f 3895/7456/3915 3893/7454/3913 3873/7407/3872 f 3895/7456/3915 3872/7406/3871 3896/7428/3889 f 3872/7406/3871 3895/7456/3915 3873/7407/3872 f 3877/7409/3874 3899/7431/3892 3898/7429/3890 f 3900/7430/3891 3901/7433/3894 3899/7431/3892 f 3899/7431/3892 3877/7409/3874 3878/7412/3877 f 3900/7430/3891 3879/7411/3876 3902/7432/3893 f 3902/7432/3893 3880/7413/3878 3903/7434/3895 f 3881/7416/3881 3882/7415/3880 3904/7436/3897 f 3904/7436/3897 3903/7434/3895 3881/7416/3881 f 3885/7070/3631 3884/7417/3882 3883/7418/3883 f 3908/7439/3900 3907/7438/3899 3885/7070/3631 f 3887/7441/3901 3888/7419/3884 3909/7443/3902 f 3910/7445/3904 3909/7443/3902 3888/7419/3884 f 3911/7444/3903 3888/7419/3884 3889/10755/6114 f 3912/10885/3905 3889/10755/6114 3890/10886/3906 f 3889/10755/6114 3912/10885/3905 3911/7444/3903 f 3913/7448/3907 3890/7447/3906 3891/7449/3908 f 3894/7424/3887 3915/7453/3912 3861/7451/3910 f 3916/7452/3911 3917/7458/3917 3915/7453/3912 f 3916/7452/3911 3918/7455/3914 3917/7458/3917 f 3916/7452/3911 3892/7423/3886 3893/7454/3913 f 3919/7459/3918 3895/7456/3915 3896/7428/3889 f 3919/7459/3918 3921/7461/3920 3920/7457/3916 f 3919/7459/3918 3896/7428/3889 3897/7427/3888 f 3919/7459/3918 3897/7427/3888 3898/7429/3890 f 3899/7431/3892 3923/7492/3944 3922/7460/3919 f 3923/7492/3944 3899/7431/3892 3901/7433/3894 f 3901/7433/3894 3925/7463/3922 3923/7492/3944 f 3926/7464/3923 3901/7433/3894 3902/7432/3893 f 3902/7432/3893 3903/7434/3895 3927/7465/3924 f 3928/7467/3926 3927/7465/3924 3903/7434/3895 f 3904/7436/3897 3905/7435/3896 3929/7466/3925 f 3906/7437/3898 3930/7468/3927 3882/7415/3880 f 3907/7438/3899 3906/7437/3898 3884/7417/3882 f 3908/7442/3900 3932/7473/3930 3933/10887/3929 f 3932/7473/3930 3934/7474/3931 3935/10888/3954 f 3934/7474/3931 3932/7473/3930 3909/7443/3902 f 3911/7444/3903 3912/10885/3905 3936/7475/3932 f 3937/7476/3933 3910/7445/3904 3911/7444/3903 f 3936/7475/3932 3912/10885/3905 3913/7478/3907 f 3938/10889/3934 3936/7475/3932 3913/7478/3907 f 3915/7483/3912 3867/7484/3938 3861/10884/3910 f 3915/7483/3912 3939/7480/3935 3941/7482/3937 f 3942/7487/3939 3939/7485/3935 3917/7458/3917 f 3921/7461/3920 3982/7546/3980 3943/7488/3940 f 3944/7490/3942 3921/7461/3920 3945/7489/3941 f 3946/7493/3945 3977/7540/3977 3925/7463/3922 f 3924/7462/3921 3926/7464/3923 3946/7493/3945 f 3946/7493/3945 3947/7494/3946 3948/7538/3948 f 3947/7494/3946 3946/7493/3945 3926/7464/3923 f 3947/7494/3946 3928/7467/3926 3929/7466/3925 f 3947/7494/3946 3929/7466/3925 3905/7435/3896 f 3950/7498/3947 3905/7435/3896 3930/7468/3927 f 3930/7468/3927 3906/7437/3898 3951/7500/3950 f 3931/7472/3928 3953/7504/3952 3952/7502/3951 f 3954/7505/3953 3932/7508/3930 3935/7506/3954 f 3934/10890/3931 3910/10891/3904 3937/10892/3933 f 3937/7509/3933 3957/7512/3957 3955/7507/3955 f 3935/10888/3954 3934/7474/3931 3955/10893/3955 f 3957/7512/3957 3956/7511/3956 3958/7515/3958 f 3959/10894/3959 3958/10895/3958 3936/7475/3932 f 3958/10896/3958 3959/10897/3959 3938/10898/3934 f 3961/7522/3962 3958/7515/3958 3960/7520/3960 f 3960/7520/3960 5382/7563/3995 3962/7521/3961 f 3961/7522/3962 3962/7521/3961 3963/7523/3963 f 3957/7512/3957 3963/7523/3963 3964/7525/3965 f 3963/7523/3963 3957/7512/3957 3958/7515/3958 f 3965/7524/3964 3955/7507/3955 3957/7512/3957 f 3965/7524/3964 3967/7527/3967 3953/7504/3952 f 3967/7527/3967 3965/7524/3964 3966/7526/3966 f 3952/7502/3951 3953/7504/3952 3967/7527/3967 f 3969/7529/3969 3967/7527/3967 3968/7528/3968 f 3968/7528/3968 3970/7531/3971 3969/7529/3969 f 3971/7530/3970 3969/7529/3969 3970/7531/3971 f 3971/7530/3970 3949/10899/3949 3951/7503/3950 f 3971/7530/3970 3974/7534/3974 3948/7497/3948 f 3950/7496/3947 3949/10899/3949 3971/7530/3970 f 3976/7536/3976 3975/7535/3975 3974/7534/3974 f 3977/7544/3977 3975/7535/3975 3976/7536/3976 f 3977/7540/3977 3979/7542/3979 3925/7463/3922 f 3978/7545/3978 3981/7547/3981 3980/7491/3943 f 3979/7542/3979 3980/7491/3943 3945/7489/3941 f 3979/7542/3979 3945/7489/3941 3925/7463/3922 f 3944/7490/3942 3980/7491/3943 3981/7547/3981 f 3944/7490/3942 3982/7546/3980 3921/7461/3920 f 3982/7546/3980 3944/7490/3942 3981/7547/3981 f 3943/7488/3940 3982/7546/3980 3983/7548/3982 f 3983/7548/3982 3985/7585/4015 3984/7549/3983 f 3984/7549/3983 3943/7488/3940 3983/7548/3982 f 3984/10900/3983 3985/7588/4015 3986/7587/3984 f 3940/7486/3936 3942/7487/3939 3984/7549/3983 f 3941/7482/3937 3940/7481/3936 3987/7591/4018 f 3941/7482/3937 3987/7591/4018 3988/7593/4019 f 3989/10901/6120 3941/7482/3937 3988/7593/4019 f 3941/7482/3937 3989/10901/6120 3867/7484/3938 f 3867/7484/3938 3866/7554/3986 3860/7395/3861 f 3867/10902/3938 3989/10903/6120 3990/10904/3985 f 3992/7556/3988 3864/7559/3991 3865/7399/3865 f 3863/7398/3864 3996/7597/4022 3997/10905/6121 f 3863/7398/3864 3997/10905/6121 3862/7397/3863 f 3999/7562/3994 3998/7561/3993 3962/7521/3961 f 3963/7523/3963 3998/7561/3993 4000/7565/3997 f 4001/7564/3996 3964/7525/3965 3963/7523/3963 f 4000/7565/3997 4003/7568/4000 4002/7566/3998 f 4001/7564/3996 4002/7566/3998 3966/7526/3966 f 4004/7567/3999 4002/7566/3998 4003/7568/4000 f 4002/7566/3998 4004/7567/3999 3970/7531/3971 f 4004/7567/3999 4005/7569/4001 4006/7570/4002 f 4004/7567/3999 4006/7570/4002 3970/7531/3971 f 4008/7572/4004 4009/7573/4005 3972/7532/3972 f 3973/7533/3973 4010/7574/4006 4011/7576/4008 f 4012/7575/4007 4010/7574/4006 3972/7532/3972 f 4011/7576/4008 3976/7536/3976 3973/7533/3973 f 4014/7578/4010 3978/7543/3978 3976/7536/3976 f 4016/7580/4012 3981/7581/3981 3978/7543/3978 f 4016/7580/4012 4014/7578/4010 4015/7579/4011 f 4017/7582/4013 4016/7580/4012 4015/7579/4011 f 4017/7582/4013 4015/7579/4011 4018/7620/4039 f 4017/7582/4013 4018/7620/4039 4019/7623/4016 f 4020/10906/4014 4017/7582/4013 4019/7623/4016 f 4017/10907/4013 4020/7584/4014 3983/7548/3982 f 4022/7595/4020 3989/10901/6120 3988/7593/4019 f 3995/7560/3992 4027/7631/4046 4023/7596/4021 f 4025/7599/4024 3995/7560/3992 4024/7598/4023 f 3995/7560/3992 4025/7599/4024 4027/7631/4046 f 4024/7598/4023 3994/7558/3990 3993/7557/3989 f 4024/10908/4023 3993/10909/3989 3992/10910/3988 f 4029/7602/4027 4030/10911/4028 4028/7601/4026 f 4024/7598/4023 3992/7556/3988 3991/7555/3987 f 4022/10912/4020 3990/10904/3985 3989/10903/6120 f 4022/7606/4020 4029/7608/4027 3866/10913/3986 f 3998/7561/3993 4031/7612/4031 4033/7611/4030 f 4033/7611/4030 4034/7613/4032 4000/7565/3997 f 4033/7611/4030 4000/7565/3997 3998/7561/3993 f 4005/7569/4001 4036/7615/4034 4007/7571/4003 f 4005/7569/4001 4003/7568/4000 4035/7614/4033 f 4012/7575/4007 4037/7616/4035 4010/7574/4006 f 4037/7616/4035 4012/7575/4007 4036/7615/4034 f 4037/7616/4035 4011/7576/4008 4010/7574/4006 f 4037/7616/4035 4013/7577/4009 4011/7576/4008 f 4039/7618/4037 4013/7577/4009 4038/7617/4036 f 4041/7621/4040 4039/7618/4037 4040/7619/4038 f 4041/7621/4040 4042/7622/4041 4043/7624/4042 f 4041/7621/4040 4043/7624/4042 4019/7623/4016 f 4030/7603/4028 4021/7605/4017 4044/7625/4043 f 4046/7627/4045 4044/7625/4043 4045/7626/4044 f 4046/7627/4045 4026/7630/4025 4028/7628/4026 f 4026/7630/4025 4046/7627/4045 4045/7626/4044 f 4023/7596/4021 4027/7631/4046 4047/7633/4047 f 4048/7634/4048 4049/7635/4049 4038/7617/4036 f 4038/7617/4036 4050/7636/4050 4040/7619/4038 f 4051/7642/4056 4052/7637/4051 4050/7636/4050 f 4052/7637/4051 4042/7622/4041 4040/7619/4038 f 4054/7638/4052 4052/7637/4051 4053/7644/4058 f 4054/7638/4052 4047/9664/4047 4045/7626/4044 f 4035/7614/4033 4048/7634/4048 4036/7615/4034 f 4056/7640/4054 4057/7641/4055 4049/7635/4049 f 4049/7635/4049 4051/7642/4056 4050/7636/4050 f 4051/7642/4056 4057/7641/4055 4058/7643/4057 f 3733/7645/3742 3750/7662/4072 3734/7227/3743 f 4059/7646/4059 3750/7662/4072 3733/7645/3742 f 3582/7021/3588 3750/7662/4072 3584/7022/3589 f 3587/7650/4063 4062/7649/4062 3590/7027/3594 f 3590/7027/3594 4063/7665/4075 3591/7652/4065 f 3619/7059/3623 3616/7058/3620 3614/10914/3619 f 4067/7658/4068 3622/7062/3625 3620/7061/3624 f 4069/7660/4070 3622/7062/3625 4067/7658/4068 f 4069/7660/4070 3624/7063/3626 3622/7062/3625 f 4061/7648/4061 4059/7646/4059 4071/7663/4073 f 4062/7649/4062 4072/7664/4074 3590/7027/3594 f 3591/7652/4065 4063/7665/4075 4073/7666/4076 f 3614/7656/3619 4065/7654/4066 4074/7668/4077 f 4074/7668/4077 4066/7657/4067 3619/7060/3623 f 4066/7657/4067 4074/7668/4077 4068/7659/4069 f 4069/7660/4070 4067/7658/4068 4076/7670/4079 f 4070/7661/4071 4069/7660/4070 4076/7670/4079 f 4061/7648/4061 3586/7024/3591 3584/7022/3589 f 3584/7022/3589 3750/7662/4072 4061/7648/4061 f 4077/7671/4080 4059/7646/4059 4060/7647/4060 f 4059/7646/4059 4077/7671/4080 4071/7663/4073 f 4078/7675/4084 4072/7664/4074 4071/7663/4073 f 4071/7663/4073 4089/7673/4082 4093/7674/4083 f 4078/7675/4084 4080/7677/4086 4072/7664/4074 f 4073/7666/4076 4063/7665/4075 4081/7678/4087 f 4073/7666/4076 4082/7679/4088 4065/7667/4066 f 4084/7681/4090 4085/10915/6122 4074/7668/4077 f 4084/7681/4090 4074/7668/4077 4065/7654/4066 f 4074/7668/4077 4086/7683/4091 4068/7659/4069 f 4086/7683/4091 4074/7668/4077 4085/10915/6122 f 4076/7670/4079 4075/7669/4078 4087/7684/4092 f 3738/7688/4094 3736/7229/3745 4090/7713/4095 f 4092/7692/4097 4094/7700/4103 4089/7673/4082 f 4092/7692/4097 3738/10916/4094 4091/7702/4096 f 4093/7674/4083 4089/7673/4082 4094/7700/4103 f 4095/7695/4098 4078/7675/4084 4093/7674/4083 f 4096/7707/4108 4079/7676/4085 4095/7695/4098 f 4091/7691/4096 4090/7690/4095 4097/7710/4111 f 4091/7691/4096 4097/7710/4111 4098/7696/4099 f 4099/7698/4101 4093/7674/4083 4094/7700/4103 f 4094/7700/4103 4102/7703/4104 4099/7698/4101 f 4101/7701/4100 4100/7699/4102 4092/7692/4097 f 4101/7697/4100 4103/7704/4105 4104/7927/4247 f 4105/7705/4106 4095/7695/4098 4099/7698/4101 f 4107/7709/4110 4104/7927/4247 4103/7704/4105 f 4103/7704/4105 4111/7716/4114 4112/7708/4109 f 4098/7711/4099 4090/7690/4095 4103/7704/4105 f 3735/7228/3744 4116/7731/4119 4108/7712/4112 f 3736/7229/3745 3735/7228/3744 4108/7712/4112 f 4108/7712/4112 4116/7731/4119 4110/10917/4121 f 4108/7715/4112 4110/10918/4121 4109/7714/4113 f 4111/7716/4114 4103/7704/4105 4090/7690/4095 f 4115/7721/4117 4112/10919/4109 4114/7722/4116 f 4116/10920/4119 4121/10921/4126 4117/10922/4120 f 4118/7730/4122 4121/10923/4126 4116/7731/4119 f 3731/10857/4123 4122/7737/4127 4119/7733/4124 f 4119/7733/4124 4118/7736/4122 3731/10857/4123 f 3726/7216/3736 4122/7737/4127 3731/10857/4123 f 3724/7215/3732 4124/7740/4130 4123/7738/4128 f 3724/7210/3732 3722/7209/3731 4125/7741/4129 f 4125/10924/4129 4126/7786/4131 4499/7788/4160 f 3720/7208/3730 4126/7742/4131 3722/7209/3731 f 4129/7759/4134 4128/7744/4133 3680/7746/3729 f 3681/7147/3684 3682/7149/3686 4129/7747/4134 f 3682/7749/3686 3670/7152/3688 3684/7750/4136 f 3683/7154/3690 4131/7752/4137 3684/7750/4136 f 4131/7752/4137 4132/7753/4138 4133/10925/4148 f 4132/7753/4138 3683/7154/3690 3686/7156/3692 f 3686/7156/3692 3687/7158/3694 4134/7755/4140 f 4134/7755/4140 4132/7753/4138 3686/7156/3692 f 3687/7158/3694 4135/10844/6119 4136/7754/4139 f 4137/7819/4141 4136/7754/4139 4135/10844/6119 f 3688/7160/3696 4137/7819/4141 4135/10844/6119 f 4137/7756/4141 3688/10926/3696 3696/7195/3705 f 4140/7758/4143 4138/7777/4153 4139/7775/4151 f 4140/7758/4143 4139/7775/4151 4129/7759/4134 f 4142/7761/4144 4141/10927/4211 4140/7758/4143 f 4143/7762/4145 4140/7758/4143 4130/7760/4135 f 4130/7760/4135 3684/10928/4136 4143/7762/4145 f 4143/7762/4145 4145/7764/4147 4142/7761/4144 f 4144/7763/4146 4146/10929/6123 4145/7764/4147 f 4143/7765/4145 3684/7750/4136 4131/7752/4137 f 4144/7763/4146 4147/7772/4149 4146/10929/6123 f 4147/7772/4149 4144/7763/4146 4134/7771/4140 f 4128/7779/4133 4150/10930/4154 4151/7780/4155 f 4151/7780/4155 4153/7783/4157 4127/7781/4132 f 4153/7783/4157 4154/7785/4159 3720/7787/3730 f 3720/7787/3730 4127/7781/4132 4153/7783/4157 f 4126/7786/4131 4154/7785/4159 4499/7788/4160 f 4157/10931/4162 4156/8305/3836 4155/7784/4158 f 4158/7792/4163 4155/7791/4158 4153/7881/4157 f 4160/7797/4168 4159/7794/4165 4162/7796/4167 f 4173/7800/4171 4164/7799/4170 4159/7794/4165 f 4165/7795/4166 4166/7801/4172 4167/7803/4173 f 4237/7805/4175 4169/7921/4240 4170/7806/4176 f 4171/8674/4726 4237/7805/4175 4163/7798/4169 f 4170/7806/4176 4160/7797/4168 4163/7798/4169 f 4166/7812/4172 4174/7811/4178 4175/7926/4231 f 4175/7906/4231 4167/7803/4173 4166/7801/4172 f 3711/7192/3719 3712/7194/3721 4177/7813/4179 f 3696/7195/3705 4177/7813/4179 4180/7757/4142 f 4134/7771/4140 4136/10932/4139 4178/7814/4180 f 4179/7816/4181 4137/7756/4141 4180/7757/4142 f 4177/7813/4179 3712/7194/3721 4181/7820/4182 f 3712/7194/3721 3700/7193/3720 4183/8563/4662 f 3699/10852/3708 4183/8563/4662 3700/7193/3720 f 3699/10852/3708 4185/8565/4185 4183/8563/4662 f 4180/7757/4142 4182/7821/4183 4186/7826/4186 f 4179/7816/4181 4180/7757/4142 4187/7827/4187 f 4179/7816/4181 4188/7836/4188 4178/7817/4180 f 4188/7828/4188 4189/7838/4196 4148/7773/4150 f 4189/7838/4196 4190/7845/4199 4147/7772/4149 f 4189/7838/4196 4147/7772/4149 4148/7773/4150 f 4146/10929/6123 4147/7772/4149 4190/7845/4199 f 4190/7845/4199 4192/7848/4202 4146/10929/6123 f 4146/10929/6123 4191/7829/4189 4145/7764/4147 f 4191/7829/4189 4146/10929/6123 4192/7848/4202 f 4194/7858/4208 4142/7761/4144 4193/7830/4190 f 4204/7849/4193 4198/7840/4195 4197/7839/4194 f 4196/7835/4192 4197/7834/4194 4188/10933/4188 f 4198/7837/4195 4199/7853/4197 4189/7838/4196 f 4193/7830/4190 4192/7848/4202 4201/7846/4200 f 4193/7830/4190 4202/7847/4201 4194/7858/4208 f 4204/7849/4193 4195/7831/4191 4205/10934/6124 f 4198/7840/4195 4204/7849/4193 4206/7850/4203 f 4200/7843/4198 4199/7842/4197 4207/7851/4204 f 4200/7843/4198 4207/7851/4204 4211/7856/4207 f 4201/7846/4200 4190/7845/4199 4208/7854/4205 f 4201/7846/4200 4203/7869/4216 4202/7847/4201 f 4204/7849/4193 4205/10934/6124 4209/7855/4206 f 4209/7855/4206 4211/7856/4207 4207/7851/4204 f 4209/7855/4206 4207/7851/4204 4206/7850/4203 f 4211/7856/4207 4210/8002/4302 3802/7321/3803 f 4210/8002/4302 4211/7856/4207 4209/7855/4206 f 4211/7856/4207 4208/7857/4205 4200/7843/4198 f 4203/7869/4216 4201/7846/4200 4212/7867/4214 f 4201/7846/4200 4208/7854/4205 4212/7867/4214 f 4213/7870/3800 4212/7867/4214 3801/10935/3802 f 3801/7320/3802 4212/10936/4214 4208/10937/4205 f 4216/7865/4213 4217/7864/4212 4215/7860/4210 f 4202/7847/4201 4216/7865/4213 4215/7860/4210 f 4216/7865/4213 4202/7847/4201 4203/7869/4216 f 4216/7865/4213 4218/7868/4215 3798/7866/3799 f 3798/7866/3799 4218/7868/4215 4213/7870/3800 f 3780/7872/3783 4217/7864/4212 3778/7282/3782 f 3793/7305/3793 3778/7282/3782 4217/7864/4212 f 4219/10938/4225 4214/7859/4209 4215/7860/4210 f 4219/10939/4225 4215/10940/4210 3781/7899/4217 f 4219/10941/4225 4141/10942/4211 4214/10943/4209 f 4220/7875/4219 4149/10944/4152 4138/7892/4153 f 4224/7886/4223 4223/7877/4221 4222/10945/4220 f 4224/7886/4223 3757/10946/3761 3756/10947/3759 f 4224/7886/4223 3756/10947/3759 3755/7885/4222 f 4158/10948/4163 4156/8305/3836 4157/10931/4162 f 4158/10948/4163 3830/10949/3831 3832/10950/3835 f 4158/7792/4163 3811/7365/3832 3830/10951/3831 f 4152/7882/4156 3811/7365/3832 4153/7881/4157 f 3831/10952/3834 4150/7778/4154 4149/7776/4152 f 4149/10944/4152 4220/7875/4219 3831/7366/3834 f 4221/7874/4218 3831/7366/3834 4220/7875/4219 f 3754/7889/3811 4221/7874/4218 4223/7877/4221 f 4141/7891/4211 4220/7875/4219 4138/7892/4153 f 4141/7891/4211 4222/7876/4220 4220/7875/4219 f 4219/7895/4225 3781/10953/4217 4225/7894/4224 f 4224/7897/4223 3759/7900/3763 3757/10954/3761 f 4226/10955/4234 4228/7901/4226 4168/7804/4174 f 4228/10956/4226 4226/7909/4234 4227/7911/4227 f 4165/7795/4166 4168/7804/4174 4228/7901/4226 f 4231/7905/4230 4167/7803/4173 4175/7906/4231 f 4232/7908/4233 4233/10957/4716 4168/7804/4174 f 4226/7909/4234 4233/8649/4716 4234/7910/4235 f 4233/8649/4716 4226/7909/4234 4168/10958/4174 f 4169/7917/4240 4237/7914/4175 4235/7913/4237 f 4235/7913/4237 4236/7912/4236 4238/7915/4238 f 4235/7913/4237 4238/7915/4238 4169/7917/4240 f 4238/7915/4238 4239/7919/4242 4240/7916/4239 f 4243/7920/4243 4170/7806/4176 4169/7921/4240 f 4244/7924/4245 4172/8034/4177 4170/7806/4176 f 4245/10959/4747 4246/8721/4246 4174/10960/4178 f 4246/10961/4246 4748/8718/4745 4176/10962/4232 f 4175/7926/4231 4246/7925/4246 4176/10963/4232 f 4107/7709/4110 4113/7717/4115 4247/7928/4248 f 4104/7927/4247 4107/7709/4110 4247/7928/4248 f 4101/7701/4100 4104/10964/4247 4248/7931/4249 f 4248/7931/4249 4249/7930/4250 4100/7699/4102 f 4112/7708/4109 4115/10965/4117 4303/7932/4251 f 4102/7703/4104 4250/7934/4253 4105/7705/4106 f 4105/7935/4106 4250/10966/4253 4251/7936/4254 f 4106/7706/4107 4081/7678/4087 4096/7707/4108 f 4106/7706/4107 4105/7705/4106 4252/7938/4256 f 4253/10967/4255 4252/7938/4256 4105/7705/4106 f 4253/7937/4255 4251/7936/4254 4254/7944/4260 f 4255/7939/4257 4082/10968/4088 4081/7940/4087 f 4253/7937/4255 4255/7939/4257 4252/7941/4256 f 4258/7955/4271 4084/7681/4090 4083/7682/4089 f 4084/7681/4090 4258/7955/4271 4259/7954/4270 f 4084/7681/4090 4086/7683/4091 4085/10915/6122 f 4086/7683/4091 4084/7681/4090 4259/7954/4270 f 4260/7945/4261 4086/7683/4091 4259/7954/4270 f 4260/7945/4261 4261/7946/4262 4087/7684/4092 f 4263/7948/4264 4087/7684/4092 4262/7947/4263 f 4263/7948/4264 4088/7685/4093 4087/7684/4092 f 4265/7950/4266 4263/7948/4264 4266/7952/4268 f 4262/7947/4263 4266/7952/4268 4263/7948/4264 f 4268/7953/4269 4267/7951/4267 4261/7946/4262 f 4268/7953/4269 4260/7945/4261 4259/7954/4270 f 4269/7956/4272 4268/7953/4269 4259/7954/4270 f 4268/7953/4269 4269/7956/4272 4267/7951/4267 f 4271/7959/4275 4258/7955/4271 4270/7957/4273 f 4258/7955/4271 4271/7959/4275 4269/7956/4272 f 4082/10968/4088 4255/7939/4257 4272/7958/4274 f 4270/7957/4273 4258/7955/4271 4083/7682/4089 f 4272/7958/4274 4083/7682/4089 4082/10968/4088 f 4255/7939/4257 4256/7943/4259 4273/7960/4276 f 4273/7960/4276 4270/7957/4273 4255/7939/4257 f 4274/7961/4277 4267/7951/4267 4269/7956/4272 f 4275/7971/4278 4266/7952/4268 4274/7961/4277 f 4266/7952/4268 4276/9995/4279 4265/7950/4266 f 4256/7943/4259 4277/7965/4280 4278/7966/4281 f 4273/7960/4276 4278/7966/4281 4279/7967/4282 f 4280/7968/4283 4274/7961/4277 4269/7956/4272 f 4279/7967/4282 4269/7956/4272 4271/7959/4275 f 4280/7968/4283 4275/7971/4278 4274/7961/4277 f 4257/7942/4258 4254/7944/4260 4284/7974/4287 f 4285/7978/4288 4279/7980/4282 4278/10969/4281 f 4286/8040/4322 4281/7979/4284 4285/7978/4288 f 4281/7979/4284 4286/8040/4322 4287/7983/4290 f 4288/7986/4289 4282/7985/4285 4280/10970/4283 f 4287/7983/4290 4280/7982/4283 4281/7979/4284 f 4289/7987/4291 4254/7944/4260 4251/7936/4254 f 4251/7936/4254 4292/7990/4294 4290/7988/4292 f 4251/7936/4254 4250/10966/4253 4293/7991/4295 f 4293/10971/4295 4250/7934/4253 4249/7930/4250 f 4249/7930/4250 4248/7931/4249 4294/10972/4297 f 4249/7930/4250 4294/10972/4297 4293/10971/4295 f 4295/10973/4298 4294/10974/4297 4248/10975/4249 f 4247/10976/4248 4295/10977/4298 4248/10978/4249 f 4247/7928/4248 4113/7717/4115 4297/7933/4252 f 4298/8000/4300 4284/7974/4287 4254/7944/4260 f 4289/7987/4291 4290/7988/4292 4298/8000/4300 f 3802/7321/3803 4299/8001/4301 3800/7339/3817 f 3816/7338/3816 3800/10979/3817 4300/10980/4646 f 4300/10980/4646 3821/7350/3824 3816/7338/3816 f 4296/8020/4299 4301/8003/4303 4295/10981/4298 f 4301/8003/4303 4307/8021/4309 4306/8019/4308 f 4303/10982/4251 4115/7721/4117 4310/8023/4311 f 4296/8020/4299 4297/10983/4252 4308/8022/4310 f 4311/8026/4305 4312/8025/4313 4298/10984/4300 f 4241/7918/4241 4313/8030/4314 4239/7919/4242 f 4314/10985/4316 4243/7920/4243 4242/7922/4244 f 4314/10985/4316 4242/7922/4244 4240/10986/4239 f 4244/10987/4245 4316/10988/4749 4317/10989/4317 f 4319/8036/4318 4172/7808/4177 4317/10990/4317 f 4319/8036/4318 4245/10991/4747 4174/7811/4178 f 4322/8038/4320 4288/7981/4289 4287/7983/4290 f 4323/8041/4323 4327/8046/4325 4324/8039/4321 f 4324/8039/4321 4287/7983/4290 4286/8040/4322 f 4323/8041/4323 4286/8040/4322 4285/7978/4288 f 4323/8041/4323 4325/8024/4312 4326/8045/4324 f 4284/7974/4287 4312/10992/4313 4325/8047/4312 f 4310/8023/4311 4329/10993/4327 4303/10982/4251 f 4329/8051/4327 4308/10994/4310 4297/7933/4252 f 4331/8052/4328 4305/8017/4307 4306/8019/4308 f 4307/8021/4309 4308/8022/4310 4330/10995/4334 f 4331/8055/4328 4307/10996/4309 4330/8064/4334 f 4333/8057/4329 4304/8008/4304 4332/8015/4306 f 4334/10997/4330 4336/8061/4331 4335/10998/4541 f 4334/10997/4330 4310/8023/4311 4328/8050/4326 f 4336/8061/4331 4334/10997/4330 4328/8050/4326 f 4338/8063/4333 4308/8067/4310 4329/8060/4327 f 4334/8059/4330 4335/10999/4541 4338/8063/4333 f 4339/8065/4335 4330/8064/4334 4338/8063/4333 f 4340/8066/4336 4339/8065/4335 4341/8069/4337 f 4340/8066/4336 4332/8053/4306 4331/8055/4328 f 4333/8068/4329 4332/8053/4306 4340/8066/4336 f 4333/8068/4329 4341/8069/4337 4342/8070/4338 f 4344/11000/4339 4472/8242/4461 4345/8243/4340 f 4343/8074/4341 4345/8073/4340 4337/8062/4332 f 4309/7723/4118 4346/11001/4343 4344/8072/4339 f 4344/8072/4339 4328/8050/4326 4309/7723/4118 f 4114/7722/4116 4346/11001/4343 4309/7723/4118 f 4348/8079/4344 4321/8037/4319 4350/8080/4345 f 4350/8080/4345 4327/8046/4325 4355/8082/4347 f 4352/8085/4350 4351/8083/4348 4326/8045/4324 f 4326/8045/4324 4325/8024/4312 4353/8084/4349 f 4353/8084/4349 4325/8024/4312 4311/8026/4305 f 4351/8083/4348 4352/8085/4350 4354/8086/4351 f 4357/8087/4352 4353/8084/4349 4311/8026/4305 f 4357/8087/4352 4356/8355/4530 4352/8085/4350 f 4357/8087/4352 4352/8085/4350 4353/8084/4349 f 4357/11002/4352 4339/8065/4335 4338/8063/4333 f 3523/10104/3536 4358/8770/4764 3524/8769/3537 f 3525/6964/3539 3524/6962/3537 4359/11003/4753 f 3525/6964/3539 4359/11003/4753 4752/11004/4752 f 4360/11005/4754 3527/6967/3540 3525/6969/3539 f 4360/11005/4754 3525/6969/3539 4752/11006/4752 f 4360/11005/4754 3531/11007/3544 3527/6967/3540 f 3532/11008/3545 3534/11009/3547 3533/11010/3554 f 3534/8094/3547 4361/8093/4353 3535/8713/3549 f 4363/8773/4766 4365/8098/4355 4364/8774/4767 f 4364/11011/4767 3343/6684/3356 3298/6633/3317 f 3343/8097/3356 4364/8774/4767 4365/8098/4355 f 4367/11012/4357 3344/6685/3357 3343/6684/3356 f 4367/8101/4357 3343/8097/3356 4366/8099/4356 f 3369/6713/3381 4367/11012/4357 4369/11013/4359 f 4368/8103/4358 4370/11014/4361 4369/8104/4359 f 4372/8110/4363 4369/8107/4359 4371/8109/4362 f 4369/11015/4359 4372/8112/4363 3371/8114/4360 f 4374/11016/4365 3514/6951/3526 3512/6949/3524 f 4376/8120/4368 4377/8124/4369 4375/8121/4367 f 3508/6945/3520 3372/6714/3382 4372/8123/4363 f 4377/8124/4369 4376/8120/4368 4372/8110/4363 f 4378/11017/4371 3519/6956/3531 3517/6954/3529 f 4378/11017/4371 3517/6954/3529 3515/8116/4366 f 4378/11017/4371 4379/8125/4370 3519/6956/3531 f 4374/11018/4365 4381/11019/4373 3515/11020/4366 f 4380/8128/4372 4378/8127/4371 3515/11021/4366 f 4381/11019/4373 4380/11022/4372 3515/11020/4366 f 4383/8133/4375 4379/8126/4370 4381/8129/4373 f 4384/8137/4378 3635/11023/3643 4383/11024/4375 f 4386/8135/4376 4384/8137/4378 4383/11024/4375 f 4387/8139/4380 4385/8136/4377 4386/8135/4376 f 4389/8138/4379 4385/8136/4377 4387/8139/4380 f 4389/8138/4379 5775/8142/4383 4385/8136/4377 f 4391/8143/4384 4383/8133/4375 4381/8129/4373 f 4375/8131/4367 4392/8144/4385 4381/8129/4373 f 4375/8131/4367 4393/11025/4387 4392/8144/4385 f 4394/8145/4386 4373/8111/4364 4395/8680/4731 f 4375/8121/4367 4377/8124/4369 4373/8111/4364 f 4396/8681/4732 4395/8680/4731 4373/8111/4364 f 4398/8147/4388 4396/8681/4732 4373/8111/4364 f 4398/8147/4388 4397/8149/4390 4396/8681/4732 f 4398/8147/4388 4371/8109/4362 4370/8108/4361 f 4398/8147/4388 4370/8108/4361 4399/8148/4389 f 4399/8148/4389 4400/8672/4724 4397/8149/4390 f 4399/8148/4389 4370/8108/4361 4401/8151/4392 f 4508/11026/4391 4400/11027/4724 4399/11028/4389 f 4382/8132/4374 4401/11029/4392 4368/8103/4358 f 4401/8151/4392 4382/11030/4374 4402/8153/4393 f 4404/11031/4395 4382/11030/4374 4366/11032/4356 f 4404/11031/4395 4366/11032/4356 4365/11033/4355 f 4404/11031/4395 4402/8153/4393 4382/11030/4374 f 4404/8155/4395 4365/8098/4355 4405/8156/4396 f 4407/8159/4398 4390/8141/4382 4389/8138/4379 f 4407/8159/4398 4742/8160/4399 4408/8161/4400 f 4407/8159/4398 4446/8162/4401 4409/8167/4405 f 4407/8159/4398 4409/8167/4405 4410/8164/4403 f 4413/8169/4406 4430/8183/4420 4414/8185/4422 f 4415/8212/4442 4413/8169/4406 4414/8185/4422 f 4413/8169/4406 4415/8212/4442 4425/8170/4407 f 4413/8169/4406 4416/8171/4408 4527/8336/4514 f 4417/8173/4410 4426/8172/4409 4418/8174/4411 f 4418/8174/4411 4420/8176/4413 4417/8173/4410 f 4421/8177/4414 4355/8082/4347 4420/8176/4413 f 4419/8175/4412 4421/8177/4414 4420/8176/4413 f 4419/8175/4412 4429/8178/4415 4421/8177/4414 f 4355/8082/4347 4421/8177/4414 4349/8081/4346 f 4348/8079/4344 4349/8081/4346 4421/8177/4414 f 4421/8177/4414 4422/8179/4416 4423/8180/4417 f 4423/8180/4417 4321/8037/4319 4348/8079/4344 f 4424/8181/4418 4322/8038/4320 4423/8180/4417 f 4426/8172/4409 4427/8211/4439 4418/8174/4411 f 4430/8183/4420 4435/8189/4426 4431/8184/4421 f 4414/8185/4422 4432/8187/4424 4415/8212/4442 f 4433/8186/4423 4414/8185/4422 4431/8184/4421 f 4350/8080/4345 4324/8039/4321 4327/8046/4325 f 4354/8086/4351 4352/8085/4350 4356/8355/4530 f 4434/8188/4425 4437/8191/4428 4433/8186/4423 f 4438/8192/4429 4440/8195/4432 4437/8191/4428 f 4438/8192/4429 4439/8193/4430 4440/8195/4432 f 4439/8193/4430 4442/8197/4434 4441/8194/4431 f 4444/8196/4433 4441/8194/4431 4442/8197/4434 f 4444/8196/4433 4443/8198/4435 4446/8200/4401 f 4450/11034/6125 4429/8178/4415 4428/8182/4419 f 4429/8178/4415 4450/11034/6125 5816/8206/4438 f 4425/8170/4407 4427/8211/4439 4426/8172/4409 f 4427/8211/4439 4425/8170/4407 4448/8213/4440 f 4449/8210/4441 4450/11034/6125 4428/8182/4419 f 4427/8211/4439 4428/8182/4419 4418/8174/4411 f 4455/8219/4447 4452/8218/4444 4454/8223/4446 f 4454/8223/4446 4458/8222/4450 4455/8219/4447 f 4460/8232/4452 4457/8221/4449 4461/8364/4539 f 4460/8232/4452 4461/8364/4539 4462/8363/4538 f 4460/8232/4452 4462/8363/4538 4337/8233/4332 f 4463/11035/6126 4459/8225/4451 4464/11036/4468 f 4457/8226/4449 4463/11035/6126 4461/11037/4539 f 4457/8226/4449 4459/8225/4451 4463/11035/6126 f 4457/8221/4449 4460/8232/4452 4467/8230/4454 f 4455/8219/4447 4466/8234/4455 4456/8220/4448 f 4458/8222/4450 4467/8230/4454 4466/8234/4455 f 4468/8238/4459 4469/11038/4456 4471/8239/4458 f 4470/8236/4457 4466/8244/4455 4465/8228/4453 f 4469/11039/4456 4456/11040/4448 4470/11041/4457 f 4470/8236/4457 4456/11042/4448 4466/8244/4455 f 4473/8765/4466 4476/8255/4463 4474/11043/6127 f 4473/11044/4466 4464/11036/4468 4459/8225/4451 f 4477/8254/4464 4468/8238/4459 4478/8240/4460 f 4478/8240/4460 4479/8257/4465 4474/11043/6127 f 4474/11043/6127 4476/8255/4463 4478/8240/4460 f 4473/8765/4466 4474/11043/6127 4480/11045/4467 f 4481/11046/4469 4344/8072/4339 4346/11001/4343 f 4346/8078/4343 4482/8263/4470 4481/8262/4469 f 4346/11047/4343 4347/11048/4342 4482/11049/4470 f 4481/11050/4469 4484/11051/4472 4485/8271/4475 f 4109/7729/4113 4486/8266/4473 4347/11052/4342 f 4111/7716/4114 4109/7714/4113 4347/11053/4342 f 4485/8271/4475 4479/8270/4465 4481/11050/4469 f 4488/8269/4476 4474/11054/6127 4479/8270/4465 f 4474/11054/6127 4488/8269/4476 4480/11055/4467 f 4490/8276/4478 4120/7734/4125 4119/7733/4124 f 4491/8277/4479 4119/7733/4124 4122/7737/4127 f 4124/7740/4130 4494/8289/4485 4492/8279/4481 f 4492/8279/4481 4493/8278/4480 4496/8403/4483 f 4497/8284/4484 4123/7738/4128 4124/7740/4130 f 4491/8296/4479 4122/8287/4127 4497/8286/4484 f 4497/8283/4484 4496/8282/4483 4498/11056/4489 f 4497/8286/4484 4498/8297/4489 4491/8296/4479 f 4499/8288/4160 4124/7740/4130 4125/7739/4129 f 4492/8279/4481 4501/8292/4487 4495/8280/4482 f 4501/8292/4487 4494/8289/4485 4500/8293/4486 f 4565/8392/4555 4498/8297/4489 4496/8397/4483 f 4120/7734/4125 4490/8276/4478 4504/11057/4491 f 4156/8305/3836 4502/8304/4488 4500/8290/4486 f 4500/8290/4486 4155/7784/4158 4156/8305/3836 f 3836/8307/4494 3826/7355/3826 3829/7360/3830 f 4507/11058/4495 4412/8166/4404 4409/8167/4405 f 4403/8311/4394 4402/8158/4393 4412/8168/4404 f 4508/8150/4391 4509/11059/4496 4400/8672/4724 f 4508/8150/4391 4401/8151/4392 4403/8154/4394 f 4509/11059/4496 4511/11060/4498 4400/8672/4724 f 4512/8318/4499 4442/8197/4434 4439/8193/4430 f 4517/8322/4503 4512/8318/4499 4515/8321/4502 f 4512/8318/4499 4517/8322/4503 4442/8197/4434 f 4443/8198/4435 4442/8197/4434 4517/8322/4503 f 4517/8322/4503 4518/8324/4505 4445/8199/4436 f 4518/8324/4505 4517/8322/4503 4516/8323/4504 f 4519/8325/4506 4522/11061/4509 4436/8326/4427 f 4522/11061/4509 4519/8325/4506 4521/8329/4508 f 4522/11062/4509 4521/8570/4508 4513/8572/4500 f 4438/8192/4429 4522/8330/4509 4512/8318/4499 f 4438/11063/4429 4436/8326/4427 4522/11061/4509 f 4519/11064/4506 4435/8189/4426 4523/8332/4510 f 4524/8333/4511 4420/8176/4413 4355/8082/4347 f 4417/8173/4410 4525/8334/4512 4527/8336/4514 f 4527/8336/4514 4528/8337/4515 4529/11065/6128 f 4413/8169/4406 4530/8338/4516 4430/8183/4420 f 4527/8336/4514 4529/11065/6128 4530/8338/4516 f 4531/8339/4517 4532/8341/4518 4523/8332/4510 f 4520/8340/4507 4523/8332/4510 4532/8341/4518 f 4534/8343/4520 4520/8340/4507 4533/8342/4519 f 4523/8332/4510 4520/8340/4507 4519/11064/4506 f 4533/8342/4519 4537/8346/4523 4535/8344/4521 f 4534/8343/4520 4533/8342/4519 4535/8344/4521 f 4531/11066/4517 4530/11067/4516 4538/11068/4525 f 4531/8339/4517 4538/11069/4525 4539/8347/4524 f 4531/8339/4517 4537/8346/4523 4532/8341/4518 f 4538/11070/4525 4529/11065/6128 4540/8352/4526 f 4538/11071/4525 4530/11072/4516 4529/11073/6128 f 4528/8337/4515 4526/8335/4513 4541/8351/4527 f 4529/11065/6128 4528/8337/4515 4540/8352/4526 f 4542/8353/4528 4525/8334/4512 4524/8333/4511 f 4525/8334/4512 4542/8353/4528 4526/8335/4513 f 4542/8353/4528 4524/8333/4511 4354/8086/4351 f 4544/8360/4535 4545/8356/4531 4546/8359/4534 f 4544/8360/4535 4543/8354/4529 4356/8355/4530 f 4545/8356/4531 4544/8360/4535 4356/8355/4530 f 4357/8087/4352 4338/11074/4333 4545/8356/4531 f 4547/8357/4532 4551/8520/4540 4548/8358/4533 f 4544/8360/4535 4546/8359/4534 4548/8358/4533 f 4550/8362/4537 4547/8370/4532 4462/8363/4538 f 4461/8364/4539 4463/11075/6126 4550/8362/4537 f 4335/8368/4541 4552/11076/4542 4549/8361/4536 f 4336/8369/4331 4462/8363/4538 4547/8370/4532 f 4552/8371/4542 4547/8370/4532 4549/11077/4536 f 4552/11078/4542 4335/10999/4541 4336/11079/4331 f 4335/8368/4541 4545/8356/4531 4338/11074/4333 f 4553/11080/4543 4121/7735/4126 4120/7734/4125 f 4553/11080/4543 4120/7734/4125 4505/11081/4492 f 4117/7728/4120 4121/11082/4126 4553/8372/4543 f 4553/8372/4543 4554/8374/4544 4117/7728/4120 f 4482/8375/4470 4347/11052/4342 4486/8266/4473 f 4555/8376/4545 4482/11083/4470 4554/8377/4544 f 4504/11084/4491 4556/11085/4546 4555/8379/4545 f 4555/8376/4545 4505/8378/4492 4504/11086/4491 f 4484/8265/4472 4483/8264/4471 4557/8382/4547 f 4556/8381/4546 4558/8391/4554 4557/8383/4547 f 4559/11087/4548 4562/11088/4551 4560/11089/4549 f 4487/8267/4474 4559/8385/4548 4561/8387/4550 f 4559/8385/4548 4487/8267/4474 4484/8265/4472 f 4562/8388/4551 4559/8385/4548 4484/8265/4472 f 4503/8298/4490 4564/8390/4553 4556/8381/4546 f 4564/8393/4553 4503/11090/4490 4565/8394/4555 f 4566/11091/4556 4568/8399/4558 4570/8401/4560 f 4568/11092/4558 4566/8395/4556 4567/8396/4557 f 4568/8399/4558 4496/8403/4483 4493/8278/4480 f 4571/8405/4562 4495/8280/4482 4501/8292/4487 f 4501/8292/4487 4502/8294/4488 4571/8405/4562 f 4569/11093/4559 4495/11094/4482 4572/11095/4561 f 4506/8407/4493 3836/11096/4494 4573/8410/4563 f 4573/11097/4563 3836/8426/4494 4574/8415/4564 f 4574/8415/4564 4571/11098/4562 4573/11097/4563 f 4569/8414/4559 4572/11099/4561 4574/8415/4564 f 4575/8416/4565 4576/8417/4566 4577/11100/4567 f 4575/11101/4565 4577/8418/4567 4569/8400/4559 f 4570/8401/4560 4579/8420/4569 4580/8421/4570 f 4579/8420/4569 4570/8401/4560 4569/8400/4559 f 4566/11091/4556 4570/8401/4560 4581/8422/4571 f 4582/8425/4572 4574/8415/4564 3836/8426/4494 f 4584/8428/4574 4583/8427/4573 3824/7354/3825 f 4585/8429/4575 4582/8425/4572 3835/8424/3838 f 4585/8429/4575 4583/8427/4573 4586/8432/4578 f 4587/8430/4576 4584/8428/4574 3819/7347/3821 f 4588/8431/4577 4583/8427/4573 4584/8428/4574 f 3822/8433/4579 3821/7352/3824 4590/8436/4582 f 3822/11102/4579 4591/11103/4581 4589/11104/4580 f 4589/8434/4580 4593/11105/4633 4592/8437/4583 f 4588/8431/4577 4587/8430/4576 4592/8437/4583 f 4592/8437/4583 4594/8438/4584 4588/8431/4577 f 4586/8432/4578 4588/8431/4577 4594/8438/4584 f 4596/8440/4586 4586/8432/4578 4595/8439/4585 f 4576/8417/4566 4597/8443/4587 4577/11100/4567 f 4597/8443/4587 4576/8417/4566 4596/8440/4586 f 4597/8443/4587 4599/8444/4589 4598/8448/4588 f 4578/8419/4568 4577/8418/4567 4597/11106/4587 f 4578/8419/4568 4598/8442/4588 4600/8445/4590 f 4579/8420/4569 4578/8419/4568 4601/8446/4591 f 4598/8442/4588 4602/11107/4592 4600/11108/4590 f 4598/8448/4588 4599/8444/4589 4605/8453/4595 f 4599/8444/4589 4595/8439/4585 4606/8454/4596 f 4595/8439/4585 4594/8438/4584 4606/8454/4596 f 4594/8438/4584 4592/8437/4583 4607/8455/4597 f 4593/11109/4633 4608/8595/4635 4607/8596/4597 f 4607/8455/4597 4592/8437/4583 4593/11105/4633 f 4609/8459/4598 4611/8465/4604 4603/8449/4593 f 4605/8457/4595 4612/11110/4600 4610/8458/4599 f 4612/11110/4600 4605/8457/4595 4606/11111/4596 f 4614/11112/4601 4612/11110/4600 4606/11111/4596 f 4615/11113/4603 4614/11114/4601 4606/11115/4596 f 4604/8464/4594 4603/8449/4593 4616/8466/4605 f 4581/11116/4571 4580/11117/4570 4618/8468/4607 f 4564/8390/4553 4581/11116/4571 4618/8468/4607 f 4600/11118/4590 4604/8464/4594 4619/8482/4608 f 4620/8472/4609 4619/8482/4608 4557/8383/4547 f 4618/11119/4607 4580/11120/4570 4601/11121/4591 f 4621/8473/4610 4557/8383/4547 4558/8391/4554 f 4601/8446/4591 4600/8445/4590 4620/11122/4609 f 4601/8474/4591 4620/8472/4609 4621/8473/4610 f 4622/8477/4611 4617/8476/4606 4623/8493/4620 f 4624/8478/4612 4625/8480/4613 4623/11123/4620 f 4625/8480/4613 4557/8383/4547 4619/8482/4608 f 4622/8481/4611 4625/8480/4613 4619/8482/4608 f 4625/11124/4613 4622/11125/4611 4623/11126/4620 f 4629/11127/4617 4628/8485/4616 4627/8484/4615 f 4629/11127/4617 4611/8465/4604 4628/8485/4616 f 4629/8487/4617 4627/11128/4615 4630/11129/4621 f 4629/8486/4617 4630/8496/4621 4617/8467/4606 f 4617/11130/4606 4631/8490/4618 4563/8479/4552 f 4633/8497/4622 4630/8496/4621 4627/8484/4615 f 4633/11131/4622 4638/11132/4627 4632/11133/4619 f 4634/8501/4623 4636/8503/4625 4635/8502/4624 f 4635/8502/4624 4626/8483/4614 4634/8501/4623 f 4633/8497/4622 4636/8503/4625 4637/8504/4626 f 4562/8507/4551 4563/8479/4552 4639/8506/4628 f 4639/8506/4628 4632/8491/4619 4638/8505/4627 f 4639/11134/4628 4640/11135/4629 4560/11136/4549 f 4640/8510/4629 4638/8505/4627 4637/8504/4626 f 4480/11137/4467 4489/8514/4477 4464/11036/4468 f 4463/11035/6126 4464/11036/4468 4641/8512/4630 f 4641/11138/4630 4550/8362/4537 4463/11075/6126 f 4641/8512/4630 4464/11036/4468 4489/8514/4477 f 4561/8387/4550 4488/8272/4476 4487/8267/4474 f 4489/8514/4477 4560/8516/4549 4551/8513/4540 f 4642/8518/4631 4640/8510/4629 4637/8504/4626 f 4642/8518/4631 4551/8520/4540 4560/11139/4549 f 4537/8346/4523 4539/8347/4524 4643/8519/4632 f 4643/8519/4632 4634/8501/4623 4535/8344/4521 f 4643/8519/4632 4539/8347/4524 4540/8352/4526 f 4636/8503/4625 4541/8351/4527 4637/8504/4626 f 4541/8351/4527 4543/8354/4529 4637/8504/4626 f 4637/8504/4626 4543/8354/4529 4548/8358/4533 f 4591/8435/4581 4590/8436/4582 4646/8535/4644 f 4645/8528/4637 4647/8527/4636 4648/8530/4639 f 4649/8529/4638 4645/8528/4637 4648/8530/4639 f 4651/8532/4641 4647/8527/4636 4644/8522/4634 f 4652/11140/4642 4651/8532/4641 4591/8526/4581 f 4653/8534/4643 4652/11141/4642 4591/8435/4581 f 4654/8536/4645 4300/8537/4646 4655/8539/4647 f 4654/8536/4645 4590/8436/4582 3821/7352/3824 f 4655/11142/4647 3800/11143/3817 4656/11144/4649 f 4656/8541/4649 4657/8540/4648 4654/11145/4645 f 4658/8544/4650 4653/8534/4643 4646/8535/4644 f 4209/11146/4206 4657/8540/4648 4210/8542/4302 f 4657/11147/4648 4209/7855/4206 4659/8546/4651 f 4209/7855/4206 4205/10934/6124 4661/8552/4653 f 4661/8552/4653 4712/8633/4703 4660/8547/4652 f 4661/8552/4653 4205/10934/6124 4195/7831/4191 f 4664/8555/4655 4663/8554/4654 4187/7827/4187 f 4665/8556/4656 4663/8554/4654 4666/8557/4657 f 4669/8758/4659 4181/7820/4182 4668/11148/4660 f 3712/7194/3721 4668/11148/4660 4181/7820/4182 f 4668/11148/4660 3712/7194/3721 4183/8563/4662 f 4670/8562/4661 4668/11148/4660 4183/8563/4662 f 4185/8565/4185 4672/11149/4664 4671/8564/4663 f 4673/8569/4665 4674/8577/4666 4521/8568/4508 f 4521/8568/4508 4520/8340/4507 4534/8343/4520 f 4675/8573/4667 4674/8571/4666 4676/11150/4673 f 4677/8574/4668 4675/8573/4667 4676/11150/4673 f 4677/8574/4668 4684/8592/4676 4678/8575/4669 f 4679/8576/4670 4676/11151/4673 4674/8577/4666 f 4534/8343/4520 4679/8576/4670 4673/8569/4665 f 4679/8576/4670 4534/8343/4520 4536/8345/4522 f 4609/8578/4598 4680/8580/4671 4536/11152/4522 f 4609/8459/4598 4628/8485/4616 4611/8465/4604 f 4679/8576/4670 4536/8345/4522 4680/8581/4671 f 4681/8586/4672 4680/8581/4671 4612/8460/4600 f 4682/8590/4674 4614/8461/4601 4615/11153/4603 f 4682/8590/4674 4681/8586/4672 4613/8462/4602 f 4682/8588/4674 4615/11154/4603 4683/8593/4675 f 4683/11155/4675 4677/11156/4668 4676/11151/4673 f 4683/8591/4675 4615/8594/4603 4684/8592/4676 f 4684/8592/4676 4608/8595/4635 4645/11157/4637 f 4684/8592/4676 4649/11158/4638 4650/8601/4640 f 4649/8529/4638 4684/11159/4676 4645/8528/4637 f 4685/8598/4678 4513/8572/4500 4675/8573/4667 f 4685/11160/4678 4686/8615/4677 4514/8320/4501 f 4513/8572/4500 4685/8598/4678 4514/11161/4501 f 4678/8575/4669 4688/8600/4680 4685/8598/4678 f 4678/8575/4669 4684/8592/4676 4650/8601/4640 f 4690/8603/4682 4691/8602/4681 4693/8610/4688 f 4511/8314/4498 4510/8313/4497 4695/8607/4686 f 4691/11162/4681 4696/8608/4687 4695/8607/4686 f 4696/8671/4687 4691/8602/4681 4692/8604/4683 f 4695/8609/4686 4510/11163/4497 4516/11164/4504 f 4697/8613/4689 4516/8323/4504 4515/8321/4502 f 4698/8618/4690 4693/8610/4688 4697/8612/4689 f 4686/8615/4677 4698/8614/4690 4515/8321/4502 f 4686/8616/4677 4687/11165/4679 4699/8617/4691 f 4518/8324/4505 4507/8309/4495 4409/8205/4405 f 4507/8309/4495 4518/8324/4505 4510/8313/4497 f 4700/8619/4692 4236/7912/4236 4237/7914/4175 f 4701/8625/4696 4700/8619/4692 4694/8606/4685 f 4700/8619/4692 4701/8625/4696 4702/8629/4693 f 4703/8623/4694 4241/7918/4241 4238/7915/4238 f 4702/8629/4693 4703/8623/4694 4236/7912/4236 f 4704/8624/4695 4702/8629/4693 4701/8625/4696 f 4705/8626/4697 4701/8625/4696 4694/8606/4685 f 4690/8603/4682 4693/8610/4688 4705/8626/4697 f 4708/8630/4700 4705/8626/4697 4693/8610/4688 f 4708/8630/4700 4699/8617/4691 4687/11165/4679 f 4708/8630/4700 4706/8627/4698 4705/8626/4697 f 4710/8631/4701 4709/8632/4702 4712/8633/4703 f 4710/8631/4701 4711/8641/4710 4650/8531/4640 f 4662/8635/4705 4712/8633/4703 4661/8552/4653 f 4713/8634/4704 4712/8633/4703 4662/8635/4705 f 4713/8634/4704 4715/8637/4707 4716/8642/4708 f 4713/8634/4704 4716/8642/4708 4710/8631/4701 f 4688/8600/4680 4717/8639/4709 4718/8643/4711 f 4717/8639/4709 4688/8600/4680 4650/8601/4640 f 4665/8556/4656 4662/8635/4705 4661/8552/4653 f 4714/8636/4706 4667/8558/4658 4715/8637/4707 f 4664/8555/4655 4181/7820/4182 4669/8758/4659 f 4664/8555/4655 4186/7826/4186 4181/7820/4182 f 4721/8647/4714 4725/8653/4719 4232/8652/4233 f 4721/11166/4714 4232/7908/4233 4167/7803/4173 f 4722/11167/4715 4167/7803/4173 4231/7905/4230 f 4722/11168/4715 4746/11169/4743 4719/11170/4712 f 4724/8655/4718 4723/8657/4717 4233/10957/4716 f 4724/8655/4718 4760/11171/4763 4726/8656/4720 f 4386/8666/4376 4383/8133/4375 4391/8143/4384 f 4696/8671/4687 4692/8604/4683 4397/8149/4390 f 4511/11060/4498 4696/8671/4687 4400/8672/4724 f 4730/8673/4725 4690/8603/4682 4689/8605/4684 f 4730/8673/4725 4397/8149/4390 4692/8604/4683 f 4171/8674/4726 4162/7796/4167 4731/8676/4728 f 4731/8676/4728 4237/7805/4175 4171/8674/4726 f 4162/7796/4167 4732/8677/4729 4733/8675/4727 f 4732/8677/4729 4162/7796/4167 4161/7793/4164 f 4730/8673/4725 4689/8605/4684 4396/8681/4732 f 4730/8673/4725 4396/8681/4732 4397/8149/4390 f 4734/8679/4730 4689/8605/4684 4694/8606/4685 f 4731/8682/4728 4734/8679/4730 4694/8606/4685 f 4731/8682/4728 4395/8680/4731 4734/8679/4730 f 4735/8683/4733 4395/11172/4731 4731/8676/4728 f 4735/8684/4733 4733/8689/4727 4393/8685/4387 f 4394/8145/4386 4395/8680/4731 4735/11173/4733 f 4391/8690/4384 4392/11174/4385 4737/8691/4735 f 4739/8693/4737 4738/8692/4736 4737/8691/4735 f 4738/8692/4736 4739/8693/4737 4387/8695/4380 f 4736/8697/4734 4729/11175/4723 4737/8698/4735 f 4392/8696/4385 4393/11176/4387 4736/8697/4734 f 4742/8160/4399 4389/8138/4379 4388/8140/4381 f 4739/8693/4737 4740/8699/4738 4387/8695/4380 f 4739/8693/4737 4744/8706/4741 4741/8700/4739 f 4743/8705/4740 4741/11177/4739 4447/11178/4437 f 3540/8707/3552 4749/8719/4746 3708/7187/3716 f 3540/8707/3552 4362/8095/4354 3542/8096/3717 f 4745/8709/4742 4361/11179/4353 4746/8710/4743 f 4722/8708/4715 4231/11180/4230 4745/8709/4742 f 4745/8711/4742 3535/8713/3549 4361/8093/4353 f 4747/8715/4744 4231/7905/4230 4176/7907/4232 f 4747/8715/4744 4745/8714/4742 4231/7905/4230 f 4747/8717/4744 4176/10962/4232 4748/8718/4745 f 4749/8719/4746 3538/11181/3550 4747/8717/4744 f 4749/8719/4746 3540/8707/3552 3538/11181/3550 f 4320/8729/4748 3706/7183/3713 4319/8725/4318 f 4320/8729/4748 4317/11182/4317 4316/8730/4749 f 3704/7181/3711 3706/7183/3713 4320/8729/4748 f 4746/11183/4743 4361/8093/4353 4719/8645/4712 f 4750/8731/4750 4361/8093/4353 3530/6970/3542 f 4751/8732/4751 4359/8734/4753 3524/8769/3537 f 4751/8732/4751 4724/8651/4718 4725/8653/4719 f 4725/8653/4719 4752/8733/4752 4751/8732/4751 f 4360/8735/4754 4752/8733/4752 4725/8653/4719 f 4721/8647/4714 3531/6972/3544 4725/8653/4719 f 4753/8736/4755 3530/6970/3542 3531/6972/3544 f 4720/8737/4713 4753/8736/4755 4721/8647/4714 f 4750/8731/4750 3530/6970/3542 4753/8736/4755 f 4318/8738/4756 3704/7181/3711 4316/8730/4749 f 3701/7179/3709 4318/8738/4756 3698/7177/3707 f 3698/11184/3707 4318/11185/4756 4314/11186/4316 f 3698/11184/3707 4314/11186/4316 4184/11187/4184 f 4243/11188/4243 4316/11189/4749 4244/11190/4245 f 4316/11189/4749 4243/11188/4243 4318/11185/4756 f 4314/11186/4316 4318/11185/4756 4243/11188/4243 f 4314/8033/4316 4315/8032/4315 4184/7822/4184 f 4315/8032/4315 4672/8567/4664 4184/7822/4184 f 4313/11191/4314 4672/8567/4664 4240/8031/4239 f 4754/8742/4757 4671/8564/4663 4672/8743/4664 f 4671/8564/4663 4754/8742/4757 4755/8746/4758 f 4241/8750/4241 4703/8753/4694 4756/8747/4759 f 4756/8747/4759 4703/8753/4694 4715/8751/4707 f 4707/8754/4699 4706/8755/4698 4757/8752/4760 f 4716/8638/4708 4715/8751/4707 4757/8752/4760 f 4708/8756/4700 4687/8599/4679 4718/8643/4711 f 4718/8643/4711 4757/8752/4760 4706/8755/4698 f 3582/7021/3588 3734/7227/3743 3750/7662/4072 f 4670/8562/4661 4671/8564/4663 4758/8757/4761 f 4758/8757/4761 4664/8555/4655 4669/8758/4659 f 4666/8557/4657 4663/8554/4654 4758/8757/4761 f 4758/8757/4761 4671/8564/4663 4667/8558/4658 f 4471/8237/4458 4470/8236/4457 4345/8243/4340 f 4475/8250/4462 4473/11044/4466 4459/8225/4451 f 4363/8773/4766 4405/8156/4396 4365/8098/4355 f 4406/8165/4397 4759/8766/4762 4410/8164/4403 f 4760/8768/4763 4751/8732/4751 3524/8769/3537 f 4364/11011/4767 3298/6633/3317 3301/10758/4765 f 3301/8772/4765 4405/8156/4396 4363/8773/4766 f 3301/10749/4765 3299/8828/3316 4761/10750/6112 f 3299/8828/3316 4801/8827/4807 4761/10750/6112 f 4762/8780/4768 4767/11192/4772 4763/8879/4845 f 4762/8780/4768 4763/8879/4845 4764/8881/4769 f 4762/8780/4768 4766/8779/4771 4767/11192/4772 f 4770/11193/4847 4767/11192/4772 4769/11194/4774 f 4767/11192/4772 4770/11193/4847 4763/8879/4845 f 4774/8786/4777 4773/8785/4776 4768/8782/4773 f 4775/8788/4779 4774/8786/4777 4776/8790/4781 f 4774/8786/4777 4775/8788/4779 4773/8785/4776 f 4779/8792/4783 4778/11195/4782 4776/8869/4781 f 4810/8800/4790 4786/8799/4789 4787/8801/4791 f 4793/8808/4798 4784/8797/4787 4783/8807/4797 f 4793/8810/4798 4794/9141/4799 4796/8811/4800 f 4797/8873/4839 4798/8824/4806 4795/8812/4801 f 4796/8811/4800 4797/8873/4839 4795/8812/4801 f 3335/6670/3348 4766/8819/4771 4765/8777/4770 f 3336/6669/3347 3338/8866/4834 4802/8816/4802 f 4802/8816/4802 4766/8819/4771 3335/6670/3348 f 4800/11196/4857 4805/8893/4855 4803/8823/4805 f 4803/11197/4805 4799/11198/4804 4800/11199/4857 f 4798/8824/4806 4797/8873/4839 4804/8825/4803 f 4803/8823/4805 4805/8893/4855 4798/8890/4806 f 4765/8777/4770 4764/8776/4769 4801/11200/4807 f 4801/8832/4807 4807/8829/4808 4761/11201/6112 f 4806/8857/4809 4801/11202/4807 4764/8834/4769 f 4809/8833/4811 4806/8857/4809 4764/8834/4769 f 4810/8800/4790 4764/8834/4769 4811/11203/4865 f 4811/11203/4865 4785/8798/4788 4810/8800/4790 f 4812/8839/4816 4792/8805/4795 4791/8804/4794 f 4790/8806/4796 4814/8837/4814 4813/8835/4812 f 4791/8804/4794 4813/8835/4812 4812/8839/4816 f 4817/8836/4813 4813/8835/4812 4814/8837/4814 f 4817/8836/4813 4815/9239/4818 4812/8839/4816 f 4818/11204/4815 4816/8840/4817 4817/8842/4813 f 4816/8840/4817 4818/11204/4815 4819/8843/4819 f 4816/8840/4817 4821/8844/4820 4820/9244/5095 f 4819/8845/4819 4824/8849/4823 4822/8846/4821 f 4824/8849/4823 4800/8895/4857 4799/8850/4804 f 4788/8802/4792 4826/8852/4825 4825/8851/4824 f 4787/8801/4791 4789/8803/4793 4826/8852/4825 f 4827/11205/4827 4825/11206/4824 4826/11207/4825 f 4826/8852/4825 4789/8803/4793 4828/8855/4828 f 4829/8853/4826 4830/8863/4832 4827/8854/4827 f 4789/8803/4793 4792/8805/4795 5095/11208/5086 f 4828/8855/4828 4789/8803/4793 5095/11208/5086 f 4831/11209/4831 4808/8831/4810 4825/11210/4824 f 4832/8858/4829 4831/11211/4831 4825/8851/4824 f 4832/8862/4829 4827/8854/4827 4830/8863/4832 f 5012/9150/5016 4802/8816/4802 3373/6996/3563 f 4802/8816/4802 5012/9150/5016 4772/8820/4778 f 5016/8867/4835 5011/8870/4836 4776/8869/4781 f 4836/9145/5011 4837/8872/4838 4781/8796/4786 f 4783/8807/4797 4837/8872/4838 4838/11212/5018 f 4838/9153/5018 4794/9141/4799 4783/11213/4797 f 4839/8874/4840 4796/8811/4800 4794/9141/4799 f 4797/8873/4839 4840/8875/4841 4841/8876/4842 f 4769/8783/4774 4771/8784/4775 4843/8878/4844 f 4770/11193/4847 4845/8922/4848 4763/8879/4845 f 4782/8795/4785 4784/8797/4787 4846/11214/4850 f 4784/8884/4787 4847/8919/4851 4873/8885/4849 f 4793/8808/4798 4847/11215/4851 4784/8797/4787 f 4795/8812/4801 4848/8888/4852 4847/8887/4851 f 4798/8890/4806 4805/8893/4855 4850/8892/4854 f 4805/8893/4855 4800/11196/4857 4851/8894/4856 f 4852/11216/4858 4851/8894/4856 4800/11196/4857 f 4867/8898/4860 4853/8897/4859 4854/8912/4871 f 4855/8899/4861 4853/8897/4859 4819/8845/4819 f 4853/8897/4859 4855/8899/4861 4854/8912/4871 f 4856/8909/4862 4814/11217/4814 4865/8910/4869 f 4814/11217/4814 4857/11218/4863 4864/8977/4911 f 4858/8902/4864 4857/8901/4863 4786/8799/4789 f 4811/8906/4865 4858/11219/4864 4785/11220/4788 f 4858/11219/4864 4811/8906/4865 4859/8905/4867 f 4860/8904/4866 4862/8954/4897 4859/8905/4867 f 4858/11219/4864 4859/8905/4867 4862/8954/4897 f 4857/11218/4863 4858/11219/4864 4862/8954/4897 f 4862/8954/4897 4863/8956/4899 4857/11218/4863 f 4863/8956/4899 4864/8977/4911 4857/11218/4863 f 4864/8977/4911 4865/8910/4869 4814/11217/4814 f 4867/8898/4860 4869/9012/4931 4824/8849/4823 f 4824/8849/4823 4869/9012/4931 4868/8913/4872 f 4777/8789/4780 4778/8791/4782 4870/8914/4873 f 4780/8915/4784 4782/8916/4785 4871/8927/4880 f 4871/8927/4880 4870/8914/4873 4780/8915/4784 f 4872/8917/4874 4871/8927/4880 4782/8916/4785 f 4873/8885/4849 4875/8918/4875 4874/8931/4884 f 4875/8918/4875 4873/8885/4849 4847/8919/4851 f 4876/8920/4876 4845/8883/4848 4769/8783/4774 f 4876/8950/4876 4877/8949/4894 4845/8922/4848 f 4845/8922/4848 4877/8949/4894 4878/8921/4877 f 4844/8880/4846 4763/8879/4845 4878/8921/4877 f 4878/8921/4877 4861/8923/4868 4844/8880/4846 f 4842/8877/4843 4879/8952/4879 4843/8878/4844 f 4842/8924/4843 4870/11221/4873 4880/8925/4878 f 4870/8914/4873 4871/8927/4880 4880/8961/4878 f 4881/8929/4882 4880/8961/4878 4871/8927/4880 f 4871/8927/4880 4872/8917/4874 4882/8928/4881 f 4872/8917/4874 4846/8886/4850 4882/8928/4881 f 4883/8930/4883 4846/8886/4850 4873/8885/4849 f 4874/11222/4884 4875/11223/4875 4886/8933/4886 f 4874/8931/4884 4886/11224/4886 4884/8932/4885 f 4885/11225/4890 4875/8918/4875 4848/8889/4852 f 4875/11223/4875 4885/8937/4890 4886/8933/4886 f 4888/8966/4888 4884/8932/4885 4886/11224/4886 f 4849/8891/4853 4885/11225/4890 4848/8889/4852 f 4889/8936/4889 4886/8933/4886 4885/8937/4890 f 4850/11226/4854 4889/8936/4889 4849/8938/4853 f 4850/11226/4854 4851/8945/4856 4891/8947/4892 f 4891/8947/4892 4890/11227/4891 4850/11226/4854 f 4894/8999/4926 4878/8921/4877 4877/8949/4894 f 4878/8921/4877 4895/8998/4925 4861/8923/4868 f 4895/8998/4925 4878/8921/4877 4894/8999/4926 f 4860/8904/4866 4861/8907/4868 4895/11228/4925 f 4898/8983/4902 4897/8985/4901 4880/8925/4878 f 4899/8962/4903 4881/8929/4882 4882/8928/4881 f 4881/8929/4882 4899/8962/4903 4900/8963/4904 f 4901/8964/4905 4899/8962/4903 4884/8932/4885 f 4902/8965/4906 4901/8964/4905 4884/8932/4885 f 4887/8934/4887 4886/8933/4886 4903/8970/4907 f 4891/9019/4892 4868/8913/4872 4929/9014/4933 f 4868/8913/4872 4869/9012/4931 4929/9014/4933 f 4866/8911/4870 4855/8899/4861 4865/8975/4869 f 4896/8955/4898 4906/9002/4910 4865/8910/4869 f 4865/8910/4869 4864/8977/4911 4896/8955/4898 f 4907/8978/4912 4894/8999/4926 4877/8949/4894 f 4894/11229/4926 4907/9048/4912 4909/9047/4948 f 4892/8948/4893 4897/8958/4901 4912/8982/4915 f 4912/8982/4915 4911/9042/4945 4910/8981/4914 f 4898/8983/4902 4913/9038/4916 4912/8984/4915 f 4914/8987/4917 4913/8986/4916 4900/8963/4904 f 4915/8990/4920 4901/8964/4905 4902/8965/4906 f 4915/8990/4920 4916/8989/4919 4914/8987/4917 f 4901/8964/4905 4915/8990/4920 4914/8987/4917 f 4917/8988/4918 4915/8990/4920 4902/8965/4906 f 4904/8968/4908 4917/8988/4918 4887/8969/4887 f 4904/11230/4908 4903/8970/4907 4919/9035/4922 f 4860/11231/4866 4921/8997/4924 4949/8996/4896 f 4921/9000/4924 4860/11232/4866 4895/8998/4925 f 4909/9050/4948 4921/9000/4924 4894/8999/4926 f 4921/9000/4924 4909/9050/4948 4920/9052/4923 f 4906/8976/4910 4923/9003/4927 4905/8971/4909 f 4925/9011/4929 4905/8971/4909 4924/9004/4928 f 4869/9012/4931 4928/9016/4934 4927/9013/4932 f 4930/9017/4935 4931/11233/4968 4890/9018/4891 f 4930/9017/4935 4891/9019/4892 4929/9014/4933 f 4931/11233/4968 4932/9020/4936 4919/11234/4922 f 4919/11234/4922 4890/9018/4891 4931/11233/4968 f 4932/9082/4936 4935/11235/6129 4933/11236/4937 f 4918/8991/4921 4933/9023/4937 4917/8988/4918 f 4918/11237/4921 4919/11234/4922 4932/9020/4936 f 4933/11238/4937 4935/11239/6129 4934/11240/4956 f 4934/11241/4956 4916/8989/4919 4933/11242/4937 f 4916/8989/4919 4934/11241/4956 4938/9031/4938 f 4939/9033/4941 4913/9038/4916 4914/9034/4917 f 4913/9038/4916 4939/9033/4941 4940/11243/4944 f 4889/8936/4889 4890/11227/4891 4919/9035/4922 f 4913/9038/4916 4942/9037/4943 4941/9036/4942 f 4942/9039/4943 4940/9041/4944 4939/11244/4941 f 4910/8981/4914 4911/9042/4945 4908/8980/4913 f 4944/9046/4947 4945/9069/4950 4909/9047/4948 f 4946/11245/4949 4948/9053/4951 4920/8995/4923 f 4948/9053/4951 4946/11245/4949 4947/9072/4964 f 4949/8996/4896 4920/8995/4923 4948/9053/4951 f 4948/9053/4951 4950/9055/4952 4922/9054/4900 f 4950/11246/4952 4952/11247/4954 4923/9001/4927 f 4952/9058/4954 4950/9055/4952 4951/9057/4953 f 4925/9011/4929 4953/9059/4955 4928/9016/4934 f 4927/9079/4932 4928/11248/4934 4953/9076/4955 f 4927/9079/4932 4931/9080/4968 4930/11249/4935 f 4954/11250/4976 4935/11235/6129 4932/9082/4936 f 4954/11250/4976 4934/11251/4956 4935/11235/6129 f 4955/9062/4957 4934/9061/4956 4954/11252/4976 f 4956/9063/4958 4937/9028/4940 4938/9030/4938 f 4957/9065/4959 4941/9036/4942 4939/9033/4941 f 4941/9036/4942 4957/9065/4959 4967/9066/4960 f 4945/11253/4950 4943/9044/4946 4959/9086/4971 f 4943/9044/4946 4945/11253/4950 4944/9045/4947 f 4945/9069/4950 4961/9071/4963 4946/11245/4949 f 4947/9072/4964 4946/11245/4949 4961/9071/4963 f 4951/9057/4953 4948/9053/4951 4962/9073/4965 f 4964/9078/4967 4931/9080/4968 4927/9079/4932 f 4931/9080/4968 4964/9078/4967 4965/9081/4969 f 4965/9081/4969 4954/11250/4976 4932/9082/4936 f 4954/9098/4976 4966/11254/4970 4955/11255/4957 f 4966/11256/4970 4967/9066/4960 4957/9065/4959 f 4957/9065/4959 4956/9063/4958 4966/11256/4970 f 4967/9066/4960 4968/9087/4972 4958/9067/4961 f 4959/9086/4971 4960/11257/4962 4945/11253/4950 f 4961/9071/4963 4960/9070/4962 4969/9089/4973 f 4970/9093/4975 4947/9072/4964 4961/9071/4963 f 4970/9093/4975 4971/9091/4974 4962/9073/4965 f 4962/9073/4965 4947/9072/4964 4970/9093/4975 f 4963/9074/4966 4962/9073/4965 4971/9091/4974 f 4966/11256/4970 4968/9087/4972 4967/9066/4960 f 4969/9089/4973 4966/11254/4970 4954/9098/4976 f 4969/9089/4973 4968/9096/4972 4966/11254/4970 f 4974/9101/4979 4975/10140/5735 4972/9099/4977 f 4974/9101/4979 5098/9237/5090 4976/9102/4980 f 4977/9103/4981 4975/10140/5735 4974/9101/4979 f 4976/9102/4980 5098/9237/5090 5143/9288/5129 f 4979/9110/4983 4978/9104/4982 4976/9102/4980 f 4979/9110/4983 4976/9102/4980 5143/9288/5129 f 4980/11258/4984 4983/9111/4987 3634/9113/3642 f 4983/9111/4987 4980/11258/4984 4979/11259/4983 f 5005/9138/5005 4985/9114/4988 4984/6960/3535 f 4984/11260/3535 4983/9111/4987 5005/11261/5005 f 3523/6961/3536 4984/6960/3535 4985/9114/4988 f 4987/9117/4991 4986/9115/4989 4985/9114/4988 f 4989/9124/4994 4993/9126/4996 4990/11262/4992 f 4990/9121/4992 4988/9116/4990 4991/9122/4993 f 4997/11263/5000 5000/11264/6095 4998/11265/6092 f 4997/11266/5000 4998/11267/6092 4996/11268/4998 f 4996/9129/4998 4995/9139/5006 4999/9130/4999 f 4997/9290/5000 5001/11269/5002 5000/11270/6095 f 5002/9137/5001 5000/11270/6095 5001/11269/5002 f 4991/9122/4993 5005/9138/5005 5143/9288/5129 f 5003/9135/5003 5001/11269/5002 5006/9292/5131 f 5006/9292/5131 5001/11269/5002 4997/9290/5000 f 5007/9289/5130 4994/9127/4997 4991/9122/4993 f 4991/9122/4993 5143/9288/5129 5007/9289/5130 f 4994/9127/4997 5007/9289/5130 4995/9139/5006 f 4838/9153/5018 5008/9142/5008 4794/9141/4799 f 4772/8820/4778 5012/9150/5016 5016/8867/4835 f 5010/9144/5010 5011/8870/4836 5013/9146/5012 f 5013/9146/5012 5011/8870/4836 5016/8867/4835 f 5016/8867/4835 5017/9149/5015 5015/9148/5014 f 3373/6996/3563 3555/6995/3562 5017/9149/5015 f 4837/8872/4838 4836/9145/5011 5030/9184/5048 f 5030/9184/5048 5018/9151/5017 4837/8872/4838 f 5014/9147/5013 5030/9184/5048 4836/9145/5011 f 5020/9156/5020 5009/9143/5009 5008/9142/5008 f 4840/8875/4841 5022/9158/5022 5023/9161/5025 f 5022/9158/5022 5021/9157/5021 5024/9159/5023 f 4841/8876/4842 5027/9162/5026 5026/11271/5198 f 5027/9162/5026 4841/8876/4842 5023/9161/5025 f 5025/9160/5024 5024/9159/5023 5028/9163/5027 f 5021/9157/5021 5020/9156/5020 5032/9191/5055 f 5031/9165/5029 5021/9157/5021 5032/9191/5055 f 5033/11272/6130 5031/9165/5029 5032/9191/5055 f 5031/9165/5029 5036/11273/6131 5034/9166/5030 f 5035/9168/5032 5034/9166/5030 5036/11273/6131 f 5035/9168/5032 5036/11273/6131 5038/9169/5033 f 5037/9170/5034 5039/9171/5035 5040/9172/5036 f 5041/9173/5037 5042/9356/5183 5037/9170/5034 f 5041/9173/5037 5043/9175/5039 5042/9356/5183 f 5041/9173/5037 5040/9172/5036 5044/9176/5040 f 5047/9180/5044 5045/9174/5038 5046/9177/5041 f 5047/9180/5044 5050/9179/5043 5051/9181/5045 f 5052/9198/5062 5051/9181/5045 5050/9179/5043 f 5015/9148/5014 3554/6994/3561 3592/7028/3595 f 5029/9164/5028 5053/9487/5269 5014/9147/5013 f 5054/9489/5271 5014/9147/5013 5053/9487/5269 f 5014/9147/5013 5054/9489/5271 5055/9183/5047 f 5056/9185/5049 5057/11274/5050 5018/9151/5017 f 5057/9186/5050 5058/9187/5051 5019/9155/5019 f 5058/9187/5051 5059/9189/5053 5020/9156/5020 f 5032/9191/5055 5060/9188/5052 5061/9192/5056 f 5060/9188/5052 5032/9191/5055 5020/9156/5020 f 5062/9190/5054 5033/11272/6130 5032/9191/5055 f 5063/9193/5057 5064/9194/5058 5065/9196/5060 f 5038/9169/5033 5061/9192/5056 5064/9194/5058 f 5066/9195/5059 5040/9172/5036 5039/9171/5035 f 5040/9172/5036 5066/9195/5059 5044/9176/5040 f 5044/9176/5040 5067/9519/5297 5068/9524/5302 f 5049/9178/5042 5046/9177/5041 5069/9523/5301 f 5069/9523/5301 5070/9522/5300 5049/9178/5042 f 5050/9179/5043 5070/9522/5300 5071/9213/5076 f 5050/9179/5043 5049/9178/5042 5070/9522/5300 f 5073/9199/5063 5074/9201/5065 5052/9198/5062 f 5075/9206/5064 5076/9205/5069 5074/9676/5065 f 5077/9202/5066 5080/9217/5077 5078/9203/5067 f 5080/9217/5077 5077/9202/5066 5075/9206/5064 f 5081/9207/5070 5082/9208/5071 5083/9209/5072 f 5086/9211/5074 5084/9210/5073 5085/9220/5082 f 5086/9211/5074 5085/9220/5082 3627/7079/3640 f 3625/7064/3627 3624/7063/3626 5086/9211/5074 f 5071/9213/5076 5072/9197/5061 5050/9179/5043 f 5073/9199/5063 5087/9212/5075 5089/9215/5078 f 5087/9212/5075 5073/9199/5063 5072/9197/5061 f 5089/9215/5078 5075/9200/5064 5073/9199/5063 f 5089/9215/5078 5088/11275/6132 5090/9216/5079 f 5080/9217/5077 5090/11276/5079 5321/9548/5325 f 5080/9217/5077 5321/9548/5325 5322/9218/5080 f 5082/9208/5071 5078/9203/5067 5080/9217/5077 f 5082/9208/5071 5322/9218/5080 5091/9219/5081 f 5083/9209/5072 5091/9219/5081 5092/9221/5083 f 5092/9221/5083 5084/9210/5073 5083/9209/5072 f 4943/9223/4946 4908/8980/4913 4958/9222/4961 f 3634/7081/3642 3636/7083/3644 4980/11277/4984 f 3636/7083/3644 5761/11278/5746 4982/9109/4986 f 4981/9108/4985 4980/11277/4984 3636/7083/3644 f 5094/9225/5084 4973/11279/4978 4972/9226/4977 f 5095/9229/5086 5093/11280/5085 4830/9230/4832 f 5096/9233/5087 5095/9229/5086 4792/11281/4795 f 4973/11279/4978 5094/9225/5084 5097/9248/5089 f 5099/9252/5091 5096/9233/5087 4812/11282/4816 f 5099/9238/5091 4812/8839/4816 4815/9239/4818 f 4815/9239/4818 5101/9241/5093 5100/9240/5092 f 4820/9244/5095 5101/9243/5093 4816/8840/4817 f 5094/9225/5084 5103/9249/5099 5138/9246/5097 f 5104/9234/5088 5093/11280/5085 5095/9229/5086 f 5099/11283/5091 5106/11284/5104 5105/11285/5100 f 5106/11286/5104 5099/11287/5091 5100/9240/5092 f 5100/9240/5092 5107/9253/5101 5106/11286/5104 f 5101/9243/5093 5114/9245/5096 5109/11288/6133 f 5109/11288/6133 5102/9254/5094 5101/9243/5093 f 4820/9244/5095 4821/8844/4820 5110/9321/5153 f 4820/9244/5095 5110/9321/5153 5114/9245/5096 f 4821/8844/4820 4823/11289/4822 5110/9321/5153 f 4822/8846/4821 4799/8850/4804 4823/8847/4822 f 5111/9257/5103 5103/11290/5099 5104/9234/5088 f 5111/9257/5103 5105/9251/5100 5112/9259/5105 f 5102/9254/5094 5109/11288/6133 5113/9262/5106 f 5109/11288/6133 5114/9245/5096 5115/9268/5112 f 5109/11288/6133 5115/9268/5112 5116/9275/5119 f 5103/11291/5099 5111/11292/5103 5137/11293/5126 f 5113/9262/5106 5130/9277/5121 5118/9279/5110 f 5118/9279/5110 5108/9255/5102 5113/9262/5106 f 5118/9266/5110 5107/9260/5101 5108/11294/5102 f 5116/9275/5119 5113/9262/5106 5109/11288/6133 f 5113/9262/5106 5116/9275/5119 5128/9274/5118 f 5122/9273/5117 5121/9324/5156 5123/9323/5155 f 5121/9324/5156 5122/9273/5117 5120/9267/5111 f 5120/9267/5111 5116/9275/5119 5115/9268/5112 f 5120/9267/5111 5124/9269/5113 5121/9324/5156 f 5126/9270/5114 5120/9267/5111 5122/9273/5117 f 5127/9272/5116 5129/9276/5120 5128/9274/5118 f 5126/9270/5114 5128/9274/5118 5116/9275/5119 f 5128/9274/5118 5130/9277/5121 5113/9262/5106 f 5131/9770/5122 5132/9282/5125 5118/9266/5110 f 5132/9282/5125 5134/9281/5124 5119/9265/5109 f 5119/9265/5109 5118/9266/5110 5132/9282/5125 f 5133/9280/5123 5136/9298/5135 5135/9264/5108 f 5135/9264/5108 5119/9265/5109 5134/9281/5124 f 5135/9264/5108 5134/9281/5124 5133/9280/5123 f 5117/9263/5107 5112/9259/5105 5135/9264/5108 f 5117/9263/5107 5135/9264/5108 5136/9298/5135 f 5137/9297/5126 5111/9257/5103 5117/9263/5107 f 5143/9288/5129 4983/9287/4987 4979/9110/4983 f 5141/11295/5127 4999/9130/4999 5142/9140/5007 f 5140/9247/5098 5006/9292/5131 5141/9284/5127 f 5144/9293/5132 5139/9285/5128 5159/9314/5149 f 5163/9294/5133 5159/9314/5149 5139/9285/5128 f 5137/11296/5126 5145/9295/5134 5138/9246/5097 f 5146/11297/5148 5145/9296/5134 5136/9298/5135 f 5147/9299/5136 5151/11298/5547 5148/9300/5137 f 5151/9842/5547 5147/9311/5136 5150/9310/5146 f 5152/9302/5139 5147/9299/5136 5149/9301/5138 f 5153/9315/5140 5152/11299/5139 5155/11300/5142 f 5155/11300/5142 5157/9316/5150 5153/9315/5140 f 5157/9316/5150 5155/11300/5142 5004/9136/5004 f 5004/9136/5004 5003/9135/5003 5157/9316/5150 f 5160/9312/5147 5147/9311/5136 5153/9315/5140 f 5160/9312/5147 5161/9309/5145 5147/9311/5136 f 5161/9309/5145 5162/9841/5546 5150/9310/5146 f 5145/9295/5134 5160/9312/5147 5153/9315/5140 f 5145/9295/5134 5153/9315/5140 5163/9294/5133 f 5157/9316/5150 5003/9135/5003 5159/9314/5149 f 5163/9294/5133 5157/9316/5150 5159/9314/5149 f 4804/8825/4803 4841/8876/4842 5164/9358/5185 f 4804/8825/4803 5164/9358/5185 5165/9317/5151 f 5165/9317/5151 4799/9319/4804 4804/8825/4803 f 5167/9322/5154 5115/9268/5112 5114/9245/5096 f 5124/9269/5113 5167/9322/5154 5168/11301/5158 f 5169/9325/5157 5123/11302/5155 5124/9326/5113 f 5125/9271/5115 5122/9273/5117 5171/9423/5228 f 5125/9271/5115 5171/9423/5228 5170/9328/5159 f 5170/9328/5159 5174/9330/5161 5172/11303/5519 f 5177/9336/5165 5176/11304/5164 5178/9337/5166 f 5179/9338/5167 5178/9337/5166 5181/9342/5169 f 5183/9344/5171 5182/9343/5170 5181/9342/5169 f 5178/9339/5166 5180/9341/5168 5184/9376/5195 f 5183/9344/5171 5185/9345/5172 5186/9348/5175 f 5187/11305/5173 5181/9666/5169 5446/9670/5427 f 5191/9350/5177 5180/9341/5168 5176/9340/5164 f 5175/9331/5162 5173/9329/5160 5191/9350/5177 f 5193/9167/5031 5028/9163/5027 5024/9159/5023 f 5195/9354/5181 5194/9351/5178 5035/9168/5032 f 5037/9170/5034 5196/9352/5179 5195/9354/5181 f 5198/9355/5182 5200/9386/5203 5197/9353/5180 f 5198/9355/5182 5199/9357/5184 5200/9386/5203 f 5026/11271/5198 5164/9358/5185 4841/8876/4842 f 5164/9358/5185 5166/9320/5152 4823/9318/4822 f 5203/9360/5187 5166/9320/5152 5202/9359/5186 f 5203/9360/5187 5204/9361/5188 5114/9245/5096 f 5167/9322/5154 5114/9245/5096 5204/9361/5188 f 5207/11306/6134 5206/9366/5191 5168/9327/5158 f 5207/11306/6134 5168/9327/5158 5208/9364/5190 f 5209/9368/5192 5204/9367/5188 5210/11307/6135 f 5209/9368/5192 5208/9364/5190 5205/9363/5189 f 5204/9367/5188 5211/9370/5193 5212/9924/5596 f 5204/9367/5188 5212/9924/5596 5210/11307/6135 f 5214/9379/5197 5213/9373/5194 5164/9375/5185 f 5213/9373/5194 5214/9379/5197 5215/9408/5213 f 5199/9357/5184 5180/9341/5168 5190/9349/5176 f 5216/9377/5196 5200/9386/5203 5199/9357/5184 f 5217/9381/5199 5027/9162/5026 5028/9163/5027 f 5034/9166/5030 5217/9381/5199 5193/9167/5031 f 5217/9381/5199 5034/9166/5030 5218/9398/5212 f 5219/9383/5200 5218/9398/5212 5034/9166/5030 f 5219/9383/5200 5194/9351/5178 5220/9384/5201 f 5220/9384/5201 5194/9351/5178 5195/9354/5181 f 5216/9377/5196 5191/9350/5177 5192/9396/5205 f 5216/11308/5196 5222/9387/5204 5200/9386/5203 f 5223/9391/5206 5224/9418/5208 5222/9388/5204 f 5225/9392/5207 5197/9353/5180 5222/9387/5204 f 5220/9384/5201 5221/9385/5202 5226/9395/5210 f 5227/9397/5211 5228/11309/5220 5218/9398/5212 f 5227/9397/5211 5219/9383/5200 5220/9384/5201 f 5217/9381/5199 5218/9398/5212 5228/11309/5220 f 5217/9381/5199 5229/11310/5217 5215/9399/5213 f 5217/9381/5199 5228/11309/5220 5229/11310/5217 f 4961/9071/4963 4969/9089/4973 4970/9093/4975 f 5213/9373/5194 5215/9408/5213 5231/11311/5215 f 5231/11312/5215 5211/9370/5193 5213/9372/5194 f 5233/9925/5582 5212/9924/5596 5211/9370/5193 f 5211/9405/5193 5232/9404/5216 5234/11313/5583 f 5211/11314/5193 5234/9900/5583 5233/9899/5582 f 5227/9411/5211 5220/9414/5201 5237/9413/5221 f 5196/9352/5179 5225/9392/5207 5239/9416/5222 f 5223/9391/5206 5192/9390/5205 5240/9417/5223 f 5173/9329/5160 5241/9419/5224 5243/9421/5226 f 5241/11315/5224 5171/9424/5228 5242/9426/5225 f 5171/9423/5228 5241/9419/5224 5170/9328/5159 f 5169/11316/5157 5244/9422/5227 5122/9273/5117 f 5245/9435/5230 5230/9407/5214 5229/9406/5217 f 5245/9435/5230 5229/9406/5217 5228/11317/5220 f 5245/9435/5230 5247/9434/5232 5230/9407/5214 f 5246/9433/5231 5250/9892/5234 5247/9434/5232 f 5231/9403/5215 5230/9407/5214 5247/9434/5232 f 5235/9409/5218 5246/9438/5231 5236/9410/5219 f 5248/11318/5233 5250/9892/5234 5246/9433/5231 f 5249/9441/5235 5248/9440/5233 5251/9442/5236 f 5251/9442/5236 5255/9879/5573 5599/9443/5237 f 5251/9442/5236 5253/9445/5239 5255/9879/5573 f 5248/9440/5233 5256/9447/5240 5251/9442/5236 f 5237/9446/5221 5257/11319/5241 5256/9447/5240 f 5226/9415/5210 5238/11320/5209 5257/9448/5241 f 5258/9458/5250 5257/9448/5241 5238/11320/5209 f 5239/9416/5222 5258/11321/5250 5238/9394/5209 f 5224/9418/5208 5240/9417/5223 5259/11322/5247 f 5259/9480/5247 5239/9416/5222 5224/9393/5208 f 5242/9426/5225 5261/9449/5242 5263/9451/5244 f 5244/9425/5227 5169/9325/5157 5264/9427/5229 f 5261/9449/5242 5264/9427/5229 5265/11323/6136 f 5265/11323/6136 5262/9450/5243 5261/9449/5242 f 5243/9454/5226 5242/11324/5225 5278/9467/5257 f 5266/9453/5246 5240/9417/5223 5192/9390/5205 f 5266/9453/5246 5243/9454/5226 5278/9467/5257 f 5266/9453/5246 5267/9456/5248 5240/9417/5223 f 5251/9442/5236 5256/9447/5240 5252/9444/5238 f 5257/9448/5241 5258/9458/5250 5268/9466/5256 f 5275/9457/5249 5268/9466/5256 5258/9458/5250 f 5257/9448/5241 5268/9466/5256 5269/9461/5252 f 5269/9461/5252 5270/11325/5251 5257/9448/5241 f 5256/11326/5240 5257/9448/5241 5270/11325/5251 f 5271/10028/5666 5252/9444/5238 5270/9460/5251 f 5269/11327/5252 5272/10030/5668 5270/9460/5251 f 5272/10449/5668 5269/9461/5252 5273/9463/5254 f 5276/9464/5255 5275/9457/5249 5239/9459/5222 f 5275/9457/5249 5276/9464/5255 5277/10440/5930 f 5277/10440/5930 5268/9466/5256 5275/9457/5249 f 5242/11324/5225 5260/11328/5245 5278/9467/5257 f 5280/9469/5259 5267/9456/5248 5266/9453/5246 f 5281/9470/5260 5259/9455/5247 5267/9456/5248 f 5282/9471/5261 5281/9470/5260 5280/9469/5259 f 5281/9470/5260 5282/9471/5261 5283/9483/5266 f 5278/9467/5257 5260/11328/5245 5284/9475/5262 f 5279/9468/5258 5278/9467/5257 5547/9476/5263 f 5285/9478/5265 5282/9471/5261 5279/9468/5258 f 3838/7374/3840 3837/7376/3842 5287/9486/5268 f 3838/7374/3840 5053/9487/5269 5029/9164/5028 f 5029/9164/5028 3592/7028/3595 3838/7374/3840 f 5054/9489/5271 5289/9488/5270 5288/9490/5272 f 5289/9488/5270 5054/9489/5271 5053/9487/5269 f 5055/9183/5047 5288/9490/5272 5290/9491/5273 f 5291/9492/5274 5290/9491/5273 5292/9498/5280 f 5291/9492/5274 5057/11274/5050 5056/9185/5049 f 3837/7376/3842 3856/7382/3848 5293/9493/5275 f 5294/9494/5276 5287/9486/5268 5293/9493/5275 f 5296/9496/5278 5288/9490/5272 5295/9495/5277 f 5296/9500/5278 5302/9508/5281 5298/9501/5282 f 5293/9493/5275 3857/7392/3858 5299/11329/6137 f 3857/7392/3858 5293/9493/5275 3856/7382/3848 f 5299/11329/6137 5300/9503/5283 5293/9493/5275 f 5301/9505/5285 5302/9499/5281 5297/9497/5279 f 5297/9497/5279 5295/9495/5277 5301/9505/5285 f 3857/7392/3858 5303/9506/5286 5299/11329/6137 f 5299/11329/6137 5303/9506/5286 5300/9503/5283 f 5301/9505/5285 5306/11330/5288 5302/9499/5281 f 5308/9511/5290 5058/9187/5051 5057/9186/5050 f 5308/9511/5290 5059/9189/5053 5058/9187/5051 f 5308/9511/5290 5309/9513/5291 5310/9514/5292 f 5059/9189/5053 5308/9511/5290 5310/9514/5292 f 5060/9188/5052 5310/9514/5292 5312/9515/5293 f 5311/9517/5295 5065/9196/5060 5313/9516/5294 f 5313/9516/5294 5064/9194/5058 5061/9192/5056 f 5315/9520/5298 5068/9524/5302 5067/9519/5297 f 5317/9521/5299 5068/9524/5302 5315/9520/5298 f 5319/9541/5319 5318/9526/5304 5317/9521/5299 f 5320/9527/5305 5088/11275/6132 5087/9212/5075 f 5092/9221/5083 5324/9529/5307 5325/9530/5308 f 3633/7080/3641 5085/9220/5082 5325/9530/5308 f 5327/9533/5311 5329/9534/5312 5328/9532/5310 f 5328/9532/5310 5312/9515/5293 5310/9514/5292 f 5292/9502/5280 5298/9501/5282 5330/9535/5313 f 5312/9515/5293 5328/9532/5310 5331/9537/5315 f 5331/9537/5315 5311/9517/5295 5312/9515/5293 f 5332/9536/5314 5314/9518/5296 5311/9517/5295 f 5332/9536/5314 5335/9540/5318 5314/9518/5296 f 5335/9540/5318 5334/9539/5317 5336/11331/6138 f 5336/11331/6138 5316/9525/5303 5335/9540/5318 f 5337/9542/5320 5317/9521/5299 5316/9525/5303 f 5316/9525/5303 5336/11331/6138 5337/9542/5320 f 5338/9543/5321 5320/9527/5305 5318/9526/5304 f 5339/9544/5322 5090/9216/5079 5320/9527/5305 f 5339/9546/5322 5321/9548/5325 5090/11276/5079 f 5341/9547/5324 5323/9528/5306 5322/9218/5080 f 5323/9528/5306 5341/9547/5324 5342/9587/5356 f 5323/9528/5306 5342/9587/5356 5343/9549/5326 f 5343/9549/5326 5324/9529/5307 5091/9219/5081 f 5344/9550/5327 5325/9530/5308 5324/9529/5307 f 5344/9550/5327 5326/9531/5309 5325/9530/5308 f 5326/9531/5309 5344/9550/5327 5345/9551/5328 f 5347/9567/5341 5328/9532/5310 5329/9534/5312 f 5347/9567/5341 5329/9534/5312 5346/9553/5329 f 5331/9537/5315 5328/9532/5310 5347/9567/5341 f 5347/9567/5341 5348/9554/5330 5331/9537/5315 f 5348/9554/5330 5350/9569/5343 5349/9555/5331 f 5351/9571/5345 5349/9555/5331 5350/9569/5343 f 5349/9555/5331 5351/9571/5345 5334/9539/5317 f 5351/9571/5345 5336/11331/6138 5334/9539/5317 f 5336/11331/6138 5351/9571/5345 5352/9557/5333 f 5336/11331/6138 5353/9556/5332 5337/9542/5320 f 5353/9556/5332 5336/11331/6138 5352/9557/5333 f 5353/9556/5332 5319/9541/5319 5337/9542/5320 f 5338/9543/5321 5354/9558/5334 5355/11332/5335 f 5340/9561/5323 5355/9560/5335 5339/9581/5322 f 5356/9564/5338 5343/9549/5326 5342/9587/5356 f 5357/9586/5355 5356/9564/5338 5342/9587/5356 f 5358/9562/5336 5345/9551/5328 5344/9550/5327 f 5359/9563/5337 5344/9550/5327 5343/9549/5326 f 5378/11333/5359 5345/9551/5328 5358/9562/5336 f 5345/9551/5328 5378/11333/5359 3938/7477/3934 f 5360/11334/6139 5346/9553/5329 5307/9510/5289 f 5361/9565/5339 5363/9568/5342 5347/9567/5341 f 5351/9571/5345 5350/9569/5343 5364/9572/5346 f 5364/9572/5346 5365/11335/5376 5366/9570/5344 f 5367/9573/5347 5352/9557/5333 5351/9571/5345 f 5368/11336/5349 5367/9573/5347 5366/9570/5344 f 5354/9558/5334 5352/9557/5333 5367/9573/5347 f 5370/9575/5348 5367/11337/5347 5368/9576/5349 f 5371/9580/5352 5339/9581/5322 5355/9560/5335 f 5355/9560/5335 5369/9577/5350 5372/9579/5351 f 5373/9583/5353 5342/11338/5356 5341/9582/5324 f 5371/9580/5352 5372/9579/5351 5374/9584/5354 f 5375/11339/5357 5356/9564/5338 5357/9586/5355 f 5375/11339/5357 5359/9563/5337 5356/9564/5338 f 5375/9588/5357 5376/9596/5363 5377/9589/5358 f 5359/9563/5337 5375/11339/5357 5378/11340/5359 f 5379/9593/5360 5378/9590/5359 5377/9589/5358 f 5379/11341/5360 3938/7477/3934 5378/11333/5359 f 5379/9593/5360 5377/9589/5358 5380/9594/5361 f 5379/9593/5360 5380/9594/5361 3960/7520/3960 f 5380/9594/5361 5377/9589/5358 5381/9595/5362 f 3960/7520/3960 5381/9595/5362 5382/7563/3995 f 5383/9597/5364 5381/9595/5362 5377/9589/5358 f 5376/9596/5363 5384/9598/5365 5383/9597/5364 f 5384/9598/5365 5376/9596/5363 5375/9588/5357 f 5357/9601/5355 5386/9600/5367 5384/9598/5365 f 5386/9600/5367 5357/9601/5355 5373/9583/5353 f 5386/9600/5367 5374/9584/5354 5372/9579/5351 f 5389/9604/5370 5372/9579/5351 5369/9577/5350 f 5372/9579/5351 5389/9604/5370 5388/9603/5369 f 5391/9627/5390 5390/9605/5371 5392/9606/5372 f 5392/9606/5372 5394/9609/5375 5391/9627/5390 f 5392/9606/5372 5369/9577/5350 5368/9576/5349 f 5392/9606/5372 5393/9607/5373 5394/9609/5375 f 5393/9607/5373 5368/9576/5349 5366/9610/5344 f 5393/9607/5373 5365/9611/5376 5395/9608/5374 f 5365/11335/5376 5397/9613/5378 5396/9615/5377 f 5397/9613/5378 5365/11335/5376 5364/9572/5346 f 5397/11342/5378 5399/11343/5380 5398/11344/5379 f 5399/9617/5380 5350/9569/5343 5363/9568/5342 f 5399/11343/5380 5400/11345/5381 5398/11344/5379 f 5400/11346/5381 5402/11347/5382 5401/11348/5396 f 5402/9619/5382 5363/9568/5342 5362/9566/5340 f 5401/11349/5396 5402/9619/5382 5362/9566/5340 f 5362/9566/5340 5403/11350/6140 5401/11349/5396 f 5403/11350/6140 5362/9566/5340 5360/11334/6139 f 5360/11351/6139 5404/11352/6141 5403/11353/6140 f 5360/11334/6139 5362/9566/5340 5346/9553/5329 f 5360/11334/6139 5307/9510/5289 5306/11354/5288 f 5360/11351/6139 5306/11355/5288 5404/11352/6141 f 5405/11356/5404 5404/11357/6141 5306/9509/5288 f 5306/11330/5288 5301/9505/5285 5406/9642/5405 f 5305/9507/5287 5406/9642/5405 5301/9505/5285 f 3997/10905/6121 5303/9506/5286 3862/7397/3863 f 5407/9620/5383 3998/7561/3993 3999/7562/3994 f 5408/9621/5384 3999/7562/3994 5382/7563/3995 f 5381/9595/5362 5383/9597/5364 5408/9621/5384 f 5408/9621/5384 5410/9623/5386 5407/9620/5383 f 5408/9621/5384 5383/9597/5364 5385/9599/5366 f 5409/9622/5385 5385/9599/5366 5387/9602/5368 f 5387/9602/5368 5411/9624/5387 5409/9622/5385 f 5389/9604/5370 5390/9605/5371 5412/9626/5389 f 5411/9624/5387 5412/9626/5389 5413/9625/5388 f 5412/9626/5389 5414/9629/5392 5415/9628/5391 f 5414/9629/5392 5391/9627/5390 5394/9609/5375 f 5416/9630/5393 5414/9629/5392 5394/9609/5375 f 5394/9609/5375 5395/9608/5374 5416/9630/5393 f 5416/9630/5393 5417/9632/5395 5418/9631/5394 f 5417/9632/5395 5416/9630/5393 5395/9608/5374 f 5417/9632/5395 5396/9612/5377 5398/11344/5379 f 5417/9632/5395 5398/11344/5379 5400/11345/5381 f 5417/9632/5395 5400/11345/5381 5401/9633/5396 f 5417/9632/5395 5420/9635/5398 5418/9631/5394 f 5421/9636/5399 5422/9637/5400 5420/9635/5398 f 5421/9636/5399 5401/9633/5396 5403/11358/6140 f 5403/11353/6140 5423/11359/5401 5421/11360/5399 f 5423/11359/5401 5403/11353/6140 5404/11352/6141 f 5424/9644/5407 5422/9637/5400 5423/9638/5401 f 5303/9506/5286 3997/10905/6121 3996/7597/4022 f 5425/9639/5402 5305/9507/5287 5303/9506/5286 f 5406/9642/5405 5305/9507/5287 5426/9640/5403 f 5426/9640/5403 5427/11361/5406 5405/9641/5404 f 5306/11330/5288 5406/9642/5405 5405/9641/5404 f 5405/11356/5404 5423/11362/5401 5404/11357/6141 f 5423/9638/5401 5405/11363/5404 5427/9643/5406 f 4031/7612/4031 3998/7561/3993 5407/9620/5383 f 4031/7612/4031 5407/9620/5383 5428/9645/5408 f 5428/9645/5408 5410/9623/5386 5413/9625/5388 f 5428/9645/5408 5429/9646/5409 4032/7610/4029 f 5413/9625/5388 5430/9647/5410 5429/9646/5409 f 5432/9649/5412 5418/9631/5394 5420/9635/5398 f 5434/9651/5414 5435/9652/5415 5436/9655/5418 f 5435/9652/5415 5437/9653/5416 5436/9655/5418 f 5437/9653/5416 5424/9644/5407 5427/9643/5406 f 5438/9654/5417 5439/9657/5420 5436/9655/5418 f 5426/9658/5403 5440/9656/5419 5438/9654/5417 f 4023/7596/4021 4047/7633/4047 5439/9659/5420 f 5425/9639/5402 4023/7596/4021 5440/9660/5419 f 5425/9639/5402 3996/7597/4022 4023/7596/4021 f 5431/9648/5411 5442/9662/5422 5441/9661/5421 f 5433/9650/5413 5436/9655/5418 5442/9662/5422 f 5443/9665/5424 5442/9662/5422 5436/9655/5418 f 5436/9655/5418 5444/9663/5423 5443/9665/5424 f 4054/7638/4052 4053/7644/4058 5444/9663/5423 f 4047/9664/4047 5444/9663/5423 5439/9657/5420 f 5429/9646/5409 4055/7639/4053 4035/7614/4033 f 5429/9646/5409 4035/7614/4033 4032/7610/4029 f 4056/7640/4054 4055/7639/4053 5430/9647/5410 f 5441/9661/5421 4057/7641/4055 4056/7640/4054 f 5430/9647/5410 5441/9661/5421 4056/7640/4054 f 5443/9665/5424 4057/7641/4055 5442/9662/5422 f 4058/7643/4057 5443/9665/5424 5444/9663/5423 f 4058/7643/4057 5444/9663/5423 4053/7644/4058 f 5184/9376/5195 5445/9667/5425 5181/9666/5169 f 5445/9667/5425 5446/9670/5427 5181/9666/5169 f 5188/9347/5174 5187/9346/5173 5446/11364/5427 f 5187/9346/5173 5188/9347/5174 5185/9345/5172 f 5045/9174/5038 5201/9668/5426 5043/9175/5039 f 5448/9673/5430 5201/9668/5426 5447/9672/5429 f 5052/9198/5062 5450/9696/5451 5051/9181/5045 f 5449/9681/5431 5074/9676/5065 5451/9675/5432 f 5452/9684/5439 5079/9204/5068 5081/9207/5070 f 5455/9678/5434 5452/9684/5439 5081/9207/5070 f 5084/9210/5073 5086/9211/5074 5456/9679/5435 f 5086/9211/5074 3624/7063/3626 5456/9679/5435 f 5448/9673/5430 5445/9667/5425 5201/9668/5426 f 5450/9696/5451 5457/9680/5436 5051/9181/5045 f 5052/9198/5062 5449/9674/5431 5458/9697/5452 f 5450/9696/5451 5052/9198/5062 5458/9697/5452 f 5459/11365/5437 5458/9697/5452 5449/9674/5431 f 5076/9205/5069 5079/9204/5068 5460/9683/5438 f 5079/9204/5068 5452/9684/5439 5461/9686/5441 f 5453/9685/5440 5452/9684/5439 5455/9678/5434 f 5455/9678/5434 5462/9687/5442 5453/9685/5440 f 5462/9687/5442 5454/9677/5433 5456/9679/5435 f 5464/9689/5444 5456/9679/5435 4070/7661/4071 f 5465/9691/5446 5448/9673/5430 5048/9182/5046 f 5465/9691/5446 5048/9182/5046 5457/9680/5436 f 5447/9672/5429 5047/9180/5044 5048/9182/5046 f 5466/9690/5445 5189/9671/5428 5445/9667/5425 f 5465/9691/5446 5457/9680/5436 5467/9692/5447 f 5465/9691/5446 5466/9690/5445 5448/9673/5430 f 5468/9694/5449 5467/9692/5447 5457/9680/5436 f 5458/9697/5452 5468/9694/5449 5469/9695/5450 f 5458/9697/5452 5469/9695/5450 5450/9696/5451 f 5458/9697/5452 5459/11365/5437 5470/9698/5453 f 5471/9699/5454 5459/9682/5437 5451/9675/5432 f 5461/9686/5441 5472/9700/5455 5460/9683/5438 f 5463/9688/5443 4070/7661/4071 4088/7685/4093 f 5463/9688/5443 5464/9689/5444 4070/7661/4071 f 5189/11366/5428 5466/11367/5445 5475/11368/5458 f 5189/9703/5428 5476/9705/5459 5188/11369/5174 f 5188/11370/5174 5478/11371/5462 5477/11372/5460 f 5475/9714/5458 5483/9713/5464 5479/9707/5461 f 5479/9710/5461 5476/9711/5459 5475/11373/5458 f 5480/11374/5448 5475/11368/5458 5466/11367/5445 f 5480/9693/5448 5467/9692/5447 5481/9718/5468 f 5480/9693/5448 5482/9712/5463 5475/9714/5458 f 5480/11375/5448 5481/11376/5468 5484/11377/5465 f 5482/9712/5463 5484/9715/5465 5485/9717/5467 f 5486/9716/5466 5484/9715/5465 5467/9692/5447 f 5478/9708/5462 5491/9723/5472 5487/9719/5469 f 5482/9712/5463 5485/9717/5467 5489/9722/5471 f 5488/9721/5470 5482/9712/5463 5489/9722/5471 f 5488/9721/5470 5490/9726/5475 5483/9713/5464 f 5490/9726/5475 5479/9707/5461 5483/9713/5464 f 5479/9707/5461 5490/9726/5475 5491/9723/5472 f 5493/9724/5473 5487/9719/5469 5491/9723/5472 f 5494/10019/5659 5490/9726/5475 5495/10020/5660 f 5490/9726/5475 5494/10019/5659 5492/9725/5474 f 5488/9721/5470 5489/9722/5471 5496/9971/5616 f 5488/9721/5470 5495/10020/5660 5490/9726/5475 f 5487/9729/5469 5493/9955/5473 5502/9957/5482 f 5498/9731/5478 5499/9730/5477 5186/9348/5175 f 5477/9728/5460 5497/9727/5476 5500/9732/5479 f 5501/11378/5480 5498/9731/5478 5477/9706/5460 f 5502/9957/5482 5497/9727/5476 5487/9729/5469 f 5503/11379/5481 5505/10089/5484 5497/10091/5476 f 5506/11380/5485 5500/10282/5479 5507/10284/5486 f 5506/11381/5485 5508/11382/5487 5498/11383/5478 f 5182/9343/5170 5183/9344/5171 5499/9730/5477 f 5509/9746/5488 5499/9730/5477 5498/9731/5478 f 5510/9748/5489 5512/9752/5490 5179/9749/5167 f 5510/9748/5489 5508/9751/5487 5511/10380/5851 f 5179/9749/5167 5512/9752/5490 5177/9335/5165 f 5175/9333/5162 5177/9335/5165 5514/9754/5163 f 5515/11384/5494 5174/11385/5161 5514/9754/5163 f 5515/11384/5494 5517/11386/5493 5174/11385/5161 f 5174/9330/5161 5517/11387/5493 5172/11303/5519 f 5519/9758/5495 5170/9328/5159 5172/11303/5519 f 5518/9797/5516 5519/9796/5495 5172/9800/5519 f 5521/9762/5497 5127/9272/5116 5125/9271/5115 f 5127/9272/5116 5522/11388/5498 5523/11389/5499 f 5129/9768/5120 5523/11390/5499 5524/9769/5500 f 5129/9768/5120 5131/9770/5122 5130/11391/5121 f 5524/9769/5500 5525/9771/5501 5132/9282/5125 f 5537/9772/5502 5527/11392/6142 5133/9280/5123 f 5133/9280/5123 5132/9282/5125 5525/9771/5501 f 5526/9835/5541 5133/9280/5123 5527/11392/6142 f 5133/9280/5123 5526/9835/5541 5528/9773/5503 f 5528/9774/5503 5529/9834/5540 5146/9313/5148 f 5532/9776/5504 5523/9785/5499 5522/9763/5498 f 5532/9779/5504 5533/9781/5507 5534/9782/5508 f 5535/9784/5509 5524/11393/5500 5523/9785/5499 f 5536/9786/5510 5538/9790/5511 5537/9789/5502 f 5537/9789/5502 5535/9784/5509 5536/9786/5510 f 5527/11394/6142 5537/9789/5502 5539/9791/5512 f 5527/11394/6142 5539/9791/5512 5569/9849/5542 f 5530/9777/5505 5520/9760/5496 5540/9793/5514 f 5530/9777/5505 5522/9763/5498 5520/9760/5496 f 5519/9796/5495 5541/9795/5513 5520/11395/5496 f 5518/9797/5516 5544/9799/5518 5542/9794/5515 f 5516/9755/5492 5543/9798/5517 5517/9756/5493 f 5516/9755/5492 5545/9802/5264 5546/9801/5520 f 5546/9801/5520 5544/9799/5518 5543/9798/5517 f 5550/10679/6077 5548/9807/5521 5549/11396/5533 f 5548/9807/5521 5550/10679/6077 5551/9808/5522 f 5548/9825/5521 5553/11397/5525 5564/9827/5528 f 5553/9811/5525 5548/9807/5521 5552/9809/5523 f 5557/9810/5524 5554/9813/5527 5553/9811/5525 f 5556/9932/5599 5557/9810/5524 5555/9812/5526 f 5558/9821/5529 5562/11398/5603 5559/11399/5530 f 5561/11400/5532 5558/9815/5529 5560/9817/5531 f 5562/11398/5603 5558/9821/5529 5630/9823/5534 f 5563/9826/5535 5561/11400/5532 5549/9824/5533 f 5568/9833/5539 5162/9841/5546 5161/9309/5145 f 5569/9836/5542 5526/9835/5541 5527/11392/6142 f 5570/9837/5543 5571/9839/5544 5529/9834/5540 f 5568/9833/5539 5571/9839/5544 5572/9840/5545 f 5151/9842/5547 5150/9310/5146 5162/9841/5546 f 5573/9844/5548 6046/11401/6103 5148/9845/5137 f 5574/9847/5549 5575/9848/5550 5572/9840/5545 f 5571/11402/5544 5574/11403/5549 5572/11404/5545 f 5575/9848/5550 5571/9839/5544 5570/9837/5543 f 5569/9849/5542 5578/9855/5553 5576/9850/5551 f 5538/9790/5511 5581/9868/5563 5579/9856/5554 f 5579/9856/5554 5577/9857/5552 5539/9791/5512 f 5538/9790/5511 5579/9856/5554 5539/9791/5512 f 5582/9859/5556 5536/9786/5510 5534/9787/5508 f 5583/9860/5557 5582/9859/5556 5534/9787/5508 f 5575/9848/5550 5585/9865/5561 5586/9862/5559 f 5585/9865/5561 5575/9848/5550 5570/9837/5543 f 5578/9855/5553 5588/9867/5562 5587/9866/5560 f 5579/9856/5554 5581/9868/5563 5588/9867/5562 f 5581/9868/5563 5538/9790/5511 5580/9858/5555 f 5589/9869/5564 5580/9858/5555 5583/9860/5557 f 5583/9860/5557 5594/9870/5565 5589/9869/5564 f 5594/9870/5565 5583/9860/5557 5584/9861/5558 f 5587/9864/5560 5592/9875/5568 5591/9872/5567 f 5591/9872/5567 5586/9862/5559 5585/9865/5561 f 5588/11405/5562 5593/9880/5574 5592/9875/5568 f 5581/9868/5563 5597/9874/5569 5593/11406/5574 f 5593/11406/5574 5588/9867/5562 5581/9868/5563 f 5595/9877/5571 5591/9872/5567 5592/9875/5568 f 5596/9878/5572 5253/9445/5239 5254/9876/5570 f 5592/9875/5568 5596/9878/5572 5254/9876/5570 f 5593/9880/5574 5597/9884/5569 5596/9878/5572 f 5597/9874/5569 5594/9870/5565 5598/9881/5575 f 5255/9882/5573 5597/9874/5569 5598/9881/5575 f 5600/9885/5576 5534/9782/5508 5533/9781/5507 f 5600/9894/5576 5602/9888/5578 5584/9861/5558 f 5601/9887/5577 5584/9861/5558 5602/9888/5578 f 5601/9887/5577 5598/9881/5575 5590/9871/5566 f 5599/9883/5237 5598/9881/5575 5604/9890/5580 f 5232/9404/5216 5603/9889/5579 5602/9888/5578 f 5603/9889/5579 5231/9403/5215 5247/9434/5232 f 5247/9434/5232 5250/9892/5234 5603/9889/5579 f 5234/11313/5583 5232/9404/5216 5602/9888/5578 f 5605/9898/5581 5234/9900/5583 5602/11407/5578 f 5609/9904/5587 5606/9901/5584 5608/9903/5586 f 5609/9904/5587 5531/9780/5506 5530/9905/5505 f 5608/9903/5586 5611/9907/5589 5609/9904/5587 f 5207/11408/6134 5208/9908/5190 5610/9906/5588 f 5542/9913/5515 5544/9804/5518 5612/9910/5590 f 5263/9472/5244 5612/9910/5590 5544/9804/5518 f 5263/9472/5244 5262/9911/5243 5612/9910/5590 f 5541/9912/5513 5262/9911/5243 5613/9914/5591 f 5540/9916/5514 5606/9901/5584 5530/9905/5505 f 5606/9901/5584 5540/9916/5514 5607/9902/5585 f 5614/9917/5592 5610/9906/5588 5608/9903/5586 f 5207/11306/6134 5610/11409/5588 5206/9366/5191 f 5610/9906/5588 5614/9917/5592 5206/9919/5191 f 5615/9920/5593 5265/11410/6136 5264/9918/5229 f 5614/9917/5592 5615/9920/5593 5264/9918/5229 f 5615/9920/5593 5614/9917/5592 5607/9902/5585 f 5615/9920/5593 5262/9911/5243 5265/11410/6136 f 5616/9921/5594 5233/11411/5582 5605/11412/5581 f 5616/9921/5594 5605/11412/5581 5533/9781/5507 f 5616/9921/5594 5531/9780/5506 5609/9904/5587 f 5616/9921/5594 5609/9904/5587 5611/9907/5589 f 5617/9922/5595 5233/11411/5582 5616/9921/5594 f 5209/9368/5192 5617/9923/5595 5611/11413/5589 f 5618/9937/5602 5556/9932/5599 5555/9812/5526 f 4227/9926/4227 5618/9939/5602 5555/9927/5526 f 5557/9810/5524 5619/9931/5598 5620/9929/5597 f 5619/9931/5598 5557/9810/5524 5556/9932/5599 f 5556/9934/5599 4727/9938/4721 5622/9935/5601 f 5627/9947/5610 5626/9945/5608 5624/9942/5605 f 5630/11414/5534 5627/9947/5610 5562/9940/5603 f 5630/11415/5534 5561/9950/5532 5631/9951/5612 f 5565/11416/5536 5635/11417/5613 5633/11418/6143 f 5634/11419/5614 5565/9828/5536 5566/9830/5537 f 5567/11420/5538 5634/11419/5614 5566/9830/5537 f 5567/9952/5538 6120/10714/6096 5635/9953/5613 f 5565/11416/5536 5634/11421/5614 5635/11417/5613 f 5502/9957/5482 5636/9956/5615 5503/10032/5481 f 5496/9971/5616 5495/10020/5660 5488/9721/5470 f 5495/10020/5660 5496/9971/5616 5637/11422/5618 f 5496/9959/5616 5642/9968/5622 5638/9960/5617 f 5639/9962/5619 5486/9716/5466 5468/9694/5449 f 5641/9967/5621 5496/9971/5616 5489/9722/5471 f 5470/9973/5453 5640/9964/5620 5639/11423/5619 f 5640/9964/5620 5644/9987/5638 5645/9974/5625 f 5642/9968/5622 5646/9975/5626 5647/9969/5623 f 5470/9973/5453 5471/9699/5454 5643/9972/5624 f 5471/9699/5454 5470/9973/5453 5459/9682/5437 f 5471/9699/5454 5649/9977/5628 5650/9978/5629 f 5472/9700/5455 5650/9978/5629 5649/9977/5628 f 5651/9979/5630 5472/9700/5455 5473/9701/5456 f 5653/9981/5632 5463/9688/5443 5654/9983/5634 f 4088/7685/4093 4264/7949/4265 5654/9983/5634 f 4088/7685/4093 5654/9983/5634 5463/9688/5443 f 4264/7949/4265 4265/7950/4266 5654/9983/5634 f 5656/9984/5635 5653/9981/5632 5655/9982/5633 f 5656/9984/5635 5652/9980/5631 5653/9981/5632 f 5657/9985/5636 5658/9986/5637 5650/9978/5629 f 5657/9985/5636 5659/9992/5643 5658/9986/5637 f 5660/9988/5639 5648/9976/5627 5644/9987/5638 f 5660/9988/5639 5644/9987/5638 5640/9964/5620 f 5660/9988/5639 5640/9964/5620 5643/9972/5624 f 5661/9990/5641 5645/9974/5625 5644/9987/5638 f 5644/9987/5638 5663/9991/5642 5662/9989/5640 f 5657/9985/5636 5656/9984/5635 5664/9993/5644 f 5664/9993/5644 5663/9991/5642 5659/9992/5643 f 5655/9982/5633 5664/9993/5644 5656/9984/5635 f 5655/11424/5633 4276/7964/4279 5666/11425/5652 f 5662/11426/5640 5668/10005/5647 5669/11427/5648 f 5661/9990/5641 5662/9989/5640 5670/9999/5649 f 5671/10003/5650 5665/9994/5645 5672/11428/5651 f 5672/10004/5651 5669/11427/5648 5668/10005/5647 f 5671/10003/5650 5668/9997/5647 5663/9991/5642 f 4283/7972/4286 5666/11425/5652 4276/7964/4279 f 5646/9975/5626 5667/9996/5646 5673/10009/5653 f 5667/9996/5646 5646/9975/5626 5645/9974/5625 f 5672/10004/5651 5670/10001/5649 5669/11427/5648 f 5670/10001/5649 5672/10004/5651 5675/10013/5655 f 5676/10014/5656 5675/10013/5655 5672/10004/5651 f 5665/11429/5645 5666/11430/5652 4288/7986/4289 f 5666/11430/5652 4283/7984/4286 4288/7986/4289 f 5638/9960/5617 5677/10016/5657 5678/10035/5671 f 5638/9960/5617 5678/10035/5671 5679/10017/5658 f 5679/11431/5658 5678/10038/5671 5686/10041/5675 f 5679/10018/5658 5495/10020/5660 5637/11422/5618 f 5680/10022/5662 5492/9725/5474 5494/10019/5659 f 5679/10018/5658 5680/10022/5662 5494/10019/5659 f 5680/10022/5662 5679/10018/5658 5686/11432/5675 f 5636/9956/5615 5687/10033/5669 5503/10032/5481 f 5636/9956/5615 5682/10044/5663 5687/10033/5669 f 5647/9969/5623 5673/10009/5653 5684/10026/5664 f 5685/10029/5667 5271/10028/5666 5270/9460/5251 f 5681/10023/5661 5680/11433/5662 5686/10041/5675 f 5688/11434/6144 5505/9739/5484 5504/9738/5483 f 5690/10037/5673 5689/10034/5670 5677/10016/5657 f 5689/10034/5670 5690/10037/5673 5692/11435/5693 f 5689/10039/5670 5692/11436/5693 5693/11437/5692 f 5694/10040/5674 5689/10039/5670 5693/11437/5692 f 5695/10068/5678 5682/10024/5663 5681/10023/5661 f 5694/10040/5674 5695/10068/5678 5681/10023/5661 f 5688/11434/6144 5697/10061/5688 5696/10084/5705 f 5697/10061/5688 5688/11434/6144 5504/9738/5483 f 5687/10033/5669 5698/10042/5676 5504/10031/5483 f 5687/11438/5669 5695/10068/5678 5699/11439/5677 f 5626/9945/5608 5700/11440/6145 5629/9946/5609 f 5700/11440/6145 5626/9945/5608 5627/9947/5610 f 5630/11441/5534 5631/11442/5612 5701/11443/6104 f 5630/11444/5534 5701/10731/6104 5627/10730/5610 f 5631/11445/5612 5632/11446/5611 5702/11447/5679 f 5702/10053/5679 5563/9826/5535 5564/9827/5528 f 5704/10054/5681 5564/9827/5528 5565/9828/5536 f 5565/11448/5536 5633/11449/6143 5704/11450/5681 f 5706/10056/5683 5709/10059/5686 5707/10058/5685 f 5706/10056/5683 5707/10058/5685 5675/10013/5655 f 5706/10056/5683 5676/10014/5656 5705/10055/5682 f 5707/11451/5685 5710/11452/5687 5674/11453/5654 f 5710/11454/5687 5673/11455/5653 5674/11456/5654 f 5710/11454/5687 5684/10026/5664 5673/10009/5653 f 5698/10064/5676 5699/11457/5677 5712/10065/5690 f 5694/10040/5674 5693/11437/5692 5713/10067/5691 f 5712/10065/5690 5695/11458/5678 5713/10071/5691 f 5712/11459/5690 5699/11439/5677 5695/10068/5678 f 5690/10073/5673 5691/11460/5672 5714/10072/5694 f 5715/11461/5695 5711/10066/5689 5716/11462/5696 f 5711/11463/5689 5715/10074/5695 5697/10061/5688 f 5711/10066/5689 5712/10065/5690 5719/10103/5717 f 5719/10103/5717 5716/11462/5696 5711/10066/5689 f 5712/10065/5690 5721/10078/5699 5720/10080/5701 f 5719/10103/5717 5712/10065/5690 5720/10080/5701 f 5721/10078/5699 5692/10070/5693 5714/10072/5694 f 5723/11464/6146 5722/10079/5700 5714/10072/5694 f 5724/10081/5702 5697/10061/5688 5715/10074/5695 f 5724/10081/5702 5715/10074/5695 5718/10077/5698 f 5725/10257/5703 5847/10254/5822 5726/11465/5704 f 5726/10083/5704 5727/10085/5706 5696/10084/5705 f 5505/9739/5484 5688/11434/6144 5696/10084/5705 f 5731/10092/5708 5705/10055/5682 5729/10093/5709 f 5731/10092/5708 5730/10094/5710 5736/10095/5711 f 5708/10057/5684 5732/10096/5712 5733/10099/5715 f 5732/10096/5712 5708/10057/5684 5709/10059/5686 f 5708/10057/5684 5733/10099/5715 5734/10097/5713 f 5710/10060/5687 5708/10057/5684 5684/10048/5664 f 5734/10097/5713 5714/10101/5694 5691/10046/5672 f 5735/10098/5714 5732/10096/5712 5736/10095/5711 f 5738/10100/5716 5723/11466/6146 5714/10101/5694 f 5733/10099/5715 5737/10224/5797 5738/10100/5716 f 5738/10100/5716 5722/11467/5700 5723/11466/6146 f 5738/10100/5716 5720/11468/5701 5722/11467/5700 f 5739/10107/5719 4986/9115/4989 4987/9117/4991 f 4994/10113/4997 5741/10112/5721 4992/9125/4995 f 4998/10708/6092 5741/10112/5721 4996/10111/4998 f 5743/10120/5724 5746/10119/5723 5744/10745/6110 f 4807/10118/4808 5745/10122/5726 5746/10119/5723 f 4761/10750/6112 4807/11469/4808 5743/10748/5724 f 4807/11469/4808 4808/11470/4810 5747/11471/5725 f 5747/10121/5725 5748/10125/5729 5745/10122/5726 f 4808/11472/4810 4831/11473/4831 5747/10121/5725 f 5749/11474/5727 5747/11475/5725 4831/11209/4831 f 5749/10123/5727 5751/11476/5761 5750/10124/5728 f 5749/11477/5727 5753/10132/5731 5751/10184/5761 f 5753/10132/5731 5749/11477/5727 5752/10133/5730 f 5755/11478/5734 5763/10156/5739 5756/11479/5733 f 5756/10135/5733 4977/9103/4981 4978/9104/4982 f 5752/10144/5730 4834/8864/4833 4972/9099/4977 f 5752/10133/5730 5759/10142/5738 5758/10141/5737 f 4978/9104/4982 4979/9110/4983 4982/9109/4986 f 5760/10151/5740 4982/10146/4986 5761/11480/5746 f 4982/10146/4986 5760/10151/5740 5755/10147/5734 f 5764/10153/5741 5762/10154/5742 5757/10149/5736 f 5760/10151/5740 5761/11480/5746 5767/10163/5745 f 5768/10169/5749 5770/10168/5748 5767/10165/5745 f 4384/10164/4378 5768/10169/5749 5767/10165/5745 f 5769/10167/5747 5771/11481/6087 5770/10168/5748 f 5769/10167/5747 5772/10171/5751 5771/11481/6087 f 5775/10173/4383 5773/10170/5750 5768/10169/5749 f 5767/10163/5745 5777/10176/5754 5762/10154/5742 f 5757/10149/5736 5762/10154/5742 5777/10176/5754 f 5779/10178/5756 5758/10141/5737 5757/10139/5736 f 5779/10178/5756 5781/10180/5757 5780/10682/6080 f 5782/10181/5758 5779/10178/5756 5780/10682/6080 f 5784/10182/5759 5753/10132/5731 5754/10134/5732 f 5785/10185/5762 5751/10184/5761 5784/10182/5759 f 5785/10185/5762 5784/10182/5759 5783/10183/5760 f 5787/11482/5766 5751/11476/5761 5785/11483/5762 f 5788/11484/5764 5787/11485/5766 5785/11486/5762 f 5787/11487/5766 5750/10124/5728 5751/11476/5761 f 5787/11487/5766 5789/11488/5765 5766/10162/5744 f 5750/10124/5728 5787/11487/5766 5766/10162/5744 f 5790/10194/5769 5766/10160/5744 5789/11489/5765 f 5792/10193/5768 5745/10158/5726 5766/10160/5744 f 5792/10196/5768 5793/11490/5776 4405/8156/4396 f 5792/10196/5768 5789/10319/5765 5793/11490/5776 f 5794/10197/5770 6114/10199/5772 5774/10172/5752 f 5794/10197/5770 5827/10201/5774 5795/10198/5771 f 5794/10197/5770 5797/10751/6113 5798/10202/5775 f 5797/10751/6113 5794/10197/5770 5775/10173/4383 f 5799/10318/5777 5793/11490/5776 5789/10319/5765 f 5799/10204/5777 5796/10200/5773 5798/10202/5775 f 5800/10222/5795 5817/10221/5794 5801/10206/5779 f 5802/10205/5778 5810/10214/5787 5801/10206/5779 f 5802/10205/5778 5812/10209/5782 5810/10214/5787 f 5805/10210/5783 5807/10211/5784 5806/10217/5790 f 5807/10211/5784 5736/10095/5711 5808/10212/5785 f 5808/10212/5785 5815/10218/5791 5806/10217/5790 f 5807/10211/5784 5808/10212/5785 5806/10217/5790 f 5730/10094/5710 5808/10212/5785 5736/10095/5711 f 5808/10212/5785 5730/10094/5710 5729/10093/5709 f 5808/10212/5785 5729/10093/5709 5809/10213/5786 f 5808/10212/5785 5816/8206/4438 5815/10218/5791 f 5809/10213/5786 4322/8038/4320 4424/8181/4418 f 5805/10210/5783 5806/10217/5790 5814/10219/5792 f 5816/8206/4438 4424/8181/4418 4422/8179/4416 f 5818/10220/5793 5821/10225/5798 5817/10221/5794 f 5819/10223/5796 5801/10206/5779 5811/10215/5788 f 5706/10056/5683 5705/10055/5682 5731/10092/5708 f 4433/8186/4423 4437/8191/4428 5820/10226/5799 f 5820/10226/5799 5818/10220/5793 4433/8186/4423 f 5822/11491/5861 5820/10226/5799 4437/8191/4428 f 5823/10227/5800 5822/11491/5861 4437/8191/4428 f 5824/10228/5801 4440/8195/4432 4441/8194/4431 f 4440/8195/4432 5824/10228/5801 5823/10227/5800 f 5824/10228/5801 4441/8194/4431 4444/8196/4433 f 5826/10327/5803 5825/10229/5802 4444/8196/4433 f 5795/10198/5771 5827/10201/5774 5826/10231/5803 f 5814/10219/5792 5815/10218/5791 4450/11034/6125 f 5816/8206/4438 4450/11034/6125 5815/10218/5791 f 5812/10209/5782 5813/10216/5789 5810/10214/5787 f 5828/10232/5804 4450/11034/6125 4449/8210/4441 f 5828/10232/5804 5814/10219/5792 4450/11034/6125 f 5811/10215/5788 5810/10214/5787 4448/8213/4440 f 4433/8186/4423 5819/10223/5796 4451/8214/4443 f 5831/10239/5810 5832/10238/5807 5829/11492/5806 f 5832/11493/5807 5834/10243/5809 5835/10242/5813 f 5836/10245/5814 5833/10236/5808 5837/10246/5815 f 5837/10246/5815 5842/10250/5818 5840/10247/5816 f 5842/10250/5818 5837/10246/5815 5833/10236/5808 f 5833/10236/5808 5831/10239/5810 5841/10249/5817 f 5846/10251/5819 5843/11494/5824 5844/10252/5820 f 5843/11494/5824 5846/10251/5819 5845/10256/5823 f 5725/10257/5703 5846/10251/5819 5847/10254/5822 f 5841/11495/5817 5840/10255/5816 5842/11496/5818 f 5840/10255/5816 5841/11495/5817 5845/10256/5823 f 5829/10234/5806 5843/10264/5824 5831/11497/5810 f 5844/10263/5820 5829/10234/5806 5830/10233/5805 f 5848/10272/5828 5851/10271/5826 5849/11498/5831 f 5835/11499/5813 5839/11500/5812 5849/11501/5831 f 5850/10266/5825 5830/10265/5805 5832/11493/5807 f 5852/10268/5827 5844/10270/5820 5830/11502/5805 f 5830/11502/5805 5851/10271/5826 5852/10268/5827 f 5853/10269/5821 5854/10273/5829 5847/11503/5822 f 5853/10269/5821 5851/10271/5826 5848/10272/5828 f 5855/11504/5830 5848/10272/5828 5849/11498/5831 f 5854/10273/5829 5726/11505/5704 5847/11503/5822 f 5857/11506/5897 5856/10279/5832 5858/10281/5834 f 5857/11507/5897 5728/11508/5707 5727/11509/5706 f 5856/10279/5832 5857/11506/5897 5727/11510/5706 f 5860/10285/5836 5859/11511/5833 5856/10286/5832 f 5728/10090/5707 5500/10282/5479 5497/10091/5476 f 5863/10290/5838 5860/11512/5836 5854/10291/5829 f 5855/11513/5830 5863/10290/5838 5848/10292/5828 f 5863/11514/5838 5855/11515/5830 5864/11516/5984 f 5510/9748/5489 5511/10380/5851 5865/10294/5839 f 5867/10300/5845 5869/10296/5841 5514/9754/5163 f 5869/10296/5841 5867/10300/5845 5868/10297/5842 f 5870/10413/5915 5868/10297/5842 5867/10300/5845 f 5867/11517/5845 5871/11518/5844 5870/11519/5915 f 5514/9754/5163 5513/9753/5491 5871/10299/5844 f 5871/10301/5844 5512/10303/5490 5866/10304/5840 f 5872/10305/5846 5870/11520/5915 5871/10301/5844 f 5515/11384/5494 5514/9754/5163 5869/10296/5841 f 5873/10306/5847 5515/9757/5494 5869/11521/5841 f 5873/10308/5847 5869/10296/5841 5874/10307/5848 f 5870/11520/5915 5872/10305/5846 5939/10405/5909 f 5865/11522/5839 5872/10305/5846 5866/10304/5840 f 5865/11522/5839 5876/10391/5900 5872/10305/5846 f 5865/11522/5839 5877/10392/5850 5876/10391/5900 f 5877/11523/5850 5865/10294/5839 5511/10380/5851 f 5545/9802/5264 5516/9755/5492 5873/10306/5847 f 5875/10313/5849 5879/10422/5917 5285/10314/5265 f 5282/9471/5261 5285/9478/5265 5286/10315/5267 f 5791/10317/5767 5880/10640/5853 5799/10318/5777 f 5788/10321/5764 5881/10623/6042 5882/10322/5854 f 5881/11524/6042 5788/11525/5764 5786/10186/5763 f 5883/10323/5855 5886/10610/6031 5884/11526/5863 f 5886/10610/6031 5883/10323/5855 5885/10324/5856 f 5885/10324/5856 5887/10636/6047 5886/10610/6031 f 5885/10324/5856 5890/10326/5858 5887/10636/6047 f 5885/10324/5856 5824/10228/5801 5825/10229/5802 f 5890/10326/5858 5888/10325/5857 5889/10328/5859 f 5893/11527/5864 5891/10329/5860 5892/10331/5862 f 5891/10329/5860 5893/11527/5864 5894/11528/5873 f 5892/11529/5862 5883/10323/5855 5884/11526/5863 f 5892/10331/5862 5822/10330/5861 5823/11530/5800 f 5883/10323/5855 5892/11529/5862 5823/10227/5800 f 5891/10329/5860 5821/10337/5798 5820/10332/5799 f 5821/10225/5798 5895/10344/5865 5817/10221/5794 f 5896/10338/5866 5735/10098/5714 5736/10095/5711 f 5897/10363/5885 5899/10339/5867 5898/10342/5870 f 5897/10363/5885 5896/10338/5866 5804/10208/5781 f 5899/10339/5867 5897/10363/5885 5804/10208/5781 f 5803/10207/5780 5899/10339/5867 5802/10205/5778 f 5899/10339/5867 5803/10207/5780 5900/10340/5868 f 5803/10207/5780 5801/10206/5779 5817/10221/5794 f 5902/10343/5871 5900/10340/5868 5803/10207/5780 f 5895/10344/5865 5904/10347/5874 5903/10345/5872 f 5817/10221/5794 5903/10345/5872 5902/10343/5871 f 5894/10346/5873 5906/10348/5875 5904/10347/5874 f 5891/11531/5860 5894/10346/5873 5895/10344/5865 f 5906/10348/5875 5894/10346/5873 5905/10351/5878 f 5907/10349/5876 5906/10348/5875 5905/10351/5878 f 5910/10358/5881 5902/10360/5871 5903/11532/5872 f 5903/10345/5872 5908/10350/5877 5911/10535/5880 f 5910/11533/5881 5911/11534/5880 5912/11535/5882 f 5912/10357/5882 5901/10341/5869 5900/10340/5868 f 5901/10341/5869 5912/10357/5882 5913/10361/5883 f 5898/10342/5870 5914/10362/5884 5897/10363/5885 f 5735/10098/5714 5896/10338/5866 5914/10362/5884 f 5737/10224/5797 5915/10364/5886 5916/10365/5887 f 5918/10367/5889 5738/10100/5716 5737/10224/5797 f 5919/10369/5890 5923/10533/5985 5920/10370/5891 f 5919/10369/5890 5917/10366/5888 5916/10365/5887 f 5922/11536/5893 5920/11537/5891 5923/11538/5985 f 5922/10372/5893 5838/11539/5811 5836/10245/5814 f 5922/10372/5893 5836/10245/5814 5837/10246/5815 f 5716/10374/5696 5917/10366/5888 5921/10371/5892 f 5920/10373/5891 5837/10246/5815 5717/10378/5697 f 5717/11540/5697 5716/11541/5696 5924/11542/5894 f 5717/10378/5697 5837/10246/5815 5718/10248/5698 f 5716/10374/5696 5918/10367/5889 5917/10366/5888 f 5925/10382/5895 5508/11543/5487 5507/10284/5486 f 5925/10379/5895 5926/11544/5896 5878/10381/5852 f 5861/10283/5835 5728/10090/5707 5857/10384/5897 f 5926/10387/5896 5857/11545/5897 5927/10388/5898 f 5877/11546/5850 5878/10389/5852 5927/10388/5898 f 5929/10395/5901 5930/11547/5902 5927/10385/5898 f 5928/10390/5899 5927/11548/5898 5930/10396/5902 f 5932/10403/5904 5936/10528/5983 5933/11549/5905 f 5859/10280/5833 5932/10403/5904 5934/10401/5906 f 5936/10528/5983 5932/10403/5904 5862/10289/5837 f 5937/10404/5908 5928/10390/5899 5931/10397/5903 f 5937/10404/5908 5938/10489/5912 5939/10405/5909 f 5928/10390/5899 5937/10404/5908 5876/10391/5900 f 5939/10405/5909 5941/11550/5911 5870/11520/5915 f 5942/10410/5913 5945/10437/5927 5943/10411/5914 f 5945/11551/5927 5942/10412/5913 5940/10407/5910 f 5868/10297/5842 5942/10410/5913 5944/10298/5843 f 5874/11552/5848 5944/11553/5843 5946/10420/5918 f 5946/10420/5918 5875/10419/5849 5874/11554/5848 f 5947/11555/5916 5946/10420/5918 5944/11553/5843 f 5949/10421/5919 5286/11556/5267 5285/10314/5265 f 5948/10423/5920 5286/11557/5267 5949/10424/5919 f 5946/10420/5918 5949/10424/5919 5879/10418/5917 f 5950/11558/5921 5946/11559/5918 5947/11560/5916 f 5943/10428/5914 5951/10432/5922 5950/10426/5921 f 5951/10432/5922 5953/10434/5924 5950/10426/5921 f 5955/10436/5926 5952/10431/5923 5943/10411/5914 f 5943/10411/5914 5945/10437/5927 5955/10436/5926 f 5945/10437/5927 5938/11561/5912 5956/10438/5928 f 5938/11561/5912 5945/10437/5927 5940/11562/5910 f 5276/9464/5255 5958/10441/5931 5957/10439/5929 f 5286/9485/5267 5950/10426/5921 5958/10441/5931 f 5277/10440/5930 5959/10443/5933 5960/10442/5932 f 5274/9462/5253 5960/10442/5932 5962/10446/5936 f 5960/10442/5932 5274/9462/5253 5268/9466/5256 f 5960/10442/5932 5961/10444/5934 5962/10446/5936 f 5962/10446/5936 5963/10445/5935 5273/9463/5254 f 5962/10446/5936 5273/9463/5254 5274/9462/5253 f 5273/11563/5254 5963/11564/5935 5964/11565/5938 f 5966/10447/5937 5970/10473/5956 5967/10472/5940 f 5968/11566/5941 5965/10451/5939 5963/10450/5935 f 5970/10473/5956 5966/10447/5937 5969/10455/5942 f 5969/10455/5942 5966/10447/5937 5962/10446/5936 f 5969/10455/5942 5962/10446/5936 5961/10444/5934 f 5973/10458/5945 5957/10439/5929 5958/10441/5931 f 5973/10458/5945 5953/10434/5924 5974/10459/5946 f 5953/10434/5924 5973/10458/5945 5958/10441/5931 f 5974/11567/5946 5954/10435/5925 5975/10464/5947 f 5974/10459/5946 5976/10461/5948 5973/10458/5945 f 5974/11568/5946 5952/10431/5923 5954/10435/5925 f 5977/10462/5949 5954/10435/5925 5955/10436/5926 f 5954/10435/5925 5977/10462/5949 5978/10463/5950 f 5978/10463/5950 5979/11569/5951 5975/10464/5947 f 5979/11570/5951 5978/10491/5950 5980/11571/5952 f 5982/10469/5954 5976/10461/5948 5979/10468/5951 f 5976/10461/5948 5982/10469/5954 5983/10471/5955 f 5976/10461/5948 5972/10457/5944 5973/10458/5945 f 5984/10474/5957 5970/10473/5956 5969/10455/5942 f 5969/10455/5942 5983/10471/5955 5985/11572/5958 f 5984/10475/5957 5969/11573/5942 5985/10476/5958 f 5986/11574/5960 5987/11575/6027 5982/10482/5954 f 5986/10478/5960 5982/10469/5954 5981/10470/5953 f 5987/11575/6027 5988/10480/5962 5982/10482/5954 f 5983/11576/5955 5989/10483/5963 5985/10476/5958 f 5981/11577/5953 5980/11578/5952 5991/11579/6147 f 5981/10470/5953 5991/11580/6147 5992/10487/5965 f 5938/10489/5912 5994/10488/5966 5956/11581/5928 f 5930/10490/5902 5980/11571/5952 5978/10491/5950 f 5995/10495/5967 5996/10494/5968 5930/10396/5902 f 5977/10462/5949 5956/10438/5928 5994/11582/5966 f 5996/10494/5968 5994/10488/5966 5931/10397/5903 f 5931/10397/5903 5930/10396/5902 5996/10494/5968 f 5995/11583/5967 5978/10463/5950 5977/10462/5949 f 5997/11584/5970 5992/11585/5965 5991/11586/6147 f 5997/10507/5970 5991/11579/6147 5980/11578/5952 f 5999/10501/5971 5930/10502/5902 5929/11587/5901 f 5935/10499/5907 5999/10501/5971 5929/11587/5901 f 5929/10395/5901 5859/10280/5833 5935/10402/5907 f 5980/10503/5952 5999/10501/5971 5998/10500/5969 f 6000/10598/6028 6003/10514/5977 6001/10512/5975 f 6000/10598/6028 6001/10512/5975 5909/10352/5879 f 6000/10598/6028 5993/10479/5961 6002/11588/6148 f 6003/10514/5977 6000/10598/6028 6002/11588/6148 f 6004/11589/5973 6003/11590/5977 6002/11591/6148 f 6002/11592/6148 5993/10479/5961 5992/10487/5965 f 6002/11592/6148 5992/10487/5965 6004/10505/5973 f 6005/10506/5972 5992/11593/5965 5997/10507/5970 f 6004/10511/5973 6006/10510/5974 6003/11594/5977 f 6001/10512/5975 6007/10515/5978 6008/10513/5976 f 6006/10517/5974 6009/10516/5979 6007/10515/5978 f 5935/10499/5907 6011/10519/5981 6005/10504/5972 f 6011/10519/5981 5935/10499/5907 5934/10520/5906 f 6011/10519/5981 6012/10525/5982 6006/10517/5974 f 6012/10525/5982 6009/10526/5979 6006/10517/5974 f 5839/10241/5812 5864/10529/5984 5855/11595/5830 f 5922/10527/5893 5923/10530/5985 5839/10241/5812 f 5839/10241/5812 5923/10530/5985 5864/10529/5984 f 5936/11596/5983 5863/11597/5838 5864/10529/5984 f 5864/10529/5984 5933/10531/5905 5936/11596/5983 f 6013/10532/5986 6012/10525/5982 5933/10521/5905 f 6014/10534/5987 5911/10535/5880 5908/10350/5877 f 6014/10534/5987 5908/10350/5877 5907/10349/5876 f 6014/10534/5987 6008/10513/5976 5912/10357/5882 f 5912/10357/5882 6008/10513/5976 6010/10518/5980 f 5913/10361/5883 6010/10518/5980 5915/10364/5886 f 6013/10532/5986 5919/10369/5890 5915/10364/5886 f 5919/10369/5890 6013/10532/5986 5923/10533/5985 f 6015/10540/5988 5967/10453/5940 5984/10474/5957 f 5968/11598/5941 6015/10536/5988 6018/10552/5991 f 5964/10448/5938 6018/10553/5991 6019/10555/5998 f 6021/10548/5993 6016/10538/5989 6020/10547/5992 f 6023/10550/5995 6015/10536/5988 6016/10538/5989 f 6015/10536/5988 6023/10550/5995 6024/10551/5996 f 6018/10553/5991 6025/11599/5999 6026/10554/5997 f 6027/10558/6000 6029/10559/6001 5964/10448/5938 f 6028/11600/6149 6027/10558/6000 6019/10555/5998 f 5685/10560/5667 6030/11601/6003 5271/11602/5666 f 5272/10449/5668 5964/10448/5938 6029/10559/6001 f 6030/11601/6003 5685/10560/5667 6029/10559/6001 f 6031/11603/6002 5271/11604/5666 6030/11605/6003 f 6032/11606/6004 6030/11601/6003 6029/10559/6001 f 6033/10564/6005 6028/11600/6149 6019/10555/5998 f 6033/10565/6005 6027/10567/6000 6028/11607/6149 f 6036/11608/6007 5254/11609/5570 6032/11610/6004 f 6029/11611/6001 6036/11608/6007 6032/11610/6004 f 5254/11609/5570 6036/11608/6007 6037/11612/6008 f 5595/9877/5571 6037/10571/6008 6038/10572/6009 f 6039/10573/6010 5591/9872/5567 5595/9877/5571 f 6040/10574/6011 6038/10572/6009 6037/10571/6008 f 6034/11613/6006 6037/11614/6008 6036/11615/6007 f 6040/10574/6011 6034/10566/6006 6041/10578/6012 f 6043/10656/6059 6033/10565/6005 6035/10657/6060 f 6043/10656/6059 6042/10579/6013 6041/10578/6012 f 6033/11616/6005 6043/11617/6059 6041/11618/6012 f 6043/10656/6059 6044/10581/6015 6042/10579/6013 f 6042/10579/6013 6044/10581/6015 5586/9862/5559 f 5591/11619/5567 6039/11620/6010 6038/11621/6009 f 5586/9862/5559 5591/9872/5567 6038/10572/6009 f 5573/9843/5548 5162/9841/5546 6045/10580/6014 f 5905/10351/5878 5894/10346/5873 5893/10583/5864 f 5884/10334/5863 6051/10588/6020 6049/10587/6019 f 5884/10334/5863 6049/10587/6019 6047/10586/6018 f 6050/11622/6025 6047/10586/6018 6049/10587/6019 f 6049/10587/6019 6052/10589/6021 6053/10590/6022 f 6049/10587/6019 6054/10591/6023 6050/11622/6025 f 6055/10592/6024 6048/10584/6017 6047/10585/6018 f 6048/10584/6017 6055/10592/6024 5905/10351/5878 f 6000/10598/6028 5909/10352/5879 6056/10597/6026 f 6056/10597/6026 5986/10478/5960 5993/10479/5961 f 6056/10597/6026 5988/10486/5962 5987/11623/6027 f 6056/10597/6026 5909/10352/5879 6055/10592/6024 f 6057/10599/6029 6055/10592/6024 6050/10593/6025 f 5990/10600/5964 5989/10485/5963 5988/10486/5962 f 6057/10599/6029 6050/10593/6025 5990/10600/5964 f 6058/10601/5959 5990/11624/5964 6050/10602/6025 f 6054/10603/6023 6053/11625/6022 6058/10601/5959 f 6058/10477/5959 6059/10604/6030 5984/10475/5957 f 6058/10477/5959 5985/10476/5958 5990/10484/5964 f 6059/10604/6030 6053/10590/6022 6022/10607/5994 f 5886/11626/6031 6051/10588/6020 5884/10334/5863 f 6061/11627/6033 6051/10609/6020 6060/10611/6032 f 6063/10615/6035 6061/10612/6033 6062/10614/6034 f 6063/10615/6035 6022/10607/5994 6053/10590/6022 f 6061/10612/6033 6063/10615/6035 6052/10589/6021 f 6064/10616/6036 6101/10676/6075 6065/10617/6037 f 6067/11628/6039 6066/10618/6038 6065/10617/6037 f 6067/11628/6039 6071/10634/6044 6068/10626/6040 f 6064/10616/6036 6066/10618/6038 6068/10626/6040 f 6069/10622/6041 5882/10322/5854 5881/10623/6042 f 6069/10622/6041 6070/10624/6043 6068/10627/6040 f 6069/11629/6041 6072/10635/6046 5890/10326/5858 f 6069/10629/6041 6071/10634/6044 6072/10633/6046 f 6072/10635/6046 6073/11630/6045 5887/10636/6047 f 6074/10637/6048 6062/11631/6034 6060/10638/6032 f 5887/10636/6047 6073/11630/6045 6060/10611/6032 f 5889/10328/5859 5827/10641/5774 5796/10639/5773 f 5882/10322/5854 5889/10328/5859 5880/10640/5853 f 6076/10646/6050 6075/10642/6049 5623/9941/5604 f 6076/10646/6050 5628/9944/5607 6077/10649/6053 f 6075/10642/6049 6076/10646/6050 6078/10647/6051 f 6079/10648/6052 6078/10647/6051 6080/11632/6108 f 6079/10648/6052 6071/10634/6044 6067/11628/6039 f 6079/10648/6052 6067/11628/6039 6065/10617/6037 f 6078/10647/6051 6076/10646/6050 6077/10649/6053 f 6081/10650/6054 6080/11632/6108 6078/10647/6051 f 6080/11632/6108 6074/10637/6048 6079/10648/6052 f 6074/10637/6048 6080/11632/6108 6062/11631/6034 f 6082/10652/6056 6023/10550/5995 6021/10548/5993 f 6082/10652/6056 6021/10548/5993 6022/10549/5994 f 6083/10651/6055 6025/10557/5999 6023/10550/5995 f 6083/10651/6055 6035/10657/6060 6033/10565/6005 f 6085/10655/6058 6044/10581/6015 6043/10656/6059 f 6035/10657/6060 6083/10651/6055 6085/10655/6058 f 6089/11633/6064 6088/10740/6063 6086/11634/6061 f 6082/10652/6056 6089/10661/6064 6086/10658/6061 f 6089/11633/6064 6084/11635/6057 6090/10662/6065 f 6090/10662/6065 6084/11635/6057 6022/10607/5994 f 6091/10663/6066 6090/10662/6065 6063/10615/6035 f 6085/10655/6058 6087/10659/6062 6044/10581/6015 f 6088/10660/6063 6092/10582/6016 6087/10659/6062 f 5621/11636/5600 6096/10721/6100 6095/10667/6069 f 5619/9931/5598 5621/9933/5600 6095/11637/6069 f 6097/11638/6070 5619/10665/5598 6093/10664/6067 f 5621/11639/5600 5622/11640/5601 6098/11641/6072 f 6098/10723/6072 6096/10721/6100 5621/11636/5600 f 4726/8656/4720 4760/11171/4763 6098/10672/6072 f 4727/8663/4721 4726/8656/4720 5622/10673/5601 f 5776/10175/5753 5770/10174/5748 5771/11642/6087 f 5551/11643/5522 4729/8670/4723 4728/8669/4722 f 6070/10625/6043 5786/10186/5763 5783/10183/5760 f 5786/10186/5763 6070/10625/6043 5881/11524/6042 f 6100/10675/6074 6099/10674/6073 6101/10676/6075 f 5560/9817/5531 5559/9816/5530 6102/11644/6076 f 5560/10677/5531 5550/10679/6077 5549/11396/5533 f 6103/10685/6083 6102/11644/6076 5559/9816/5530 f 6103/10685/6083 5559/9816/5530 5625/9943/5606 f 6105/10681/6079 6104/10680/6078 5550/10679/6077 f 6101/10676/6075 5782/10181/5758 5780/10682/6080 f 6101/10676/6075 6099/10674/6073 5783/10183/5760 f 6106/10683/6081 6065/10617/6037 6101/10676/6075 f 6107/10684/6082 5625/9943/5606 6065/10617/6037 f 6107/10687/6082 6108/10686/6084 6102/10678/6076 f 6108/10686/6084 6105/10681/6079 6102/10678/6076 f 6108/11645/6084 5781/10180/5757 5778/10179/5755 f 6109/11646/6089 6104/10680/6078 6105/10681/6079 f 6109/11647/6089 6105/10693/6079 5778/10692/5755 f 6109/11646/6089 4729/8678/4723 6104/10680/6078 f 6110/10694/6085 5777/11648/5754 5776/10695/5753 f 6111/10696/6086 5776/10695/5753 5771/10697/6087 f 6112/10698/6088 4729/8694/4723 6110/10694/6085 f 6110/11649/6085 4729/11650/4723 6109/10700/6089 f 5777/10699/5754 6110/11649/6085 6109/10700/6089 f 6114/10199/5772 6113/11651/6090 5772/10171/5751 f 6113/10702/6090 6114/11652/5772 4741/8700/4739 f 6113/11653/6090 5771/11481/6087 5772/10171/5751 f 6114/11652/5772 6115/11654/6150 4741/8700/4739 f 6114/10199/5772 5795/10198/5771 6115/11655/6150 f 6112/10698/6088 6113/10702/6090 4741/8700/4739 f 4744/8706/4741 4729/8694/4723 6112/10698/6088 f 4447/11178/4437 4741/11656/4739 6115/11655/6150 f 6115/11655/6150 5795/10198/5771 4447/8204/4437 f 4809/8833/4811 4825/8851/4824 4806/8857/4809 f 5158/9307/5144 6119/10711/6094 5002/10703/5001 f 6116/11657/6071 5741/11658/5721 6117/10705/6091 f 6097/10704/6070 6116/11657/6071 6117/10705/6091 f 6117/10707/6091 4998/10708/6092 5000/11659/6095 f 6117/10710/6091 5000/11660/6095 6118/10709/6093 f 6118/10712/6093 6119/10711/6094 6120/10714/6096 f 6120/11661/6096 6119/11662/6094 5635/11417/5613 f 5158/9307/5144 5635/11663/5613 6119/10711/6094 f 5633/11664/6143 5635/11663/5613 5158/9307/5144 f 5704/10716/5681 5633/11664/6143 5158/9307/5144 f 5704/10716/5681 5158/9307/5144 5156/9306/5143 f 6121/11665/6097 5702/11666/5679 5704/11667/5681 f 6121/10715/6097 5154/9304/5141 5702/10727/5679 f 5741/10112/5721 6093/10664/6067 6122/10718/6098 f 6122/10718/6098 6093/10664/6067 6094/10666/6068 f 6123/10719/6099 5739/10720/5719 6124/10722/5718 f 6096/10721/6100 6124/10722/5718 5740/11668/5720 f 6096/10721/6100 5740/11668/5720 4993/9126/4996 f 6125/10724/6101 6095/10667/6069 4993/9126/4996 f 6122/10718/6098 6094/10725/6068 6125/10724/6101 f 5149/9301/5138 5703/10726/5680 5154/9304/5141 f 6126/10728/6102 5703/10726/5680 5149/9301/5138 f 6046/11669/6103 5703/11670/5680 6126/11671/6102 f 6126/10728/6102 5148/9300/5137 6046/11672/6103 f 5631/11673/5612 5703/11670/5680 6046/11669/6103 f 5701/10731/6104 5631/11674/5612 6046/10729/6103 f 6046/10729/6103 6127/10732/6105 5627/10730/5610 f 6127/11675/6105 5573/11676/5548 6045/11677/6014 f 6127/10732/6105 5700/11678/6145 5627/10730/5610 f 6127/11679/6105 5629/11680/5609 5700/11681/6145 f 6127/10735/6105 6128/10734/6106 5629/11682/5609 f 6045/10580/6014 6092/10582/6016 6128/10734/6106 f 6129/10739/6107 6077/10741/6053 5628/10737/5607 f 6128/10736/6106 6129/10739/6107 5628/10737/5607 f 6129/10739/6107 6128/10736/6106 6092/11683/6016 f 6129/10739/6107 6092/11683/6016 6088/10740/6063 f 6130/10743/6109 6080/10742/6108 6081/11684/6054 f 6130/10743/6109 6081/11684/6054 6077/10741/6053 f 6130/10743/6109 6077/10741/6053 6088/10740/6063 f 6130/10743/6109 6088/10740/6063 6089/11633/6064 f 6130/10743/6109 6089/11633/6064 6090/10662/6065 f 6091/10663/6066 6062/10614/6034 6080/10742/6108 f 6130/10743/6109 6090/10662/6065 6091/10663/6066 f 5043/9175/5039 5184/9376/5195 5199/9357/5184 f 6045/10580/6014 5572/9840/5545 5586/9862/5559 f 5254/11685/5570 6031/10561/6002 6032/10563/6004 f 5254/11685/5570 5271/11686/5666 6031/10561/6002 f 5840/10255/5816 5725/10257/5703 5718/11687/5698 f 5832/11493/5807 5835/10242/5813 5850/10266/5825 f 5850/11688/5825 5849/11498/5831 5851/10271/5826 f 6131/10746/6111 4405/11689/4396 5793/10203/5776 f 4760/8768/4763 4358/8770/4764 4986/10105/4989 f 6123/10719/6099 6098/10723/6072 4760/8768/4763 f 5775/10173/4383 5768/10169/5749 4385/10747/4377 f 3636/7083/3644 4384/11690/4378 5761/11278/5746 f 3319/6720/3387 3318/6719/3386 3386/10763/3424 f 3376/6722/3389 3327/6662/3341 3329/6723/3345 f 3378/6727/3391 3546/6999/3566 3547/6989/3556 f 3549/6991/3558 3552/6992/3559 3550/6716/3384 f 3574/7011/3578 3576/7013/3580 3600/7041/3607 f 3576/7013/3580 3578/7016/3583 3601/7043/3609 f 3604/7046/3612 3583/7020/3587 3605/7410/3875 f 3583/7020/3587 3585/7023/3590 3606/7414/3879 f 3606/7414/3879 3585/7023/3590 3607/7047/3613 f 3628/7067/3629 3610/7050/3616 3609/7049/3615 f 3628/7067/3629 3613/7068/3630 3629/7071/3632 f 3888/7419/3884 3887/7441/3901 3630/7072/3633 f 3632/7077/3638 3626/7078/3639 3889/10755/6114 f 3890/10886/3906 3889/10755/6114 3633/7080/3641 f 4782/8795/4785 4779/8792/4783 4781/8796/4786 f 5036/11273/6131 5031/9165/5029 5033/11272/6130 f 5062/9190/5054 5038/9169/5033 5036/11273/6131 f 5036/11273/6131 5033/11272/6130 5062/9190/5054 f 5067/9519/5297 5044/9176/5040 5066/9195/5059 f 5068/9524/5302 5046/9177/5041 5044/9176/5040 f 5069/9523/5301 5046/9177/5041 5068/9524/5302 f 5088/11275/6132 5089/9215/5078 5087/9212/5075 f 5088/11275/6132 5320/9527/5305 5090/9216/5079 ================================================ FILE: custom_backend/cwobj/cwobj.h ================================================ /* Copyright (c) 2018, Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef CWOBJ_H_ #define CWOBJ_H_ #include #include #include #include /** @brief indices type*/ #define CWOBJ_INDICE_TYPE unsigned int /** @brief max line length in .obj and .mtl file*/ #define CWOBJ_MAX_LINE_LENGTH 512 /* A set of tools related to string processing */ //! case insensitive compare /*! \param str1first string \param str2 second string \param length max length \return 0 if equal, 1 otherwise */ int cwobj_strncmpi(const char *str1, const char *str2, int length); //! split a string given a delimiter (result must be freed with cwobj_freeSplitResult) /*! \param str string to split \param delimiter delimiter \param n a pointer holding the length of the resulting array \return array of strings */ char **cwobj_splitString(const char *str, char delimiter, long *n); //! free a cwobj_splitString result /*! \param split_result array of strings \param n length of the given array */ void cwobj_freeSplitResult(char **split_result, long n); //! transform a string to lowercase (in place) /*! \param string pointer to a string */ void cwobj_toLowercase(char *string); //! get a file path (without filename, separated by '/' only) /*! \param string filepath \return path */ char *cwobj_getPath(const char *string); //! parse an arbitrary value (interger or real) /*! \param sp value pointer \return parsed value as bytes, NULL if not a value */ char *cwobj_parseValue(char **sp); //! parse a float /*! \param sp value pointer \return float value */ float cwobj_parseFloat(char **sp); //! parse an integer /*! \param sp value pointer \return integer value */ int cwobj_parseInt(char **sp); inline int cwobj_strncmpi(const char *str1, const char *str2, int length) { int k; for (k = 0; k < length; k += 1) { if ((str1[k] | 32) != (str2[k] | 32)) break; } if (k != length) return 1; return 0; } inline void cwobj_toLowercase(char *string) { if (!string) return; char *p = string; while (*p != '\0') { if (*p >= 'A' && *p <= 'Z') { *p += 32; } p++; } } inline void cwobj_freeSplitResult(char **split_result, long n) { while(n--) { free(split_result[n]); }; free(split_result); } inline char **cwobj_splitString(const char *str, char delimiter, long *n) { if (!str) return NULL; char **split_result = 0; long strings_count = 0; const char *begin = str; while (*str++ != '\0') { size_t new_str_length = (str-begin); //if (*(str-1) == delimiter) { // begin = str; // make it ignore a sequence of delimiters // continue; //} if (*str == delimiter || *str == '\0') { char *new_str = NULL; if (new_str_length > 0) { new_str = (char *)malloc(sizeof(char) * (new_str_length+1)); if (!new_str) continue; strncpy(new_str, begin, new_str_length); new_str[new_str_length] = '\0'; } begin = str+1; char **split_result_tmp = (char **)realloc(split_result, sizeof(char **) * (strings_count+1)); if (!split_result_tmp) { free(new_str); continue; } split_result = split_result_tmp; split_result[strings_count] = new_str; strings_count++; } } *n = strings_count; return split_result; } inline char *cwobj_getPath(const char *string) { if (!string) return NULL; if (!*string) return NULL; size_t length = strlen(string); const char *end = string+length; int new_length = 0; while (*--end != '/' && (new_length = end-string) > 0); if (!new_length) { return NULL; } char *path = (char *)malloc(sizeof(char) * (new_length+1)); strncpy(path, string, new_length); path[new_length] = '\0'; return path; } inline char *cwobj_parseValue(char **sp) { if (!sp) { return NULL; } int j = 0; char *value_s = (char *)malloc(sizeof(char) * 32); if (!value_s) { fprintf(stderr, "cwobj_parseValue: malloc failed\n"); return NULL; } memset(value_s, 0, sizeof(char) * 32); int ignore = 0; while ((*(*sp)) != '\0') { if ((*(*sp) >= 48 && *(*sp) < 58 && j < 32 && ignore == 0) || *(*sp) == '.' || *(*sp) == '-') { value_s[j++] = (*(*sp)); } else { if (j) { ignore = 1; if ((*(*sp)) == ' ') { break; } } } *sp = *sp+1; } return value_s; } inline int cwobj_parseInt(char **sp) { char *value_s = cwobj_parseValue(sp); int value = 0; if (value_s) { value = atoi(value_s); free(value_s); } else { fprintf(stderr, "cwobj_parseInt: cwobj_parseValue failed\n"); } return value; } inline float cwobj_parseFloat(char **sp) { char *value_s = cwobj_parseValue(sp); float value = 0; if (value_s) { value = atof(value_s); free(value_s); } else { fprintf(stderr, "cwobj_parseFloat: cwobj_parseValue failed\n"); } return value; } /* Generic HASH TABLE implementation (linear probing algorithm) It store void pointers (arbitrary data), it is a generic storage solution; you need to free the data you put into it. */ #define CWOBJ_HASH_TABLE_INITIAL_SIZE 31 //! CWOBJ hash table data structure typedef struct { unsigned int table_size; unsigned int entry_size; int lg_table_size; char **keys; void **vals; } cwobj_hashtable; //! create a hashtable /*! \return hashtable data structure pointer */ cwobj_hashtable *cwobj_hashTableInit(); //! create a hashtable of a specified size /*! \param size hashtable size \return hashtable data structure pointer */ cwobj_hashtable *cwobj_hashTableInitExt(unsigned int size); //! free a hashtable /*! \param hash_table hashtable data structure pointer */ void cwobj_hashTableFree(cwobj_hashtable *hash_table); //! resize a hashtable /*! \param hash_table hashtable data structure pointer \param new_size new size \return 1 if successfull 0 otherwise */ int cwobj_hashTableResize(cwobj_hashtable *hash_table, unsigned int new_size); //! set a key/value pair /*! \param hash_table hashtable data structure pointer \param key key \param value arbitrary value \return 1 if successfull 0 otherwise */ int cwobj_hashTableSet(cwobj_hashtable *hash_table, const char *key, void *value); //! get a value /*! \param hash_table hashtable data structure pointer \param key key \return the value associated to the key or NULL */ void *cwobj_hashTableGet(cwobj_hashtable *hash_table, const char *key); //! delete a key with its associated value /*! \param hash_table hashtable data structure pointer \param key the key to delete */ void cwobj_hashTableDelete(cwobj_hashtable *hash_table, const char *key); //! show hashtable occupancy statistics and its entire content (stdout) /*! \param hash_table hashtable data structure pointer */ void cwobj_hashTableDebug(cwobj_hashtable *hash_table); //! get a key at a specified index /*! \param hash_table hashtable data structure pointer \param index index \return key name at specified index or NULL */ const char *cwobj_hashTableGetKeyAt(cwobj_hashtable *hash_table, unsigned int index); //! get a value at a specified index /*! \param hash_table hashtable data structure pointer \param index index \return the value at specified index or NULL */ void *cwobj_hashTableGetValueAt(cwobj_hashtable *hash_table, unsigned int index); //! get a hash from a given string /*! \param hash_table hashtable data structure pointer \param str string used to compute the hash \return hash associated to the given string */ unsigned int cwobj_hashTableCode(cwobj_hashtable *hash_table, const char *str); inline unsigned int cwobj_hashTableCode(cwobj_hashtable *hash_table, const char *str) { const int primes[27] = {31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143, 4194301, 8388593, 16777213, 33554393, 67108859, 134217689, 268435399, 536870909, 1073741789, 2147483647}; if (!hash_table || !str) return -1; unsigned int hash = 0; do { hash = (9 * hash + *str) % hash_table->table_size; } while (*str++ != '\0'); if (hash_table->lg_table_size < 26) { hash = hash % primes[hash_table->lg_table_size+5]; return hash % hash_table->table_size; } return hash; } inline cwobj_hashtable *cwobj_hashTableInit() { cwobj_hashtable *hash_table = (cwobj_hashtable *)malloc(sizeof(cwobj_hashtable)); if (!hash_table) return NULL; memset(hash_table, 0, sizeof(cwobj_hashtable)); hash_table->table_size = CWOBJ_HASH_TABLE_INITIAL_SIZE; hash_table->lg_table_size = log10(hash_table->table_size); hash_table->keys = (char **)malloc(sizeof(char *) * hash_table->table_size); hash_table->vals = (void **)malloc(sizeof(void *) * hash_table->table_size); memset(hash_table->keys, 0, sizeof(char *) * hash_table->table_size); memset(hash_table->vals, 0, sizeof(char *) * hash_table->table_size); return hash_table; } inline cwobj_hashtable *cwobj_hashTableInitExt(unsigned int size) { cwobj_hashtable *hash_table = (cwobj_hashtable *)malloc(sizeof(cwobj_hashtable)); if (!hash_table) return NULL; memset(hash_table, 0, sizeof(cwobj_hashtable)); hash_table->table_size = size; hash_table->lg_table_size = log10(size); hash_table->keys = (char **)malloc(sizeof(char *) * size); hash_table->vals = (void **)malloc(sizeof(void *) * size); memset(hash_table->keys, 0, sizeof(char *) * size); memset(hash_table->vals, 0, sizeof(char *) * size); return hash_table; } inline int cwobj_hashTableResize(cwobj_hashtable *hash_table, unsigned int new_size) { if (!hash_table) return 0; cwobj_hashtable *ht_tmp = cwobj_hashTableInitExt(new_size); char **keys = hash_table->keys; void **vals = hash_table->vals; unsigned int i = 0; for (i = 0; i < hash_table->table_size; i++) { cwobj_hashTableSet(ht_tmp, keys[i], vals[i]); free(keys[i]); } free(hash_table->keys); free(hash_table->vals); hash_table->table_size = ht_tmp->table_size; hash_table->entry_size = ht_tmp->entry_size; hash_table->lg_table_size = ht_tmp->lg_table_size; hash_table->keys = ht_tmp->keys; hash_table->vals = ht_tmp->vals; free(ht_tmp); return 1; } inline int cwobj_hashTableSet(cwobj_hashtable *hash_table, const char *key, void *value) { if (!hash_table || !key || !value) return 0; if (hash_table->entry_size >= hash_table->table_size / 2) { if (!cwobj_hashTableResize(hash_table, 2 * hash_table->table_size)) { return 0; } } unsigned int hash = cwobj_hashTableCode(hash_table, key); if (hash == (unsigned int)-1) return 0; int i = 0; for (i = hash; hash_table->keys[i] != NULL; i = (i + 1) % hash_table->table_size) { if (strcmp(hash_table->keys[i], key) == 0) { hash_table->vals[i] = value; return 1; } } size_t key_length = strlen(key)+1; char *key_cpy = (char *)malloc(sizeof(char) * key_length); if (!key_cpy) return 0; strncpy(key_cpy, key, key_length); hash_table->keys[i] = key_cpy; hash_table->vals[i] = value; hash_table->entry_size++; return 1; } inline void *cwobj_hashTableGet(cwobj_hashtable *hash_table, const char *key) { if (!hash_table || !key) return NULL; unsigned int hash = cwobj_hashTableCode(hash_table, key); int i = 0; for (i = hash; hash_table->keys[i] != NULL; i = (i + 1) % hash_table->table_size) { if (strcmp(hash_table->keys[i], key) == 0) { return hash_table->vals[i]; } } return NULL; } inline void cwobj_hashTableDelete(cwobj_hashtable *hash_table, const char *key) { if (!hash_table || !key) return; if (!cwobj_hashTableGet(hash_table, key)) return; int i = cwobj_hashTableCode(hash_table, key); while (strcmp(key, hash_table->keys[i]) != 0) { i = (i + 1) % hash_table->table_size; } free(hash_table->keys[i]); hash_table->keys[i] = NULL; hash_table->vals[i] = NULL; i = (i + 1) % hash_table->table_size; while (hash_table->keys[i] != NULL) { char *rkey = hash_table->keys[i]; char *rval = (char *)hash_table->vals[i]; hash_table->keys[i] = NULL; hash_table->vals[i] = NULL; hash_table->entry_size--; cwobj_hashTableSet(hash_table, rkey, rval); i = (i + 1) % hash_table->table_size; } hash_table->entry_size--; if (hash_table->entry_size > 0 || hash_table->entry_size == hash_table->table_size/8) { cwobj_hashTableResize(hash_table, hash_table->table_size/2); } } inline void cwobj_hashTableDebug(cwobj_hashtable *hash_table) { if (!hash_table) return; fprintf(stdout, ">------- HashTable occupancy pattern <-------\n"); int wrap = 96; unsigned int i = 0; for (i = 0; i < hash_table->table_size; i++) { if (i%wrap == 0) { fprintf(stdout, "\n"); } if (hash_table->keys[i]) { fprintf(stdout, "*"); } else { fprintf(stdout, "-"); } } fprintf(stdout, "\n\n"); fprintf(stdout, ">------- HashTable content <-------\n\n"); for (i = 0; i < hash_table->table_size; i += 1) { fprintf(stdout, "key[%i] = %s\n", i, hash_table->keys[i]); } } inline const char *cwobj_hashTableGetKeyAt(cwobj_hashtable *hash_table, unsigned int index) { if (!hash_table) return NULL; if (hash_table->table_size == 0) return NULL; if (index >= hash_table->table_size) return NULL; return hash_table->keys[index]; } inline void *cwobj_hashTableGetValueAt(cwobj_hashtable *hash_table, unsigned int index) { if (!hash_table) return NULL; if (hash_table->table_size == 0) return NULL; if (index >= hash_table->table_size) return NULL; return hash_table->vals[index]; } inline void cwobj_hashTableFree(cwobj_hashtable *hash_table) { if (!hash_table) return; unsigned int i = 0; for (i = 0; i < hash_table->table_size; i++) { free(hash_table->keys[i]); } free(hash_table->keys); free(hash_table->vals); free(hash_table); } /* OBJ loader Support for indices, vertices, texcoords, normals, colors extraction with indices unification (geometry data duplicata removal) Limited support for materials; load multiple materials but apply a single material only Also support loading of textures automatically but you must provide a callback which will handle the image load and texture creation. This was extracted from my old OpenGL engine and enhanced : https://github.com/grz0zrg/M3D */ #define CWOBJ_GEOMETRY_POINT 1 #define CWOBJ_GEOMETRY_LINE 2 #define CWOBJ_GEOMETRY_TRIANGLE 4 //! CWOBJ color data structure typedef struct { float r, g, b, unused; } cwobj_color; //! CWOBJ material data structure typedef struct { //! material name char *name; //! ambient color cwobj_color ambient_color; //! diffuse color cwobj_color diffuse_color; //! ambient color cwobj_color specular_color; //! emissive color cwobj_color emissive_color; //! opacity float opacity; //! ior float ior; //! specular hardness float specular_hardness; //! illumination mode (0 ignore lighting, 1 no specular, 2 lighting) int illum_mode; //! type unsigned int type; //! flags unsigned int flags; //! used flag (unused materials are automatically freed) int used; //! diffuse texture id unsigned int diffuse_texture; } cwobj_mat; //! CWOBJ geometry data structure typedef struct { //! indices data CWOBJ_INDICE_TYPE *indice; //! vertices data float *vertice; //! texcoords data float *texcoord; //! uv data float *normal; //! colors data unsigned char *color; //! indices count unsigned int indice_n; //! vertices count (as triplet so you must multiply by 3 to get the data length) unsigned int vertice_n; //! texcoords count (as pair so you must multiply by 2 to get the data length) unsigned int texcoord_n; //! normals count (as triplet so you must multiply by 3 to get the data length) unsigned int normal_n; //! colors count (as triplet so you must multiply by 3 to get the data length) unsigned int color_n; //! primitive type int prim_type; } cwobj_geo; //! CWOBJ materials library data structure typedef struct { //! hold materials cwobj_mat **materials; //! hold the number of stored materials unsigned int materials_n; } cwobj_mtllib; //! CWOBJ data structure typedef struct { //! mesh name char *name; //! mesh geometry cwobj_geo *geometry; //! mesh material cwobj_mat *material; } cwobj; //! load an .obj file /*! \param filename filename \param get_texture function used to load a texture (return a texture id which is stored in the mesh material) \return mesh data structure */ cwobj *cwobj_load(const char *filename, unsigned int (*get_texture)(const char *filename)); //! create a mesh /*! \return mesh data structure */ cwobj *cwobj_meshInit(); //! free a mesh /*! \param mesh mesh data structure */ void cwobj_free(cwobj *mesh); //! set the name of a mesh /*! \param mesh mesh data structure \param name mesh name */ void cwobj_meshSetName(cwobj *mesh, const char *name); //! set the material of a mesh /*! \param mesh mesh data structure \param material associated material */ void cwobj_meshSetMaterial(cwobj *mesh, cwobj_mat *material); //! set the geometry of a mesh /*! \param mesh mesh data structure \param geom associated geometry */ void cwobj_meshSetGeometry(cwobj *mesh, cwobj_geo *geom); //! clone a mesh /*! \param mesh mesh data structure \return new mesh data structure */ cwobj *cwobj_meshClone(cwobj *mesh); //! create a geometry /*! \return geometry data structure */ cwobj_geo *cwobj_geomInit(); //! free a geometry /*! \param geom geometry data structure */ void cwobj_geomFree(cwobj_geo *geom); //! merge geometry /*! \param dst destination geometry data structure \param src source geometry data structure which will be merged into dst */ void cwobj_geomMerge(cwobj_geo *dst, cwobj_geo *src); void cwobj_geomSetVertice(cwobj_geo *geom, unsigned int index, float v1, float v2, float v3); void cwobj_geomSetTexcoord(cwobj_geo *geom, unsigned int index, float u, float v); void cwobj_geomAllocVertice(cwobj_geo *geom, unsigned int size); void cwobj_geomAllocTexcoord(cwobj_geo *geom, unsigned int size); void cwobj_geomAllocNormal(cwobj_geo *geom, unsigned int size); void cwobj_geomAllocColor(cwobj_geo *geom, unsigned int size); void cwobj_geomAllocIndice(cwobj_geo *geom, unsigned int size); int cwobj_geomAddVertice(cwobj_geo *geom, float v1, float v2, float v3); int cwobj_geomAddNormal(cwobj_geo *geom, float n1, float n2, float n3); int cwobj_geomAddTexcoord(cwobj_geo *geom, float u, float v); int cwobj_geomAddColor(cwobj_geo *geom, unsigned char r, unsigned char g, unsigned char b, unsigned char a); int cwobj_geomAddIndice(cwobj_geo *geom, CWOBJ_INDICE_TYPE ind); void cwobj_geomDebug(cwobj_geo *geom); //! clone a geometry /*! \param geom geometry data structure \return new geometry data structure */ cwobj_geo *cwobj_geomClone(cwobj_geo *geom); void cwobj_setColor3f(cwobj_color *color, float r, float g, float b); cwobj_mat *cwobj_materialInit(); void cwobj_materialFree(cwobj_mat *material); cwobj_mtllib *cwobj_objMtlibInit(); void cwobj_objMtlibFree(cwobj_mtllib *mtlib); cwobj_mat *cwobj_objMtlibAddMaterial(cwobj_mtllib *mtlib, char *name); void cwobj_objMtlibSetUsed(cwobj_mtllib *mtlib, const char *name); cwobj_mat *cwobj_objMtlibGetMaterial(cwobj_mtllib *mtlib, const char *name); char *cwobj_objGetLine(FILE *f); char *cwobj_objGetTag(const char *line); char *cwobj_objGetData(char *line); cwobj_mtllib *cwobj_objLoadMtlib(const char *filename, unsigned int (*get_texture)(const char *filename)); inline cwobj *cwobj_meshInit() { cwobj *mesh = (cwobj *)malloc(sizeof(cwobj)); if (!mesh) return NULL; memset(mesh, 0, sizeof(cwobj)); return mesh; } inline void cwobj_free(cwobj *mesh) { if (!mesh) return; cwobj_geomFree(mesh->geometry); cwobj_materialFree(mesh->material); free(mesh->name); free(mesh); } inline void cwobj_meshSetName(cwobj *mesh, const char *name) { if (!mesh) return; if (!name) return; size_t name_length = strlen(name); mesh->name = (char *)malloc(sizeof(char) * (name_length+1)); if (mesh->name) { memcpy(mesh->name, name, name_length+1); } } inline void cwobj_meshSetMaterial(cwobj *mesh, cwobj_mat *material) { if (!mesh || !material) return; mesh->material = material; } inline void cwobj_meshSetGeometry(cwobj *mesh, cwobj_geo *geom) { if (!mesh || !geom) return; mesh->geometry = geom; } inline cwobj *cwobj_meshClone(cwobj *mesh) { if (!mesh) return NULL; cwobj *new_mesh = cwobj_meshInit(); if (!new_mesh) return NULL; new_mesh->geometry = mesh->geometry; new_mesh->material = mesh->material; cwobj_meshSetName(new_mesh, mesh->name); return new_mesh; } inline cwobj_geo *cwobj_geomInit() { cwobj_geo *geom = (cwobj_geo *)malloc(sizeof(cwobj_geo)); if (!geom) return NULL; memset(geom, 0, sizeof(cwobj_geo)); geom->prim_type = CWOBJ_GEOMETRY_TRIANGLE; return geom; } inline void cwobj_geomFree(cwobj_geo *geom) { if (!geom) return; free(geom->indice); free(geom->vertice); free(geom->texcoord); free(geom->normal); free(geom->color); free(geom); } inline void cwobj_geomMerge(cwobj_geo *dst, cwobj_geo *src) { if (!dst || !src) return; unsigned int i = 0, data_length = 0; if (dst->indice && src->indice) { data_length = (dst->indice_n+src->indice_n); CWOBJ_INDICE_TYPE *merged = NULL; merged = (CWOBJ_INDICE_TYPE *)realloc(dst->indice, sizeof(CWOBJ_INDICE_TYPE) * data_length); if (merged) { dst->indice = merged; for (i = dst->indice_n; i < data_length; i++) { dst->indice[i] = src->indice[i-dst->indice_n]+(dst->vertice_n); } dst->indice_n = data_length; } } if (dst->vertice && src->vertice) { data_length = (dst->vertice_n+src->vertice_n) * 3; float *merged = NULL; merged = (float *)realloc(dst->vertice, sizeof(float) * data_length); if (merged) { dst->vertice = merged; unsigned int v_real_n = dst->vertice_n * 3; for (i = v_real_n; i < data_length; i++) { dst->vertice[i] = src->vertice[i-v_real_n]; } dst->vertice_n = (dst->vertice_n+src->vertice_n); } } if (dst->texcoord && src->texcoord) { data_length = (dst->texcoord_n+src->texcoord_n) * 2; float *merged = NULL; merged = (float *)realloc(dst->texcoord, sizeof(float) * data_length); if (merged) { dst->texcoord = merged; unsigned int t_real_n = dst->texcoord_n * 2; for (i = t_real_n; i < data_length; i++) { dst->texcoord[i] = src->texcoord[i-t_real_n]; } dst->texcoord_n = (dst->texcoord_n+src->texcoord_n); } } if (dst->normal && src->normal) { data_length = (dst->normal_n+src->normal_n) * 3; float *merged = NULL; merged = (float *)realloc(dst->normal, sizeof(float) * data_length); if (merged) { dst->normal = merged; unsigned int n_real_n = dst->normal_n * 3; for (i = n_real_n; i < data_length; i++) { dst->normal[i] = src->normal[i-n_real_n]; } dst->normal_n = (dst->normal_n+src->normal_n); } } if (dst->color && src->color) { data_length = (dst->color_n+src->color_n) * 4; unsigned char *merged = NULL; merged = (unsigned char *)realloc(dst->color, sizeof(unsigned char) * data_length); if (merged) { dst->color = merged; unsigned int c_real_n = dst->color_n * 4; for (i = c_real_n; i < data_length; i++) { dst->color[i] = src->color[i-c_real_n]; } dst->color_n = (dst->color_n+src->color_n); } } } inline void cwobj_geomSetVertice(cwobj_geo *geom, unsigned int index, float v1, float v2, float v3) { unsigned int i = index * 3; geom->vertice[i] = v1; geom->vertice[i+1] = v2; geom->vertice[i+2] = v3; } inline void cwobj_geomSetTexcoord(cwobj_geo *geom, unsigned int index, float u, float v) { unsigned int i = index<<1; geom->texcoord[i] = u; geom->texcoord[i+1] = v; } inline void cwobj_geomAllocVertice(cwobj_geo *geom, unsigned int size) { if (geom->vertice) free(geom->vertice); geom->vertice = (float *)malloc(sizeof(float) * 3 * size); geom->vertice_n = size; } inline void cwobj_geomAllocTexcoord(cwobj_geo *geom, unsigned int size) { if (geom->texcoord) free(geom->texcoord); geom->texcoord = (float *)malloc(sizeof(float) * 2 * size); geom->texcoord_n = size; } inline void cwobj_geomAllocNormal(cwobj_geo *geom, unsigned int size) { if (geom->normal) free(geom->normal); geom->normal = (float *)malloc(sizeof(float) * 3 * size); geom->normal_n = size; } inline void cwobj_geomAllocColor(cwobj_geo *geom, unsigned int size) { if (geom->color) free(geom->color); geom->color = (unsigned char *)malloc(sizeof(unsigned char) * 4 * size); geom->color_n = size; } inline void cwobj_geomAllocIndice(cwobj_geo *geom, unsigned int size) { if (geom->indice) free(geom->indice); geom->indice = (CWOBJ_INDICE_TYPE *)malloc(sizeof(CWOBJ_INDICE_TYPE) * size); geom->indice_n = size; } inline int cwobj_geomAddVertice(cwobj_geo *geom, float v1, float v2, float v3) { if (!geom) return 1; float *vertice = NULL; if (geom->vertice == NULL) { vertice = (float *)malloc(sizeof(float) * 3); } else { vertice = (float *)realloc(geom->vertice, sizeof(float) * 3 * (geom->vertice_n+1)); } if (!vertice) { return 1; } geom->vertice = vertice; unsigned int start_index = geom->vertice_n * 3; geom->vertice[start_index] = v1; geom->vertice[start_index+1] = v2; geom->vertice[start_index+2] = v3; geom->vertice_n++; return 0; } inline int cwobj_geomAddNormal(cwobj_geo *geom, float n1, float n2, float n3) { if (!geom) return 1; float *normal = NULL; if (geom->normal == NULL) { normal = (float *)malloc(sizeof(float) * 3); } else { normal = (float *)realloc(geom->normal, sizeof(float) * 3 * (geom->normal_n+1)); } if (!normal) { return 1; } geom->normal = normal; unsigned int start_index = geom->normal_n * 3; geom->normal[start_index] = n1; geom->normal[start_index+1] = n2; geom->normal[start_index+2] = n3; geom->normal_n++; return 0; } inline int cwobj_geomAddTexcoord(cwobj_geo *geom, float u, float v) { if (!geom) return 1; float *texcoord = NULL; if (geom->texcoord == NULL) { texcoord = (float *)malloc(sizeof(float) * 2); } else { texcoord = (float *)realloc(geom->texcoord, sizeof(float) * 2 * (geom->texcoord_n+1)); } if (!texcoord) { return 1; } geom->texcoord = texcoord; unsigned int start_index = geom->texcoord_n * 2; geom->texcoord[start_index] = u; geom->texcoord[start_index+1] = v; geom->texcoord_n++; return 0; } inline int cwobj_geomAddColor(cwobj_geo *geom, unsigned char r, unsigned char g, unsigned char b, unsigned char a) { if (!geom) return 1; unsigned char *color = NULL; if (geom->color == NULL) { color = (unsigned char *)malloc(sizeof(unsigned char) * 4); } else { color = (unsigned char *)realloc(geom->color, sizeof(unsigned char) * 4 * (geom->color_n+1)); } if (!color) { return 1; } geom->color = color; unsigned int start_index = geom->color_n * 4; geom->color[start_index] = r; geom->color[start_index+1] = g; geom->color[start_index+2] = b; geom->color[start_index+3] = a; geom->color_n++; return 0; } inline int cwobj_geomAddIndice(cwobj_geo *geom, CWOBJ_INDICE_TYPE ind) { if (!geom) return 1; CWOBJ_INDICE_TYPE *indice = NULL; if (geom->indice == NULL) { indice = (CWOBJ_INDICE_TYPE *)malloc(sizeof(CWOBJ_INDICE_TYPE)); } else { indice = (CWOBJ_INDICE_TYPE *)realloc(geom->indice, sizeof(CWOBJ_INDICE_TYPE) * (geom->indice_n+1)); } if (!indice) { return 1; } geom->indice = indice; geom->indice[geom->indice_n] = ind; geom->indice_n++; return 0; } inline void cwobj_geomDebug(cwobj_geo *geom) { if (!geom) return; if (!geom->indice) { unsigned int i = 0; for (i = 0; i < geom->vertice_n*3; i+=3) { fprintf(stdout, "Vertice:%f %f %f\n\n", geom->vertice[i], geom->vertice[i+1], geom->vertice[i+2]); } for (i = 0; i < geom->normal_n*3; i+=3) { fprintf(stdout, "Normal:%f %f %f\n\n", geom->normal[i], geom->normal[i+1], geom->normal[i+2]); } for (i = 0; i < geom->texcoord_n*2; i+=2) { fprintf(stdout, "UV:%f %f\n\n", geom->texcoord[i], geom->texcoord[i+1]); } } else { unsigned int i = 0; for (i = 0; i < geom->indice_n; i++) { unsigned int indice = geom->indice[i]; fprintf(stdout, "Indice %i:\nVertice:%f %f %f\n" "UV: %f %f\nNormal: %f %f %f\n\n", indice, geom->vertice[(indice*3)], geom->vertice[(indice*3)+1], geom->vertice[(indice*3)+2], geom->texcoord[(indice*2)], geom->texcoord[(indice*2)+1], geom->normal[(indice*3)], geom->normal[(indice*3)+1], geom->normal[(indice*3)+2]); } } fflush(stdout); } inline cwobj_geo *cwobj_geomClone(cwobj_geo *geom) { if (!geom) return NULL; cwobj_geo *new_geom = cwobj_geomInit(); if (!new_geom) return NULL; cwobj_geomAllocIndice(new_geom, geom->indice_n); cwobj_geomAllocVertice(new_geom, geom->vertice_n); cwobj_geomAllocNormal(new_geom, geom->normal_n); cwobj_geomAllocTexcoord(new_geom, geom->texcoord_n); cwobj_geomAllocColor(new_geom, geom->color_n); unsigned int i = 0; for (i = 0; i < geom->indice_n; i++) { new_geom->indice[i] = geom->indice[i]; } for (i = 0; i < geom->vertice_n*3; i++) { new_geom->vertice[i] = geom->vertice[i]; } for (i = 0; i < geom->normal_n*3; i++) { new_geom->normal[i] = geom->normal[i]; } for (i = 0; i < geom->texcoord_n*2; i++) { new_geom->texcoord[i] = geom->texcoord[i]; } for (i = 0; i < geom->color_n*4; i++) { new_geom->color[i] = geom->color[i]; } return new_geom; } inline void cwobj_setColor3f(cwobj_color *color, float r, float g, float b) { color->r = r; color->g = g; color->b = b; color->unused = 0; } inline cwobj_mat *cwobj_materialInit() { cwobj_mat *material = (cwobj_mat *)malloc(sizeof(cwobj_mat)); if (!material) return NULL; memset(material, 0, sizeof(cwobj_mat)); return material; } inline void cwobj_materialFree(cwobj_mat *material) { if (!material) return; free(material->name); free(material); } inline cwobj_mtllib *cwobj_objMtlibInit() { cwobj_mtllib *mtlib = (cwobj_mtllib *)malloc(sizeof(cwobj_mtllib)); if (!mtlib) return NULL; memset(mtlib, 0, sizeof(cwobj_mtllib)); return mtlib; } inline cwobj_mat *cwobj_objMtlibAddMaterial(cwobj_mtllib *mtlib, char *name) { if (!mtlib) return NULL; cwobj_mat *material = cwobj_materialInit(); if (!material) return NULL; material->name = name; cwobj_mat **mtls_tmp = NULL; if (!mtlib->materials) { mtls_tmp = (cwobj_mat **)malloc(sizeof(cwobj_mat *)); } else { mtls_tmp = (cwobj_mat **)realloc(mtlib->materials, sizeof(cwobj_mat *) * (mtlib->materials_n+1)); } if (!mtls_tmp) { cwobj_materialFree(material); return NULL; } mtlib->materials = mtls_tmp; mtlib->materials[mtlib->materials_n] = material; material->used = 0; mtlib->materials_n++; return material; } inline void cwobj_objMtlibSetUsed(cwobj_mtllib *mtlib, const char *name) { if (!mtlib || !name) return; size_t name_len = strlen(name); unsigned int i = 0; for (i = 0; i < mtlib->materials_n; i++) { cwobj_mat *objmtl = mtlib->materials[i]; if (!objmtl) continue; cwobj_mat *tmp_mat = objmtl; const char *material_name = tmp_mat->name; if (material_name) { if (strlen(material_name) != name_len) { continue; } if (strncmp(name, material_name, name_len) == 0) { objmtl->used = 1; break; } } } } inline cwobj_mat *cwobj_objMtlibGetMaterial(cwobj_mtllib *mtlib, const char *name) { if (!name) return NULL; cwobj_mat *material = NULL; size_t name_len = strlen(name); unsigned int i = 0; for (i = 0; i < mtlib->materials_n; i++) { cwobj_mat *objmtl = mtlib->materials[i]; if (!objmtl) continue; cwobj_mat *tmp_mat = objmtl; const char *material_name = tmp_mat->name; if (material_name) { if (strlen(material_name) != name_len) { continue; } if (strncmp(name, material_name, name_len) == 0) { material = tmp_mat; break; } } } return material; } inline void cwobj_objMtlibFree(cwobj_mtllib *mtlib) { if (!mtlib) return; unsigned int i = 0; for (i = 0; i < mtlib->materials_n; i++) { cwobj_mat *objmtl = mtlib->materials[i]; if (!objmtl) continue; // only free unused materials if (!objmtl->used) { cwobj_materialFree(objmtl); } } free(mtlib->materials); free(mtlib); } inline char *cwobj_objGetLine(FILE *f) { if (!f) { return NULL; } char *line = (char *)malloc(sizeof(char) * CWOBJ_MAX_LINE_LENGTH); if (!line) { return NULL; } int c = fgetc(f); while (c == ' ') { c = fgetc(f); }; // skip whitespaces if (c == EOF) { free(line); return NULL; } memset(line, 0, sizeof(char) * CWOBJ_MAX_LINE_LENGTH); int i = 0; // store true line length while (c != '\n' && c != EOF) { if (i < (CWOBJ_MAX_LINE_LENGTH-1)) { if (c == '#') { // skip .obj comments while (c != '\n' && c != EOF) { c = fgetc(f); }; break; } line[i++] = c; } c = fgetc(f); } return line; } inline char *cwobj_objGetTag(const char *line) { if (!line) return NULL; long line_length = strlen(line); if ((line_length == 1 && line[0] == 0x0D) || (line_length == 1 && line[0] == 0x0A)) return NULL; if (line_length == 2 && line[0] == 0x0D && line[1] == 0x0A) return NULL; int tag_end = strcspn(line, " "); char *tag = (char *)malloc(sizeof(char) * (tag_end+1)); if (!tag) return NULL; strncpy(tag, line, tag_end); tag[tag_end] = '\0'; cwobj_toLowercase(tag); return tag; } inline char *cwobj_objGetData(char *line) { if (!line) return NULL; int data_start = strcspn(line, " ")+1; size_t data_length = strlen(line)-data_start; char *data_start_p = line+data_start; // skip whitespace while (*data_start_p == ' ') { data_start_p++; data_length--; }; if (data_length <= 0) return NULL; char *data = (char *)malloc(sizeof(char) * (data_length+1)); if (!data) return NULL; memcpy(data, data_start_p, data_length+1); return data; } inline cwobj_mtllib *cwobj_objLoadMtlib(const char *filename, unsigned int (*get_texture)(const char *filename)) { FILE *f = fopen(filename, "r"); if (!f) { fprintf(stderr, "cwobj_objLoadMtlib: failed to open .mtl '%s'\n", filename); return NULL; } cwobj_mtllib *mtlib = cwobj_objMtlibInit(); if (!mtlib) { fprintf(stderr, "cwobj_objLoadMtlib: cwobj_objMtlibInit failed\n"); return NULL; } cwobj_mat *curr_material = NULL; // parse the .mtl long curr_line = 0; char *line = NULL; while ((line = cwobj_objGetLine(f))) { unsigned int line_length = strlen(line); curr_line += 1; if (!line_length) { free(line); continue; } char *tag = cwobj_objGetTag(line); if (!tag) { free(line); continue; } int tag_length = strlen(tag); if (tag_length == 0) { free(line); free(tag); continue; } char *data = cwobj_objGetData(line); if (!data) { free(line); free(tag); continue; } char *data_p = data; int data_length = strlen(data); #ifdef DEBUG_CWOBJ fprintf(stdout, "cwobj_objLoadMtlib: '%s' L%lu parsing tag '%s' with value '%s'\n", filename, curr_line, tag, data); #endif if (cwobj_strncmpi(tag, "newmtl", 6) == 0) { char *name = (char *)malloc(sizeof(char) * (data_length+1)); if (name) { memcpy(name, data, data_length+1); curr_material = cwobj_objMtlibAddMaterial(mtlib, name); if (!curr_material) { free(name); fprintf(stderr, "cwobj_objLoadMtlib: (newmtl) failed to add material '%s' to the mtlib\n", filename); } } else { fprintf(stderr, "cwobj_objLoadMtlib: (newmtl) failed to allocate material name '%s'\n", filename); } } else if (cwobj_strncmpi(tag, "map_kd", 6) == 0) { char *path = cwobj_getPath(filename); size_t path_length = 0; if (path) { path_length = strlen(path); } char *texture_filename = (char *)malloc(sizeof(char) * (data_length+path_length+1)); if (texture_filename) { if (path) { memcpy(texture_filename, path, path_length); memcpy(texture_filename+path_length, data, data_length+1); } else { memcpy(texture_filename, data, data_length+1); } if (curr_material) { if (get_texture) { curr_material->diffuse_texture = get_texture(texture_filename); } else { fprintf(stderr, "cwobj_objLoadMtlib: texture '%s' ignored (no callback registered to load the texture)\n", texture_filename); } } free(texture_filename); } else { fprintf(stderr, "cwobj_objLoadMtlib: '%s' ignored (malloc. error)\n", tag); } free(path); } else if (cwobj_strncmpi(tag, "ns" , 2) == 0) { if (curr_material) { int specular_hardness = cwobj_parseInt(&data_p); curr_material->specular_hardness = specular_hardness; } } else if (cwobj_strncmpi(tag, "ka" , 2) == 0) { if (curr_material) { float r = cwobj_parseFloat(&data_p); float g = cwobj_parseFloat(&data_p); float b = cwobj_parseFloat(&data_p); cwobj_setColor3f(&curr_material->ambient_color, r, g, b); } } else if (cwobj_strncmpi(tag, "ke" , 2) == 0) { if (curr_material) { float r = cwobj_parseFloat(&data_p); float g = cwobj_parseFloat(&data_p); float b = cwobj_parseFloat(&data_p); cwobj_setColor3f(&curr_material->emissive_color, r, g, b); } } else if (cwobj_strncmpi(tag, "kd" , 2) == 0) { if (curr_material) { float r = cwobj_parseFloat(&data_p); float g = cwobj_parseFloat(&data_p); float b = cwobj_parseFloat(&data_p); cwobj_setColor3f(&curr_material->diffuse_color, r, g, b); } } else if (cwobj_strncmpi(tag, "ks" , 2) == 0) { if (curr_material) { float r = cwobj_parseFloat(&data_p); float g = cwobj_parseFloat(&data_p); float b = cwobj_parseFloat(&data_p); cwobj_setColor3f(&curr_material->specular_color, r, g, b); } } else if (cwobj_strncmpi(tag, "ni" , 2) == 0) { if (curr_material) { float ior = cwobj_parseFloat(&data_p); curr_material->ior = ior; } } else if (cwobj_strncmpi(tag, "d" , 1) == 0) { if (curr_material) { float opacity = cwobj_parseFloat(&data_p); curr_material->opacity = opacity; } } else if (cwobj_strncmpi(tag, "illum", 5) == 0) { if (curr_material) { int illum_mode = cwobj_parseInt(&data_p); curr_material->illum_mode = illum_mode; } } else { fprintf(stderr, "cwobj_objLoadMtlib: unknow .mtl tag: '%s'\n", tag); } free(line); free(tag); free(data); } fclose(f); return mtlib; } inline cwobj *cwobj_load(const char *filename, unsigned int (*get_texture)(const char *filename)) { fprintf(stdout, "cwobj_load: loading \"%s\"\n", filename); fflush(stdout); FILE *f = fopen(filename, "r"); if (!f) { fprintf(stderr, "cwobj_load: failed to open .obj \"%s\"\n", filename); return NULL; } cwobj *mesh = cwobj_meshInit(); if (!mesh) { fprintf(stderr, "cwobj_load: failed to open .obj \"%s\" (mesh. init. failed)\n", filename); return NULL; } cwobj_geo *obj_geom = cwobj_geomInit(); // store temporary obj data if (!obj_geom) { fprintf(stderr, "cwobj_load: failed to open .obj \"%s\" (geom. init. failed)\n", filename); cwobj_free(mesh); fclose(f); return NULL; } cwobj_geo *vcwobj_geom = cwobj_geomInit(); // store final geometry if (!vcwobj_geom) { fprintf(stderr, "cwobj_load: failed to open .obj \"%s\" (geom. init. failed)\n", filename); cwobj_geomFree(obj_geom); cwobj_free(mesh); fclose(f); return NULL; } // will store the associated .mtl file data cwobj_mtllib *mtlib = NULL; /* will be used to unify indices to optimize the final geometry with zero geometry duplicata, with a hash table it is simple but it may require huge amount of memory... */ cwobj_hashtable *indices_hash_table = cwobj_hashTableInit(); // .obj can store many meshs int mesh_count = 0; char *line = NULL; long curr_line = 0; while ((line = cwobj_objGetLine(f))) { unsigned int line_length = strlen(line); curr_line += 1; if (!line_length) { free(line); continue; } char *tag = cwobj_objGetTag(line); if (!tag) { free(line); continue; } int tag_length = strlen(tag); if (tag_length == 0) { free(line); free(tag); continue; } char *data = cwobj_objGetData(line); if (!data) { free(line); free(tag); continue; } char *data_p = data; int data_length = strlen(data); #ifdef DEBUG_CWOBJ fprintf(stdout, "cwobj_load: '%s' L%lu parsing tag '%s' with value '%s'\n", filename, curr_line, tag, data); #endif // parse tags if (strncmp(tag, "mtllib", 6) == 0) { char *path = cwobj_getPath(filename); size_t path_length = 0; if (path) { path_length = strlen(path); } char *mtl_filename = (char *)malloc(sizeof(char) * (data_length+path_length+1)); if (mtl_filename) { if (path) { memcpy(mtl_filename, path, path_length); memcpy(mtl_filename+path_length, data, data_length+1); } else { memcpy(mtl_filename, data, data_length+1); } mtlib = cwobj_objLoadMtlib(mtl_filename, get_texture); if (!mtlib) { fprintf(stderr, "cwobj_load: failed to load .mtl \"%s\"\n", mtl_filename); } free(mtl_filename); } else { fprintf(stderr, "cwobj_load: \"%s\" ignored (malloc. error)\n", tag); } free(path); } else if (strncmp(tag, "usemtl", 6) == 0) { if (!mesh->material && mtlib) { cwobj_mat *material = cwobj_objMtlibGetMaterial(mtlib, data); if (!material) { fprintf(stderr, "cwobj_load: cannot find material in the mtllib \"%s\" \n", data); } else { cwobj_meshSetMaterial(mesh, material); } } else { fprintf(stderr, "cwobj_load: \"%s\" ignored (a material is already bound to a mesh or no mtllib present)\n", tag); } } else if (strncmp(tag, "l", 1) == 0) { // edges vcwobj_geom->prim_type = CWOBJ_GEOMETRY_LINE; } else if (strncmp(tag, "f", 1) == 0) { // face long iface_type = 0; char **strings_list = cwobj_splitString(data, ' ', &iface_type); int i = 0; for (i = 0; i < iface_type; i++) { char *indices = strings_list[i]; char **indices_list = NULL; long ind_list_length = 0; indices_list = cwobj_splitString(indices, '/', &ind_list_length); if (!indices_list || ind_list_length == 0) { continue; } if (ind_list_length > 3) { fprintf(stderr, "cwobj_load: \"%s\" warning: unknow face type\n", filename); continue; } unsigned int *indice = NULL; indice = (unsigned int *)cwobj_hashTableGet(indices_hash_table, indices); if (indice != NULL) { // the data for that indice exist already! if (cwobj_geomAddIndice(vcwobj_geom, *indice)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddIndice error)\n", filename); cwobj_free(mesh); fclose(f); break; } } else { // the indice does not so we add it with the geom data unsigned int vertice_indice = atoi(indices_list[0]); unsigned int vertice_index = (vertice_indice-1) * 3; if (vertice_indice > obj_geom->vertice_n) continue; float v1 = obj_geom->vertice[vertice_index]; float v2 = obj_geom->vertice[vertice_index+1]; float v3 = obj_geom->vertice[vertice_index+2]; if (cwobj_geomAddVertice(vcwobj_geom, v1, v2, v3)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddVertice error)\n", filename); cwobj_free(mesh); fclose(f); break; } if (cwobj_geomAddIndice(vcwobj_geom, vcwobj_geom->vertice_n-1)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddIndice error)\n", filename); cwobj_free(mesh); fclose(f); break; } if (ind_list_length > 1) { unsigned int uv_indice = atoi(indices_list[1]); if (uv_indice > 0) { unsigned int uv_index = (uv_indice-1) * 2; if (uv_indice > obj_geom->texcoord_n) continue; float u = obj_geom->texcoord[uv_index]; float v = obj_geom->texcoord[uv_index + 1]; if (cwobj_geomAddTexcoord(vcwobj_geom, u, v)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddTexcoord error)\n", filename); cwobj_free(mesh); fclose(f); break; } } } if (ind_list_length == 3) { unsigned int normal_indice = atoi(indices_list[2]); unsigned int normal_index = (normal_indice-1) * 3; if (normal_indice > obj_geom->normal_n) continue; float n1 = obj_geom->normal[normal_index]; float n2 = obj_geom->normal[normal_index + 1]; float n3 = obj_geom->normal[normal_index + 2]; if (cwobj_geomAddNormal(vcwobj_geom, n1, n2, n3)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddNormal error)\n", filename); cwobj_free(mesh); fclose(f); break; } } // we add the indices to the hash table unsigned int *new_indice = (unsigned int *)malloc( sizeof(unsigned int)); *new_indice = vcwobj_geom->vertice_n-1; cwobj_hashTableSet(indices_hash_table, indices, new_indice); } cwobj_freeSplitResult(indices_list, ind_list_length); } cwobj_freeSplitResult(strings_list, iface_type); if (iface_type == 3) { vcwobj_geom->prim_type = CWOBJ_GEOMETRY_TRIANGLE; } else { fprintf(stderr, "cwobj_load: \"%s\" failed (unsupported face type)\n", filename); cwobj_free(mesh); fclose(f); } } else if (strncmp(tag, "s", 1) == 0) { // smooth if (*data == '1') { } else { // flat } } else if (strncmp(tag, "o", 1) == 0) { // object mesh_count++; if (mesh_count > 1) { // only one is loaded fclose(f); } cwobj_meshSetName(mesh, data); } else if (*tag == 'v' && tag_length == 1) { // vertice float v1 = cwobj_parseFloat(&data_p); float v2 = cwobj_parseFloat(&data_p); float v3 = cwobj_parseFloat(&data_p); if (cwobj_geomAddVertice(obj_geom, v1, v2, v3)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddVertice error)\n", filename); cwobj_free(mesh); fclose(f); } } else if (strncmp(tag, "vn", 2) == 0) { // normal float n1 = cwobj_parseFloat(&data_p); float n2 = cwobj_parseFloat(&data_p); float n3 = cwobj_parseFloat(&data_p); if (cwobj_geomAddNormal(obj_geom, n1, n2, n3)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddNormal error)\n", filename); cwobj_free(mesh); fclose(f); } } else if (strncmp(tag, "vt", 2) == 0) { // texcoord float u = cwobj_parseFloat(&data_p); float v = cwobj_parseFloat(&data_p); if (cwobj_geomAddTexcoord(obj_geom, u, v)) { fprintf(stderr, "cwobj_load: \"%s\" failed (cwobj_geomAddTexcoord error)\n", filename); cwobj_free(mesh); fclose(f); } } else { fprintf(stderr, "cwobj_load: unknow .obj tag: \"%s\"\n", tag); } free(line); free(tag); free(data); } cwobj_geomFree(obj_geom); if (!mesh) { cwobj_geomFree(vcwobj_geom); } else { if (vcwobj_geom->indice_n == 0) { vcwobj_geom->prim_type = CWOBJ_GEOMETRY_POINT; } cwobj_meshSetGeometry(mesh, vcwobj_geom); // we set it as used in the mtllib so cwobj_objMtlibFree does not free it if (mesh->material) { cwobj_objMtlibSetUsed(mtlib, mesh->material->name); } } // free the elements of the hash table unsigned int i = 0; for (i = 0; i < indices_hash_table->table_size; i++) { const char *key = cwobj_hashTableGetKeyAt(indices_hash_table, i); if (!key) continue; free(cwobj_hashTableGet(indices_hash_table, key)); } cwobj_hashTableFree(indices_hash_table); cwobj_objMtlibFree(mtlib); fclose(f); return mesh; } #endif ================================================ FILE: custom_backend/dispmanx/fbg_dispmanx.c ================================================ #include #include #include "fbg_dispmanx.h" void fbg_dispmanxDraw(struct _fbg *fbg); void fbg_dispmanxFlip(struct _fbg *fbg); void fbg_dispmanxFree(struct _fbg *fbg); #ifdef FBG_MMAL static void callback_vr_input(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buffer) { mmal_buffer_header_release(buffer); } #endif struct _fbg *fbg_dispmanxSetup(uint32_t displayNumber, VC_IMAGE_TYPE_T image_type) { int components = 3; if (image_type == VC_IMAGE_RGBA32) { components = 4; } else if (image_type == VC_IMAGE_RGB888) { components = 3; } else { fprintf(stderr, "fbg_dispmanxSetup: only VC_IMAGE_RGBA32 / VC_IMAGE_RGB888 is supported.\n"); return NULL; } bcm_host_init(); struct _fbg_dispmanx_context *dispmanx_context = (struct _fbg_dispmanx_context *)calloc(1, sizeof(struct _fbg_dispmanx_context)); if (!dispmanx_context) { fprintf(stderr, "fbg_dispmanxSetup: gles2 context calloc failed!\n"); return NULL; } dispmanx_context->display = vc_dispmanx_display_open(displayNumber); if (dispmanx_context->display == 0) { fprintf(stderr, "fbg_dispmanxSetup: vc_dispmanx_display_open failed for display %i\n", displayNumber); free(dispmanx_context); return NULL; } DISPMANX_MODEINFO_T info; int result = vc_dispmanx_display_get_info(dispmanx_context->display, &info); if (result != 0) { fprintf(stderr, "fbg_dispmanxSetup: vc_dispmanx_display_get_info failed for display %i\n", displayNumber); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context); return NULL; } #ifdef FBG_MMAL vc_dispmanx_display_close(dispmanx_context->display); #else // dispmanx setup uint32_t vc_image_ptr; dispmanx_context->resource_type = image_type; dispmanx_context->back_resource = vc_dispmanx_resource_create(dispmanx_context->resource_type, info.width, info.height, &vc_image_ptr); if (dispmanx_context->back_resource == 0) { fprintf(stderr, "fbg_dispmanxSetup: vc_dispmanx_resource_create failed for display %i\n", displayNumber); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context); return NULL; } dispmanx_context->front_resource = vc_dispmanx_resource_create(dispmanx_context->resource_type, info.width, info.height, &vc_image_ptr); if (dispmanx_context->front_resource == 0) { fprintf(stderr, "fbg_dispmanxSetup: vc_dispmanx_resource_create failed for display %i\n", displayNumber); vc_dispmanx_resource_delete(dispmanx_context->back_resource); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context); return NULL; } dispmanx_context->update = vc_dispmanx_update_start(0); if (dispmanx_context->update == 0) { fprintf(stderr, "fbg_dispmanxSetup: vc_dispmanx_update_start failed for display %i\n", displayNumber); vc_dispmanx_resource_delete(dispmanx_context->back_resource); vc_dispmanx_resource_delete(dispmanx_context->front_resource); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context); return NULL; } dispmanx_context->src_rect = malloc(sizeof(VC_RECT_T)); dispmanx_context->dst_rect = malloc(sizeof(VC_RECT_T)); if (dispmanx_context->src_rect == 0 || dispmanx_context->dst_rect == 0) { fprintf(stderr, "fbg_dispmanxSetup: src/dst rect malloc failed for display %i\n", displayNumber); vc_dispmanx_resource_delete(dispmanx_context->back_resource); vc_dispmanx_resource_delete(dispmanx_context->front_resource); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context->src_rect); free(dispmanx_context->dst_rect); free(dispmanx_context); return NULL; } dispmanx_context->pitch = info.width * 3; vc_dispmanx_rect_set(dispmanx_context->src_rect, 0, 0, info.width << 16, info.height << 16); vc_dispmanx_rect_set(dispmanx_context->dst_rect, 0, 0, info.width, info.height); VC_DISPMANX_ALPHA_T alpha = { DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS, 255, /*alpha 0->255*/ 0 }; dispmanx_context->elem = vc_dispmanx_element_add(dispmanx_context->update, dispmanx_context->display, 0, dispmanx_context->dst_rect, dispmanx_context->front_resource, dispmanx_context->src_rect, DISPMANX_PROTECTION_NONE, &alpha, NULL, DISPMANX_NO_ROTATE); if (dispmanx_context->elem == 0) { fprintf(stderr, "fbg_dispmanxSetup: vc_dispmanx_element_add failed for display %i\n", displayNumber); vc_dispmanx_resource_delete(dispmanx_context->back_resource); vc_dispmanx_resource_delete(dispmanx_context->front_resource); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context->src_rect); free(dispmanx_context->dst_rect); free(dispmanx_context); return NULL; } result = vc_dispmanx_update_submit_sync(dispmanx_context->update); #endif struct _fbg *fbg = fbg_customSetup(info.width, info.height, components, 1, 1, (void *)dispmanx_context, fbg_dispmanxDraw, fbg_dispmanxFlip, NULL, fbg_dispmanxFree); if (!fbg) { fprintf(stderr, "fbg_dispmanxSetup: fbg_customSetup failed\n"); vc_dispmanx_resource_delete(dispmanx_context->back_resource); vc_dispmanx_resource_delete(dispmanx_context->front_resource); vc_dispmanx_display_close(dispmanx_context->display); free(dispmanx_context->src_rect); free(dispmanx_context->dst_rect); free(dispmanx_context); return NULL; } #ifdef FBG_MMAL mmal_component_create("vc.ril.video_render", &dispmanx_context->render); MMAL_COMPONENT_T *render = dispmanx_context->render; dispmanx_context->input = render->input[0]; MMAL_PORT_T *input = dispmanx_context->input; if (image_type == VC_IMAGE_RGBA32) { input->format->encoding = MMAL_ENCODING_RGBA; else if (image_type == VC_IMAGE_RGB888) { input->format->encoding = MMAL_ENCODING_RGB24; } input->format->es->video.width = VCOS_ALIGN_UP(fbg->width, 32); input->format->es->video.height = VCOS_ALIGN_UP(fbg->height, 16); input->format->es->video.crop.x = 0; input->format->es->video.crop.y = 0; input->format->es->video.crop.width = fbg->width; input->format->es->video.crop.height = fbg->height; mmal_port_format_commit(input); mmal_component_enable(render); mmal_port_parameter_set_boolean(input, MMAL_PARAMETER_ZERO_COPY, MMAL_TRUE); input->buffer_size = input->buffer_size_recommended; input->buffer_num = input->buffer_num_recommended; if (input->buffer_num < 2) { input->buffer_num = 2; } dispmanx_context->pool = mmal_port_pool_create(input, input->buffer_num, input->buffer_size); { MMAL_DISPLAYREGION_T param; param.hdr.id = MMAL_PARAMETER_DISPLAYREGION; param.hdr.size = sizeof(MMAL_DISPLAYREGION_T); param.set = MMAL_DISPLAY_SET_LAYER; param.layer = 128; //On top of most things param.set |= MMAL_DISPLAY_SET_ALPHA; param.alpha = 255; //0 = transparent, 255 = opaque param.set |= (MMAL_DISPLAY_SET_DEST_RECT | MMAL_DISPLAY_SET_FULLSCREEN); param.fullscreen = MMAL_FALSE; param.dest_rect.x = 0; param.dest_rect.y = 0; param.dest_rect.width = fbg->width; param.dest_rect.height = fbg->height; mmal_port_parameter_set(input, ¶m.hdr); } mmal_port_enable(input, callback_vr_input); #endif return fbg; } void fbg_dispmanxOnFlip(struct _fbg *fbg, void (*opt_flip)(struct _fbg *fbg)) { struct _fbg_dispmanx_context *dispmanx_context = fbg->user_context; dispmanx_context->opt_flip = opt_flip; } void fbg_dispmanxDraw(struct _fbg *fbg) { struct _fbg_dispmanx_context *dispmanx_context = fbg->user_context; #ifdef FBG_MMAL MMAL_BUFFER_HEADER_T *buffer = mmal_queue_wait(dispmanx_context->pool->queue); memcpy(buffer->data, fbg->back_buffer, fbg->size); buffer->length = buffer->alloc_size; mmal_port_send_buffer(dispmanx_context->input, buffer); #else int ret = vc_dispmanx_resource_write_data(dispmanx_context->back_resource, dispmanx_context->resource_type, dispmanx_context->pitch, fbg->back_buffer, dispmanx_context->dst_rect); #endif } void fbg_dispmanxFlip(struct _fbg *fbg) { struct _fbg_dispmanx_context *dispmanx_context = fbg->user_context; #ifndef FBG_MMAL dispmanx_context->update = vc_dispmanx_update_start(0); vc_dispmanx_element_change_source(dispmanx_context->update, dispmanx_context->elem, dispmanx_context->back_resource); DISPMANX_RESOURCE_HANDLE_T tmp = dispmanx_context->front_resource; dispmanx_context->front_resource = dispmanx_context->back_resource; dispmanx_context->back_resource = tmp; if (dispmanx_context->opt_flip) { dispmanx_context->opt_flip(fbg); } vc_dispmanx_update_submit_sync(dispmanx_context->update); #endif } void fbg_dispmanxFree(struct _fbg *fbg) { struct _fbg_dispmanx_context *dispmanx_context = fbg->user_context; int result; #ifdef FBG_MMAL mmal_port_disable(dispmanx_context->input); mmal_component_destroy(dispmanx_context->render); #else dispmanx_context->update = vc_dispmanx_update_start(0); result = vc_dispmanx_element_remove(dispmanx_context->update, dispmanx_context->elem); if (result != 0) { fprintf(stderr, "fbg_dispmanxFree: vc_dispmanx_element_remove failed\n"); } result = vc_dispmanx_update_submit_sync(dispmanx_context->update); if (result != 0) { fprintf(stderr, "fbg_dispmanxFree: vc_dispmanx_update_submit_sync failed\n"); } result = vc_dispmanx_resource_delete(dispmanx_context->back_resource); if (result != 0) { fprintf(stderr, "fbg_dispmanxFree: vc_dispmanx_resource_delete failed\n"); } result = vc_dispmanx_resource_delete(dispmanx_context->front_resource); if (result != 0) { fprintf(stderr, "fbg_dispmanxFree: vc_dispmanx_resource_delete failed\n"); } result = vc_dispmanx_display_close(dispmanx_context->display); if (result != 0) { fprintf(stderr, "fbg_dispmanxFree: vc_dispmanx_display_close failed\n"); } #endif free(dispmanx_context); } ================================================ FILE: custom_backend/dispmanx/fbg_dispmanx.h ================================================ /* Copyright (c) 2019, 2020 Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef FB_GRAPHICS_DISPMANX_H #define FB_GRAPHICS_DISPMANX_H #include #include #include #include #include #include #include #include "bcm_host.h" #include "fbgraphics.h" #ifdef FBG_MMAL #include #include #include #include #endif //! dispmanx wrapper data structure struct _fbg_dispmanx_context { #ifdef FBG_MMAL //! MMAL component MMAL_COMPONENT_T *render; //! MMAL input port MMAL_PORT_T *input; //! MMAL pool MMAL_POOL_T *pool; #endif //! dispmanx display DISPMANX_DISPLAY_HANDLE_T display; //! dispmanx back resource DISPMANX_RESOURCE_HANDLE_T back_resource; //! dispmanx front resource DISPMANX_RESOURCE_HANDLE_T front_resource; //! dispmanx elem DISPMANX_ELEMENT_HANDLE_T elem; //! dispmanx image type (RGB888) VC_IMAGE_TYPE_T resource_type; //! dispmanx update DISPMANX_UPDATE_HANDLE_T update; //! dispmanx src rect VC_RECT_T *src_rect; //! dispmanx src rect VC_RECT_T *dst_rect; //! optional flip content (will be executed between dispmanx start / sync) void (*opt_flip)(struct _fbg *fbg); //! fbg->width * 3 int pitch; }; //! initialize a FB Graphics dispmanx context /*! \param displayNumber dispmanx display number \return FBG data structure pointer */ extern struct _fbg *fbg_dispmanxSetup(uint32_t displayNumber); //! add additional flip content (will be executed between dispmanx start / sync) /*! \param fbg FBG data structure pointer \param opt_flip flip function executed between dispmanx start / sync upong fbg_flip() call */ extern void fbg_dispmanxOnFlip(struct _fbg *fbg, void (*opt_flip)(struct _fbg *fbg)); #endif ================================================ FILE: custom_backend/dispmanx_example.c ================================================ #include #include #include #include #include "dispmanx/fbg_dispmanx.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } int main(int argc, char* argv[]) { struct _fbg *fbg = fbg_dispmanxSetup(0, VC_IMAGE_RGB888); if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); float x = 0, y = 0, velx = 3.4, vely = 3.425; signal(SIGINT, int_handler); do { fbg_clear(fbg, 0); fbg_rect(fbg, x, y, 40, 40, 255, 0, 0); fbg_write(fbg, fbg->fps_char, 2, 2); fbg_draw(fbg); fbg_flip(fbg); x += velx; y += vely; if (x <= 0 || x > fbg->width - 40) { velx = -velx; } if (y <= 0 || y > fbg->height - 40) { vely = -vely; } } while (keep_running); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/dispmanx_parallel.c ================================================ #include #include #include #include #include "dispmanx/fbg_dispmanx.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } // user data example struct _fragment_user_data { float offset_x; float offset_y; float velx; float vely; }; void *fragmentStart(struct _fbg *fbg) { struct _fragment_user_data *user_data = (struct _fragment_user_data *)calloc(1, sizeof(struct _fragment_user_data)); user_data->offset_x = fbg->task_id * 32.0f; user_data->offset_y = fbg->task_id * 32.0f; float signx = 1; float signy = 1; if (fbg_randf(0, 1) > 0.5) { signx = -1; } if (fbg_randf(0, 1) > 0.5) { signy = -1; } user_data->velx = fbg_randf(4, 8) * signx; user_data->vely = fbg_randf(4, 8) * signy; return user_data; } void fragment(struct _fbg *fbg, void *user_data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)user_data; float c = (float)fbg->task_id / fbg->parallel_tasks * 255; fbg_recta(fbg, ud->offset_x, ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, fbg->width - ud->offset_x, fbg->height - ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, fbg->width - ud->offset_x, ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, ud->offset_x, fbg->height - ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); ud->offset_x += ud->velx; ud->offset_y += ud->vely; if (ud->offset_x <= 32) { ud->velx = -ud->velx; ud->offset_x = 32; } else if (ud->offset_x > fbg->width - 32) { ud->velx = -ud->velx; ud->offset_x = fbg->width - 32; } if (ud->offset_y <= 32) { ud->vely = -ud->vely; ud->offset_y = 32; } else if (ud->offset_y > fbg->height - 32) { ud->vely = -ud->vely; ud->offset_y = fbg->height - 32; } } void fragmentStop(struct _fbg *fbg, void *data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)data; free(ud); } // we can use regular buffers mixing but be aware that it may be very slow at high resolution due to the amount of pixels to be mixed on the main thread // as such in this example we don't use this mixing function but the accelerated one below void fbg_XORMixing(struct _fbg *fbg, unsigned char *buffer, int task_id) { for (int j = 0; j < fbg->size; j += 1) { fbg->back_buffer[j] = fbg->back_buffer[j] ^ buffer[j]; } } // in the following functions we let the mixing be done by dispmanx by sending each buffer data to an assigned layer (see fbg_mixing) // we use a mask for each threads to select which pixel we want to display DISPMANX_RESOURCE_HANDLE_T *back_resources; DISPMANX_RESOURCE_HANDLE_T *front_resources; DISPMANX_ELEMENT_HANDLE_T *elems; void setupDispmanxMixing(struct _fbg *fbg) { struct _fbg_dispmanx_context *dispmanx_context = (struct _fbg_dispmanx_context *)fbg->user_context; back_resources = (DISPMANX_RESOURCE_HANDLE_T *)malloc(sizeof(DISPMANX_RESOURCE_HANDLE_T) * fbg->parallel_tasks); front_resources = (DISPMANX_RESOURCE_HANDLE_T *)malloc(sizeof(DISPMANX_RESOURCE_HANDLE_T) * fbg->parallel_tasks); elems = (DISPMANX_ELEMENT_HANDLE_T *)malloc(sizeof(DISPMANX_ELEMENT_HANDLE_T) * fbg->parallel_tasks); // you can change how layers should be mixed here VC_DISPMANX_ALPHA_T alpha = { DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS | DISPMANX_FLAGS_ALPHA_PREMULT, 128, /*alpha 0->255*/ 0 }; dispmanx_context->update = vc_dispmanx_update_start(0); uint32_t vc_image_ptr; for (int i = 0; i < fbg->parallel_tasks; i += 1) { back_resources[i] = vc_dispmanx_resource_create(dispmanx_context->resource_type, fbg->width, fbg->height, &vc_image_ptr); front_resources[i] = vc_dispmanx_resource_create(dispmanx_context->resource_type, fbg->width, fbg->height, &vc_image_ptr); elems[i] = vc_dispmanx_element_add(dispmanx_context->update, dispmanx_context->display, (i + 1), dispmanx_context->dst_rect, dispmanx_context->front_resource, dispmanx_context->src_rect, DISPMANX_PROTECTION_NONE, &alpha, NULL, DISPMANX_NO_ROTATE); } vc_dispmanx_update_submit_sync(dispmanx_context->update); } // 'accelerated' mixing by using dispmanx, this is much faster (about 4x than single thread mixing at 1920x1080; around 8fps) void fbg_mixing(struct _fbg *fbg, unsigned char *buffer, int task_id) { struct _fbg_dispmanx_context *dispmanx_context = (struct _fbg_dispmanx_context *)fbg->user_context; int ret = vc_dispmanx_resource_write_data(back_resources[task_id - 1], dispmanx_context->resource_type, dispmanx_context->pitch, buffer, dispmanx_context->dst_rect); } void fbg_mixingFlip(struct _fbg *fbg) { struct _fbg_dispmanx_context *dispmanx_context = (struct _fbg_dispmanx_context *)fbg->user_context; for (int i = 0; i < fbg->parallel_tasks; i += 1) { //dispmanx_context->update = vc_dispmanx_update_start(0); vc_dispmanx_element_change_source(dispmanx_context->update, elems[i], back_resources[i]); DISPMANX_RESOURCE_HANDLE_T tmp = front_resources[i]; front_resources[i] = back_resources[i]; back_resources[i] = tmp; //vc_dispmanx_update_submit_sync(dispmanx_context->update); } } void freeDispmanxMixing(struct _fbg *fbg) { struct _fbg_dispmanx_context *dispmanx_context = (struct _fbg_dispmanx_context *)fbg->user_context; int result; for (int i = 0; i < fbg->parallel_tasks; i += 1) { result = vc_dispmanx_resource_delete(back_resources[i]); result = vc_dispmanx_resource_delete(front_resources[i]); result = vc_dispmanx_element_remove(dispmanx_context->update, elems[i]); } } // int main(int argc, char* argv[]) { struct _fbg *fbg = fbg_dispmanxSetup(0, VC_IMAGE_RGB888); if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 3); // only required with fbg_draw(fbg, fbg_mixing); setupDispmanxMixing(fbg); fbg_dispmanxOnFlip(fbg, fbg_mixingFlip); // srand(time(NULL)); signal(SIGINT, int_handler); do { fbg_clear(fbg, 0); // regular mixing, slow at high resolution / use much main thread resources //fbg_draw(fbg, fbg_XORMixing); for (int j = 0; j < fbg->parallel_tasks; j += 1) { fbg_write(fbg, fbg->fps_char, 2, 2 + j * 10); } fbg_draw(fbg, fbg_mixing); fbg_flip(fbg); } while (keep_running); // only required with fbg_draw(fbg, fbg_mixing); freeDispmanxMixing(fbg); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/dispmanx_pure_parallel.c ================================================ /* example of parallelism without libraries / fbg builtin parallelism sometimes fbg parallelism may be uneeded; this is the case when you don't want to mix stuff and just want to push some pixels! this example split the screen vertically in 4 parts handled by one thread each, it set pixels color / parts (a clear) the only synchronization mechanism is a pthread barrier to wait threads result before being sent to GPU run at 13 fps @ 1080p on Raspberry PI 3B with OpenGL ES 2 backend run at 20 fps @ 1080p on Raspberry PI 3B with dispmanx backend without barrier it run at 50 fps @ 1080p on Raspberry PI 3B with dispmanx backend note : for each threads except the main thread which run at 20 fps due to its additional task of CPU -> GPU transfer run at 60 fps @ 720p on Raspberry PI 3B with dispmanx backend */ #include #include #include #include #include #include #include "dispmanx/fbg_dispmanx.h" atomic_int keep_running = 1; struct _fbg *fbg; static pthread_barrier_t sync_barrier; void int_handler(int dummy) { keep_running = 0; } void compute(int id) { int n = 4;// threads int xx = 0, yy = 0, w3 = fbg->width * fbg->components; int x = 0; int y = fbg->height / 4 * id; char *pix_pointer = (char *)(fbg->back_buffer + (y * fbg->line_length + x * fbg->components)); for (yy = 0; yy < fbg->height / n; yy += 1) { for (xx = 0; xx < fbg->width; xx += 1) { *pix_pointer++ = id == 1 ? 255 : 0; *pix_pointer++ = id == 2 ? 255 : 0; *pix_pointer++ = id == 3 ? 255 : 0; pix_pointer += fbg->comp_offset; } pix_pointer += (fbg->line_length - w3); } } void *process(void *t) { int id = *((int *)t); int frame; int print_fps = 0; struct timeval fps_start; struct timeval fps_stop; gettimeofday(&fps_stop, NULL); struct _fbg *my_fbg = fbg; while (keep_running) { compute(id); // sync pthread_barrier_wait(&sync_barrier); // framerate gettimeofday(&fps_stop, NULL); double ms = (fps_stop.tv_sec - fps_start.tv_sec) * 1000000.0 - (fps_stop.tv_usec - fps_start.tv_usec); if (ms >= 1000.0) { gettimeofday(&fps_start, NULL); print_fps += 1; if ((print_fps % 5) == 0) { printf("%i: %lu fps\n", id, (long unsigned int)frame); fflush(stdout); } frame = 0; } frame += 1; } } int main(int argc, char* argv[]) { fbg = fbg_dispmanxSetup(0, VC_IMAGE_RGB888); if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); signal(SIGINT, int_handler); // threads setup pthread_t threads[3]; int t1 = 1; pthread_create(&threads[0], NULL, process, &t1); int t2 = 2; pthread_create(&threads[1], NULL, process, &t2); int t3 = 3; pthread_create(&threads[2], NULL, process, &t3); pthread_barrier_init(&sync_barrier, NULL, 4); do { //fbg_clear(fbg, 0); compute(0); fbg_write(fbg, fbg->fps_char, 2, 2); pthread_barrier_wait(&sync_barrier); fbg_draw(fbg); fbg_flip(fbg); } while (keep_running); pthread_join(threads[0], NULL); pthread_join(threads[1], NULL); pthread_join(threads[2], NULL); pthread_barrier_destroy(&sync_barrier); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/fbdev/fbg_fbdev.c ================================================ #include #include #include #include #include #include #include #include #include "fbg_fbdev.h" void fbg_fbdevDraw(struct _fbg *fbg); void fbg_fbdevFlip(struct _fbg *fbg); void fbg_fbdevFree(struct _fbg *fbg); struct _fbg *fbg_fbdevSetup(char *fb_device, int page_flipping) { struct _fbg_fbdev_context *fbdev_context = (struct _fbg_fbdev_context *)calloc(1, sizeof(struct _fbg_fbdev_context)); if (!fbdev_context) { fprintf(stderr, "fbg_fbdevSetup: fbdev context calloc failed!\n"); return NULL; } char *default_fb_device = "/dev/fb0"; fb_device = fb_device ? fb_device : default_fb_device; fbdev_context->fd = open(fb_device, O_RDWR); if (fbdev_context->fd == -1) { fprintf(stderr, "fbg_fbdevSetup: Cannot open '%s'!\n", fb_device); free(fbdev_context); return NULL; } if (ioctl(fbdev_context->fd, FBIOGET_VSCREENINFO, &fbdev_context->vinfo) == -1) { fprintf(stderr, "fbg_fbdevSetup: '%s' Cannot obtain framebuffer FBIOGET_VSCREENINFO informations!\n", fb_device); close(fbdev_context->fd); free(fbdev_context); return NULL; } if (ioctl(fbdev_context->fd, FBIOGET_FSCREENINFO, &fbdev_context->finfo) == -1) { fprintf(stderr, "fbg_fbdevSetup: '%s' Cannot obtain framebuffer FBIOGET_FSCREENINFO informations!\n", fb_device); close(fbdev_context->fd); free(fbdev_context); return NULL; } fprintf(stdout, "fbg_fbdevSetup: '%s' (%dx%d (%dx%d virtual) %d bpp (%d/%d, %d/%d, %d/%d) (%d smen_len) %d line_length)\n", fb_device, fbdev_context->vinfo.xres, fbdev_context->vinfo.yres, fbdev_context->vinfo.xres_virtual, fbdev_context->vinfo.yres_virtual, fbdev_context->vinfo.bits_per_pixel, fbdev_context->vinfo.red.length, fbdev_context->vinfo.red.offset, fbdev_context->vinfo.green.length, fbdev_context->vinfo.green.offset, fbdev_context->vinfo.blue.length, fbdev_context->vinfo.blue.offset, fbdev_context->finfo.smem_len, fbdev_context->finfo.line_length); if (fbdev_context->vinfo.bits_per_pixel != 16 && fbdev_context->vinfo.bits_per_pixel != 24 && fbdev_context->vinfo.bits_per_pixel != 32) { fprintf(stderr, "fbg_fbdevSetup: '%s' Unsupported format (only 16, 24 or 32 bits framebuffer is supported)!\n", fb_device); close(fbdev_context->fd); free(fbdev_context); return NULL; } int components = 3; if (fbdev_context->vinfo.bits_per_pixel == 16) { fprintf(stdout, "fbg_fbdevSetup: 16 bpp framebuffer detected; page flipping option not supported; all graphics operations will be managed in 24 bits then converted to 16 bpp before drawing.\n"); page_flipping = 0; } else { components = fbdev_context->vinfo.bits_per_pixel / 8; } struct _fbg *fbg = fbg_customSetup(fbdev_context->vinfo.xres, fbdev_context->vinfo.yres, components, 0, 0, (void *)fbdev_context, fbg_fbdevDraw, fbg_fbdevFlip, NULL, fbg_fbdevFree); if (!fbg) { fprintf(stderr, "fbg_fbdevSetup: fbg_customSetup failed\n"); close(fbdev_context->fd); free(fbdev_context); return NULL; } if ((fbdev_context->vinfo.bits_per_pixel == 24 || fbdev_context->vinfo.bits_per_pixel == 32) && fbdev_context->vinfo.red.length == 8 && fbdev_context->vinfo.red.offset == 16 && fbdev_context->vinfo.green.length == 8 && fbdev_context->vinfo.blue.length == 8 && fbdev_context->vinfo.blue.offset == 0 && fbdev_context->vinfo.green.offset == 8) { fbg->bgr = 1; } if (fbdev_context->vinfo.bits_per_pixel == 16 && fbdev_context->vinfo.red.offset == 11) { fbg->bgr = 1; } if (page_flipping) { // check for page flipping support if (ioctl(fbdev_context->fd, FBIOPAN_DISPLAY, &fbdev_context->vinfo) == -1) { fprintf(stderr, "fbg_fbdevSetup: '%s' FBIOPAN_DISPLAY / page flipping not supported!\n", fb_device); } else { // double the virtual height fbdev_context->vinfo.yres_virtual = fbdev_context->vinfo.yres_virtual * 2; if (ioctl(fbdev_context->fd, FBIOPUT_VSCREENINFO, &fbdev_context->vinfo) == -1) { fprintf(stderr, "fbg_fbdevSetup: '%s' FBIOPUT_VSCREENINFO failed, page flipping disabled!\n", fb_device); } else { fbdev_context->page_flipping = 1; fprintf(stdout, "fbg_fbdevSetup: '%s' Page flipping enabled (virtual height was doubled)!\n", fb_device); if (ioctl(fbdev_context->fd, FBIOGET_FSCREENINFO, &fbdev_context->finfo) == -1) { fprintf(stderr, "fbg_fbdevSetup: '%s' Cannot obtain framebuffer FBIOGET_FSCREENINFO informations!\n", fb_device); close(fbdev_context->fd); free(fbdev_context); return NULL; } } } if (!fbdev_context->page_flipping) { fprintf(stderr, "fbg_fbdevSetup: '%s' FBIOPAN_DISPLAY / page flipping not supported!\n", fb_device); } } // initialize framebuffer fbdev_context->buffer = (unsigned char *)mmap(0, fbdev_context->finfo.smem_len, PROT_WRITE, MAP_SHARED, fbdev_context->fd, 0); memset(fbdev_context->buffer, 0, fbdev_context->finfo.smem_len); // setup page flipping if (fbdev_context->page_flipping) { fbg->disp_buffer = fbdev_context->buffer; fbg->back_buffer = fbdev_context->buffer + fbg->width * fbg->components * fbg->height; } else { // setup front & back buffers fbg->back_buffer = calloc(1, fbg->size * sizeof(char)); if (!fbg->back_buffer) { fprintf(stderr, "fbg_fbdevSetup: back_buffer calloc failed!\n"); close(fbdev_context->fd); free(fbdev_context); return NULL; } fbg->disp_buffer = calloc(1, fbg->size * sizeof(char)); if (!fbg->disp_buffer) { fprintf(stderr, "fbg_fbdevSetup: disp_buffer calloc failed!\n"); free(fbg->back_buffer); close(fbdev_context->fd); free(fbdev_context); return NULL; } } return fbg; } void fbg_fbdevDraw(struct _fbg *fbg) { struct _fbg_fbdev_context *fbdev_context = fbg->user_context; #ifdef FBIO_WAITFORVSYNC static int dummy = 0; ioctl(fbdev_context->fd, FBIO_WAITFORVSYNC, &dummy); #endif if (fbdev_context->page_flipping == 0) { if (fbdev_context->vinfo.bits_per_pixel == 16) { unsigned char *pix_pointer_src = fbg->disp_buffer; unsigned char *pix_pointer_dst = fbdev_context->buffer; int i = 0; for (i = 0; i < fbg->width_n_height; i += 1) { unsigned int v = ((*pix_pointer_src++ >> 3) & 0x1f); v |= ((*pix_pointer_src++ >> 2) & 0x3f) << 5; v |= ((*pix_pointer_src++ >> 3) & 0x1f) << 11; *pix_pointer_dst++ = v; *pix_pointer_dst++ = v >> 8;; } } else { memcpy(fbdev_context->buffer, fbg->disp_buffer, fbg->size); } } } void fbg_fbdevFlip(struct _fbg *fbg) { struct _fbg_fbdev_context *fbdev_context = fbg->user_context; if (fbdev_context->page_flipping) { if (fbdev_context->vinfo.yoffset == 0) { fbdev_context->vinfo.yoffset = fbg->height; } else { fbdev_context->vinfo.yoffset = 0; } if (ioctl(fbdev_context->fd, FBIOPAN_DISPLAY, &fbdev_context->vinfo) == -1) { fprintf(stderr, "fbg_fbdevFlip: FBIOPAN_DISPLAY failed!\n"); } } unsigned char *tmp_buffer = fbg->disp_buffer; fbg->disp_buffer = fbg->back_buffer; fbg->back_buffer = tmp_buffer; } void fbg_fbdevFree(struct _fbg *fbg) { struct _fbg_fbdev_context *fbdev_context = fbg->user_context; if (!fbdev_context->page_flipping) { free(fbg->back_buffer); free(fbg->disp_buffer); } if (fbdev_context->buffer) { munmap(fbdev_context->buffer, fbdev_context->finfo.smem_len); close(fbdev_context->fd); } free(fbdev_context); } ================================================ FILE: custom_backend/fbdev/fbg_fbdev.h ================================================ /* Copyright (c) 2019, 2020 Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef FB_GRAPHICS_FBDEV_H #define FB_GRAPHICS_FBDEV_H #include #include "fbgraphics.h" //! fbdev wrapper data structure struct _fbg_fbdev_context { //! Framebuffer device file descriptor int fd; //! Memory-mapped framebuffer unsigned char *buffer; //! Framebuffer device var. informations struct fb_var_screeninfo vinfo; //! Framebuffer device fix. informations struct fb_fix_screeninfo finfo; //! Flag indicating that page flipping is enabled int page_flipping; }; //! initialize a FB Graphics context (framebuffer) /*! \param fb_device framebuffer device (example : /dev/fb0) \param page_flipping wether to use page flipping mechanism for double buffering (slow on some devices) \return _fbg structure pointer to pass to any FBG library functions */ extern struct _fbg *fbg_fbdevSetup(char *fb_device, int page_flipping); //! initialize a FB Graphics context with '/dev/fb0' as framebuffer device and no page flipping #define fbg_fbdevInit() fbg_fbdevSetup(NULL, 0) #endif ================================================ FILE: custom_backend/gba/fbg_gba.c ================================================ #include #include #include #include "fbg_gba.h" void fbg_gbaDraw(struct _fbg *fbg); struct _fbg *fbg_gbaSetup(int mode) { struct _fbg_gba_context *gba_context = (struct _fbg_gba_context *)calloc(1, sizeof(struct _fbg_gba_context)); if (!gba_context) { return NULL; } gba_context->mode = mode; *(unsigned int*)0x04000000 = 0x0400 + mode; gba_context->buffer = ((unsigned short*)0x06000000); int width = 240; int height = 160; if (mode == 5) { width = 160; height = 128; } struct _fbg *fbg = fbg_customSetup(width, height, 3, 0, 0, (void *)gba_context, fbg_gbaDraw, NULL, NULL, NULL); if (!fbg) { return NULL; } fbg->back_buffer = calloc(1, fbg->size * sizeof(char)); if (!fbg->back_buffer) { return NULL; } return fbg; } void fbg_gbaDraw(struct _fbg *fbg) { struct _fbg_gba_context *gba_context = fbg->user_context; int x, y; for (x = 0; x < 240; ++x) { for (y = 0; y < 160; ++y) { int index = x + y * 240; int red = fbg->back_buffer[index * fbg->components]; int green = fbg->back_buffer[index * fbg->components + 1]; int blue = fbg->back_buffer[index * fbg->components + 2]; gba_context->buffer[index] = (((red >> 3) & 31) | (((green >> 3) & 31) << 5) | (((blue >> 3) & 31) << 10)); } } } ================================================ FILE: custom_backend/gba/fbg_gba.h ================================================ /* Copyright (c) 2019, 2020 Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef FB_GRAPHICS_GBA_H #define FB_GRAPHICS_GBA_H #include "fbgraphics.h" //! fbdev wrapper data structure struct _fbg_gba_context { int mode; unsigned short *buffer; }; //! initialize a FB Graphics context /*! \param mode GBA bitmap modes (3 = 240x160x16, 4 = 240x160x8 page flip, 5 = 160x128x16 page flip) \return _fbg structure pointer to pass to any FBG library functions */ extern struct _fbg *fbg_gbaSetup(int mode); #endif ================================================ FILE: custom_backend/gba_example.c ================================================ // may need devkitpro / devkitarm // https://github.com/JamieDStewart/GBA_VSCode_Basic #include "gba/fbg_gba.h" int main() { struct _fbg *fbg = fbg_gbaSetup(3); fbg_line(fbg, 0, 0, fbg->width, fbg->height, 255, 0, 0); while (1) { fbg_draw(fbg); } return 0; } ================================================ FILE: custom_backend/glfw/fbg_glfw.c ================================================ #include #include #include "fbg_glfw.h" const GLfloat fbg_glfwQuad[] = { -1.0f, 1.0f, 0.0f, -1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 0.0f, // vertices 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f }; // UV const char *fbg_glfwSimpleVs = "#version 330\n \ layout(location = 0) in vec3 vp; \ layout(location = 1) in vec2 vu; \ out vec2 uv; \ void main() { \ uv = vu; \ gl_Position = vec4(vp, 1.0); \ }"; const char *fbg_glfwSimpleFs = "#version 330\n \ in vec2 uv; \ out vec4 final_color; \ uniform sampler2D t0; \ void main() { \ final_color = texture(t0, uv); \ }"; const char *fbg_glfwDownsampleFs = "#version 330\n \ in vec2 uv; \ out vec4 final_color; \ uniform sampler2D t0; \ uniform int ssaa; \ void main() { \ vec3 accum = vec3(0., 0., 0.); \ vec2 target_res = textureSize(t0, 0) / ssaa; \ float x_subpix_off = 1.0 / (target_res.x * float(ssaa)); \ float y_subpix_off = 1.0 / (target_res.y * float(ssaa)); \ for (int i=0; i < ssaa; i++) { \ for (int j=0; j < ssaa; j++) { \ vec2 sample_uv = vec2(uv.x + float(i) * x_subpix_off, uv.y + float(j) * y_subpix_off); \ accum += texture2D(t0, sample_uv).rgb; \ } \ } \ vec3 final = accum / (floor(float(ssaa)) * floor(float(ssaa))); \ final_color = vec4(final, 0.); \ }"; struct _fbg **fbg_contexts = NULL; int fbg_contexts_count = 0; void fbg_glfwDraw(struct _fbg *fbg); void fbg_glfwFlip(struct _fbg *fbg); void fbg_glfwFree(struct _fbg *fbg); void GLAPIENTRY fbg_debugGlCb(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam ) { fprintf(stderr, "GL CALLBACK: %s type = 0x%x, severity = 0x%x, message = %s\n", ( type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : "" ), type, severity, message); } void fbg_glfwFramebufferResizeCb(GLFWwindow* window, int new_width, int new_height) { int i = 0; for (i = 0; i < fbg_contexts_count; i += 1) { struct _fbg *fbg = fbg_contexts[i]; struct _fbg_glfw_context *glfw_context = fbg->user_context; if (glfw_context->window == window) { fbg_pushResize(fbg, new_width * glfw_context->ssaa, new_height * glfw_context->ssaa); // called from fbg_resize //fbg_glfwResize(fbg, new_width, new_height); break; } } } struct _fbg *fbg_glfwSetup(int width, int height, int components, const char *title, int monitor_id, int fullscreen, int ssaa) { struct _fbg_glfw_context *glfw_context = (struct _fbg_glfw_context *)calloc(1, sizeof(struct _fbg_glfw_context)); if (!glfw_context) { fprintf(stderr, "fbg_glfwSetup: glfw context calloc failed!\n"); return NULL; } GLFWmonitor *monitor = NULL; GLFWwindow *share = NULL; if (!glfwInit()) { fprintf(stderr, "fbg_glfwSetup : glfwInit failed!\n"); } glfwWindowHint(GLFW_REFRESH_RATE, 60); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); int monitor_count = 0; int i = 0; GLFWmonitor** monitors = glfwGetMonitors(&monitor_count); for (i = 0; i < monitor_count; i += 1) { if (monitor_id == i) { monitor = monitors[i]; break; } } const GLFWvidmode *window_mode = glfwGetVideoMode(monitor); if (fullscreen == 0) { monitor = NULL; } else if (fullscreen == 2) { width = window_mode->width; height = window_mode->height; } GLFWwindow *window = (void *)glfwCreateWindow(width, height, title, monitor, share); if (!window) { glfwTerminate(); fprintf(stderr, "fbg_glfwSetup : glfwCreateWindow failed!\n"); free(glfw_context); return NULL; } if (fullscreen == 1) { glfwSetWindowMonitor(window, monitor, 0, 0, width, height, window_mode->refreshRate); } glfwMakeContextCurrent(window); GLenum err = glewInit(); if (err != GLEW_OK) { fprintf(stderr, "fbg_glfwSetup : glewInit failed '%s'\n", glewGetErrorString(err)); glfwTerminate(); free(glfw_context); return NULL; } glfwSwapInterval(1); #ifdef DEBUG glEnable(GL_DEBUG_OUTPUT); glDebugMessageCallback(fbg_debugGlCb, 0); #endif glfw_context->window = window; glfw_context->monitor = monitor; glfw_context->simple_program = fbg_glfwCreateProgramFromString(fbg_glfwSimpleVs, ssaa > 1 ? fbg_glfwDownsampleFs : fbg_glfwSimpleFs, 0); glfw_context->fbg_vao = fbg_glfwCreateVAOvu(12, &fbg_glfwQuad[0]); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_ALIGNMENT, 1); glfw_context->width = width; glfw_context->height = height; int fbg_width = width; int fbg_height = height; if (ssaa > 1) { fbg_width *= ssaa; fbg_height *= ssaa; glfw_context->ssaa = ssaa; } else { glfw_context->ssaa = 1; } glUseProgram(glfw_context->simple_program); GLint ssaa_location = glGetUniformLocation(glfw_context->simple_program, "ssaa"); glUniform1i(ssaa_location, glfw_context->ssaa); struct _fbg *fbg = fbg_customSetup(fbg_width, fbg_height, components, 1, 1, (void *)glfw_context, fbg_glfwDraw, fbg_glfwFlip, fbg_glfwResize, fbg_glfwFree); glfw_context->fbg_texture = fbg_glfwCreateTexture(fbg_width, fbg_height, fbg->components == 4 ? GL_RGBA : GL_RGB); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); fbg_contexts_count += 1; // we keep track of fbg contexts globally due to registered callbacks (resize etc.) if (fbg_contexts == NULL) { fbg_contexts = (struct _fbg **)calloc(1, sizeof(struct _fbg *)); if (!fbg_contexts) { fprintf(stderr, "fbg_glfwSetup: fbg_contexts calloc failed!\n"); } else { fbg_contexts[0] = fbg; } } else { fbg_contexts = (struct _fbg **)realloc(fbg_contexts, sizeof(struct _fbg *) * fbg_contexts_count); if (!fbg_contexts) { fprintf(stderr, "fbg_glfwSetup: fbg_contexts realloc failed!\n"); } else { fbg_contexts[fbg_contexts_count - 1] = fbg; } } glfwSetFramebufferSizeCallback(window, fbg_glfwFramebufferResizeCb); return fbg; } void fbg_glfwFullscreen(struct _fbg *fbg, int enable) { struct _fbg_glfw_context *glfw_context = fbg->user_context; const GLFWvidmode *window_mode = glfwGetVideoMode(glfw_context->monitor); if (enable) { glfwSetWindowMonitor(glfw_context->window, glfw_context->monitor, 0, 0, window_mode->width, window_mode->height, window_mode->refreshRate); } else { glfwSetWindowMonitor(glfw_context->window, 0, 0, 0, window_mode->width, window_mode->height, window_mode->refreshRate); } } void fbg_glfwResize(struct _fbg *fbg, unsigned int new_width, unsigned new_height) { struct _fbg_glfw_context *glfw_context = fbg->user_context; // we keep a copy of user defined parameters for the fbg_texture (in case it changed) GLint mag_filter, min_filter, swrap_mode, twrap_mode; glBindTexture(GL_TEXTURE_2D, glfw_context->fbg_texture); glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, &mag_filter); glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, &min_filter); glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, &swrap_mode); glGetTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, &twrap_mode); glDeleteTextures(1, &glfw_context->fbg_texture); glfw_context->fbg_texture = fbg_glfwCreateTexture(new_width, new_height, fbg->components == 4 ? GL_RGBA : GL_RGB); // and we restore its user defined parameters again (if any) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, mag_filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, min_filter); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, swrap_mode); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, twrap_mode); glViewport(0, 0, new_width / glfw_context->ssaa, new_height / glfw_context->ssaa); } int fbg_glfwShouldClose(struct _fbg *fbg) { struct _fbg_glfw_context *glfw_context = fbg->user_context; return glfwWindowShouldClose(glfw_context->window); } void fbg_glfwUpdateBuffer(struct _fbg *fbg) { if (fbg->components == 4) { glReadPixels(0, 0, fbg->width, fbg->height, GL_RGBA, GL_UNSIGNED_BYTE, fbg->back_buffer); } else if (fbg->components == 3) { glReadPixels(0, 0, fbg->width, fbg->height, GL_RGB, GL_UNSIGNED_BYTE, fbg->back_buffer); } } void fbg_glfwClear() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } void fbg_glfwDraw(struct _fbg *fbg) { struct _fbg_glfw_context *glfw_context = fbg->user_context; glBindVertexArray(glfw_context->fbg_vao); glUseProgram(glfw_context->simple_program); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, glfw_context->fbg_texture); if (fbg->components == 4) { glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, fbg->width, fbg->height, GL_RGBA, GL_UNSIGNED_BYTE, fbg->back_buffer); } else if (fbg->components == 3) { glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, fbg->width, fbg->height, GL_RGB, GL_UNSIGNED_BYTE, fbg->back_buffer); } glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glBindVertexArray(0); glUseProgram(0); } void fbg_glfwFlip(struct _fbg *fbg) { struct _fbg_glfw_context *glfw_context = fbg->user_context; glfwSwapBuffers(glfw_context->window); glfwPollEvents(); } void fbg_glfwFree(struct _fbg *fbg) { struct _fbg_glfw_context *glfw_context = fbg->user_context; // remove the fbg context in our own contexts list struct _fbg **fbg_contexts_tmp = NULL; fbg_contexts_count -= 1; if (fbg_contexts_count == 0) { free(fbg_contexts); fbg_contexts = NULL; } else { fbg_contexts_tmp = (struct _fbg **)calloc(fbg_contexts_count, sizeof(struct _fbg *)); if (!fbg_contexts) { fprintf(stderr, "fbg_glfwFree: fbg_contexts calloc failed!\n"); } } int i = 0, k = 0; for (i = 0; i < fbg_contexts_count; i += 1) { struct _fbg *ctx = fbg_contexts[i]; if (ctx != fbg) { fbg_contexts_tmp[k] = ctx; k += 1; } } free(fbg_contexts); fbg_contexts = fbg_contexts_tmp; // glDeleteTextures(1, &glfw_context->fbg_texture); glDeleteVertexArrays(1, &glfw_context->fbg_vao); glDeleteProgram(glfw_context->simple_program); glfwTerminate(); free(glfw_context); } GLuint fbg_glfwCreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img) { GLuint texture = fbg_glfwCreateTexture(img->width, img->height, fbg->components == 4 ? GL_RGBA : GL_RGB); if (fbg->components == 4) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, img->width, img->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, img->data); } else if (fbg->components == 3) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->data); } return texture; } GLuint fbg_glfwCreateTexture(GLuint width, GLuint height, GLint internal_format) { GLuint texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, internal_format, GL_UNSIGNED_BYTE, 0); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); return texture; } GLuint fbg_glfwCreateFBO(GLuint texture) { GLuint fbo = 0; glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texture, 0); GLenum drawBuffers[2] = { GL_COLOR_ATTACHMENT0 }; glDrawBuffers(1, drawBuffers); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { fprintf(stderr, "fbg_glfwCreateFBO : glCheckFramebufferStatus failed!\n"); } glBindFramebuffer(GL_FRAMEBUFFER, 0); return fbo; } GLuint fbg_glfwCreateVAOvu(GLsizeiptr data_count, const GLvoid *data) { GLuint vbo = 0; GLuint vao = 0; glGenVertexArrays(1, &vao); glBindVertexArray(vao); glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); // Vertices + UV glBufferData(GL_ARRAY_BUFFER, (data_count + (data_count / 3) * 2) * sizeof(GLfloat), data, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*)0); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*) (data_count * sizeof(GLfloat))); glBindVertexArray(0); glDeleteBuffers(1, &vbo); return vao; } GLuint fbg_glfwCreateVAO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data) { GLuint vbo = 0; GLuint tbo = 0; GLuint ibo = 0; GLuint nbo = 0; GLuint cbo = 0; GLuint vao = 0; glGenVertexArrays(1, &vao); glBindVertexArray(vao); glGenBuffers(1, &ibo); // Vertices glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, vertices_count * 3 * sizeof(GLfloat), vertices_data, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*)0); glEnableVertexAttribArray(0); int attrib_id = 1; // UVs if (texcoords_data) { glGenBuffers(1, &tbo); glBindBuffer(GL_ARRAY_BUFFER, tbo); glBufferData(GL_ARRAY_BUFFER, texcoords_count * 2 * sizeof(GLfloat), texcoords_data, GL_STATIC_DRAW); glEnableVertexAttribArray(attrib_id); glVertexAttribPointer(attrib_id, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*) 0); attrib_id += 1; } // normals if (normals_data) { glGenBuffers(1, &nbo); glBindBuffer(GL_ARRAY_BUFFER, nbo); glBufferData(GL_ARRAY_BUFFER, normals_count * 3 * sizeof(GLfloat), normals_data, GL_STATIC_DRAW); glEnableVertexAttribArray(attrib_id); glVertexAttribPointer(attrib_id, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*) 0); attrib_id += 1; } // colors if (colors_data) { glGenBuffers(1, &cbo); glBindBuffer(GL_ARRAY_BUFFER, cbo); glBufferData(GL_ARRAY_BUFFER, colors_count * 3 * sizeof(GL_UNSIGNED_BYTE), colors_data, GL_STATIC_DRAW); glEnableVertexAttribArray(attrib_id); glVertexAttribPointer(attrib_id, 3, GL_UNSIGNED_BYTE, GL_FALSE, 0, (GLvoid*) 0); } glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_count * sizeof_indice_type, indices_data, GL_STATIC_DRAW); glBindVertexArray(0); glDeleteBuffers(1, &vbo); glDeleteBuffers(1, &tbo); glDeleteBuffers(1, &ibo); glDeleteBuffers(1, &nbo); glDeleteBuffers(1, &cbo); return vao; } void fbg_glfwPrintShaderLog(GLuint obj, int type) { static char log[16384]; if (type == 0) { glGetProgramInfoLog(obj, 16384, 0, log); } else if (type == 1) { glGetShaderInfoLog(obj, 16384, 0, log); } log[16383] = 0; fprintf(stderr, "fbg_glfwPrintShaderLog : BEGIN:\n%s\nEND.\n", log); } GLuint fbg_glfwCreateShader(GLenum type, const GLchar *source) { GLuint shader; GLint status; shader = glCreateShader(type); glShaderSource(shader, 1, (const GLchar**)&source, NULL); glCompileShader(shader); glGetShaderiv(shader, GL_COMPILE_STATUS, &status); if (status != GL_TRUE) { fprintf(stderr, "fbg_glfwCreateShader : Failed to compile shader '%s'!\n", source); fbg_glfwPrintShaderLog(shader, 1); glDeleteShader(shader); return 0; } return shader; } GLuint fbg_glfwCreateShaderFromFile(GLenum type, const char *filename) { FILE *file = fopen(filename, "rt"); if (!file) { fprintf(stderr, "fbg_glfwCreateShaderFromFile : Failed to open shader file '%s'!\n", filename); return 0; } fseek(file, 0, SEEK_END); long size = ftell(file); GLchar *source = (GLchar*)malloc(size + 1); if (!source) { fprintf(stderr, "fbg_glfwCreateShaderFromFile : Malloc failed for '%s'!\n", filename); fclose(file); return 0; } fseek(file, 0, SEEK_SET); source[fread(source, 1, size, file)] = 0; fclose(file); GLuint shader = fbg_glfwCreateShader(type, source); free(source); return shader; } GLuint fbg_glfwCreateProgram(GLuint vertex_shader, GLuint fragment_shader, GLuint geometry_shader) { GLuint program = 0; GLint status; program = glCreateProgram(); if (vertex_shader) { glAttachShader(program, vertex_shader); } if (fragment_shader) { glAttachShader(program, fragment_shader); } if (geometry_shader) { glAttachShader(program, geometry_shader); } glLinkProgram(program); glGetProgramiv(program, GL_LINK_STATUS, &status); if (status != GL_TRUE) { fprintf(stderr, "fbg_glfwCreateProgram : Failed to link program!\n"); fbg_glfwPrintShaderLog(program, 0); glDeleteProgram(program); return 0; } if (vertex_shader) { glDetachShader(program, vertex_shader); } if (fragment_shader) { glDetachShader(program, fragment_shader); } if (geometry_shader) { glDetachShader(program, geometry_shader); } return program; } GLenum fbg_glfwCreateProgramFromFiles(const char *vs, const char *fs, const char *gs) { GLuint id_vs = 0; GLuint id_fs = 0; GLuint id_gs = 0; if (vs) { id_vs = fbg_glfwCreateShaderFromFile(GL_VERTEX_SHADER, vs); } if (fs) { id_fs = fbg_glfwCreateShaderFromFile(GL_FRAGMENT_SHADER, fs); } if (gs) { id_gs = fbg_glfwCreateShaderFromFile(GL_GEOMETRY_SHADER, gs); } GLuint program = fbg_glfwCreateProgram(id_vs, id_fs, id_gs); if (vs) { glDeleteShader(id_vs); } if (fs) { glDeleteShader(id_fs); } if (gs) { glDeleteShader(id_gs); } return program; } GLenum fbg_glfwCreateProgramFromString(const char *vs, const char *fs, const char *gs) { GLuint id_vs = 0; GLuint id_fs = 0; GLuint id_gs = 0; if (vs) { id_vs = fbg_glfwCreateShader(GL_VERTEX_SHADER, vs); } if (fs) { id_fs = fbg_glfwCreateShader(GL_FRAGMENT_SHADER, fs); } if (gs) { id_gs = fbg_glfwCreateShader(GL_GEOMETRY_SHADER, gs); } GLuint program = fbg_glfwCreateProgram(id_vs, id_fs, id_gs); if (vs) { glDeleteShader(id_vs); } if (fs) { glDeleteShader(id_fs); } if (gs) { glDeleteShader(id_gs); } return program; } ================================================ FILE: custom_backend/glfw/fbg_glfw.h ================================================ /* Copyright (c) 2018, Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef FB_GRAPHICS_GLFW_H #define FB_GRAPHICS_GLFW_H #include #include #include "fbgraphics.h" //! GLFW wrapper data structure struct _fbg_glfw_context { //! GLFW window GLFWwindow *window; //! GLFW monitor GLFWmonitor *monitor; //! Simple GLSL program (screen-aligned textured quad) GLenum simple_program; //! FBG VAO GLuint fbg_vao; //! FBG texture (updated at each frames) GLuint fbg_texture; //! tell wether fbg_glfw should update fbg disp_buffer after rendering int update_buffer; //! context width int width; //! context height int height; //! upscale factor for the fbg buffer (serve off as antialiasing; the fbg buffer is downscaled to display size) int ssaa; }; //! Simple quad geometry (vertices + UV) extern const GLfloat fbg_glfwQuad[]; //! Simple vertex shader (screen quad, vertices + UV) extern const char *fbg_glfwSimpleVs; //! Simple textured fragment shader extern const char *fbg_glfwSimpleFs; //! initialize a FB Graphics OpenGL context (GLFW library) /*! \param width window width \param height window height \param components fbg context color components (4 for RGBA or 3 for RGB) \param title window title \param monitor monitor id (0 = primary display) \param fullscreen 0 = windowed, 1 = fullscreen, 2 = windowed full screen \param ssaa the resolution factor of the fbg context (not OpenGL), mainly for antiliasing, note that you may need to use the glfw_context->width then to refer to the display width instead of fbg->width which will be the internal resolution \return FBG data structure pointer */ extern struct _fbg *fbg_glfwSetup(int width, int height, int components, const char *title, int monitor, int fullscreen, int ssaa); //! OpenGL clear extern void fbg_glfwClear(); //! this update FBG disp_buffer with the actual rendered OpenGL content /*! \param fbg pointer to a FBG context / data structure */ extern void fbg_glfwUpdateBuffer(struct _fbg *fbg); //! Query the user requested (window close etc) close status /*! \param fbg pointer to a FBG context / data structure \return Boolean indicating close status */ extern int fbg_glfwShouldClose(struct _fbg *fbg); //! Switch to fullscreen or windowed mode /*! \param fbg pointer to a FBG context / data structure \param enable Boolean indicating windowed or fullscreen */ extern void fbg_glfwFullscreen(struct _fbg *fbg, int enable); //! Display resize /*! \param fbg pointer to a FBG context / data structure \param new_width new display width \param new_height new display height */ extern void fbg_glfwResize(struct _fbg *fbg, unsigned int new_width, unsigned new_height); //! create a non-interpolated (NEAREST) GL texture from a FBG image /*! \param fbg pointer to a FBG context / data structure \param img image structure pointer \return GL texture id */ GLuint fbg_glfwCreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img); //-- A SET OF RAW OPENGL UTILITY FUNCTIONS -- //! create an empty non-interpolated (NEAREST) GL texture /*! \param width width of the requested texture \param height height of the requested texture \param internal_format OpenGL format (GL_RGBA etc.) \return GL texture id */ extern GLuint fbg_glfwCreateTexture(GLuint width, GLuint height, GLint internal_format); //! create a VAO from indexed data, support for vertices, UVs, normals and colors /*! \param indices_count indices count \param indices_data data containing indices \param sizeof_indice_type sizeof indice type \param vertices_count vertices count \param vertices_data data containing vertices \param texcoords_count uv count \param texcoords_data data containing uv \param normals_count normals count \param normals_data data containing normals \param colors_count colors count \param colors_data data containing colors \return GL VAO id */ extern GLuint fbg_glfwCreateVAO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data); //! create a VAO from vertices + UV data packed into a single array /*! \param data_count vertices data count \param data data containing all vertices (set of 3 x float) then all associated UVs (set of 2 x float) \return GL VAO id */ extern GLuint fbg_glfwCreateVAOvu(GLsizeiptr data_count, const GLvoid *data); //! create a FBO /*! \param texture GL texture id \return GL FBO id */ extern GLuint fbg_glfwCreateFBO(GLuint texture); //! create a single shader /*! \param type GL shader type \param source shader code \return GL shader id */ extern GLuint fbg_glfwCreateShader(GLenum type, const GLchar *source); //! create a shader from the content of a file /*! \param type GL shader type \param filename file to load \return GL shader id */ extern GLuint fbg_glfwCreateShaderFromFile(GLenum type, const char *filename); //! create a vertex and/or fragment program /*! \param vertex_shader vertex shader id, can be 0 \param fragment_shader fragment shader id, can be 0 \param geometry_shader geometry shader id, can be 0 \return GL shader id */ extern GLuint fbg_glfwCreateProgram(GLuint vertex_shader, GLuint fragment_shader, GLuint geometry_shader); //! create a vertex and/or fragment/geometry program from a file /*! \param vs vertex shader file \param fs fragment shader file \param gs geometry shader file \return GL shader id */ extern GLenum fbg_glfwCreateProgramFromFiles(const char *vs, const char *fs, const char *gs); //! create a vertex and/or fragment/geometry program from a string /*! \param vs vertex shader string \param fs fragment shader string \param gs geometry shader string \return GL shader id */ extern GLenum fbg_glfwCreateProgramFromString(const char *vs, const char *fs, const char *gs); #endif ================================================ FILE: custom_backend/glfw/glew/glew.c ================================================ /* ** The OpenGL Extension Wrangler Library ** Copyright (C) 2008-2017, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev ** All rights reserved. ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** ** * Redistributions of source code must retain the above copyright notice, ** this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright notice, ** this list of conditions and the following disclaimer in the documentation ** and/or other materials provided with the distribution. ** * The name of the author may be used to endorse or promote products ** derived from this software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ** THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef GLEW_INCLUDE #include #else #include GLEW_INCLUDE #endif #if defined(GLEW_OSMESA) # define GLAPI extern # include #elif defined(GLEW_EGL) # include #elif defined(_WIN32) /* * If NOGDI is defined, wingdi.h won't be included by windows.h, and thus * wglGetProcAddress won't be declared. It will instead be implicitly declared, * potentially incorrectly, which we don't want. */ # if defined(NOGDI) # undef NOGDI # endif # include #elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) # include #endif #include /* For size_t */ #if defined(GLEW_EGL) #elif defined(GLEW_REGAL) /* In GLEW_REGAL mode we call direcly into the linked libRegal.so glGetProcAddressREGAL for looking up the GL function pointers. */ # undef glGetProcAddressREGAL # ifdef WIN32 extern void * __stdcall glGetProcAddressREGAL(const GLchar *name); static void * (__stdcall * regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL; # else extern void * glGetProcAddressREGAL(const GLchar *name); static void * (*regalGetProcAddress) (const GLchar *) = glGetProcAddressREGAL; # endif # define glGetProcAddressREGAL GLEW_GET_FUN(__glewGetProcAddressREGAL) #elif defined(__sgi) || defined (__sun) || defined(__HAIKU__) || defined(GLEW_APPLE_GLX) #include #include #include void* dlGetProcAddress (const GLubyte* name) { static void* h = NULL; static void* gpa; if (h == NULL) { if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL; gpa = dlsym(h, "glXGetProcAddress"); } if (gpa != NULL) return ((void*(*)(const GLubyte*))gpa)(name); else return dlsym(h, (const char*)name); } #endif /* __sgi || __sun || GLEW_APPLE_GLX */ #if defined(__APPLE__) #include #include #include #ifdef MAC_OS_X_VERSION_10_3 #include void* NSGLGetProcAddress (const GLubyte *name) { static void* image = NULL; void* addr; if (NULL == image) { image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY); } if( !image ) return NULL; addr = dlsym(image, (const char*)name); if( addr ) return addr; #ifdef GLEW_APPLE_GLX return dlGetProcAddress( name ); // try next for glx symbols #else return NULL; #endif } #else #include void* NSGLGetProcAddress (const GLubyte *name) { static const struct mach_header* image = NULL; NSSymbol symbol; char* symbolName; if (NULL == image) { image = NSAddImage("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", NSADDIMAGE_OPTION_RETURN_ON_ERROR); } /* prepend a '_' for the Unix C symbol mangling convention */ symbolName = malloc(strlen((const char*)name) + 2); strcpy(symbolName+1, (const char*)name); symbolName[0] = '_'; symbol = NULL; /* if (NSIsSymbolNameDefined(symbolName)) symbol = NSLookupAndBindSymbol(symbolName); */ symbol = image ? NSLookupSymbolInImage(image, symbolName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) : NULL; free(symbolName); if( symbol ) return NSAddressOfSymbol(symbol); #ifdef GLEW_APPLE_GLX return dlGetProcAddress( name ); // try next for glx symbols #else return NULL; #endif } #endif /* MAC_OS_X_VERSION_10_3 */ #endif /* __APPLE__ */ /* * Define glewGetProcAddress. */ #if defined(GLEW_REGAL) # define glewGetProcAddress(name) regalGetProcAddress((const GLchar *)name) #elif defined(GLEW_OSMESA) # define glewGetProcAddress(name) OSMesaGetProcAddress((const char *)name) #elif defined(GLEW_EGL) # define glewGetProcAddress(name) eglGetProcAddress((const char *)name) #elif defined(_WIN32) # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) # define glewGetProcAddress(name) NSGLGetProcAddress(name) #elif defined(__sgi) || defined(__sun) || defined(__HAIKU__) # define glewGetProcAddress(name) dlGetProcAddress(name) #elif defined(__ANDROID__) # define glewGetProcAddress(name) NULL /* TODO */ #elif defined(__native_client__) # define glewGetProcAddress(name) NULL /* TODO */ #else /* __linux */ # define glewGetProcAddress(name) (*glXGetProcAddressARB)(name) #endif /* * Redefine GLEW_GET_VAR etc without const cast */ #undef GLEW_GET_VAR # define GLEW_GET_VAR(x) (x) #ifdef WGLEW_GET_VAR # undef WGLEW_GET_VAR # define WGLEW_GET_VAR(x) (x) #endif /* WGLEW_GET_VAR */ #ifdef GLXEW_GET_VAR # undef GLXEW_GET_VAR # define GLXEW_GET_VAR(x) (x) #endif /* GLXEW_GET_VAR */ #ifdef EGLEW_GET_VAR # undef EGLEW_GET_VAR # define EGLEW_GET_VAR(x) (x) #endif /* EGLEW_GET_VAR */ /* * GLEW, just like OpenGL or GLU, does not rely on the standard C library. * These functions implement the functionality required in this file. */ static GLuint _glewStrLen (const GLubyte* s) { GLuint i=0; if (s == NULL) return 0; while (s[i] != '\0') i++; return i; } static GLuint _glewStrCLen (const GLubyte* s, GLubyte c) { GLuint i=0; if (s == NULL) return 0; while (s[i] != '\0' && s[i] != c) i++; return i; } static GLuint _glewStrCopy(char *d, const char *s, char c) { GLuint i=0; if (s == NULL) return 0; while (s[i] != '\0' && s[i] != c) { d[i] = s[i]; i++; } d[i] = '\0'; return i; } #if !defined(GLEW_OSMESA) #if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) static GLboolean _glewStrSame (const GLubyte* a, const GLubyte* b, GLuint n) { GLuint i=0; if(a == NULL || b == NULL) return (a == NULL && b == NULL && n == 0) ? GL_TRUE : GL_FALSE; while (i < n && a[i] != '\0' && b[i] != '\0' && a[i] == b[i]) i++; return i == n ? GL_TRUE : GL_FALSE; } #endif #endif static GLboolean _glewStrSame1 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) { while (*na > 0 && (**a == ' ' || **a == '\n' || **a == '\r' || **a == '\t')) { (*a)++; (*na)--; } if(*na >= nb) { GLuint i=0; while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++; if(i == nb) { *a = *a + nb; *na = *na - nb; return GL_TRUE; } } return GL_FALSE; } static GLboolean _glewStrSame2 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) { if(*na >= nb) { GLuint i=0; while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++; if(i == nb) { *a = *a + nb; *na = *na - nb; return GL_TRUE; } } return GL_FALSE; } static GLboolean _glewStrSame3 (const GLubyte** a, GLuint* na, const GLubyte* b, GLuint nb) { if(*na >= nb) { GLuint i=0; while (i < nb && (*a)+i != NULL && b+i != NULL && (*a)[i] == b[i]) i++; if (i == nb && (*na == nb || (*a)[i] == ' ' || (*a)[i] == '\n' || (*a)[i] == '\r' || (*a)[i] == '\t')) { *a = *a + nb; *na = *na - nb; return GL_TRUE; } } return GL_FALSE; } /* * Search for name in the extensions string. Use of strstr() * is not sufficient because extension names can be prefixes of * other extension names. Could use strtok() but the constant * string returned by glGetString might be in read-only memory. */ #if !defined(GLEW_OSMESA) #if !defined(__APPLE__) || defined(GLEW_APPLE_GLX) static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end) { const GLubyte* p; GLuint len = _glewStrLen((const GLubyte*)name); p = start; while (p < end) { GLuint n = _glewStrCLen(p, ' '); if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; p += n+1; } return GL_FALSE; } #endif #endif PFNGLCOPYTEXSUBIMAGE3DPROC __glewCopyTexSubImage3D = NULL; PFNGLDRAWRANGEELEMENTSPROC __glewDrawRangeElements = NULL; PFNGLTEXIMAGE3DPROC __glewTexImage3D = NULL; PFNGLTEXSUBIMAGE3DPROC __glewTexSubImage3D = NULL; PFNGLACTIVETEXTUREPROC __glewActiveTexture = NULL; PFNGLCLIENTACTIVETEXTUREPROC __glewClientActiveTexture = NULL; PFNGLCOMPRESSEDTEXIMAGE1DPROC __glewCompressedTexImage1D = NULL; PFNGLCOMPRESSEDTEXIMAGE2DPROC __glewCompressedTexImage2D = NULL; PFNGLCOMPRESSEDTEXIMAGE3DPROC __glewCompressedTexImage3D = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC __glewCompressedTexSubImage1D = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC __glewCompressedTexSubImage2D = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC __glewCompressedTexSubImage3D = NULL; PFNGLGETCOMPRESSEDTEXIMAGEPROC __glewGetCompressedTexImage = NULL; PFNGLLOADTRANSPOSEMATRIXDPROC __glewLoadTransposeMatrixd = NULL; PFNGLLOADTRANSPOSEMATRIXFPROC __glewLoadTransposeMatrixf = NULL; PFNGLMULTTRANSPOSEMATRIXDPROC __glewMultTransposeMatrixd = NULL; PFNGLMULTTRANSPOSEMATRIXFPROC __glewMultTransposeMatrixf = NULL; PFNGLMULTITEXCOORD1DPROC __glewMultiTexCoord1d = NULL; PFNGLMULTITEXCOORD1DVPROC __glewMultiTexCoord1dv = NULL; PFNGLMULTITEXCOORD1FPROC __glewMultiTexCoord1f = NULL; PFNGLMULTITEXCOORD1FVPROC __glewMultiTexCoord1fv = NULL; PFNGLMULTITEXCOORD1IPROC __glewMultiTexCoord1i = NULL; PFNGLMULTITEXCOORD1IVPROC __glewMultiTexCoord1iv = NULL; PFNGLMULTITEXCOORD1SPROC __glewMultiTexCoord1s = NULL; PFNGLMULTITEXCOORD1SVPROC __glewMultiTexCoord1sv = NULL; PFNGLMULTITEXCOORD2DPROC __glewMultiTexCoord2d = NULL; PFNGLMULTITEXCOORD2DVPROC __glewMultiTexCoord2dv = NULL; PFNGLMULTITEXCOORD2FPROC __glewMultiTexCoord2f = NULL; PFNGLMULTITEXCOORD2FVPROC __glewMultiTexCoord2fv = NULL; PFNGLMULTITEXCOORD2IPROC __glewMultiTexCoord2i = NULL; PFNGLMULTITEXCOORD2IVPROC __glewMultiTexCoord2iv = NULL; PFNGLMULTITEXCOORD2SPROC __glewMultiTexCoord2s = NULL; PFNGLMULTITEXCOORD2SVPROC __glewMultiTexCoord2sv = NULL; PFNGLMULTITEXCOORD3DPROC __glewMultiTexCoord3d = NULL; PFNGLMULTITEXCOORD3DVPROC __glewMultiTexCoord3dv = NULL; PFNGLMULTITEXCOORD3FPROC __glewMultiTexCoord3f = NULL; PFNGLMULTITEXCOORD3FVPROC __glewMultiTexCoord3fv = NULL; PFNGLMULTITEXCOORD3IPROC __glewMultiTexCoord3i = NULL; PFNGLMULTITEXCOORD3IVPROC __glewMultiTexCoord3iv = NULL; PFNGLMULTITEXCOORD3SPROC __glewMultiTexCoord3s = NULL; PFNGLMULTITEXCOORD3SVPROC __glewMultiTexCoord3sv = NULL; PFNGLMULTITEXCOORD4DPROC __glewMultiTexCoord4d = NULL; PFNGLMULTITEXCOORD4DVPROC __glewMultiTexCoord4dv = NULL; PFNGLMULTITEXCOORD4FPROC __glewMultiTexCoord4f = NULL; PFNGLMULTITEXCOORD4FVPROC __glewMultiTexCoord4fv = NULL; PFNGLMULTITEXCOORD4IPROC __glewMultiTexCoord4i = NULL; PFNGLMULTITEXCOORD4IVPROC __glewMultiTexCoord4iv = NULL; PFNGLMULTITEXCOORD4SPROC __glewMultiTexCoord4s = NULL; PFNGLMULTITEXCOORD4SVPROC __glewMultiTexCoord4sv = NULL; PFNGLSAMPLECOVERAGEPROC __glewSampleCoverage = NULL; PFNGLBLENDCOLORPROC __glewBlendColor = NULL; PFNGLBLENDEQUATIONPROC __glewBlendEquation = NULL; PFNGLBLENDFUNCSEPARATEPROC __glewBlendFuncSeparate = NULL; PFNGLFOGCOORDPOINTERPROC __glewFogCoordPointer = NULL; PFNGLFOGCOORDDPROC __glewFogCoordd = NULL; PFNGLFOGCOORDDVPROC __glewFogCoorddv = NULL; PFNGLFOGCOORDFPROC __glewFogCoordf = NULL; PFNGLFOGCOORDFVPROC __glewFogCoordfv = NULL; PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays = NULL; PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements = NULL; PFNGLPOINTPARAMETERFPROC __glewPointParameterf = NULL; PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv = NULL; PFNGLPOINTPARAMETERIPROC __glewPointParameteri = NULL; PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv = NULL; PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b = NULL; PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv = NULL; PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d = NULL; PFNGLSECONDARYCOLOR3DVPROC __glewSecondaryColor3dv = NULL; PFNGLSECONDARYCOLOR3FPROC __glewSecondaryColor3f = NULL; PFNGLSECONDARYCOLOR3FVPROC __glewSecondaryColor3fv = NULL; PFNGLSECONDARYCOLOR3IPROC __glewSecondaryColor3i = NULL; PFNGLSECONDARYCOLOR3IVPROC __glewSecondaryColor3iv = NULL; PFNGLSECONDARYCOLOR3SPROC __glewSecondaryColor3s = NULL; PFNGLSECONDARYCOLOR3SVPROC __glewSecondaryColor3sv = NULL; PFNGLSECONDARYCOLOR3UBPROC __glewSecondaryColor3ub = NULL; PFNGLSECONDARYCOLOR3UBVPROC __glewSecondaryColor3ubv = NULL; PFNGLSECONDARYCOLOR3UIPROC __glewSecondaryColor3ui = NULL; PFNGLSECONDARYCOLOR3UIVPROC __glewSecondaryColor3uiv = NULL; PFNGLSECONDARYCOLOR3USPROC __glewSecondaryColor3us = NULL; PFNGLSECONDARYCOLOR3USVPROC __glewSecondaryColor3usv = NULL; PFNGLSECONDARYCOLORPOINTERPROC __glewSecondaryColorPointer = NULL; PFNGLWINDOWPOS2DPROC __glewWindowPos2d = NULL; PFNGLWINDOWPOS2DVPROC __glewWindowPos2dv = NULL; PFNGLWINDOWPOS2FPROC __glewWindowPos2f = NULL; PFNGLWINDOWPOS2FVPROC __glewWindowPos2fv = NULL; PFNGLWINDOWPOS2IPROC __glewWindowPos2i = NULL; PFNGLWINDOWPOS2IVPROC __glewWindowPos2iv = NULL; PFNGLWINDOWPOS2SPROC __glewWindowPos2s = NULL; PFNGLWINDOWPOS2SVPROC __glewWindowPos2sv = NULL; PFNGLWINDOWPOS3DPROC __glewWindowPos3d = NULL; PFNGLWINDOWPOS3DVPROC __glewWindowPos3dv = NULL; PFNGLWINDOWPOS3FPROC __glewWindowPos3f = NULL; PFNGLWINDOWPOS3FVPROC __glewWindowPos3fv = NULL; PFNGLWINDOWPOS3IPROC __glewWindowPos3i = NULL; PFNGLWINDOWPOS3IVPROC __glewWindowPos3iv = NULL; PFNGLWINDOWPOS3SPROC __glewWindowPos3s = NULL; PFNGLWINDOWPOS3SVPROC __glewWindowPos3sv = NULL; PFNGLBEGINQUERYPROC __glewBeginQuery = NULL; PFNGLBINDBUFFERPROC __glewBindBuffer = NULL; PFNGLBUFFERDATAPROC __glewBufferData = NULL; PFNGLBUFFERSUBDATAPROC __glewBufferSubData = NULL; PFNGLDELETEBUFFERSPROC __glewDeleteBuffers = NULL; PFNGLDELETEQUERIESPROC __glewDeleteQueries = NULL; PFNGLENDQUERYPROC __glewEndQuery = NULL; PFNGLGENBUFFERSPROC __glewGenBuffers = NULL; PFNGLGENQUERIESPROC __glewGenQueries = NULL; PFNGLGETBUFFERPARAMETERIVPROC __glewGetBufferParameteriv = NULL; PFNGLGETBUFFERPOINTERVPROC __glewGetBufferPointerv = NULL; PFNGLGETBUFFERSUBDATAPROC __glewGetBufferSubData = NULL; PFNGLGETQUERYOBJECTIVPROC __glewGetQueryObjectiv = NULL; PFNGLGETQUERYOBJECTUIVPROC __glewGetQueryObjectuiv = NULL; PFNGLGETQUERYIVPROC __glewGetQueryiv = NULL; PFNGLISBUFFERPROC __glewIsBuffer = NULL; PFNGLISQUERYPROC __glewIsQuery = NULL; PFNGLMAPBUFFERPROC __glewMapBuffer = NULL; PFNGLUNMAPBUFFERPROC __glewUnmapBuffer = NULL; PFNGLATTACHSHADERPROC __glewAttachShader = NULL; PFNGLBINDATTRIBLOCATIONPROC __glewBindAttribLocation = NULL; PFNGLBLENDEQUATIONSEPARATEPROC __glewBlendEquationSeparate = NULL; PFNGLCOMPILESHADERPROC __glewCompileShader = NULL; PFNGLCREATEPROGRAMPROC __glewCreateProgram = NULL; PFNGLCREATESHADERPROC __glewCreateShader = NULL; PFNGLDELETEPROGRAMPROC __glewDeleteProgram = NULL; PFNGLDELETESHADERPROC __glewDeleteShader = NULL; PFNGLDETACHSHADERPROC __glewDetachShader = NULL; PFNGLDISABLEVERTEXATTRIBARRAYPROC __glewDisableVertexAttribArray = NULL; PFNGLDRAWBUFFERSPROC __glewDrawBuffers = NULL; PFNGLENABLEVERTEXATTRIBARRAYPROC __glewEnableVertexAttribArray = NULL; PFNGLGETACTIVEATTRIBPROC __glewGetActiveAttrib = NULL; PFNGLGETACTIVEUNIFORMPROC __glewGetActiveUniform = NULL; PFNGLGETATTACHEDSHADERSPROC __glewGetAttachedShaders = NULL; PFNGLGETATTRIBLOCATIONPROC __glewGetAttribLocation = NULL; PFNGLGETPROGRAMINFOLOGPROC __glewGetProgramInfoLog = NULL; PFNGLGETPROGRAMIVPROC __glewGetProgramiv = NULL; PFNGLGETSHADERINFOLOGPROC __glewGetShaderInfoLog = NULL; PFNGLGETSHADERSOURCEPROC __glewGetShaderSource = NULL; PFNGLGETSHADERIVPROC __glewGetShaderiv = NULL; PFNGLGETUNIFORMLOCATIONPROC __glewGetUniformLocation = NULL; PFNGLGETUNIFORMFVPROC __glewGetUniformfv = NULL; PFNGLGETUNIFORMIVPROC __glewGetUniformiv = NULL; PFNGLGETVERTEXATTRIBPOINTERVPROC __glewGetVertexAttribPointerv = NULL; PFNGLGETVERTEXATTRIBDVPROC __glewGetVertexAttribdv = NULL; PFNGLGETVERTEXATTRIBFVPROC __glewGetVertexAttribfv = NULL; PFNGLGETVERTEXATTRIBIVPROC __glewGetVertexAttribiv = NULL; PFNGLISPROGRAMPROC __glewIsProgram = NULL; PFNGLISSHADERPROC __glewIsShader = NULL; PFNGLLINKPROGRAMPROC __glewLinkProgram = NULL; PFNGLSHADERSOURCEPROC __glewShaderSource = NULL; PFNGLSTENCILFUNCSEPARATEPROC __glewStencilFuncSeparate = NULL; PFNGLSTENCILMASKSEPARATEPROC __glewStencilMaskSeparate = NULL; PFNGLSTENCILOPSEPARATEPROC __glewStencilOpSeparate = NULL; PFNGLUNIFORM1FPROC __glewUniform1f = NULL; PFNGLUNIFORM1FVPROC __glewUniform1fv = NULL; PFNGLUNIFORM1IPROC __glewUniform1i = NULL; PFNGLUNIFORM1IVPROC __glewUniform1iv = NULL; PFNGLUNIFORM2FPROC __glewUniform2f = NULL; PFNGLUNIFORM2FVPROC __glewUniform2fv = NULL; PFNGLUNIFORM2IPROC __glewUniform2i = NULL; PFNGLUNIFORM2IVPROC __glewUniform2iv = NULL; PFNGLUNIFORM3FPROC __glewUniform3f = NULL; PFNGLUNIFORM3FVPROC __glewUniform3fv = NULL; PFNGLUNIFORM3IPROC __glewUniform3i = NULL; PFNGLUNIFORM3IVPROC __glewUniform3iv = NULL; PFNGLUNIFORM4FPROC __glewUniform4f = NULL; PFNGLUNIFORM4FVPROC __glewUniform4fv = NULL; PFNGLUNIFORM4IPROC __glewUniform4i = NULL; PFNGLUNIFORM4IVPROC __glewUniform4iv = NULL; PFNGLUNIFORMMATRIX2FVPROC __glewUniformMatrix2fv = NULL; PFNGLUNIFORMMATRIX3FVPROC __glewUniformMatrix3fv = NULL; PFNGLUNIFORMMATRIX4FVPROC __glewUniformMatrix4fv = NULL; PFNGLUSEPROGRAMPROC __glewUseProgram = NULL; PFNGLVALIDATEPROGRAMPROC __glewValidateProgram = NULL; PFNGLVERTEXATTRIB1DPROC __glewVertexAttrib1d = NULL; PFNGLVERTEXATTRIB1DVPROC __glewVertexAttrib1dv = NULL; PFNGLVERTEXATTRIB1FPROC __glewVertexAttrib1f = NULL; PFNGLVERTEXATTRIB1FVPROC __glewVertexAttrib1fv = NULL; PFNGLVERTEXATTRIB1SPROC __glewVertexAttrib1s = NULL; PFNGLVERTEXATTRIB1SVPROC __glewVertexAttrib1sv = NULL; PFNGLVERTEXATTRIB2DPROC __glewVertexAttrib2d = NULL; PFNGLVERTEXATTRIB2DVPROC __glewVertexAttrib2dv = NULL; PFNGLVERTEXATTRIB2FPROC __glewVertexAttrib2f = NULL; PFNGLVERTEXATTRIB2FVPROC __glewVertexAttrib2fv = NULL; PFNGLVERTEXATTRIB2SPROC __glewVertexAttrib2s = NULL; PFNGLVERTEXATTRIB2SVPROC __glewVertexAttrib2sv = NULL; PFNGLVERTEXATTRIB3DPROC __glewVertexAttrib3d = NULL; PFNGLVERTEXATTRIB3DVPROC __glewVertexAttrib3dv = NULL; PFNGLVERTEXATTRIB3FPROC __glewVertexAttrib3f = NULL; PFNGLVERTEXATTRIB3FVPROC __glewVertexAttrib3fv = NULL; PFNGLVERTEXATTRIB3SPROC __glewVertexAttrib3s = NULL; PFNGLVERTEXATTRIB3SVPROC __glewVertexAttrib3sv = NULL; PFNGLVERTEXATTRIB4NBVPROC __glewVertexAttrib4Nbv = NULL; PFNGLVERTEXATTRIB4NIVPROC __glewVertexAttrib4Niv = NULL; PFNGLVERTEXATTRIB4NSVPROC __glewVertexAttrib4Nsv = NULL; PFNGLVERTEXATTRIB4NUBPROC __glewVertexAttrib4Nub = NULL; PFNGLVERTEXATTRIB4NUBVPROC __glewVertexAttrib4Nubv = NULL; PFNGLVERTEXATTRIB4NUIVPROC __glewVertexAttrib4Nuiv = NULL; PFNGLVERTEXATTRIB4NUSVPROC __glewVertexAttrib4Nusv = NULL; PFNGLVERTEXATTRIB4BVPROC __glewVertexAttrib4bv = NULL; PFNGLVERTEXATTRIB4DPROC __glewVertexAttrib4d = NULL; PFNGLVERTEXATTRIB4DVPROC __glewVertexAttrib4dv = NULL; PFNGLVERTEXATTRIB4FPROC __glewVertexAttrib4f = NULL; PFNGLVERTEXATTRIB4FVPROC __glewVertexAttrib4fv = NULL; PFNGLVERTEXATTRIB4IVPROC __glewVertexAttrib4iv = NULL; PFNGLVERTEXATTRIB4SPROC __glewVertexAttrib4s = NULL; PFNGLVERTEXATTRIB4SVPROC __glewVertexAttrib4sv = NULL; PFNGLVERTEXATTRIB4UBVPROC __glewVertexAttrib4ubv = NULL; PFNGLVERTEXATTRIB4UIVPROC __glewVertexAttrib4uiv = NULL; PFNGLVERTEXATTRIB4USVPROC __glewVertexAttrib4usv = NULL; PFNGLVERTEXATTRIBPOINTERPROC __glewVertexAttribPointer = NULL; PFNGLUNIFORMMATRIX2X3FVPROC __glewUniformMatrix2x3fv = NULL; PFNGLUNIFORMMATRIX2X4FVPROC __glewUniformMatrix2x4fv = NULL; PFNGLUNIFORMMATRIX3X2FVPROC __glewUniformMatrix3x2fv = NULL; PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv = NULL; PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv = NULL; PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv = NULL; PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender = NULL; PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback = NULL; PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation = NULL; PFNGLCLAMPCOLORPROC __glewClampColor = NULL; PFNGLCLEARBUFFERFIPROC __glewClearBufferfi = NULL; PFNGLCLEARBUFFERFVPROC __glewClearBufferfv = NULL; PFNGLCLEARBUFFERIVPROC __glewClearBufferiv = NULL; PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv = NULL; PFNGLCOLORMASKIPROC __glewColorMaski = NULL; PFNGLDISABLEIPROC __glewDisablei = NULL; PFNGLENABLEIPROC __glewEnablei = NULL; PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender = NULL; PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback = NULL; PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v = NULL; PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation = NULL; PFNGLGETSTRINGIPROC __glewGetStringi = NULL; PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv = NULL; PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv = NULL; PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying = NULL; PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv = NULL; PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv = NULL; PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv = NULL; PFNGLISENABLEDIPROC __glewIsEnabledi = NULL; PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv = NULL; PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv = NULL; PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings = NULL; PFNGLUNIFORM1UIPROC __glewUniform1ui = NULL; PFNGLUNIFORM1UIVPROC __glewUniform1uiv = NULL; PFNGLUNIFORM2UIPROC __glewUniform2ui = NULL; PFNGLUNIFORM2UIVPROC __glewUniform2uiv = NULL; PFNGLUNIFORM3UIPROC __glewUniform3ui = NULL; PFNGLUNIFORM3UIVPROC __glewUniform3uiv = NULL; PFNGLUNIFORM4UIPROC __glewUniform4ui = NULL; PFNGLUNIFORM4UIVPROC __glewUniform4uiv = NULL; PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i = NULL; PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv = NULL; PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui = NULL; PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv = NULL; PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i = NULL; PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv = NULL; PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui = NULL; PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv = NULL; PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i = NULL; PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv = NULL; PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui = NULL; PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv = NULL; PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv = NULL; PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i = NULL; PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv = NULL; PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv = NULL; PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv = NULL; PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui = NULL; PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv = NULL; PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv = NULL; PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer = NULL; PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced = NULL; PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced = NULL; PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex = NULL; PFNGLTEXBUFFERPROC __glewTexBuffer = NULL; PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture = NULL; PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v = NULL; PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v = NULL; PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor = NULL; PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei = NULL; PFNGLBLENDEQUATIONIPROC __glewBlendEquationi = NULL; PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei = NULL; PFNGLBLENDFUNCIPROC __glewBlendFunci = NULL; PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading = NULL; PFNGLGETGRAPHICSRESETSTATUSPROC __glewGetGraphicsResetStatus = NULL; PFNGLGETNCOMPRESSEDTEXIMAGEPROC __glewGetnCompressedTexImage = NULL; PFNGLGETNTEXIMAGEPROC __glewGetnTexImage = NULL; PFNGLGETNUNIFORMDVPROC __glewGetnUniformdv = NULL; PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC __glewMultiDrawArraysIndirectCount = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC __glewMultiDrawElementsIndirectCount = NULL; PFNGLSPECIALIZESHADERPROC __glewSpecializeShader = NULL; PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX = NULL; PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD = NULL; PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD = NULL; PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD = NULL; PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD = NULL; PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD = NULL; PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD = NULL; PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD = NULL; PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD = NULL; PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewFramebufferSamplePositionsfvAMD = NULL; PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC __glewGetFramebufferParameterfvAMD = NULL; PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC __glewGetNamedFramebufferParameterfvAMD = NULL; PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC __glewNamedFramebufferSamplePositionsfvAMD = NULL; PFNGLVERTEXATTRIBPARAMETERIAMDPROC __glewVertexAttribParameteriAMD = NULL; PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC __glewMultiDrawArraysIndirectAMD = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC __glewMultiDrawElementsIndirectAMD = NULL; PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD = NULL; PFNGLGENNAMESAMDPROC __glewGenNamesAMD = NULL; PFNGLISNAMEAMDPROC __glewIsNameAMD = NULL; PFNGLQUERYOBJECTPARAMETERUIAMDPROC __glewQueryObjectParameteruiAMD = NULL; PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD = NULL; PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD = NULL; PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD = NULL; PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD = NULL; PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD = NULL; PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD = NULL; PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD = NULL; PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD = NULL; PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD = NULL; PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD = NULL; PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD = NULL; PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD = NULL; PFNGLTEXSTORAGESPARSEAMDPROC __glewTexStorageSparseAMD = NULL; PFNGLTEXTURESTORAGESPARSEAMDPROC __glewTextureStorageSparseAMD = NULL; PFNGLSTENCILOPVALUEAMDPROC __glewStencilOpValueAMD = NULL; PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD = NULL; PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD = NULL; PFNGLBLITFRAMEBUFFERANGLEPROC __glewBlitFramebufferANGLE = NULL; PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC __glewRenderbufferStorageMultisampleANGLE = NULL; PFNGLDRAWARRAYSINSTANCEDANGLEPROC __glewDrawArraysInstancedANGLE = NULL; PFNGLDRAWELEMENTSINSTANCEDANGLEPROC __glewDrawElementsInstancedANGLE = NULL; PFNGLVERTEXATTRIBDIVISORANGLEPROC __glewVertexAttribDivisorANGLE = NULL; PFNGLBEGINQUERYANGLEPROC __glewBeginQueryANGLE = NULL; PFNGLDELETEQUERIESANGLEPROC __glewDeleteQueriesANGLE = NULL; PFNGLENDQUERYANGLEPROC __glewEndQueryANGLE = NULL; PFNGLGENQUERIESANGLEPROC __glewGenQueriesANGLE = NULL; PFNGLGETQUERYOBJECTI64VANGLEPROC __glewGetQueryObjecti64vANGLE = NULL; PFNGLGETQUERYOBJECTIVANGLEPROC __glewGetQueryObjectivANGLE = NULL; PFNGLGETQUERYOBJECTUI64VANGLEPROC __glewGetQueryObjectui64vANGLE = NULL; PFNGLGETQUERYOBJECTUIVANGLEPROC __glewGetQueryObjectuivANGLE = NULL; PFNGLGETQUERYIVANGLEPROC __glewGetQueryivANGLE = NULL; PFNGLISQUERYANGLEPROC __glewIsQueryANGLE = NULL; PFNGLQUERYCOUNTERANGLEPROC __glewQueryCounterANGLE = NULL; PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC __glewGetTranslatedShaderSourceANGLE = NULL; PFNGLCOPYTEXTURELEVELSAPPLEPROC __glewCopyTextureLevelsAPPLE = NULL; PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE = NULL; PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE = NULL; PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE = NULL; PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC __glewMultiDrawElementArrayAPPLE = NULL; PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC __glewMultiDrawRangeElementArrayAPPLE = NULL; PFNGLDELETEFENCESAPPLEPROC __glewDeleteFencesAPPLE = NULL; PFNGLFINISHFENCEAPPLEPROC __glewFinishFenceAPPLE = NULL; PFNGLFINISHOBJECTAPPLEPROC __glewFinishObjectAPPLE = NULL; PFNGLGENFENCESAPPLEPROC __glewGenFencesAPPLE = NULL; PFNGLISFENCEAPPLEPROC __glewIsFenceAPPLE = NULL; PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE = NULL; PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE = NULL; PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE = NULL; PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE = NULL; PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE = NULL; PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC __glewRenderbufferStorageMultisampleAPPLE = NULL; PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC __glewResolveMultisampleFramebufferAPPLE = NULL; PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE = NULL; PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE = NULL; PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE = NULL; PFNGLCLIENTWAITSYNCAPPLEPROC __glewClientWaitSyncAPPLE = NULL; PFNGLDELETESYNCAPPLEPROC __glewDeleteSyncAPPLE = NULL; PFNGLFENCESYNCAPPLEPROC __glewFenceSyncAPPLE = NULL; PFNGLGETINTEGER64VAPPLEPROC __glewGetInteger64vAPPLE = NULL; PFNGLGETSYNCIVAPPLEPROC __glewGetSyncivAPPLE = NULL; PFNGLISSYNCAPPLEPROC __glewIsSyncAPPLE = NULL; PFNGLWAITSYNCAPPLEPROC __glewWaitSyncAPPLE = NULL; PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE = NULL; PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE = NULL; PFNGLBINDVERTEXARRAYAPPLEPROC __glewBindVertexArrayAPPLE = NULL; PFNGLDELETEVERTEXARRAYSAPPLEPROC __glewDeleteVertexArraysAPPLE = NULL; PFNGLGENVERTEXARRAYSAPPLEPROC __glewGenVertexArraysAPPLE = NULL; PFNGLISVERTEXARRAYAPPLEPROC __glewIsVertexArrayAPPLE = NULL; PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeAPPLE = NULL; PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE = NULL; PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE = NULL; PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE = NULL; PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE = NULL; PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE = NULL; PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE = NULL; PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE = NULL; PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE = NULL; PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE = NULL; PFNGLCLEARDEPTHFPROC __glewClearDepthf = NULL; PFNGLDEPTHRANGEFPROC __glewDepthRangef = NULL; PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat = NULL; PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler = NULL; PFNGLSHADERBINARYPROC __glewShaderBinary = NULL; PFNGLMEMORYBARRIERBYREGIONPROC __glewMemoryBarrierByRegion = NULL; PFNGLPRIMITIVEBOUNDINGBOXARBPROC __glewPrimitiveBoundingBoxARB = NULL; PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC __glewDrawArraysInstancedBaseInstance = NULL; PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC __glewDrawElementsInstancedBaseInstance = NULL; PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC __glewDrawElementsInstancedBaseVertexBaseInstance = NULL; PFNGLGETIMAGEHANDLEARBPROC __glewGetImageHandleARB = NULL; PFNGLGETTEXTUREHANDLEARBPROC __glewGetTextureHandleARB = NULL; PFNGLGETTEXTURESAMPLERHANDLEARBPROC __glewGetTextureSamplerHandleARB = NULL; PFNGLGETVERTEXATTRIBLUI64VARBPROC __glewGetVertexAttribLui64vARB = NULL; PFNGLISIMAGEHANDLERESIDENTARBPROC __glewIsImageHandleResidentARB = NULL; PFNGLISTEXTUREHANDLERESIDENTARBPROC __glewIsTextureHandleResidentARB = NULL; PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC __glewMakeImageHandleNonResidentARB = NULL; PFNGLMAKEIMAGEHANDLERESIDENTARBPROC __glewMakeImageHandleResidentARB = NULL; PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC __glewMakeTextureHandleNonResidentARB = NULL; PFNGLMAKETEXTUREHANDLERESIDENTARBPROC __glewMakeTextureHandleResidentARB = NULL; PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC __glewProgramUniformHandleui64ARB = NULL; PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC __glewProgramUniformHandleui64vARB = NULL; PFNGLUNIFORMHANDLEUI64ARBPROC __glewUniformHandleui64ARB = NULL; PFNGLUNIFORMHANDLEUI64VARBPROC __glewUniformHandleui64vARB = NULL; PFNGLVERTEXATTRIBL1UI64ARBPROC __glewVertexAttribL1ui64ARB = NULL; PFNGLVERTEXATTRIBL1UI64VARBPROC __glewVertexAttribL1ui64vARB = NULL; PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed = NULL; PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex = NULL; PFNGLBUFFERSTORAGEPROC __glewBufferStorage = NULL; PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB = NULL; PFNGLCLEARBUFFERDATAPROC __glewClearBufferData = NULL; PFNGLCLEARBUFFERSUBDATAPROC __glewClearBufferSubData = NULL; PFNGLCLEARNAMEDBUFFERDATAEXTPROC __glewClearNamedBufferDataEXT = NULL; PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC __glewClearNamedBufferSubDataEXT = NULL; PFNGLCLEARTEXIMAGEPROC __glewClearTexImage = NULL; PFNGLCLEARTEXSUBIMAGEPROC __glewClearTexSubImage = NULL; PFNGLCLIPCONTROLPROC __glewClipControl = NULL; PFNGLCLAMPCOLORARBPROC __glewClampColorARB = NULL; PFNGLDISPATCHCOMPUTEPROC __glewDispatchCompute = NULL; PFNGLDISPATCHCOMPUTEINDIRECTPROC __glewDispatchComputeIndirect = NULL; PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC __glewDispatchComputeGroupSizeARB = NULL; PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData = NULL; PFNGLCOPYIMAGESUBDATAPROC __glewCopyImageSubData = NULL; PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB = NULL; PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB = NULL; PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB = NULL; PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB = NULL; PFNGLBINDTEXTUREUNITPROC __glewBindTextureUnit = NULL; PFNGLBLITNAMEDFRAMEBUFFERPROC __glewBlitNamedFramebuffer = NULL; PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC __glewCheckNamedFramebufferStatus = NULL; PFNGLCLEARNAMEDBUFFERDATAPROC __glewClearNamedBufferData = NULL; PFNGLCLEARNAMEDBUFFERSUBDATAPROC __glewClearNamedBufferSubData = NULL; PFNGLCLEARNAMEDFRAMEBUFFERFIPROC __glewClearNamedFramebufferfi = NULL; PFNGLCLEARNAMEDFRAMEBUFFERFVPROC __glewClearNamedFramebufferfv = NULL; PFNGLCLEARNAMEDFRAMEBUFFERIVPROC __glewClearNamedFramebufferiv = NULL; PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC __glewClearNamedFramebufferuiv = NULL; PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC __glewCompressedTextureSubImage1D = NULL; PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC __glewCompressedTextureSubImage2D = NULL; PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC __glewCompressedTextureSubImage3D = NULL; PFNGLCOPYNAMEDBUFFERSUBDATAPROC __glewCopyNamedBufferSubData = NULL; PFNGLCOPYTEXTURESUBIMAGE1DPROC __glewCopyTextureSubImage1D = NULL; PFNGLCOPYTEXTURESUBIMAGE2DPROC __glewCopyTextureSubImage2D = NULL; PFNGLCOPYTEXTURESUBIMAGE3DPROC __glewCopyTextureSubImage3D = NULL; PFNGLCREATEBUFFERSPROC __glewCreateBuffers = NULL; PFNGLCREATEFRAMEBUFFERSPROC __glewCreateFramebuffers = NULL; PFNGLCREATEPROGRAMPIPELINESPROC __glewCreateProgramPipelines = NULL; PFNGLCREATEQUERIESPROC __glewCreateQueries = NULL; PFNGLCREATERENDERBUFFERSPROC __glewCreateRenderbuffers = NULL; PFNGLCREATESAMPLERSPROC __glewCreateSamplers = NULL; PFNGLCREATETEXTURESPROC __glewCreateTextures = NULL; PFNGLCREATETRANSFORMFEEDBACKSPROC __glewCreateTransformFeedbacks = NULL; PFNGLCREATEVERTEXARRAYSPROC __glewCreateVertexArrays = NULL; PFNGLDISABLEVERTEXARRAYATTRIBPROC __glewDisableVertexArrayAttrib = NULL; PFNGLENABLEVERTEXARRAYATTRIBPROC __glewEnableVertexArrayAttrib = NULL; PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC __glewFlushMappedNamedBufferRange = NULL; PFNGLGENERATETEXTUREMIPMAPPROC __glewGenerateTextureMipmap = NULL; PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC __glewGetCompressedTextureImage = NULL; PFNGLGETNAMEDBUFFERPARAMETERI64VPROC __glewGetNamedBufferParameteri64v = NULL; PFNGLGETNAMEDBUFFERPARAMETERIVPROC __glewGetNamedBufferParameteriv = NULL; PFNGLGETNAMEDBUFFERPOINTERVPROC __glewGetNamedBufferPointerv = NULL; PFNGLGETNAMEDBUFFERSUBDATAPROC __glewGetNamedBufferSubData = NULL; PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetNamedFramebufferAttachmentParameteriv = NULL; PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC __glewGetNamedFramebufferParameteriv = NULL; PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC __glewGetNamedRenderbufferParameteriv = NULL; PFNGLGETQUERYBUFFEROBJECTI64VPROC __glewGetQueryBufferObjecti64v = NULL; PFNGLGETQUERYBUFFEROBJECTIVPROC __glewGetQueryBufferObjectiv = NULL; PFNGLGETQUERYBUFFEROBJECTUI64VPROC __glewGetQueryBufferObjectui64v = NULL; PFNGLGETQUERYBUFFEROBJECTUIVPROC __glewGetQueryBufferObjectuiv = NULL; PFNGLGETTEXTUREIMAGEPROC __glewGetTextureImage = NULL; PFNGLGETTEXTURELEVELPARAMETERFVPROC __glewGetTextureLevelParameterfv = NULL; PFNGLGETTEXTURELEVELPARAMETERIVPROC __glewGetTextureLevelParameteriv = NULL; PFNGLGETTEXTUREPARAMETERIIVPROC __glewGetTextureParameterIiv = NULL; PFNGLGETTEXTUREPARAMETERIUIVPROC __glewGetTextureParameterIuiv = NULL; PFNGLGETTEXTUREPARAMETERFVPROC __glewGetTextureParameterfv = NULL; PFNGLGETTEXTUREPARAMETERIVPROC __glewGetTextureParameteriv = NULL; PFNGLGETTRANSFORMFEEDBACKI64_VPROC __glewGetTransformFeedbacki64_v = NULL; PFNGLGETTRANSFORMFEEDBACKI_VPROC __glewGetTransformFeedbacki_v = NULL; PFNGLGETTRANSFORMFEEDBACKIVPROC __glewGetTransformFeedbackiv = NULL; PFNGLGETVERTEXARRAYINDEXED64IVPROC __glewGetVertexArrayIndexed64iv = NULL; PFNGLGETVERTEXARRAYINDEXEDIVPROC __glewGetVertexArrayIndexediv = NULL; PFNGLGETVERTEXARRAYIVPROC __glewGetVertexArrayiv = NULL; PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC __glewInvalidateNamedFramebufferData = NULL; PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC __glewInvalidateNamedFramebufferSubData = NULL; PFNGLMAPNAMEDBUFFERPROC __glewMapNamedBuffer = NULL; PFNGLMAPNAMEDBUFFERRANGEPROC __glewMapNamedBufferRange = NULL; PFNGLNAMEDBUFFERDATAPROC __glewNamedBufferData = NULL; PFNGLNAMEDBUFFERSTORAGEPROC __glewNamedBufferStorage = NULL; PFNGLNAMEDBUFFERSUBDATAPROC __glewNamedBufferSubData = NULL; PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC __glewNamedFramebufferDrawBuffer = NULL; PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC __glewNamedFramebufferDrawBuffers = NULL; PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC __glewNamedFramebufferParameteri = NULL; PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC __glewNamedFramebufferReadBuffer = NULL; PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC __glewNamedFramebufferRenderbuffer = NULL; PFNGLNAMEDFRAMEBUFFERTEXTUREPROC __glewNamedFramebufferTexture = NULL; PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC __glewNamedFramebufferTextureLayer = NULL; PFNGLNAMEDRENDERBUFFERSTORAGEPROC __glewNamedRenderbufferStorage = NULL; PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewNamedRenderbufferStorageMultisample = NULL; PFNGLTEXTUREBUFFERPROC __glewTextureBuffer = NULL; PFNGLTEXTUREBUFFERRANGEPROC __glewTextureBufferRange = NULL; PFNGLTEXTUREPARAMETERIIVPROC __glewTextureParameterIiv = NULL; PFNGLTEXTUREPARAMETERIUIVPROC __glewTextureParameterIuiv = NULL; PFNGLTEXTUREPARAMETERFPROC __glewTextureParameterf = NULL; PFNGLTEXTUREPARAMETERFVPROC __glewTextureParameterfv = NULL; PFNGLTEXTUREPARAMETERIPROC __glewTextureParameteri = NULL; PFNGLTEXTUREPARAMETERIVPROC __glewTextureParameteriv = NULL; PFNGLTEXTURESTORAGE1DPROC __glewTextureStorage1D = NULL; PFNGLTEXTURESTORAGE2DPROC __glewTextureStorage2D = NULL; PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC __glewTextureStorage2DMultisample = NULL; PFNGLTEXTURESTORAGE3DPROC __glewTextureStorage3D = NULL; PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC __glewTextureStorage3DMultisample = NULL; PFNGLTEXTURESUBIMAGE1DPROC __glewTextureSubImage1D = NULL; PFNGLTEXTURESUBIMAGE2DPROC __glewTextureSubImage2D = NULL; PFNGLTEXTURESUBIMAGE3DPROC __glewTextureSubImage3D = NULL; PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC __glewTransformFeedbackBufferBase = NULL; PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC __glewTransformFeedbackBufferRange = NULL; PFNGLUNMAPNAMEDBUFFERPROC __glewUnmapNamedBuffer = NULL; PFNGLVERTEXARRAYATTRIBBINDINGPROC __glewVertexArrayAttribBinding = NULL; PFNGLVERTEXARRAYATTRIBFORMATPROC __glewVertexArrayAttribFormat = NULL; PFNGLVERTEXARRAYATTRIBIFORMATPROC __glewVertexArrayAttribIFormat = NULL; PFNGLVERTEXARRAYATTRIBLFORMATPROC __glewVertexArrayAttribLFormat = NULL; PFNGLVERTEXARRAYBINDINGDIVISORPROC __glewVertexArrayBindingDivisor = NULL; PFNGLVERTEXARRAYELEMENTBUFFERPROC __glewVertexArrayElementBuffer = NULL; PFNGLVERTEXARRAYVERTEXBUFFERPROC __glewVertexArrayVertexBuffer = NULL; PFNGLVERTEXARRAYVERTEXBUFFERSPROC __glewVertexArrayVertexBuffers = NULL; PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB = NULL; PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB = NULL; PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB = NULL; PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB = NULL; PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB = NULL; PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex = NULL; PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex = NULL; PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex = NULL; PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex = NULL; PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect = NULL; PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect = NULL; PFNGLFRAMEBUFFERPARAMETERIPROC __glewFramebufferParameteri = NULL; PFNGLGETFRAMEBUFFERPARAMETERIVPROC __glewGetFramebufferParameteriv = NULL; PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC __glewGetNamedFramebufferParameterivEXT = NULL; PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC __glewNamedFramebufferParameteriEXT = NULL; PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer = NULL; PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer = NULL; PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer = NULL; PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus = NULL; PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers = NULL; PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers = NULL; PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer = NULL; PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D = NULL; PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D = NULL; PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D = NULL; PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer = NULL; PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers = NULL; PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers = NULL; PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap = NULL; PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv = NULL; PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv = NULL; PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer = NULL; PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer = NULL; PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage = NULL; PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample = NULL; PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB = NULL; PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB = NULL; PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB = NULL; PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB = NULL; PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary = NULL; PFNGLPROGRAMBINARYPROC __glewProgramBinary = NULL; PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri = NULL; PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC __glewGetCompressedTextureSubImage = NULL; PFNGLGETTEXTURESUBIMAGEPROC __glewGetTextureSubImage = NULL; PFNGLSPECIALIZESHADERARBPROC __glewSpecializeShaderARB = NULL; PFNGLGETUNIFORMDVPROC __glewGetUniformdv = NULL; PFNGLUNIFORM1DPROC __glewUniform1d = NULL; PFNGLUNIFORM1DVPROC __glewUniform1dv = NULL; PFNGLUNIFORM2DPROC __glewUniform2d = NULL; PFNGLUNIFORM2DVPROC __glewUniform2dv = NULL; PFNGLUNIFORM3DPROC __glewUniform3d = NULL; PFNGLUNIFORM3DVPROC __glewUniform3dv = NULL; PFNGLUNIFORM4DPROC __glewUniform4d = NULL; PFNGLUNIFORM4DVPROC __glewUniform4dv = NULL; PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv = NULL; PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv = NULL; PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv = NULL; PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv = NULL; PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv = NULL; PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv = NULL; PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv = NULL; PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv = NULL; PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv = NULL; PFNGLGETUNIFORMI64VARBPROC __glewGetUniformi64vARB = NULL; PFNGLGETUNIFORMUI64VARBPROC __glewGetUniformui64vARB = NULL; PFNGLGETNUNIFORMI64VARBPROC __glewGetnUniformi64vARB = NULL; PFNGLGETNUNIFORMUI64VARBPROC __glewGetnUniformui64vARB = NULL; PFNGLPROGRAMUNIFORM1I64ARBPROC __glewProgramUniform1i64ARB = NULL; PFNGLPROGRAMUNIFORM1I64VARBPROC __glewProgramUniform1i64vARB = NULL; PFNGLPROGRAMUNIFORM1UI64ARBPROC __glewProgramUniform1ui64ARB = NULL; PFNGLPROGRAMUNIFORM1UI64VARBPROC __glewProgramUniform1ui64vARB = NULL; PFNGLPROGRAMUNIFORM2I64ARBPROC __glewProgramUniform2i64ARB = NULL; PFNGLPROGRAMUNIFORM2I64VARBPROC __glewProgramUniform2i64vARB = NULL; PFNGLPROGRAMUNIFORM2UI64ARBPROC __glewProgramUniform2ui64ARB = NULL; PFNGLPROGRAMUNIFORM2UI64VARBPROC __glewProgramUniform2ui64vARB = NULL; PFNGLPROGRAMUNIFORM3I64ARBPROC __glewProgramUniform3i64ARB = NULL; PFNGLPROGRAMUNIFORM3I64VARBPROC __glewProgramUniform3i64vARB = NULL; PFNGLPROGRAMUNIFORM3UI64ARBPROC __glewProgramUniform3ui64ARB = NULL; PFNGLPROGRAMUNIFORM3UI64VARBPROC __glewProgramUniform3ui64vARB = NULL; PFNGLPROGRAMUNIFORM4I64ARBPROC __glewProgramUniform4i64ARB = NULL; PFNGLPROGRAMUNIFORM4I64VARBPROC __glewProgramUniform4i64vARB = NULL; PFNGLPROGRAMUNIFORM4UI64ARBPROC __glewProgramUniform4ui64ARB = NULL; PFNGLPROGRAMUNIFORM4UI64VARBPROC __glewProgramUniform4ui64vARB = NULL; PFNGLUNIFORM1I64ARBPROC __glewUniform1i64ARB = NULL; PFNGLUNIFORM1I64VARBPROC __glewUniform1i64vARB = NULL; PFNGLUNIFORM1UI64ARBPROC __glewUniform1ui64ARB = NULL; PFNGLUNIFORM1UI64VARBPROC __glewUniform1ui64vARB = NULL; PFNGLUNIFORM2I64ARBPROC __glewUniform2i64ARB = NULL; PFNGLUNIFORM2I64VARBPROC __glewUniform2i64vARB = NULL; PFNGLUNIFORM2UI64ARBPROC __glewUniform2ui64ARB = NULL; PFNGLUNIFORM2UI64VARBPROC __glewUniform2ui64vARB = NULL; PFNGLUNIFORM3I64ARBPROC __glewUniform3i64ARB = NULL; PFNGLUNIFORM3I64VARBPROC __glewUniform3i64vARB = NULL; PFNGLUNIFORM3UI64ARBPROC __glewUniform3ui64ARB = NULL; PFNGLUNIFORM3UI64VARBPROC __glewUniform3ui64vARB = NULL; PFNGLUNIFORM4I64ARBPROC __glewUniform4i64ARB = NULL; PFNGLUNIFORM4I64VARBPROC __glewUniform4i64vARB = NULL; PFNGLUNIFORM4UI64ARBPROC __glewUniform4ui64ARB = NULL; PFNGLUNIFORM4UI64VARBPROC __glewUniform4ui64vARB = NULL; PFNGLCOLORSUBTABLEPROC __glewColorSubTable = NULL; PFNGLCOLORTABLEPROC __glewColorTable = NULL; PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv = NULL; PFNGLCOLORTABLEPARAMETERIVPROC __glewColorTableParameteriv = NULL; PFNGLCONVOLUTIONFILTER1DPROC __glewConvolutionFilter1D = NULL; PFNGLCONVOLUTIONFILTER2DPROC __glewConvolutionFilter2D = NULL; PFNGLCONVOLUTIONPARAMETERFPROC __glewConvolutionParameterf = NULL; PFNGLCONVOLUTIONPARAMETERFVPROC __glewConvolutionParameterfv = NULL; PFNGLCONVOLUTIONPARAMETERIPROC __glewConvolutionParameteri = NULL; PFNGLCONVOLUTIONPARAMETERIVPROC __glewConvolutionParameteriv = NULL; PFNGLCOPYCOLORSUBTABLEPROC __glewCopyColorSubTable = NULL; PFNGLCOPYCOLORTABLEPROC __glewCopyColorTable = NULL; PFNGLCOPYCONVOLUTIONFILTER1DPROC __glewCopyConvolutionFilter1D = NULL; PFNGLCOPYCONVOLUTIONFILTER2DPROC __glewCopyConvolutionFilter2D = NULL; PFNGLGETCOLORTABLEPROC __glewGetColorTable = NULL; PFNGLGETCOLORTABLEPARAMETERFVPROC __glewGetColorTableParameterfv = NULL; PFNGLGETCOLORTABLEPARAMETERIVPROC __glewGetColorTableParameteriv = NULL; PFNGLGETCONVOLUTIONFILTERPROC __glewGetConvolutionFilter = NULL; PFNGLGETCONVOLUTIONPARAMETERFVPROC __glewGetConvolutionParameterfv = NULL; PFNGLGETCONVOLUTIONPARAMETERIVPROC __glewGetConvolutionParameteriv = NULL; PFNGLGETHISTOGRAMPROC __glewGetHistogram = NULL; PFNGLGETHISTOGRAMPARAMETERFVPROC __glewGetHistogramParameterfv = NULL; PFNGLGETHISTOGRAMPARAMETERIVPROC __glewGetHistogramParameteriv = NULL; PFNGLGETMINMAXPROC __glewGetMinmax = NULL; PFNGLGETMINMAXPARAMETERFVPROC __glewGetMinmaxParameterfv = NULL; PFNGLGETMINMAXPARAMETERIVPROC __glewGetMinmaxParameteriv = NULL; PFNGLGETSEPARABLEFILTERPROC __glewGetSeparableFilter = NULL; PFNGLHISTOGRAMPROC __glewHistogram = NULL; PFNGLMINMAXPROC __glewMinmax = NULL; PFNGLRESETHISTOGRAMPROC __glewResetHistogram = NULL; PFNGLRESETMINMAXPROC __glewResetMinmax = NULL; PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D = NULL; PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC __glewMultiDrawArraysIndirectCountARB = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC __glewMultiDrawElementsIndirectCountARB = NULL; PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB = NULL; PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB = NULL; PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB = NULL; PFNGLGETINTERNALFORMATIVPROC __glewGetInternalformativ = NULL; PFNGLGETINTERNALFORMATI64VPROC __glewGetInternalformati64v = NULL; PFNGLINVALIDATEBUFFERDATAPROC __glewInvalidateBufferData = NULL; PFNGLINVALIDATEBUFFERSUBDATAPROC __glewInvalidateBufferSubData = NULL; PFNGLINVALIDATEFRAMEBUFFERPROC __glewInvalidateFramebuffer = NULL; PFNGLINVALIDATESUBFRAMEBUFFERPROC __glewInvalidateSubFramebuffer = NULL; PFNGLINVALIDATETEXIMAGEPROC __glewInvalidateTexImage = NULL; PFNGLINVALIDATETEXSUBIMAGEPROC __glewInvalidateTexSubImage = NULL; PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange = NULL; PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange = NULL; PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB = NULL; PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB = NULL; PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB = NULL; PFNGLMATRIXINDEXUIVARBPROC __glewMatrixIndexuivARB = NULL; PFNGLMATRIXINDEXUSVARBPROC __glewMatrixIndexusvARB = NULL; PFNGLBINDBUFFERSBASEPROC __glewBindBuffersBase = NULL; PFNGLBINDBUFFERSRANGEPROC __glewBindBuffersRange = NULL; PFNGLBINDIMAGETEXTURESPROC __glewBindImageTextures = NULL; PFNGLBINDSAMPLERSPROC __glewBindSamplers = NULL; PFNGLBINDTEXTURESPROC __glewBindTextures = NULL; PFNGLBINDVERTEXBUFFERSPROC __glewBindVertexBuffers = NULL; PFNGLMULTIDRAWARRAYSINDIRECTPROC __glewMultiDrawArraysIndirect = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTPROC __glewMultiDrawElementsIndirect = NULL; PFNGLSAMPLECOVERAGEARBPROC __glewSampleCoverageARB = NULL; PFNGLACTIVETEXTUREARBPROC __glewActiveTextureARB = NULL; PFNGLCLIENTACTIVETEXTUREARBPROC __glewClientActiveTextureARB = NULL; PFNGLMULTITEXCOORD1DARBPROC __glewMultiTexCoord1dARB = NULL; PFNGLMULTITEXCOORD1DVARBPROC __glewMultiTexCoord1dvARB = NULL; PFNGLMULTITEXCOORD1FARBPROC __glewMultiTexCoord1fARB = NULL; PFNGLMULTITEXCOORD1FVARBPROC __glewMultiTexCoord1fvARB = NULL; PFNGLMULTITEXCOORD1IARBPROC __glewMultiTexCoord1iARB = NULL; PFNGLMULTITEXCOORD1IVARBPROC __glewMultiTexCoord1ivARB = NULL; PFNGLMULTITEXCOORD1SARBPROC __glewMultiTexCoord1sARB = NULL; PFNGLMULTITEXCOORD1SVARBPROC __glewMultiTexCoord1svARB = NULL; PFNGLMULTITEXCOORD2DARBPROC __glewMultiTexCoord2dARB = NULL; PFNGLMULTITEXCOORD2DVARBPROC __glewMultiTexCoord2dvARB = NULL; PFNGLMULTITEXCOORD2FARBPROC __glewMultiTexCoord2fARB = NULL; PFNGLMULTITEXCOORD2FVARBPROC __glewMultiTexCoord2fvARB = NULL; PFNGLMULTITEXCOORD2IARBPROC __glewMultiTexCoord2iARB = NULL; PFNGLMULTITEXCOORD2IVARBPROC __glewMultiTexCoord2ivARB = NULL; PFNGLMULTITEXCOORD2SARBPROC __glewMultiTexCoord2sARB = NULL; PFNGLMULTITEXCOORD2SVARBPROC __glewMultiTexCoord2svARB = NULL; PFNGLMULTITEXCOORD3DARBPROC __glewMultiTexCoord3dARB = NULL; PFNGLMULTITEXCOORD3DVARBPROC __glewMultiTexCoord3dvARB = NULL; PFNGLMULTITEXCOORD3FARBPROC __glewMultiTexCoord3fARB = NULL; PFNGLMULTITEXCOORD3FVARBPROC __glewMultiTexCoord3fvARB = NULL; PFNGLMULTITEXCOORD3IARBPROC __glewMultiTexCoord3iARB = NULL; PFNGLMULTITEXCOORD3IVARBPROC __glewMultiTexCoord3ivARB = NULL; PFNGLMULTITEXCOORD3SARBPROC __glewMultiTexCoord3sARB = NULL; PFNGLMULTITEXCOORD3SVARBPROC __glewMultiTexCoord3svARB = NULL; PFNGLMULTITEXCOORD4DARBPROC __glewMultiTexCoord4dARB = NULL; PFNGLMULTITEXCOORD4DVARBPROC __glewMultiTexCoord4dvARB = NULL; PFNGLMULTITEXCOORD4FARBPROC __glewMultiTexCoord4fARB = NULL; PFNGLMULTITEXCOORD4FVARBPROC __glewMultiTexCoord4fvARB = NULL; PFNGLMULTITEXCOORD4IARBPROC __glewMultiTexCoord4iARB = NULL; PFNGLMULTITEXCOORD4IVARBPROC __glewMultiTexCoord4ivARB = NULL; PFNGLMULTITEXCOORD4SARBPROC __glewMultiTexCoord4sARB = NULL; PFNGLMULTITEXCOORD4SVARBPROC __glewMultiTexCoord4svARB = NULL; PFNGLBEGINQUERYARBPROC __glewBeginQueryARB = NULL; PFNGLDELETEQUERIESARBPROC __glewDeleteQueriesARB = NULL; PFNGLENDQUERYARBPROC __glewEndQueryARB = NULL; PFNGLGENQUERIESARBPROC __glewGenQueriesARB = NULL; PFNGLGETQUERYOBJECTIVARBPROC __glewGetQueryObjectivARB = NULL; PFNGLGETQUERYOBJECTUIVARBPROC __glewGetQueryObjectuivARB = NULL; PFNGLGETQUERYIVARBPROC __glewGetQueryivARB = NULL; PFNGLISQUERYARBPROC __glewIsQueryARB = NULL; PFNGLMAXSHADERCOMPILERTHREADSARBPROC __glewMaxShaderCompilerThreadsARB = NULL; PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB = NULL; PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB = NULL; PFNGLPOLYGONOFFSETCLAMPPROC __glewPolygonOffsetClamp = NULL; PFNGLGETPROGRAMINTERFACEIVPROC __glewGetProgramInterfaceiv = NULL; PFNGLGETPROGRAMRESOURCEINDEXPROC __glewGetProgramResourceIndex = NULL; PFNGLGETPROGRAMRESOURCELOCATIONPROC __glewGetProgramResourceLocation = NULL; PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC __glewGetProgramResourceLocationIndex = NULL; PFNGLGETPROGRAMRESOURCENAMEPROC __glewGetProgramResourceName = NULL; PFNGLGETPROGRAMRESOURCEIVPROC __glewGetProgramResourceiv = NULL; PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex = NULL; PFNGLGETGRAPHICSRESETSTATUSARBPROC __glewGetGraphicsResetStatusARB = NULL; PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB = NULL; PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB = NULL; PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB = NULL; PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB = NULL; PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB = NULL; PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB = NULL; PFNGLGETNMAPIVARBPROC __glewGetnMapivARB = NULL; PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB = NULL; PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB = NULL; PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB = NULL; PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB = NULL; PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB = NULL; PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB = NULL; PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB = NULL; PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB = NULL; PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB = NULL; PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB = NULL; PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB = NULL; PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB = NULL; PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewFramebufferSampleLocationsfvARB = NULL; PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC __glewNamedFramebufferSampleLocationsfvARB = NULL; PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB = NULL; PFNGLBINDSAMPLERPROC __glewBindSampler = NULL; PFNGLDELETESAMPLERSPROC __glewDeleteSamplers = NULL; PFNGLGENSAMPLERSPROC __glewGenSamplers = NULL; PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv = NULL; PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv = NULL; PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv = NULL; PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv = NULL; PFNGLISSAMPLERPROC __glewIsSampler = NULL; PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv = NULL; PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv = NULL; PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf = NULL; PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv = NULL; PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri = NULL; PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv = NULL; PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram = NULL; PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline = NULL; PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv = NULL; PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines = NULL; PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines = NULL; PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog = NULL; PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv = NULL; PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline = NULL; PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d = NULL; PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv = NULL; PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f = NULL; PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv = NULL; PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i = NULL; PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv = NULL; PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui = NULL; PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv = NULL; PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d = NULL; PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv = NULL; PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f = NULL; PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv = NULL; PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i = NULL; PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv = NULL; PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui = NULL; PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv = NULL; PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d = NULL; PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv = NULL; PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f = NULL; PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv = NULL; PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i = NULL; PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv = NULL; PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui = NULL; PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv = NULL; PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d = NULL; PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv = NULL; PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f = NULL; PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv = NULL; PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i = NULL; PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv = NULL; PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui = NULL; PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv = NULL; PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv = NULL; PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv = NULL; PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv = NULL; PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv = NULL; PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv = NULL; PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv = NULL; PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv = NULL; PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv = NULL; PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv = NULL; PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv = NULL; PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv = NULL; PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv = NULL; PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv = NULL; PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv = NULL; PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv = NULL; PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv = NULL; PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv = NULL; PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv = NULL; PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages = NULL; PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline = NULL; PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC __glewGetActiveAtomicCounterBufferiv = NULL; PFNGLBINDIMAGETEXTUREPROC __glewBindImageTexture = NULL; PFNGLMEMORYBARRIERPROC __glewMemoryBarrier = NULL; PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB = NULL; PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB = NULL; PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB = NULL; PFNGLCREATESHADEROBJECTARBPROC __glewCreateShaderObjectARB = NULL; PFNGLDELETEOBJECTARBPROC __glewDeleteObjectARB = NULL; PFNGLDETACHOBJECTARBPROC __glewDetachObjectARB = NULL; PFNGLGETACTIVEUNIFORMARBPROC __glewGetActiveUniformARB = NULL; PFNGLGETATTACHEDOBJECTSARBPROC __glewGetAttachedObjectsARB = NULL; PFNGLGETHANDLEARBPROC __glewGetHandleARB = NULL; PFNGLGETINFOLOGARBPROC __glewGetInfoLogARB = NULL; PFNGLGETOBJECTPARAMETERFVARBPROC __glewGetObjectParameterfvARB = NULL; PFNGLGETOBJECTPARAMETERIVARBPROC __glewGetObjectParameterivARB = NULL; PFNGLGETSHADERSOURCEARBPROC __glewGetShaderSourceARB = NULL; PFNGLGETUNIFORMLOCATIONARBPROC __glewGetUniformLocationARB = NULL; PFNGLGETUNIFORMFVARBPROC __glewGetUniformfvARB = NULL; PFNGLGETUNIFORMIVARBPROC __glewGetUniformivARB = NULL; PFNGLLINKPROGRAMARBPROC __glewLinkProgramARB = NULL; PFNGLSHADERSOURCEARBPROC __glewShaderSourceARB = NULL; PFNGLUNIFORM1FARBPROC __glewUniform1fARB = NULL; PFNGLUNIFORM1FVARBPROC __glewUniform1fvARB = NULL; PFNGLUNIFORM1IARBPROC __glewUniform1iARB = NULL; PFNGLUNIFORM1IVARBPROC __glewUniform1ivARB = NULL; PFNGLUNIFORM2FARBPROC __glewUniform2fARB = NULL; PFNGLUNIFORM2FVARBPROC __glewUniform2fvARB = NULL; PFNGLUNIFORM2IARBPROC __glewUniform2iARB = NULL; PFNGLUNIFORM2IVARBPROC __glewUniform2ivARB = NULL; PFNGLUNIFORM3FARBPROC __glewUniform3fARB = NULL; PFNGLUNIFORM3FVARBPROC __glewUniform3fvARB = NULL; PFNGLUNIFORM3IARBPROC __glewUniform3iARB = NULL; PFNGLUNIFORM3IVARBPROC __glewUniform3ivARB = NULL; PFNGLUNIFORM4FARBPROC __glewUniform4fARB = NULL; PFNGLUNIFORM4FVARBPROC __glewUniform4fvARB = NULL; PFNGLUNIFORM4IARBPROC __glewUniform4iARB = NULL; PFNGLUNIFORM4IVARBPROC __glewUniform4ivARB = NULL; PFNGLUNIFORMMATRIX2FVARBPROC __glewUniformMatrix2fvARB = NULL; PFNGLUNIFORMMATRIX3FVARBPROC __glewUniformMatrix3fvARB = NULL; PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB = NULL; PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB = NULL; PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB = NULL; PFNGLSHADERSTORAGEBLOCKBINDINGPROC __glewShaderStorageBlockBinding = NULL; PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName = NULL; PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName = NULL; PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv = NULL; PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv = NULL; PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex = NULL; PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation = NULL; PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv = NULL; PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv = NULL; PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB = NULL; PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB = NULL; PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB = NULL; PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB = NULL; PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB = NULL; PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB = NULL; PFNGLBUFFERPAGECOMMITMENTARBPROC __glewBufferPageCommitmentARB = NULL; PFNGLTEXPAGECOMMITMENTARBPROC __glewTexPageCommitmentARB = NULL; PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync = NULL; PFNGLDELETESYNCPROC __glewDeleteSync = NULL; PFNGLFENCESYNCPROC __glewFenceSync = NULL; PFNGLGETINTEGER64VPROC __glewGetInteger64v = NULL; PFNGLGETSYNCIVPROC __glewGetSynciv = NULL; PFNGLISSYNCPROC __glewIsSync = NULL; PFNGLWAITSYNCPROC __glewWaitSync = NULL; PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv = NULL; PFNGLPATCHPARAMETERIPROC __glewPatchParameteri = NULL; PFNGLTEXTUREBARRIERPROC __glewTextureBarrier = NULL; PFNGLTEXBUFFERARBPROC __glewTexBufferARB = NULL; PFNGLTEXBUFFERRANGEPROC __glewTexBufferRange = NULL; PFNGLTEXTUREBUFFERRANGEEXTPROC __glewTextureBufferRangeEXT = NULL; PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB = NULL; PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB = NULL; PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC __glewCompressedTexSubImage1DARB = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2DARB = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB = NULL; PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB = NULL; PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv = NULL; PFNGLSAMPLEMASKIPROC __glewSampleMaski = NULL; PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample = NULL; PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample = NULL; PFNGLTEXSTORAGE1DPROC __glewTexStorage1D = NULL; PFNGLTEXSTORAGE2DPROC __glewTexStorage2D = NULL; PFNGLTEXSTORAGE3DPROC __glewTexStorage3D = NULL; PFNGLTEXSTORAGE2DMULTISAMPLEPROC __glewTexStorage2DMultisample = NULL; PFNGLTEXSTORAGE3DMULTISAMPLEPROC __glewTexStorage3DMultisample = NULL; PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC __glewTextureStorage2DMultisampleEXT = NULL; PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC __glewTextureStorage3DMultisampleEXT = NULL; PFNGLTEXTUREVIEWPROC __glewTextureView = NULL; PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v = NULL; PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v = NULL; PFNGLQUERYCOUNTERPROC __glewQueryCounter = NULL; PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback = NULL; PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks = NULL; PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback = NULL; PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks = NULL; PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback = NULL; PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback = NULL; PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback = NULL; PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed = NULL; PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream = NULL; PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed = NULL; PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv = NULL; PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC __glewDrawTransformFeedbackInstanced = NULL; PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC __glewDrawTransformFeedbackStreamInstanced = NULL; PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB = NULL; PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB = NULL; PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB = NULL; PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB = NULL; PFNGLBINDBUFFERBASEPROC __glewBindBufferBase = NULL; PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange = NULL; PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName = NULL; PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv = NULL; PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName = NULL; PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv = NULL; PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v = NULL; PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex = NULL; PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices = NULL; PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding = NULL; PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray = NULL; PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays = NULL; PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays = NULL; PFNGLISVERTEXARRAYPROC __glewIsVertexArray = NULL; PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv = NULL; PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d = NULL; PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv = NULL; PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d = NULL; PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv = NULL; PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d = NULL; PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv = NULL; PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d = NULL; PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv = NULL; PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer = NULL; PFNGLBINDVERTEXBUFFERPROC __glewBindVertexBuffer = NULL; PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC __glewVertexArrayBindVertexBufferEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC __glewVertexArrayVertexAttribBindingEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC __glewVertexArrayVertexAttribFormatEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC __glewVertexArrayVertexAttribIFormatEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC __glewVertexArrayVertexAttribLFormatEXT = NULL; PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC __glewVertexArrayVertexBindingDivisorEXT = NULL; PFNGLVERTEXATTRIBBINDINGPROC __glewVertexAttribBinding = NULL; PFNGLVERTEXATTRIBFORMATPROC __glewVertexAttribFormat = NULL; PFNGLVERTEXATTRIBIFORMATPROC __glewVertexAttribIFormat = NULL; PFNGLVERTEXATTRIBLFORMATPROC __glewVertexAttribLFormat = NULL; PFNGLVERTEXBINDINGDIVISORPROC __glewVertexBindingDivisor = NULL; PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB = NULL; PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB = NULL; PFNGLWEIGHTBVARBPROC __glewWeightbvARB = NULL; PFNGLWEIGHTDVARBPROC __glewWeightdvARB = NULL; PFNGLWEIGHTFVARBPROC __glewWeightfvARB = NULL; PFNGLWEIGHTIVARBPROC __glewWeightivARB = NULL; PFNGLWEIGHTSVARBPROC __glewWeightsvARB = NULL; PFNGLWEIGHTUBVARBPROC __glewWeightubvARB = NULL; PFNGLWEIGHTUIVARBPROC __glewWeightuivARB = NULL; PFNGLWEIGHTUSVARBPROC __glewWeightusvARB = NULL; PFNGLBINDBUFFERARBPROC __glewBindBufferARB = NULL; PFNGLBUFFERDATAARBPROC __glewBufferDataARB = NULL; PFNGLBUFFERSUBDATAARBPROC __glewBufferSubDataARB = NULL; PFNGLDELETEBUFFERSARBPROC __glewDeleteBuffersARB = NULL; PFNGLGENBUFFERSARBPROC __glewGenBuffersARB = NULL; PFNGLGETBUFFERPARAMETERIVARBPROC __glewGetBufferParameterivARB = NULL; PFNGLGETBUFFERPOINTERVARBPROC __glewGetBufferPointervARB = NULL; PFNGLGETBUFFERSUBDATAARBPROC __glewGetBufferSubDataARB = NULL; PFNGLISBUFFERARBPROC __glewIsBufferARB = NULL; PFNGLMAPBUFFERARBPROC __glewMapBufferARB = NULL; PFNGLUNMAPBUFFERARBPROC __glewUnmapBufferARB = NULL; PFNGLBINDPROGRAMARBPROC __glewBindProgramARB = NULL; PFNGLDELETEPROGRAMSARBPROC __glewDeleteProgramsARB = NULL; PFNGLDISABLEVERTEXATTRIBARRAYARBPROC __glewDisableVertexAttribArrayARB = NULL; PFNGLENABLEVERTEXATTRIBARRAYARBPROC __glewEnableVertexAttribArrayARB = NULL; PFNGLGENPROGRAMSARBPROC __glewGenProgramsARB = NULL; PFNGLGETPROGRAMENVPARAMETERDVARBPROC __glewGetProgramEnvParameterdvARB = NULL; PFNGLGETPROGRAMENVPARAMETERFVARBPROC __glewGetProgramEnvParameterfvARB = NULL; PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC __glewGetProgramLocalParameterdvARB = NULL; PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC __glewGetProgramLocalParameterfvARB = NULL; PFNGLGETPROGRAMSTRINGARBPROC __glewGetProgramStringARB = NULL; PFNGLGETPROGRAMIVARBPROC __glewGetProgramivARB = NULL; PFNGLGETVERTEXATTRIBPOINTERVARBPROC __glewGetVertexAttribPointervARB = NULL; PFNGLGETVERTEXATTRIBDVARBPROC __glewGetVertexAttribdvARB = NULL; PFNGLGETVERTEXATTRIBFVARBPROC __glewGetVertexAttribfvARB = NULL; PFNGLGETVERTEXATTRIBIVARBPROC __glewGetVertexAttribivARB = NULL; PFNGLISPROGRAMARBPROC __glewIsProgramARB = NULL; PFNGLPROGRAMENVPARAMETER4DARBPROC __glewProgramEnvParameter4dARB = NULL; PFNGLPROGRAMENVPARAMETER4DVARBPROC __glewProgramEnvParameter4dvARB = NULL; PFNGLPROGRAMENVPARAMETER4FARBPROC __glewProgramEnvParameter4fARB = NULL; PFNGLPROGRAMENVPARAMETER4FVARBPROC __glewProgramEnvParameter4fvARB = NULL; PFNGLPROGRAMLOCALPARAMETER4DARBPROC __glewProgramLocalParameter4dARB = NULL; PFNGLPROGRAMLOCALPARAMETER4DVARBPROC __glewProgramLocalParameter4dvARB = NULL; PFNGLPROGRAMLOCALPARAMETER4FARBPROC __glewProgramLocalParameter4fARB = NULL; PFNGLPROGRAMLOCALPARAMETER4FVARBPROC __glewProgramLocalParameter4fvARB = NULL; PFNGLPROGRAMSTRINGARBPROC __glewProgramStringARB = NULL; PFNGLVERTEXATTRIB1DARBPROC __glewVertexAttrib1dARB = NULL; PFNGLVERTEXATTRIB1DVARBPROC __glewVertexAttrib1dvARB = NULL; PFNGLVERTEXATTRIB1FARBPROC __glewVertexAttrib1fARB = NULL; PFNGLVERTEXATTRIB1FVARBPROC __glewVertexAttrib1fvARB = NULL; PFNGLVERTEXATTRIB1SARBPROC __glewVertexAttrib1sARB = NULL; PFNGLVERTEXATTRIB1SVARBPROC __glewVertexAttrib1svARB = NULL; PFNGLVERTEXATTRIB2DARBPROC __glewVertexAttrib2dARB = NULL; PFNGLVERTEXATTRIB2DVARBPROC __glewVertexAttrib2dvARB = NULL; PFNGLVERTEXATTRIB2FARBPROC __glewVertexAttrib2fARB = NULL; PFNGLVERTEXATTRIB2FVARBPROC __glewVertexAttrib2fvARB = NULL; PFNGLVERTEXATTRIB2SARBPROC __glewVertexAttrib2sARB = NULL; PFNGLVERTEXATTRIB2SVARBPROC __glewVertexAttrib2svARB = NULL; PFNGLVERTEXATTRIB3DARBPROC __glewVertexAttrib3dARB = NULL; PFNGLVERTEXATTRIB3DVARBPROC __glewVertexAttrib3dvARB = NULL; PFNGLVERTEXATTRIB3FARBPROC __glewVertexAttrib3fARB = NULL; PFNGLVERTEXATTRIB3FVARBPROC __glewVertexAttrib3fvARB = NULL; PFNGLVERTEXATTRIB3SARBPROC __glewVertexAttrib3sARB = NULL; PFNGLVERTEXATTRIB3SVARBPROC __glewVertexAttrib3svARB = NULL; PFNGLVERTEXATTRIB4NBVARBPROC __glewVertexAttrib4NbvARB = NULL; PFNGLVERTEXATTRIB4NIVARBPROC __glewVertexAttrib4NivARB = NULL; PFNGLVERTEXATTRIB4NSVARBPROC __glewVertexAttrib4NsvARB = NULL; PFNGLVERTEXATTRIB4NUBARBPROC __glewVertexAttrib4NubARB = NULL; PFNGLVERTEXATTRIB4NUBVARBPROC __glewVertexAttrib4NubvARB = NULL; PFNGLVERTEXATTRIB4NUIVARBPROC __glewVertexAttrib4NuivARB = NULL; PFNGLVERTEXATTRIB4NUSVARBPROC __glewVertexAttrib4NusvARB = NULL; PFNGLVERTEXATTRIB4BVARBPROC __glewVertexAttrib4bvARB = NULL; PFNGLVERTEXATTRIB4DARBPROC __glewVertexAttrib4dARB = NULL; PFNGLVERTEXATTRIB4DVARBPROC __glewVertexAttrib4dvARB = NULL; PFNGLVERTEXATTRIB4FARBPROC __glewVertexAttrib4fARB = NULL; PFNGLVERTEXATTRIB4FVARBPROC __glewVertexAttrib4fvARB = NULL; PFNGLVERTEXATTRIB4IVARBPROC __glewVertexAttrib4ivARB = NULL; PFNGLVERTEXATTRIB4SARBPROC __glewVertexAttrib4sARB = NULL; PFNGLVERTEXATTRIB4SVARBPROC __glewVertexAttrib4svARB = NULL; PFNGLVERTEXATTRIB4UBVARBPROC __glewVertexAttrib4ubvARB = NULL; PFNGLVERTEXATTRIB4UIVARBPROC __glewVertexAttrib4uivARB = NULL; PFNGLVERTEXATTRIB4USVARBPROC __glewVertexAttrib4usvARB = NULL; PFNGLVERTEXATTRIBPOINTERARBPROC __glewVertexAttribPointerARB = NULL; PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB = NULL; PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB = NULL; PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB = NULL; PFNGLCOLORP3UIPROC __glewColorP3ui = NULL; PFNGLCOLORP3UIVPROC __glewColorP3uiv = NULL; PFNGLCOLORP4UIPROC __glewColorP4ui = NULL; PFNGLCOLORP4UIVPROC __glewColorP4uiv = NULL; PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui = NULL; PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv = NULL; PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui = NULL; PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv = NULL; PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui = NULL; PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv = NULL; PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui = NULL; PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv = NULL; PFNGLNORMALP3UIPROC __glewNormalP3ui = NULL; PFNGLNORMALP3UIVPROC __glewNormalP3uiv = NULL; PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui = NULL; PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv = NULL; PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui = NULL; PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv = NULL; PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui = NULL; PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv = NULL; PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui = NULL; PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv = NULL; PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui = NULL; PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv = NULL; PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui = NULL; PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv = NULL; PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui = NULL; PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv = NULL; PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui = NULL; PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv = NULL; PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui = NULL; PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv = NULL; PFNGLVERTEXP2UIPROC __glewVertexP2ui = NULL; PFNGLVERTEXP2UIVPROC __glewVertexP2uiv = NULL; PFNGLVERTEXP3UIPROC __glewVertexP3ui = NULL; PFNGLVERTEXP3UIVPROC __glewVertexP3uiv = NULL; PFNGLVERTEXP4UIPROC __glewVertexP4ui = NULL; PFNGLVERTEXP4UIVPROC __glewVertexP4uiv = NULL; PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv = NULL; PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed = NULL; PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v = NULL; PFNGLGETFLOATI_VPROC __glewGetFloati_v = NULL; PFNGLSCISSORARRAYVPROC __glewScissorArrayv = NULL; PFNGLSCISSORINDEXEDPROC __glewScissorIndexed = NULL; PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv = NULL; PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv = NULL; PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf = NULL; PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv = NULL; PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB = NULL; PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB = NULL; PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB = NULL; PFNGLWINDOWPOS2FVARBPROC __glewWindowPos2fvARB = NULL; PFNGLWINDOWPOS2IARBPROC __glewWindowPos2iARB = NULL; PFNGLWINDOWPOS2IVARBPROC __glewWindowPos2ivARB = NULL; PFNGLWINDOWPOS2SARBPROC __glewWindowPos2sARB = NULL; PFNGLWINDOWPOS2SVARBPROC __glewWindowPos2svARB = NULL; PFNGLWINDOWPOS3DARBPROC __glewWindowPos3dARB = NULL; PFNGLWINDOWPOS3DVARBPROC __glewWindowPos3dvARB = NULL; PFNGLWINDOWPOS3FARBPROC __glewWindowPos3fARB = NULL; PFNGLWINDOWPOS3FVARBPROC __glewWindowPos3fvARB = NULL; PFNGLWINDOWPOS3IARBPROC __glewWindowPos3iARB = NULL; PFNGLWINDOWPOS3IVARBPROC __glewWindowPos3ivARB = NULL; PFNGLWINDOWPOS3SARBPROC __glewWindowPos3sARB = NULL; PFNGLWINDOWPOS3SVARBPROC __glewWindowPos3svARB = NULL; PFNGLDRAWBUFFERSATIPROC __glewDrawBuffersATI = NULL; PFNGLDRAWELEMENTARRAYATIPROC __glewDrawElementArrayATI = NULL; PFNGLDRAWRANGEELEMENTARRAYATIPROC __glewDrawRangeElementArrayATI = NULL; PFNGLELEMENTPOINTERATIPROC __glewElementPointerATI = NULL; PFNGLGETTEXBUMPPARAMETERFVATIPROC __glewGetTexBumpParameterfvATI = NULL; PFNGLGETTEXBUMPPARAMETERIVATIPROC __glewGetTexBumpParameterivATI = NULL; PFNGLTEXBUMPPARAMETERFVATIPROC __glewTexBumpParameterfvATI = NULL; PFNGLTEXBUMPPARAMETERIVATIPROC __glewTexBumpParameterivATI = NULL; PFNGLALPHAFRAGMENTOP1ATIPROC __glewAlphaFragmentOp1ATI = NULL; PFNGLALPHAFRAGMENTOP2ATIPROC __glewAlphaFragmentOp2ATI = NULL; PFNGLALPHAFRAGMENTOP3ATIPROC __glewAlphaFragmentOp3ATI = NULL; PFNGLBEGINFRAGMENTSHADERATIPROC __glewBeginFragmentShaderATI = NULL; PFNGLBINDFRAGMENTSHADERATIPROC __glewBindFragmentShaderATI = NULL; PFNGLCOLORFRAGMENTOP1ATIPROC __glewColorFragmentOp1ATI = NULL; PFNGLCOLORFRAGMENTOP2ATIPROC __glewColorFragmentOp2ATI = NULL; PFNGLCOLORFRAGMENTOP3ATIPROC __glewColorFragmentOp3ATI = NULL; PFNGLDELETEFRAGMENTSHADERATIPROC __glewDeleteFragmentShaderATI = NULL; PFNGLENDFRAGMENTSHADERATIPROC __glewEndFragmentShaderATI = NULL; PFNGLGENFRAGMENTSHADERSATIPROC __glewGenFragmentShadersATI = NULL; PFNGLPASSTEXCOORDATIPROC __glewPassTexCoordATI = NULL; PFNGLSAMPLEMAPATIPROC __glewSampleMapATI = NULL; PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderConstantATI = NULL; PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI = NULL; PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI = NULL; PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI = NULL; PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI = NULL; PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI = NULL; PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI = NULL; PFNGLARRAYOBJECTATIPROC __glewArrayObjectATI = NULL; PFNGLFREEOBJECTBUFFERATIPROC __glewFreeObjectBufferATI = NULL; PFNGLGETARRAYOBJECTFVATIPROC __glewGetArrayObjectfvATI = NULL; PFNGLGETARRAYOBJECTIVATIPROC __glewGetArrayObjectivATI = NULL; PFNGLGETOBJECTBUFFERFVATIPROC __glewGetObjectBufferfvATI = NULL; PFNGLGETOBJECTBUFFERIVATIPROC __glewGetObjectBufferivATI = NULL; PFNGLGETVARIANTARRAYOBJECTFVATIPROC __glewGetVariantArrayObjectfvATI = NULL; PFNGLGETVARIANTARRAYOBJECTIVATIPROC __glewGetVariantArrayObjectivATI = NULL; PFNGLISOBJECTBUFFERATIPROC __glewIsObjectBufferATI = NULL; PFNGLNEWOBJECTBUFFERATIPROC __glewNewObjectBufferATI = NULL; PFNGLUPDATEOBJECTBUFFERATIPROC __glewUpdateObjectBufferATI = NULL; PFNGLVARIANTARRAYOBJECTATIPROC __glewVariantArrayObjectATI = NULL; PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC __glewGetVertexAttribArrayObjectfvATI = NULL; PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC __glewGetVertexAttribArrayObjectivATI = NULL; PFNGLVERTEXATTRIBARRAYOBJECTATIPROC __glewVertexAttribArrayObjectATI = NULL; PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC __glewClientActiveVertexStreamATI = NULL; PFNGLNORMALSTREAM3BATIPROC __glewNormalStream3bATI = NULL; PFNGLNORMALSTREAM3BVATIPROC __glewNormalStream3bvATI = NULL; PFNGLNORMALSTREAM3DATIPROC __glewNormalStream3dATI = NULL; PFNGLNORMALSTREAM3DVATIPROC __glewNormalStream3dvATI = NULL; PFNGLNORMALSTREAM3FATIPROC __glewNormalStream3fATI = NULL; PFNGLNORMALSTREAM3FVATIPROC __glewNormalStream3fvATI = NULL; PFNGLNORMALSTREAM3IATIPROC __glewNormalStream3iATI = NULL; PFNGLNORMALSTREAM3IVATIPROC __glewNormalStream3ivATI = NULL; PFNGLNORMALSTREAM3SATIPROC __glewNormalStream3sATI = NULL; PFNGLNORMALSTREAM3SVATIPROC __glewNormalStream3svATI = NULL; PFNGLVERTEXBLENDENVFATIPROC __glewVertexBlendEnvfATI = NULL; PFNGLVERTEXBLENDENVIATIPROC __glewVertexBlendEnviATI = NULL; PFNGLVERTEXSTREAM1DATIPROC __glewVertexStream1dATI = NULL; PFNGLVERTEXSTREAM1DVATIPROC __glewVertexStream1dvATI = NULL; PFNGLVERTEXSTREAM1FATIPROC __glewVertexStream1fATI = NULL; PFNGLVERTEXSTREAM1FVATIPROC __glewVertexStream1fvATI = NULL; PFNGLVERTEXSTREAM1IATIPROC __glewVertexStream1iATI = NULL; PFNGLVERTEXSTREAM1IVATIPROC __glewVertexStream1ivATI = NULL; PFNGLVERTEXSTREAM1SATIPROC __glewVertexStream1sATI = NULL; PFNGLVERTEXSTREAM1SVATIPROC __glewVertexStream1svATI = NULL; PFNGLVERTEXSTREAM2DATIPROC __glewVertexStream2dATI = NULL; PFNGLVERTEXSTREAM2DVATIPROC __glewVertexStream2dvATI = NULL; PFNGLVERTEXSTREAM2FATIPROC __glewVertexStream2fATI = NULL; PFNGLVERTEXSTREAM2FVATIPROC __glewVertexStream2fvATI = NULL; PFNGLVERTEXSTREAM2IATIPROC __glewVertexStream2iATI = NULL; PFNGLVERTEXSTREAM2IVATIPROC __glewVertexStream2ivATI = NULL; PFNGLVERTEXSTREAM2SATIPROC __glewVertexStream2sATI = NULL; PFNGLVERTEXSTREAM2SVATIPROC __glewVertexStream2svATI = NULL; PFNGLVERTEXSTREAM3DATIPROC __glewVertexStream3dATI = NULL; PFNGLVERTEXSTREAM3DVATIPROC __glewVertexStream3dvATI = NULL; PFNGLVERTEXSTREAM3FATIPROC __glewVertexStream3fATI = NULL; PFNGLVERTEXSTREAM3FVATIPROC __glewVertexStream3fvATI = NULL; PFNGLVERTEXSTREAM3IATIPROC __glewVertexStream3iATI = NULL; PFNGLVERTEXSTREAM3IVATIPROC __glewVertexStream3ivATI = NULL; PFNGLVERTEXSTREAM3SATIPROC __glewVertexStream3sATI = NULL; PFNGLVERTEXSTREAM3SVATIPROC __glewVertexStream3svATI = NULL; PFNGLVERTEXSTREAM4DATIPROC __glewVertexStream4dATI = NULL; PFNGLVERTEXSTREAM4DVATIPROC __glewVertexStream4dvATI = NULL; PFNGLVERTEXSTREAM4FATIPROC __glewVertexStream4fATI = NULL; PFNGLVERTEXSTREAM4FVATIPROC __glewVertexStream4fvATI = NULL; PFNGLVERTEXSTREAM4IATIPROC __glewVertexStream4iATI = NULL; PFNGLVERTEXSTREAM4IVATIPROC __glewVertexStream4ivATI = NULL; PFNGLVERTEXSTREAM4SATIPROC __glewVertexStream4sATI = NULL; PFNGLVERTEXSTREAM4SVATIPROC __glewVertexStream4svATI = NULL; PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC __glewDrawArraysInstancedBaseInstanceEXT = NULL; PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseInstanceEXT = NULL; PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC __glewDrawElementsInstancedBaseVertexBaseInstanceEXT = NULL; PFNGLGETUNIFORMBUFFERSIZEEXTPROC __glewGetUniformBufferSizeEXT = NULL; PFNGLGETUNIFORMOFFSETEXTPROC __glewGetUniformOffsetEXT = NULL; PFNGLUNIFORMBUFFEREXTPROC __glewUniformBufferEXT = NULL; PFNGLBLENDCOLOREXTPROC __glewBlendColorEXT = NULL; PFNGLBLENDEQUATIONSEPARATEEXTPROC __glewBlendEquationSeparateEXT = NULL; PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC __glewBindFragDataLocationIndexedEXT = NULL; PFNGLGETFRAGDATAINDEXEXTPROC __glewGetFragDataIndexEXT = NULL; PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC __glewGetProgramResourceLocationIndexEXT = NULL; PFNGLBLENDFUNCSEPARATEEXTPROC __glewBlendFuncSeparateEXT = NULL; PFNGLBLENDEQUATIONEXTPROC __glewBlendEquationEXT = NULL; PFNGLBUFFERSTORAGEEXTPROC __glewBufferStorageEXT = NULL; PFNGLNAMEDBUFFERSTORAGEEXTPROC __glewNamedBufferStorageEXT = NULL; PFNGLCLEARTEXIMAGEEXTPROC __glewClearTexImageEXT = NULL; PFNGLCLEARTEXSUBIMAGEEXTPROC __glewClearTexSubImageEXT = NULL; PFNGLCOLORSUBTABLEEXTPROC __glewColorSubTableEXT = NULL; PFNGLCOPYCOLORSUBTABLEEXTPROC __glewCopyColorSubTableEXT = NULL; PFNGLLOCKARRAYSEXTPROC __glewLockArraysEXT = NULL; PFNGLUNLOCKARRAYSEXTPROC __glewUnlockArraysEXT = NULL; PFNGLCONVOLUTIONFILTER1DEXTPROC __glewConvolutionFilter1DEXT = NULL; PFNGLCONVOLUTIONFILTER2DEXTPROC __glewConvolutionFilter2DEXT = NULL; PFNGLCONVOLUTIONPARAMETERFEXTPROC __glewConvolutionParameterfEXT = NULL; PFNGLCONVOLUTIONPARAMETERFVEXTPROC __glewConvolutionParameterfvEXT = NULL; PFNGLCONVOLUTIONPARAMETERIEXTPROC __glewConvolutionParameteriEXT = NULL; PFNGLCONVOLUTIONPARAMETERIVEXTPROC __glewConvolutionParameterivEXT = NULL; PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC __glewCopyConvolutionFilter1DEXT = NULL; PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC __glewCopyConvolutionFilter2DEXT = NULL; PFNGLGETCONVOLUTIONFILTEREXTPROC __glewGetConvolutionFilterEXT = NULL; PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC __glewGetConvolutionParameterfvEXT = NULL; PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC __glewGetConvolutionParameterivEXT = NULL; PFNGLGETSEPARABLEFILTEREXTPROC __glewGetSeparableFilterEXT = NULL; PFNGLSEPARABLEFILTER2DEXTPROC __glewSeparableFilter2DEXT = NULL; PFNGLBINORMALPOINTEREXTPROC __glewBinormalPointerEXT = NULL; PFNGLTANGENTPOINTEREXTPROC __glewTangentPointerEXT = NULL; PFNGLCOPYIMAGESUBDATAEXTPROC __glewCopyImageSubDataEXT = NULL; PFNGLCOPYTEXIMAGE1DEXTPROC __glewCopyTexImage1DEXT = NULL; PFNGLCOPYTEXIMAGE2DEXTPROC __glewCopyTexImage2DEXT = NULL; PFNGLCOPYTEXSUBIMAGE1DEXTPROC __glewCopyTexSubImage1DEXT = NULL; PFNGLCOPYTEXSUBIMAGE2DEXTPROC __glewCopyTexSubImage2DEXT = NULL; PFNGLCOPYTEXSUBIMAGE3DEXTPROC __glewCopyTexSubImage3DEXT = NULL; PFNGLCULLPARAMETERDVEXTPROC __glewCullParameterdvEXT = NULL; PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT = NULL; PFNGLGETOBJECTLABELEXTPROC __glewGetObjectLabelEXT = NULL; PFNGLLABELOBJECTEXTPROC __glewLabelObjectEXT = NULL; PFNGLINSERTEVENTMARKEREXTPROC __glewInsertEventMarkerEXT = NULL; PFNGLPOPGROUPMARKEREXTPROC __glewPopGroupMarkerEXT = NULL; PFNGLPUSHGROUPMARKEREXTPROC __glewPushGroupMarkerEXT = NULL; PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT = NULL; PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT = NULL; PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT = NULL; PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT = NULL; PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT = NULL; PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT = NULL; PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT = NULL; PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT = NULL; PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT = NULL; PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT = NULL; PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT = NULL; PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT = NULL; PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT = NULL; PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT = NULL; PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT = NULL; PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT = NULL; PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT = NULL; PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT = NULL; PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT = NULL; PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT = NULL; PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT = NULL; PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT = NULL; PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT = NULL; PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT = NULL; PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT = NULL; PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT = NULL; PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT = NULL; PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT = NULL; PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT = NULL; PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT = NULL; PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT = NULL; PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT = NULL; PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT = NULL; PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT = NULL; PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT = NULL; PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT = NULL; PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT = NULL; PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT = NULL; PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT = NULL; PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT = NULL; PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT = NULL; PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT = NULL; PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT = NULL; PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT = NULL; PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT = NULL; PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT = NULL; PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT = NULL; PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT = NULL; PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT = NULL; PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT = NULL; PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT = NULL; PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT = NULL; PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT = NULL; PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT = NULL; PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT = NULL; PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT = NULL; PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT = NULL; PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT = NULL; PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT = NULL; PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT = NULL; PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT = NULL; PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT = NULL; PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT = NULL; PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT = NULL; PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT = NULL; PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT = NULL; PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT = NULL; PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT = NULL; PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT = NULL; PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT = NULL; PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT = NULL; PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT = NULL; PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT = NULL; PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT = NULL; PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT = NULL; PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT = NULL; PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT = NULL; PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT = NULL; PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT = NULL; PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT = NULL; PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT = NULL; PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT = NULL; PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT = NULL; PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT = NULL; PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT = NULL; PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT = NULL; PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT = NULL; PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT = NULL; PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT = NULL; PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT = NULL; PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT = NULL; PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT = NULL; PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT = NULL; PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT = NULL; PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT = NULL; PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT = NULL; PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT = NULL; PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT = NULL; PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT = NULL; PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT = NULL; PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT = NULL; PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT = NULL; PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT = NULL; PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT = NULL; PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT = NULL; PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT = NULL; PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT = NULL; PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT = NULL; PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT = NULL; PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT = NULL; PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT = NULL; PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT = NULL; PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT = NULL; PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT = NULL; PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT = NULL; PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT = NULL; PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT = NULL; PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT = NULL; PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT = NULL; PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT = NULL; PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT = NULL; PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT = NULL; PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT = NULL; PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT = NULL; PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT = NULL; PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT = NULL; PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT = NULL; PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT = NULL; PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT = NULL; PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT = NULL; PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT = NULL; PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT = NULL; PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT = NULL; PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT = NULL; PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT = NULL; PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT = NULL; PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT = NULL; PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT = NULL; PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT = NULL; PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT = NULL; PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT = NULL; PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT = NULL; PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT = NULL; PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT = NULL; PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT = NULL; PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT = NULL; PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT = NULL; PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT = NULL; PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT = NULL; PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT = NULL; PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT = NULL; PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT = NULL; PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT = NULL; PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT = NULL; PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT = NULL; PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT = NULL; PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT = NULL; PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT = NULL; PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT = NULL; PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT = NULL; PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT = NULL; PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT = NULL; PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT = NULL; PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT = NULL; PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT = NULL; PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT = NULL; PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT = NULL; PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT = NULL; PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT = NULL; PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT = NULL; PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT = NULL; PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT = NULL; PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT = NULL; PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT = NULL; PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT = NULL; PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT = NULL; PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT = NULL; PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT = NULL; PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT = NULL; PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT = NULL; PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT = NULL; PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT = NULL; PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT = NULL; PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT = NULL; PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT = NULL; PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT = NULL; PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT = NULL; PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT = NULL; PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT = NULL; PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT = NULL; PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT = NULL; PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT = NULL; PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC __glewVertexArrayVertexAttribDivisorEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT = NULL; PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT = NULL; PFNGLDISCARDFRAMEBUFFEREXTPROC __glewDiscardFramebufferEXT = NULL; PFNGLDRAWBUFFERSEXTPROC __glewDrawBuffersEXT = NULL; PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT = NULL; PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT = NULL; PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT = NULL; PFNGLGETBOOLEANINDEXEDVEXTPROC __glewGetBooleanIndexedvEXT = NULL; PFNGLGETINTEGERINDEXEDVEXTPROC __glewGetIntegerIndexedvEXT = NULL; PFNGLISENABLEDINDEXEDEXTPROC __glewIsEnabledIndexedEXT = NULL; PFNGLBLENDEQUATIONSEPARATEIEXTPROC __glewBlendEquationSeparateiEXT = NULL; PFNGLBLENDEQUATIONIEXTPROC __glewBlendEquationiEXT = NULL; PFNGLBLENDFUNCSEPARATEIEXTPROC __glewBlendFuncSeparateiEXT = NULL; PFNGLBLENDFUNCIEXTPROC __glewBlendFunciEXT = NULL; PFNGLCOLORMASKIEXTPROC __glewColorMaskiEXT = NULL; PFNGLDISABLEIEXTPROC __glewDisableiEXT = NULL; PFNGLENABLEIEXTPROC __glewEnableiEXT = NULL; PFNGLISENABLEDIEXTPROC __glewIsEnablediEXT = NULL; PFNGLDRAWELEMENTSBASEVERTEXEXTPROC __glewDrawElementsBaseVertexEXT = NULL; PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC __glewDrawElementsInstancedBaseVertexEXT = NULL; PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC __glewDrawRangeElementsBaseVertexEXT = NULL; PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC __glewMultiDrawElementsBaseVertexEXT = NULL; PFNGLDRAWARRAYSINSTANCEDEXTPROC __glewDrawArraysInstancedEXT = NULL; PFNGLDRAWELEMENTSINSTANCEDEXTPROC __glewDrawElementsInstancedEXT = NULL; PFNGLDRAWRANGEELEMENTSEXTPROC __glewDrawRangeElementsEXT = NULL; PFNGLBUFFERSTORAGEEXTERNALEXTPROC __glewBufferStorageExternalEXT = NULL; PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC __glewNamedBufferStorageExternalEXT = NULL; PFNGLFOGCOORDPOINTEREXTPROC __glewFogCoordPointerEXT = NULL; PFNGLFOGCOORDDEXTPROC __glewFogCoorddEXT = NULL; PFNGLFOGCOORDDVEXTPROC __glewFogCoorddvEXT = NULL; PFNGLFOGCOORDFEXTPROC __glewFogCoordfEXT = NULL; PFNGLFOGCOORDFVEXTPROC __glewFogCoordfvEXT = NULL; PFNGLFRAGMENTCOLORMATERIALEXTPROC __glewFragmentColorMaterialEXT = NULL; PFNGLFRAGMENTLIGHTMODELFEXTPROC __glewFragmentLightModelfEXT = NULL; PFNGLFRAGMENTLIGHTMODELFVEXTPROC __glewFragmentLightModelfvEXT = NULL; PFNGLFRAGMENTLIGHTMODELIEXTPROC __glewFragmentLightModeliEXT = NULL; PFNGLFRAGMENTLIGHTMODELIVEXTPROC __glewFragmentLightModelivEXT = NULL; PFNGLFRAGMENTLIGHTFEXTPROC __glewFragmentLightfEXT = NULL; PFNGLFRAGMENTLIGHTFVEXTPROC __glewFragmentLightfvEXT = NULL; PFNGLFRAGMENTLIGHTIEXTPROC __glewFragmentLightiEXT = NULL; PFNGLFRAGMENTLIGHTIVEXTPROC __glewFragmentLightivEXT = NULL; PFNGLFRAGMENTMATERIALFEXTPROC __glewFragmentMaterialfEXT = NULL; PFNGLFRAGMENTMATERIALFVEXTPROC __glewFragmentMaterialfvEXT = NULL; PFNGLFRAGMENTMATERIALIEXTPROC __glewFragmentMaterialiEXT = NULL; PFNGLFRAGMENTMATERIALIVEXTPROC __glewFragmentMaterialivEXT = NULL; PFNGLGETFRAGMENTLIGHTFVEXTPROC __glewGetFragmentLightfvEXT = NULL; PFNGLGETFRAGMENTLIGHTIVEXTPROC __glewGetFragmentLightivEXT = NULL; PFNGLGETFRAGMENTMATERIALFVEXTPROC __glewGetFragmentMaterialfvEXT = NULL; PFNGLGETFRAGMENTMATERIALIVEXTPROC __glewGetFragmentMaterialivEXT = NULL; PFNGLLIGHTENVIEXTPROC __glewLightEnviEXT = NULL; PFNGLBLITFRAMEBUFFEREXTPROC __glewBlitFramebufferEXT = NULL; PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewRenderbufferStorageMultisampleEXT = NULL; PFNGLBINDFRAMEBUFFEREXTPROC __glewBindFramebufferEXT = NULL; PFNGLBINDRENDERBUFFEREXTPROC __glewBindRenderbufferEXT = NULL; PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC __glewCheckFramebufferStatusEXT = NULL; PFNGLDELETEFRAMEBUFFERSEXTPROC __glewDeleteFramebuffersEXT = NULL; PFNGLDELETERENDERBUFFERSEXTPROC __glewDeleteRenderbuffersEXT = NULL; PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC __glewFramebufferRenderbufferEXT = NULL; PFNGLFRAMEBUFFERTEXTURE1DEXTPROC __glewFramebufferTexture1DEXT = NULL; PFNGLFRAMEBUFFERTEXTURE2DEXTPROC __glewFramebufferTexture2DEXT = NULL; PFNGLFRAMEBUFFERTEXTURE3DEXTPROC __glewFramebufferTexture3DEXT = NULL; PFNGLGENFRAMEBUFFERSEXTPROC __glewGenFramebuffersEXT = NULL; PFNGLGENRENDERBUFFERSEXTPROC __glewGenRenderbuffersEXT = NULL; PFNGLGENERATEMIPMAPEXTPROC __glewGenerateMipmapEXT = NULL; PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetFramebufferAttachmentParameterivEXT = NULL; PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC __glewGetRenderbufferParameterivEXT = NULL; PFNGLISFRAMEBUFFEREXTPROC __glewIsFramebufferEXT = NULL; PFNGLISRENDERBUFFEREXTPROC __glewIsRenderbufferEXT = NULL; PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT = NULL; PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT = NULL; PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT = NULL; PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT = NULL; PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT = NULL; PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC __glewProgramLocalParameters4fvEXT = NULL; PFNGLBINDFRAGDATALOCATIONEXTPROC __glewBindFragDataLocationEXT = NULL; PFNGLGETFRAGDATALOCATIONEXTPROC __glewGetFragDataLocationEXT = NULL; PFNGLGETUNIFORMUIVEXTPROC __glewGetUniformuivEXT = NULL; PFNGLGETVERTEXATTRIBIIVEXTPROC __glewGetVertexAttribIivEXT = NULL; PFNGLGETVERTEXATTRIBIUIVEXTPROC __glewGetVertexAttribIuivEXT = NULL; PFNGLUNIFORM1UIEXTPROC __glewUniform1uiEXT = NULL; PFNGLUNIFORM1UIVEXTPROC __glewUniform1uivEXT = NULL; PFNGLUNIFORM2UIEXTPROC __glewUniform2uiEXT = NULL; PFNGLUNIFORM2UIVEXTPROC __glewUniform2uivEXT = NULL; PFNGLUNIFORM3UIEXTPROC __glewUniform3uiEXT = NULL; PFNGLUNIFORM3UIVEXTPROC __glewUniform3uivEXT = NULL; PFNGLUNIFORM4UIEXTPROC __glewUniform4uiEXT = NULL; PFNGLUNIFORM4UIVEXTPROC __glewUniform4uivEXT = NULL; PFNGLVERTEXATTRIBI1IEXTPROC __glewVertexAttribI1iEXT = NULL; PFNGLVERTEXATTRIBI1IVEXTPROC __glewVertexAttribI1ivEXT = NULL; PFNGLVERTEXATTRIBI1UIEXTPROC __glewVertexAttribI1uiEXT = NULL; PFNGLVERTEXATTRIBI1UIVEXTPROC __glewVertexAttribI1uivEXT = NULL; PFNGLVERTEXATTRIBI2IEXTPROC __glewVertexAttribI2iEXT = NULL; PFNGLVERTEXATTRIBI2IVEXTPROC __glewVertexAttribI2ivEXT = NULL; PFNGLVERTEXATTRIBI2UIEXTPROC __glewVertexAttribI2uiEXT = NULL; PFNGLVERTEXATTRIBI2UIVEXTPROC __glewVertexAttribI2uivEXT = NULL; PFNGLVERTEXATTRIBI3IEXTPROC __glewVertexAttribI3iEXT = NULL; PFNGLVERTEXATTRIBI3IVEXTPROC __glewVertexAttribI3ivEXT = NULL; PFNGLVERTEXATTRIBI3UIEXTPROC __glewVertexAttribI3uiEXT = NULL; PFNGLVERTEXATTRIBI3UIVEXTPROC __glewVertexAttribI3uivEXT = NULL; PFNGLVERTEXATTRIBI4BVEXTPROC __glewVertexAttribI4bvEXT = NULL; PFNGLVERTEXATTRIBI4IEXTPROC __glewVertexAttribI4iEXT = NULL; PFNGLVERTEXATTRIBI4IVEXTPROC __glewVertexAttribI4ivEXT = NULL; PFNGLVERTEXATTRIBI4SVEXTPROC __glewVertexAttribI4svEXT = NULL; PFNGLVERTEXATTRIBI4UBVEXTPROC __glewVertexAttribI4ubvEXT = NULL; PFNGLVERTEXATTRIBI4UIEXTPROC __glewVertexAttribI4uiEXT = NULL; PFNGLVERTEXATTRIBI4UIVEXTPROC __glewVertexAttribI4uivEXT = NULL; PFNGLVERTEXATTRIBI4USVEXTPROC __glewVertexAttribI4usvEXT = NULL; PFNGLVERTEXATTRIBIPOINTEREXTPROC __glewVertexAttribIPointerEXT = NULL; PFNGLGETHISTOGRAMEXTPROC __glewGetHistogramEXT = NULL; PFNGLGETHISTOGRAMPARAMETERFVEXTPROC __glewGetHistogramParameterfvEXT = NULL; PFNGLGETHISTOGRAMPARAMETERIVEXTPROC __glewGetHistogramParameterivEXT = NULL; PFNGLGETMINMAXEXTPROC __glewGetMinmaxEXT = NULL; PFNGLGETMINMAXPARAMETERFVEXTPROC __glewGetMinmaxParameterfvEXT = NULL; PFNGLGETMINMAXPARAMETERIVEXTPROC __glewGetMinmaxParameterivEXT = NULL; PFNGLHISTOGRAMEXTPROC __glewHistogramEXT = NULL; PFNGLMINMAXEXTPROC __glewMinmaxEXT = NULL; PFNGLRESETHISTOGRAMEXTPROC __glewResetHistogramEXT = NULL; PFNGLRESETMINMAXEXTPROC __glewResetMinmaxEXT = NULL; PFNGLINDEXFUNCEXTPROC __glewIndexFuncEXT = NULL; PFNGLINDEXMATERIALEXTPROC __glewIndexMaterialEXT = NULL; PFNGLVERTEXATTRIBDIVISOREXTPROC __glewVertexAttribDivisorEXT = NULL; PFNGLAPPLYTEXTUREEXTPROC __glewApplyTextureEXT = NULL; PFNGLTEXTURELIGHTEXTPROC __glewTextureLightEXT = NULL; PFNGLTEXTUREMATERIALEXTPROC __glewTextureMaterialEXT = NULL; PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC __glewFlushMappedBufferRangeEXT = NULL; PFNGLMAPBUFFERRANGEEXTPROC __glewMapBufferRangeEXT = NULL; PFNGLBUFFERSTORAGEMEMEXTPROC __glewBufferStorageMemEXT = NULL; PFNGLCREATEMEMORYOBJECTSEXTPROC __glewCreateMemoryObjectsEXT = NULL; PFNGLDELETEMEMORYOBJECTSEXTPROC __glewDeleteMemoryObjectsEXT = NULL; PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC __glewGetMemoryObjectParameterivEXT = NULL; PFNGLGETUNSIGNEDBYTEI_VEXTPROC __glewGetUnsignedBytei_vEXT = NULL; PFNGLGETUNSIGNEDBYTEVEXTPROC __glewGetUnsignedBytevEXT = NULL; PFNGLISMEMORYOBJECTEXTPROC __glewIsMemoryObjectEXT = NULL; PFNGLMEMORYOBJECTPARAMETERIVEXTPROC __glewMemoryObjectParameterivEXT = NULL; PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC __glewNamedBufferStorageMemEXT = NULL; PFNGLTEXSTORAGEMEM1DEXTPROC __glewTexStorageMem1DEXT = NULL; PFNGLTEXSTORAGEMEM2DEXTPROC __glewTexStorageMem2DEXT = NULL; PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC __glewTexStorageMem2DMultisampleEXT = NULL; PFNGLTEXSTORAGEMEM3DEXTPROC __glewTexStorageMem3DEXT = NULL; PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC __glewTexStorageMem3DMultisampleEXT = NULL; PFNGLTEXTURESTORAGEMEM1DEXTPROC __glewTextureStorageMem1DEXT = NULL; PFNGLTEXTURESTORAGEMEM2DEXTPROC __glewTextureStorageMem2DEXT = NULL; PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC __glewTextureStorageMem2DMultisampleEXT = NULL; PFNGLTEXTURESTORAGEMEM3DEXTPROC __glewTextureStorageMem3DEXT = NULL; PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC __glewTextureStorageMem3DMultisampleEXT = NULL; PFNGLIMPORTMEMORYFDEXTPROC __glewImportMemoryFdEXT = NULL; PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC __glewImportMemoryWin32HandleEXT = NULL; PFNGLIMPORTMEMORYWIN32NAMEEXTPROC __glewImportMemoryWin32NameEXT = NULL; PFNGLMULTIDRAWARRAYSEXTPROC __glewMultiDrawArraysEXT = NULL; PFNGLMULTIDRAWELEMENTSEXTPROC __glewMultiDrawElementsEXT = NULL; PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC __glewMultiDrawArraysIndirectEXT = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC __glewMultiDrawElementsIndirectEXT = NULL; PFNGLSAMPLEMASKEXTPROC __glewSampleMaskEXT = NULL; PFNGLSAMPLEPATTERNEXTPROC __glewSamplePatternEXT = NULL; PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC __glewFramebufferTexture2DMultisampleEXT = NULL; PFNGLDRAWBUFFERSINDEXEDEXTPROC __glewDrawBuffersIndexedEXT = NULL; PFNGLGETINTEGERI_VEXTPROC __glewGetIntegeri_vEXT = NULL; PFNGLREADBUFFERINDEXEDEXTPROC __glewReadBufferIndexedEXT = NULL; PFNGLCOLORTABLEEXTPROC __glewColorTableEXT = NULL; PFNGLGETCOLORTABLEEXTPROC __glewGetColorTableEXT = NULL; PFNGLGETCOLORTABLEPARAMETERFVEXTPROC __glewGetColorTableParameterfvEXT = NULL; PFNGLGETCOLORTABLEPARAMETERIVEXTPROC __glewGetColorTableParameterivEXT = NULL; PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC __glewGetPixelTransformParameterfvEXT = NULL; PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC __glewGetPixelTransformParameterivEXT = NULL; PFNGLPIXELTRANSFORMPARAMETERFEXTPROC __glewPixelTransformParameterfEXT = NULL; PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC __glewPixelTransformParameterfvEXT = NULL; PFNGLPIXELTRANSFORMPARAMETERIEXTPROC __glewPixelTransformParameteriEXT = NULL; PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC __glewPixelTransformParameterivEXT = NULL; PFNGLPOINTPARAMETERFEXTPROC __glewPointParameterfEXT = NULL; PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT = NULL; PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT = NULL; PFNGLPOLYGONOFFSETCLAMPEXTPROC __glewPolygonOffsetClampEXT = NULL; PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT = NULL; PFNGLCOVERAGEMODULATIONNVPROC __glewCoverageModulationNV = NULL; PFNGLCOVERAGEMODULATIONTABLENVPROC __glewCoverageModulationTableNV = NULL; PFNGLGETCOVERAGEMODULATIONTABLENVPROC __glewGetCoverageModulationTableNV = NULL; PFNGLRASTERSAMPLESEXTPROC __glewRasterSamplesEXT = NULL; PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT = NULL; PFNGLENDSCENEEXTPROC __glewEndSceneEXT = NULL; PFNGLSECONDARYCOLOR3BEXTPROC __glewSecondaryColor3bEXT = NULL; PFNGLSECONDARYCOLOR3BVEXTPROC __glewSecondaryColor3bvEXT = NULL; PFNGLSECONDARYCOLOR3DEXTPROC __glewSecondaryColor3dEXT = NULL; PFNGLSECONDARYCOLOR3DVEXTPROC __glewSecondaryColor3dvEXT = NULL; PFNGLSECONDARYCOLOR3FEXTPROC __glewSecondaryColor3fEXT = NULL; PFNGLSECONDARYCOLOR3FVEXTPROC __glewSecondaryColor3fvEXT = NULL; PFNGLSECONDARYCOLOR3IEXTPROC __glewSecondaryColor3iEXT = NULL; PFNGLSECONDARYCOLOR3IVEXTPROC __glewSecondaryColor3ivEXT = NULL; PFNGLSECONDARYCOLOR3SEXTPROC __glewSecondaryColor3sEXT = NULL; PFNGLSECONDARYCOLOR3SVEXTPROC __glewSecondaryColor3svEXT = NULL; PFNGLSECONDARYCOLOR3UBEXTPROC __glewSecondaryColor3ubEXT = NULL; PFNGLSECONDARYCOLOR3UBVEXTPROC __glewSecondaryColor3ubvEXT = NULL; PFNGLSECONDARYCOLOR3UIEXTPROC __glewSecondaryColor3uiEXT = NULL; PFNGLSECONDARYCOLOR3UIVEXTPROC __glewSecondaryColor3uivEXT = NULL; PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT = NULL; PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT = NULL; PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT = NULL; PFNGLDELETESEMAPHORESEXTPROC __glewDeleteSemaphoresEXT = NULL; PFNGLGENSEMAPHORESEXTPROC __glewGenSemaphoresEXT = NULL; PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC __glewGetSemaphoreParameterui64vEXT = NULL; PFNGLISSEMAPHOREEXTPROC __glewIsSemaphoreEXT = NULL; PFNGLSEMAPHOREPARAMETERUI64VEXTPROC __glewSemaphoreParameterui64vEXT = NULL; PFNGLSIGNALSEMAPHOREEXTPROC __glewSignalSemaphoreEXT = NULL; PFNGLWAITSEMAPHOREEXTPROC __glewWaitSemaphoreEXT = NULL; PFNGLIMPORTSEMAPHOREFDEXTPROC __glewImportSemaphoreFdEXT = NULL; PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC __glewImportSemaphoreWin32HandleEXT = NULL; PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC __glewImportSemaphoreWin32NameEXT = NULL; PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT = NULL; PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT = NULL; PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT = NULL; PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT = NULL; PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT = NULL; PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC __glewClearPixelLocalStorageuiEXT = NULL; PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewFramebufferPixelLocalStorageSizeEXT = NULL; PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC __glewGetFramebufferPixelLocalStorageSizeEXT = NULL; PFNGLTEXPAGECOMMITMENTEXTPROC __glewTexPageCommitmentEXT = NULL; PFNGLTEXTUREPAGECOMMITMENTEXTPROC __glewTexturePageCommitmentEXT = NULL; PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT = NULL; PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT = NULL; PFNGLTEXSUBIMAGE2DEXTPROC __glewTexSubImage2DEXT = NULL; PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT = NULL; PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT = NULL; PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT = NULL; PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT = NULL; PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT = NULL; PFNGLCLEARCOLORIUIEXTPROC __glewClearColorIuiEXT = NULL; PFNGLGETTEXPARAMETERIIVEXTPROC __glewGetTexParameterIivEXT = NULL; PFNGLGETTEXPARAMETERIUIVEXTPROC __glewGetTexParameterIuivEXT = NULL; PFNGLTEXPARAMETERIIVEXTPROC __glewTexParameterIivEXT = NULL; PFNGLTEXPARAMETERIUIVEXTPROC __glewTexParameterIuivEXT = NULL; PFNGLARETEXTURESRESIDENTEXTPROC __glewAreTexturesResidentEXT = NULL; PFNGLBINDTEXTUREEXTPROC __glewBindTextureEXT = NULL; PFNGLDELETETEXTURESEXTPROC __glewDeleteTexturesEXT = NULL; PFNGLGENTEXTURESEXTPROC __glewGenTexturesEXT = NULL; PFNGLISTEXTUREEXTPROC __glewIsTextureEXT = NULL; PFNGLPRIORITIZETEXTURESEXTPROC __glewPrioritizeTexturesEXT = NULL; PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT = NULL; PFNGLTEXSTORAGE1DEXTPROC __glewTexStorage1DEXT = NULL; PFNGLTEXSTORAGE2DEXTPROC __glewTexStorage2DEXT = NULL; PFNGLTEXSTORAGE3DEXTPROC __glewTexStorage3DEXT = NULL; PFNGLTEXTURESTORAGE1DEXTPROC __glewTextureStorage1DEXT = NULL; PFNGLTEXTURESTORAGE2DEXTPROC __glewTextureStorage2DEXT = NULL; PFNGLTEXTURESTORAGE3DEXTPROC __glewTextureStorage3DEXT = NULL; PFNGLTEXTUREVIEWEXTPROC __glewTextureViewEXT = NULL; PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT = NULL; PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT = NULL; PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT = NULL; PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT = NULL; PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT = NULL; PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT = NULL; PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT = NULL; PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT = NULL; PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT = NULL; PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT = NULL; PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT = NULL; PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT = NULL; PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT = NULL; PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT = NULL; PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT = NULL; PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT = NULL; PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT = NULL; PFNGLBINDARRAYSETEXTPROC __glewBindArraySetEXT = NULL; PFNGLCREATEARRAYSETEXTPROC __glewCreateArraySetExt = NULL; PFNGLDELETEARRAYSETSEXTPROC __glewDeleteArraySetsEXT = NULL; PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT = NULL; PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT = NULL; PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT = NULL; PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT = NULL; PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT = NULL; PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT = NULL; PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT = NULL; PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT = NULL; PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT = NULL; PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT = NULL; PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT = NULL; PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT = NULL; PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT = NULL; PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT = NULL; PFNGLBINDPARAMETEREXTPROC __glewBindParameterEXT = NULL; PFNGLBINDTEXGENPARAMETEREXTPROC __glewBindTexGenParameterEXT = NULL; PFNGLBINDTEXTUREUNITPARAMETEREXTPROC __glewBindTextureUnitParameterEXT = NULL; PFNGLBINDVERTEXSHADEREXTPROC __glewBindVertexShaderEXT = NULL; PFNGLDELETEVERTEXSHADEREXTPROC __glewDeleteVertexShaderEXT = NULL; PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC __glewDisableVariantClientStateEXT = NULL; PFNGLENABLEVARIANTCLIENTSTATEEXTPROC __glewEnableVariantClientStateEXT = NULL; PFNGLENDVERTEXSHADEREXTPROC __glewEndVertexShaderEXT = NULL; PFNGLEXTRACTCOMPONENTEXTPROC __glewExtractComponentEXT = NULL; PFNGLGENSYMBOLSEXTPROC __glewGenSymbolsEXT = NULL; PFNGLGENVERTEXSHADERSEXTPROC __glewGenVertexShadersEXT = NULL; PFNGLGETINVARIANTBOOLEANVEXTPROC __glewGetInvariantBooleanvEXT = NULL; PFNGLGETINVARIANTFLOATVEXTPROC __glewGetInvariantFloatvEXT = NULL; PFNGLGETINVARIANTINTEGERVEXTPROC __glewGetInvariantIntegervEXT = NULL; PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC __glewGetLocalConstantBooleanvEXT = NULL; PFNGLGETLOCALCONSTANTFLOATVEXTPROC __glewGetLocalConstantFloatvEXT = NULL; PFNGLGETLOCALCONSTANTINTEGERVEXTPROC __glewGetLocalConstantIntegervEXT = NULL; PFNGLGETVARIANTBOOLEANVEXTPROC __glewGetVariantBooleanvEXT = NULL; PFNGLGETVARIANTFLOATVEXTPROC __glewGetVariantFloatvEXT = NULL; PFNGLGETVARIANTINTEGERVEXTPROC __glewGetVariantIntegervEXT = NULL; PFNGLGETVARIANTPOINTERVEXTPROC __glewGetVariantPointervEXT = NULL; PFNGLINSERTCOMPONENTEXTPROC __glewInsertComponentEXT = NULL; PFNGLISVARIANTENABLEDEXTPROC __glewIsVariantEnabledEXT = NULL; PFNGLSETINVARIANTEXTPROC __glewSetInvariantEXT = NULL; PFNGLSETLOCALCONSTANTEXTPROC __glewSetLocalConstantEXT = NULL; PFNGLSHADEROP1EXTPROC __glewShaderOp1EXT = NULL; PFNGLSHADEROP2EXTPROC __glewShaderOp2EXT = NULL; PFNGLSHADEROP3EXTPROC __glewShaderOp3EXT = NULL; PFNGLSWIZZLEEXTPROC __glewSwizzleEXT = NULL; PFNGLVARIANTPOINTEREXTPROC __glewVariantPointerEXT = NULL; PFNGLVARIANTBVEXTPROC __glewVariantbvEXT = NULL; PFNGLVARIANTDVEXTPROC __glewVariantdvEXT = NULL; PFNGLVARIANTFVEXTPROC __glewVariantfvEXT = NULL; PFNGLVARIANTIVEXTPROC __glewVariantivEXT = NULL; PFNGLVARIANTSVEXTPROC __glewVariantsvEXT = NULL; PFNGLVARIANTUBVEXTPROC __glewVariantubvEXT = NULL; PFNGLVARIANTUIVEXTPROC __glewVariantuivEXT = NULL; PFNGLVARIANTUSVEXTPROC __glewVariantusvEXT = NULL; PFNGLWRITEMASKEXTPROC __glewWriteMaskEXT = NULL; PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT = NULL; PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT = NULL; PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT = NULL; PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC __glewAcquireKeyedMutexWin32EXT = NULL; PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC __glewReleaseKeyedMutexWin32EXT = NULL; PFNGLWINDOWRECTANGLESEXTPROC __glewWindowRectanglesEXT = NULL; PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT = NULL; PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY = NULL; PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY = NULL; PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP = NULL; PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC __glewGetImageTransformParameterivHP = NULL; PFNGLIMAGETRANSFORMPARAMETERFHPPROC __glewImageTransformParameterfHP = NULL; PFNGLIMAGETRANSFORMPARAMETERFVHPPROC __glewImageTransformParameterfvHP = NULL; PFNGLIMAGETRANSFORMPARAMETERIHPPROC __glewImageTransformParameteriHP = NULL; PFNGLIMAGETRANSFORMPARAMETERIVHPPROC __glewImageTransformParameterivHP = NULL; PFNGLMULTIMODEDRAWARRAYSIBMPROC __glewMultiModeDrawArraysIBM = NULL; PFNGLMULTIMODEDRAWELEMENTSIBMPROC __glewMultiModeDrawElementsIBM = NULL; PFNGLCOLORPOINTERLISTIBMPROC __glewColorPointerListIBM = NULL; PFNGLEDGEFLAGPOINTERLISTIBMPROC __glewEdgeFlagPointerListIBM = NULL; PFNGLFOGCOORDPOINTERLISTIBMPROC __glewFogCoordPointerListIBM = NULL; PFNGLINDEXPOINTERLISTIBMPROC __glewIndexPointerListIBM = NULL; PFNGLNORMALPOINTERLISTIBMPROC __glewNormalPointerListIBM = NULL; PFNGLSECONDARYCOLORPOINTERLISTIBMPROC __glewSecondaryColorPointerListIBM = NULL; PFNGLTEXCOORDPOINTERLISTIBMPROC __glewTexCoordPointerListIBM = NULL; PFNGLVERTEXPOINTERLISTIBMPROC __glewVertexPointerListIBM = NULL; PFNGLMAPTEXTURE2DINTELPROC __glewMapTexture2DINTEL = NULL; PFNGLSYNCTEXTUREINTELPROC __glewSyncTextureINTEL = NULL; PFNGLUNMAPTEXTURE2DINTELPROC __glewUnmapTexture2DINTEL = NULL; PFNGLCOLORPOINTERVINTELPROC __glewColorPointervINTEL = NULL; PFNGLNORMALPOINTERVINTELPROC __glewNormalPointervINTEL = NULL; PFNGLTEXCOORDPOINTERVINTELPROC __glewTexCoordPointervINTEL = NULL; PFNGLVERTEXPOINTERVINTELPROC __glewVertexPointervINTEL = NULL; PFNGLBEGINPERFQUERYINTELPROC __glewBeginPerfQueryINTEL = NULL; PFNGLCREATEPERFQUERYINTELPROC __glewCreatePerfQueryINTEL = NULL; PFNGLDELETEPERFQUERYINTELPROC __glewDeletePerfQueryINTEL = NULL; PFNGLENDPERFQUERYINTELPROC __glewEndPerfQueryINTEL = NULL; PFNGLGETFIRSTPERFQUERYIDINTELPROC __glewGetFirstPerfQueryIdINTEL = NULL; PFNGLGETNEXTPERFQUERYIDINTELPROC __glewGetNextPerfQueryIdINTEL = NULL; PFNGLGETPERFCOUNTERINFOINTELPROC __glewGetPerfCounterInfoINTEL = NULL; PFNGLGETPERFQUERYDATAINTELPROC __glewGetPerfQueryDataINTEL = NULL; PFNGLGETPERFQUERYIDBYNAMEINTELPROC __glewGetPerfQueryIdByNameINTEL = NULL; PFNGLGETPERFQUERYINFOINTELPROC __glewGetPerfQueryInfoINTEL = NULL; PFNGLTEXSCISSORFUNCINTELPROC __glewTexScissorFuncINTEL = NULL; PFNGLTEXSCISSORINTELPROC __glewTexScissorINTEL = NULL; PFNGLBLENDBARRIERKHRPROC __glewBlendBarrierKHR = NULL; PFNGLDEBUGMESSAGECALLBACKPROC __glewDebugMessageCallback = NULL; PFNGLDEBUGMESSAGECONTROLPROC __glewDebugMessageControl = NULL; PFNGLDEBUGMESSAGEINSERTPROC __glewDebugMessageInsert = NULL; PFNGLGETDEBUGMESSAGELOGPROC __glewGetDebugMessageLog = NULL; PFNGLGETOBJECTLABELPROC __glewGetObjectLabel = NULL; PFNGLGETOBJECTPTRLABELPROC __glewGetObjectPtrLabel = NULL; PFNGLOBJECTLABELPROC __glewObjectLabel = NULL; PFNGLOBJECTPTRLABELPROC __glewObjectPtrLabel = NULL; PFNGLPOPDEBUGGROUPPROC __glewPopDebugGroup = NULL; PFNGLPUSHDEBUGGROUPPROC __glewPushDebugGroup = NULL; PFNGLMAXSHADERCOMPILERTHREADSKHRPROC __glewMaxShaderCompilerThreadsKHR = NULL; PFNGLGETNUNIFORMFVPROC __glewGetnUniformfv = NULL; PFNGLGETNUNIFORMIVPROC __glewGetnUniformiv = NULL; PFNGLGETNUNIFORMUIVPROC __glewGetnUniformuiv = NULL; PFNGLREADNPIXELSPROC __glewReadnPixels = NULL; PFNGLBUFFERREGIONENABLEDPROC __glewBufferRegionEnabled = NULL; PFNGLDELETEBUFFERREGIONPROC __glewDeleteBufferRegion = NULL; PFNGLDRAWBUFFERREGIONPROC __glewDrawBufferRegion = NULL; PFNGLNEWBUFFERREGIONPROC __glewNewBufferRegion = NULL; PFNGLREADBUFFERREGIONPROC __glewReadBufferRegion = NULL; PFNGLRESIZEBUFFERSMESAPROC __glewResizeBuffersMESA = NULL; PFNGLWINDOWPOS2DMESAPROC __glewWindowPos2dMESA = NULL; PFNGLWINDOWPOS2DVMESAPROC __glewWindowPos2dvMESA = NULL; PFNGLWINDOWPOS2FMESAPROC __glewWindowPos2fMESA = NULL; PFNGLWINDOWPOS2FVMESAPROC __glewWindowPos2fvMESA = NULL; PFNGLWINDOWPOS2IMESAPROC __glewWindowPos2iMESA = NULL; PFNGLWINDOWPOS2IVMESAPROC __glewWindowPos2ivMESA = NULL; PFNGLWINDOWPOS2SMESAPROC __glewWindowPos2sMESA = NULL; PFNGLWINDOWPOS2SVMESAPROC __glewWindowPos2svMESA = NULL; PFNGLWINDOWPOS3DMESAPROC __glewWindowPos3dMESA = NULL; PFNGLWINDOWPOS3DVMESAPROC __glewWindowPos3dvMESA = NULL; PFNGLWINDOWPOS3FMESAPROC __glewWindowPos3fMESA = NULL; PFNGLWINDOWPOS3FVMESAPROC __glewWindowPos3fvMESA = NULL; PFNGLWINDOWPOS3IMESAPROC __glewWindowPos3iMESA = NULL; PFNGLWINDOWPOS3IVMESAPROC __glewWindowPos3ivMESA = NULL; PFNGLWINDOWPOS3SMESAPROC __glewWindowPos3sMESA = NULL; PFNGLWINDOWPOS3SVMESAPROC __glewWindowPos3svMESA = NULL; PFNGLWINDOWPOS4DMESAPROC __glewWindowPos4dMESA = NULL; PFNGLWINDOWPOS4DVMESAPROC __glewWindowPos4dvMESA = NULL; PFNGLWINDOWPOS4FMESAPROC __glewWindowPos4fMESA = NULL; PFNGLWINDOWPOS4FVMESAPROC __glewWindowPos4fvMESA = NULL; PFNGLWINDOWPOS4IMESAPROC __glewWindowPos4iMESA = NULL; PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA = NULL; PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA = NULL; PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA = NULL; PFNGLBEGINCONDITIONALRENDERNVXPROC __glewBeginConditionalRenderNVX = NULL; PFNGLENDCONDITIONALRENDERNVXPROC __glewEndConditionalRenderNVX = NULL; PFNGLLGPUCOPYIMAGESUBDATANVXPROC __glewLGPUCopyImageSubDataNVX = NULL; PFNGLLGPUINTERLOCKNVXPROC __glewLGPUInterlockNVX = NULL; PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC __glewLGPUNamedBufferSubDataNVX = NULL; PFNGLSTEREOPARAMETERFNVPROC __glewStereoParameterfNV = NULL; PFNGLSTEREOPARAMETERINVPROC __glewStereoParameteriNV = NULL; PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC __glewMultiDrawArraysIndirectBindlessNV = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC __glewMultiDrawElementsIndirectBindlessNV = NULL; PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawArraysIndirectBindlessCountNV = NULL; PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC __glewMultiDrawElementsIndirectBindlessCountNV = NULL; PFNGLGETIMAGEHANDLENVPROC __glewGetImageHandleNV = NULL; PFNGLGETTEXTUREHANDLENVPROC __glewGetTextureHandleNV = NULL; PFNGLGETTEXTURESAMPLERHANDLENVPROC __glewGetTextureSamplerHandleNV = NULL; PFNGLISIMAGEHANDLERESIDENTNVPROC __glewIsImageHandleResidentNV = NULL; PFNGLISTEXTUREHANDLERESIDENTNVPROC __glewIsTextureHandleResidentNV = NULL; PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC __glewMakeImageHandleNonResidentNV = NULL; PFNGLMAKEIMAGEHANDLERESIDENTNVPROC __glewMakeImageHandleResidentNV = NULL; PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC __glewMakeTextureHandleNonResidentNV = NULL; PFNGLMAKETEXTUREHANDLERESIDENTNVPROC __glewMakeTextureHandleResidentNV = NULL; PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC __glewProgramUniformHandleui64NV = NULL; PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC __glewProgramUniformHandleui64vNV = NULL; PFNGLUNIFORMHANDLEUI64NVPROC __glewUniformHandleui64NV = NULL; PFNGLUNIFORMHANDLEUI64VNVPROC __glewUniformHandleui64vNV = NULL; PFNGLBLENDBARRIERNVPROC __glewBlendBarrierNV = NULL; PFNGLBLENDPARAMETERINVPROC __glewBlendParameteriNV = NULL; PFNGLVIEWPORTPOSITIONWSCALENVPROC __glewViewportPositionWScaleNV = NULL; PFNGLCALLCOMMANDLISTNVPROC __glewCallCommandListNV = NULL; PFNGLCOMMANDLISTSEGMENTSNVPROC __glewCommandListSegmentsNV = NULL; PFNGLCOMPILECOMMANDLISTNVPROC __glewCompileCommandListNV = NULL; PFNGLCREATECOMMANDLISTSNVPROC __glewCreateCommandListsNV = NULL; PFNGLCREATESTATESNVPROC __glewCreateStatesNV = NULL; PFNGLDELETECOMMANDLISTSNVPROC __glewDeleteCommandListsNV = NULL; PFNGLDELETESTATESNVPROC __glewDeleteStatesNV = NULL; PFNGLDRAWCOMMANDSADDRESSNVPROC __glewDrawCommandsAddressNV = NULL; PFNGLDRAWCOMMANDSNVPROC __glewDrawCommandsNV = NULL; PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC __glewDrawCommandsStatesAddressNV = NULL; PFNGLDRAWCOMMANDSSTATESNVPROC __glewDrawCommandsStatesNV = NULL; PFNGLGETCOMMANDHEADERNVPROC __glewGetCommandHeaderNV = NULL; PFNGLGETSTAGEINDEXNVPROC __glewGetStageIndexNV = NULL; PFNGLISCOMMANDLISTNVPROC __glewIsCommandListNV = NULL; PFNGLISSTATENVPROC __glewIsStateNV = NULL; PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC __glewListDrawCommandsStatesClientNV = NULL; PFNGLSTATECAPTURENVPROC __glewStateCaptureNV = NULL; PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV = NULL; PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV = NULL; PFNGLSUBPIXELPRECISIONBIASNVPROC __glewSubpixelPrecisionBiasNV = NULL; PFNGLCONSERVATIVERASTERPARAMETERFNVPROC __glewConservativeRasterParameterfNV = NULL; PFNGLCONSERVATIVERASTERPARAMETERINVPROC __glewConservativeRasterParameteriNV = NULL; PFNGLCOPYBUFFERSUBDATANVPROC __glewCopyBufferSubDataNV = NULL; PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV = NULL; PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV = NULL; PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV = NULL; PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV = NULL; PFNGLDRAWBUFFERSNVPROC __glewDrawBuffersNV = NULL; PFNGLDRAWARRAYSINSTANCEDNVPROC __glewDrawArraysInstancedNV = NULL; PFNGLDRAWELEMENTSINSTANCEDNVPROC __glewDrawElementsInstancedNV = NULL; PFNGLDRAWTEXTURENVPROC __glewDrawTextureNV = NULL; PFNGLDRAWVKIMAGENVPROC __glewDrawVkImageNV = NULL; PFNGLGETVKPROCADDRNVPROC __glewGetVkProcAddrNV = NULL; PFNGLSIGNALVKFENCENVPROC __glewSignalVkFenceNV = NULL; PFNGLSIGNALVKSEMAPHORENVPROC __glewSignalVkSemaphoreNV = NULL; PFNGLWAITVKSEMAPHORENVPROC __glewWaitVkSemaphoreNV = NULL; PFNGLEVALMAPSNVPROC __glewEvalMapsNV = NULL; PFNGLGETMAPATTRIBPARAMETERFVNVPROC __glewGetMapAttribParameterfvNV = NULL; PFNGLGETMAPATTRIBPARAMETERIVNVPROC __glewGetMapAttribParameterivNV = NULL; PFNGLGETMAPCONTROLPOINTSNVPROC __glewGetMapControlPointsNV = NULL; PFNGLGETMAPPARAMETERFVNVPROC __glewGetMapParameterfvNV = NULL; PFNGLGETMAPPARAMETERIVNVPROC __glewGetMapParameterivNV = NULL; PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV = NULL; PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV = NULL; PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV = NULL; PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV = NULL; PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV = NULL; PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV = NULL; PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV = NULL; PFNGLFINISHFENCENVPROC __glewFinishFenceNV = NULL; PFNGLGENFENCESNVPROC __glewGenFencesNV = NULL; PFNGLGETFENCEIVNVPROC __glewGetFenceivNV = NULL; PFNGLISFENCENVPROC __glewIsFenceNV = NULL; PFNGLSETFENCENVPROC __glewSetFenceNV = NULL; PFNGLTESTFENCENVPROC __glewTestFenceNV = NULL; PFNGLFRAGMENTCOVERAGECOLORNVPROC __glewFragmentCoverageColorNV = NULL; PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC __glewGetProgramNamedParameterdvNV = NULL; PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC __glewGetProgramNamedParameterfvNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4DNVPROC __glewProgramNamedParameter4dNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC __glewProgramNamedParameter4dvNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4FNVPROC __glewProgramNamedParameter4fNV = NULL; PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4fvNV = NULL; PFNGLBLITFRAMEBUFFERNVPROC __glewBlitFramebufferNV = NULL; PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC __glewRenderbufferStorageMultisampleNV = NULL; PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV = NULL; PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV = NULL; PFNGLMULTICASTBARRIERNVPROC __glewMulticastBarrierNV = NULL; PFNGLMULTICASTBLITFRAMEBUFFERNVPROC __glewMulticastBlitFramebufferNV = NULL; PFNGLMULTICASTBUFFERSUBDATANVPROC __glewMulticastBufferSubDataNV = NULL; PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC __glewMulticastCopyBufferSubDataNV = NULL; PFNGLMULTICASTCOPYIMAGESUBDATANVPROC __glewMulticastCopyImageSubDataNV = NULL; PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewMulticastFramebufferSampleLocationsfvNV = NULL; PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC __glewMulticastGetQueryObjecti64vNV = NULL; PFNGLMULTICASTGETQUERYOBJECTIVNVPROC __glewMulticastGetQueryObjectivNV = NULL; PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC __glewMulticastGetQueryObjectui64vNV = NULL; PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC __glewMulticastGetQueryObjectuivNV = NULL; PFNGLMULTICASTWAITSYNCNVPROC __glewMulticastWaitSyncNV = NULL; PFNGLRENDERGPUMASKNVPROC __glewRenderGpuMaskNV = NULL; PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV = NULL; PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV = NULL; PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV = NULL; PFNGLPROGRAMENVPARAMETERI4UIVNVPROC __glewProgramEnvParameterI4uivNV = NULL; PFNGLPROGRAMENVPARAMETERSI4IVNVPROC __glewProgramEnvParametersI4ivNV = NULL; PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC __glewProgramEnvParametersI4uivNV = NULL; PFNGLPROGRAMLOCALPARAMETERI4INVPROC __glewProgramLocalParameterI4iNV = NULL; PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC __glewProgramLocalParameterI4ivNV = NULL; PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameterI4uiNV = NULL; PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV = NULL; PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV = NULL; PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV = NULL; PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV = NULL; PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV = NULL; PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV = NULL; PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV = NULL; PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV = NULL; PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV = NULL; PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV = NULL; PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV = NULL; PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV = NULL; PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV = NULL; PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV = NULL; PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV = NULL; PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV = NULL; PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV = NULL; PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV = NULL; PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV = NULL; PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV = NULL; PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV = NULL; PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV = NULL; PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV = NULL; PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV = NULL; PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV = NULL; PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV = NULL; PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV = NULL; PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV = NULL; PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV = NULL; PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV = NULL; PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV = NULL; PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV = NULL; PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV = NULL; PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV = NULL; PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV = NULL; PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV = NULL; PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV = NULL; PFNGLCOLOR3HNVPROC __glewColor3hNV = NULL; PFNGLCOLOR3HVNVPROC __glewColor3hvNV = NULL; PFNGLCOLOR4HNVPROC __glewColor4hNV = NULL; PFNGLCOLOR4HVNVPROC __glewColor4hvNV = NULL; PFNGLFOGCOORDHNVPROC __glewFogCoordhNV = NULL; PFNGLFOGCOORDHVNVPROC __glewFogCoordhvNV = NULL; PFNGLMULTITEXCOORD1HNVPROC __glewMultiTexCoord1hNV = NULL; PFNGLMULTITEXCOORD1HVNVPROC __glewMultiTexCoord1hvNV = NULL; PFNGLMULTITEXCOORD2HNVPROC __glewMultiTexCoord2hNV = NULL; PFNGLMULTITEXCOORD2HVNVPROC __glewMultiTexCoord2hvNV = NULL; PFNGLMULTITEXCOORD3HNVPROC __glewMultiTexCoord3hNV = NULL; PFNGLMULTITEXCOORD3HVNVPROC __glewMultiTexCoord3hvNV = NULL; PFNGLMULTITEXCOORD4HNVPROC __glewMultiTexCoord4hNV = NULL; PFNGLMULTITEXCOORD4HVNVPROC __glewMultiTexCoord4hvNV = NULL; PFNGLNORMAL3HNVPROC __glewNormal3hNV = NULL; PFNGLNORMAL3HVNVPROC __glewNormal3hvNV = NULL; PFNGLSECONDARYCOLOR3HNVPROC __glewSecondaryColor3hNV = NULL; PFNGLSECONDARYCOLOR3HVNVPROC __glewSecondaryColor3hvNV = NULL; PFNGLTEXCOORD1HNVPROC __glewTexCoord1hNV = NULL; PFNGLTEXCOORD1HVNVPROC __glewTexCoord1hvNV = NULL; PFNGLTEXCOORD2HNVPROC __glewTexCoord2hNV = NULL; PFNGLTEXCOORD2HVNVPROC __glewTexCoord2hvNV = NULL; PFNGLTEXCOORD3HNVPROC __glewTexCoord3hNV = NULL; PFNGLTEXCOORD3HVNVPROC __glewTexCoord3hvNV = NULL; PFNGLTEXCOORD4HNVPROC __glewTexCoord4hNV = NULL; PFNGLTEXCOORD4HVNVPROC __glewTexCoord4hvNV = NULL; PFNGLVERTEX2HNVPROC __glewVertex2hNV = NULL; PFNGLVERTEX2HVNVPROC __glewVertex2hvNV = NULL; PFNGLVERTEX3HNVPROC __glewVertex3hNV = NULL; PFNGLVERTEX3HVNVPROC __glewVertex3hvNV = NULL; PFNGLVERTEX4HNVPROC __glewVertex4hNV = NULL; PFNGLVERTEX4HVNVPROC __glewVertex4hvNV = NULL; PFNGLVERTEXATTRIB1HNVPROC __glewVertexAttrib1hNV = NULL; PFNGLVERTEXATTRIB1HVNVPROC __glewVertexAttrib1hvNV = NULL; PFNGLVERTEXATTRIB2HNVPROC __glewVertexAttrib2hNV = NULL; PFNGLVERTEXATTRIB2HVNVPROC __glewVertexAttrib2hvNV = NULL; PFNGLVERTEXATTRIB3HNVPROC __glewVertexAttrib3hNV = NULL; PFNGLVERTEXATTRIB3HVNVPROC __glewVertexAttrib3hvNV = NULL; PFNGLVERTEXATTRIB4HNVPROC __glewVertexAttrib4hNV = NULL; PFNGLVERTEXATTRIB4HVNVPROC __glewVertexAttrib4hvNV = NULL; PFNGLVERTEXATTRIBS1HVNVPROC __glewVertexAttribs1hvNV = NULL; PFNGLVERTEXATTRIBS2HVNVPROC __glewVertexAttribs2hvNV = NULL; PFNGLVERTEXATTRIBS3HVNVPROC __glewVertexAttribs3hvNV = NULL; PFNGLVERTEXATTRIBS4HVNVPROC __glewVertexAttribs4hvNV = NULL; PFNGLVERTEXWEIGHTHNVPROC __glewVertexWeighthNV = NULL; PFNGLVERTEXWEIGHTHVNVPROC __glewVertexWeighthvNV = NULL; PFNGLVERTEXATTRIBDIVISORNVPROC __glewVertexAttribDivisorNV = NULL; PFNGLGETINTERNALFORMATSAMPLEIVNVPROC __glewGetInternalformatSampleivNV = NULL; PFNGLUNIFORMMATRIX2X3FVNVPROC __glewUniformMatrix2x3fvNV = NULL; PFNGLUNIFORMMATRIX2X4FVNVPROC __glewUniformMatrix2x4fvNV = NULL; PFNGLUNIFORMMATRIX3X2FVNVPROC __glewUniformMatrix3x2fvNV = NULL; PFNGLUNIFORMMATRIX3X4FVNVPROC __glewUniformMatrix3x4fvNV = NULL; PFNGLUNIFORMMATRIX4X2FVNVPROC __glewUniformMatrix4x2fvNV = NULL; PFNGLUNIFORMMATRIX4X3FVNVPROC __glewUniformMatrix4x3fvNV = NULL; PFNGLBEGINOCCLUSIONQUERYNVPROC __glewBeginOcclusionQueryNV = NULL; PFNGLDELETEOCCLUSIONQUERIESNVPROC __glewDeleteOcclusionQueriesNV = NULL; PFNGLENDOCCLUSIONQUERYNVPROC __glewEndOcclusionQueryNV = NULL; PFNGLGENOCCLUSIONQUERIESNVPROC __glewGenOcclusionQueriesNV = NULL; PFNGLGETOCCLUSIONQUERYIVNVPROC __glewGetOcclusionQueryivNV = NULL; PFNGLGETOCCLUSIONQUERYUIVNVPROC __glewGetOcclusionQueryuivNV = NULL; PFNGLISOCCLUSIONQUERYNVPROC __glewIsOcclusionQueryNV = NULL; PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC __glewProgramBufferParametersIivNV = NULL; PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC __glewProgramBufferParametersIuivNV = NULL; PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC __glewProgramBufferParametersfvNV = NULL; PFNGLCOPYPATHNVPROC __glewCopyPathNV = NULL; PFNGLCOVERFILLPATHINSTANCEDNVPROC __glewCoverFillPathInstancedNV = NULL; PFNGLCOVERFILLPATHNVPROC __glewCoverFillPathNV = NULL; PFNGLCOVERSTROKEPATHINSTANCEDNVPROC __glewCoverStrokePathInstancedNV = NULL; PFNGLCOVERSTROKEPATHNVPROC __glewCoverStrokePathNV = NULL; PFNGLDELETEPATHSNVPROC __glewDeletePathsNV = NULL; PFNGLGENPATHSNVPROC __glewGenPathsNV = NULL; PFNGLGETPATHCOLORGENFVNVPROC __glewGetPathColorGenfvNV = NULL; PFNGLGETPATHCOLORGENIVNVPROC __glewGetPathColorGenivNV = NULL; PFNGLGETPATHCOMMANDSNVPROC __glewGetPathCommandsNV = NULL; PFNGLGETPATHCOORDSNVPROC __glewGetPathCoordsNV = NULL; PFNGLGETPATHDASHARRAYNVPROC __glewGetPathDashArrayNV = NULL; PFNGLGETPATHLENGTHNVPROC __glewGetPathLengthNV = NULL; PFNGLGETPATHMETRICRANGENVPROC __glewGetPathMetricRangeNV = NULL; PFNGLGETPATHMETRICSNVPROC __glewGetPathMetricsNV = NULL; PFNGLGETPATHPARAMETERFVNVPROC __glewGetPathParameterfvNV = NULL; PFNGLGETPATHPARAMETERIVNVPROC __glewGetPathParameterivNV = NULL; PFNGLGETPATHSPACINGNVPROC __glewGetPathSpacingNV = NULL; PFNGLGETPATHTEXGENFVNVPROC __glewGetPathTexGenfvNV = NULL; PFNGLGETPATHTEXGENIVNVPROC __glewGetPathTexGenivNV = NULL; PFNGLGETPROGRAMRESOURCEFVNVPROC __glewGetProgramResourcefvNV = NULL; PFNGLINTERPOLATEPATHSNVPROC __glewInterpolatePathsNV = NULL; PFNGLISPATHNVPROC __glewIsPathNV = NULL; PFNGLISPOINTINFILLPATHNVPROC __glewIsPointInFillPathNV = NULL; PFNGLISPOINTINSTROKEPATHNVPROC __glewIsPointInStrokePathNV = NULL; PFNGLMATRIXLOAD3X2FNVPROC __glewMatrixLoad3x2fNV = NULL; PFNGLMATRIXLOAD3X3FNVPROC __glewMatrixLoad3x3fNV = NULL; PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC __glewMatrixLoadTranspose3x3fNV = NULL; PFNGLMATRIXMULT3X2FNVPROC __glewMatrixMult3x2fNV = NULL; PFNGLMATRIXMULT3X3FNVPROC __glewMatrixMult3x3fNV = NULL; PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC __glewMatrixMultTranspose3x3fNV = NULL; PFNGLPATHCOLORGENNVPROC __glewPathColorGenNV = NULL; PFNGLPATHCOMMANDSNVPROC __glewPathCommandsNV = NULL; PFNGLPATHCOORDSNVPROC __glewPathCoordsNV = NULL; PFNGLPATHCOVERDEPTHFUNCNVPROC __glewPathCoverDepthFuncNV = NULL; PFNGLPATHDASHARRAYNVPROC __glewPathDashArrayNV = NULL; PFNGLPATHFOGGENNVPROC __glewPathFogGenNV = NULL; PFNGLPATHGLYPHINDEXARRAYNVPROC __glewPathGlyphIndexArrayNV = NULL; PFNGLPATHGLYPHINDEXRANGENVPROC __glewPathGlyphIndexRangeNV = NULL; PFNGLPATHGLYPHRANGENVPROC __glewPathGlyphRangeNV = NULL; PFNGLPATHGLYPHSNVPROC __glewPathGlyphsNV = NULL; PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC __glewPathMemoryGlyphIndexArrayNV = NULL; PFNGLPATHPARAMETERFNVPROC __glewPathParameterfNV = NULL; PFNGLPATHPARAMETERFVNVPROC __glewPathParameterfvNV = NULL; PFNGLPATHPARAMETERINVPROC __glewPathParameteriNV = NULL; PFNGLPATHPARAMETERIVNVPROC __glewPathParameterivNV = NULL; PFNGLPATHSTENCILDEPTHOFFSETNVPROC __glewPathStencilDepthOffsetNV = NULL; PFNGLPATHSTENCILFUNCNVPROC __glewPathStencilFuncNV = NULL; PFNGLPATHSTRINGNVPROC __glewPathStringNV = NULL; PFNGLPATHSUBCOMMANDSNVPROC __glewPathSubCommandsNV = NULL; PFNGLPATHSUBCOORDSNVPROC __glewPathSubCoordsNV = NULL; PFNGLPATHTEXGENNVPROC __glewPathTexGenNV = NULL; PFNGLPOINTALONGPATHNVPROC __glewPointAlongPathNV = NULL; PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC __glewProgramPathFragmentInputGenNV = NULL; PFNGLSTENCILFILLPATHINSTANCEDNVPROC __glewStencilFillPathInstancedNV = NULL; PFNGLSTENCILFILLPATHNVPROC __glewStencilFillPathNV = NULL; PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC __glewStencilStrokePathInstancedNV = NULL; PFNGLSTENCILSTROKEPATHNVPROC __glewStencilStrokePathNV = NULL; PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC __glewStencilThenCoverFillPathInstancedNV = NULL; PFNGLSTENCILTHENCOVERFILLPATHNVPROC __glewStencilThenCoverFillPathNV = NULL; PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC __glewStencilThenCoverStrokePathInstancedNV = NULL; PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC __glewStencilThenCoverStrokePathNV = NULL; PFNGLTRANSFORMPATHNVPROC __glewTransformPathNV = NULL; PFNGLWEIGHTPATHSNVPROC __glewWeightPathsNV = NULL; PFNGLFLUSHPIXELDATARANGENVPROC __glewFlushPixelDataRangeNV = NULL; PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV = NULL; PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV = NULL; PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV = NULL; PFNGLPOLYGONMODENVPROC __glewPolygonModeNV = NULL; PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV = NULL; PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV = NULL; PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV = NULL; PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV = NULL; PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV = NULL; PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV = NULL; PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV = NULL; PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV = NULL; PFNGLCOMBINERINPUTNVPROC __glewCombinerInputNV = NULL; PFNGLCOMBINEROUTPUTNVPROC __glewCombinerOutputNV = NULL; PFNGLCOMBINERPARAMETERFNVPROC __glewCombinerParameterfNV = NULL; PFNGLCOMBINERPARAMETERFVNVPROC __glewCombinerParameterfvNV = NULL; PFNGLCOMBINERPARAMETERINVPROC __glewCombinerParameteriNV = NULL; PFNGLCOMBINERPARAMETERIVNVPROC __glewCombinerParameterivNV = NULL; PFNGLFINALCOMBINERINPUTNVPROC __glewFinalCombinerInputNV = NULL; PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC __glewGetCombinerInputParameterfvNV = NULL; PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC __glewGetCombinerInputParameterivNV = NULL; PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC __glewGetCombinerOutputParameterfvNV = NULL; PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC __glewGetCombinerOutputParameterivNV = NULL; PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC __glewGetFinalCombinerInputParameterfvNV = NULL; PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombinerInputParameterivNV = NULL; PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV = NULL; PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV = NULL; PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewFramebufferSampleLocationsfvNV = NULL; PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC __glewNamedFramebufferSampleLocationsfvNV = NULL; PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV = NULL; PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV = NULL; PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV = NULL; PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV = NULL; PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV = NULL; PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV = NULL; PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV = NULL; PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV = NULL; PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV = NULL; PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV = NULL; PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV = NULL; PFNGLUNIFORMUI64NVPROC __glewUniformui64NV = NULL; PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV = NULL; PFNGLCOMPRESSEDTEXIMAGE3DNVPROC __glewCompressedTexImage3DNV = NULL; PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC __glewCompressedTexSubImage3DNV = NULL; PFNGLCOPYTEXSUBIMAGE3DNVPROC __glewCopyTexSubImage3DNV = NULL; PFNGLFRAMEBUFFERTEXTURELAYERNVPROC __glewFramebufferTextureLayerNV = NULL; PFNGLTEXIMAGE3DNVPROC __glewTexImage3DNV = NULL; PFNGLTEXSUBIMAGE3DNVPROC __glewTexSubImage3DNV = NULL; PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV = NULL; PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV = NULL; PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV = NULL; PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV = NULL; PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV = NULL; PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV = NULL; PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV = NULL; PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV = NULL; PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV = NULL; PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV = NULL; PFNGLBINDBUFFEROFFSETNVPROC __glewBindBufferOffsetNV = NULL; PFNGLBINDBUFFERRANGENVPROC __glewBindBufferRangeNV = NULL; PFNGLENDTRANSFORMFEEDBACKNVPROC __glewEndTransformFeedbackNV = NULL; PFNGLGETACTIVEVARYINGNVPROC __glewGetActiveVaryingNV = NULL; PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC __glewGetTransformFeedbackVaryingNV = NULL; PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV = NULL; PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV = NULL; PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV = NULL; PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV = NULL; PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV = NULL; PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV = NULL; PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV = NULL; PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV = NULL; PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV = NULL; PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV = NULL; PFNGLVDPAUFININVPROC __glewVDPAUFiniNV = NULL; PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV = NULL; PFNGLVDPAUINITNVPROC __glewVDPAUInitNV = NULL; PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV = NULL; PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV = NULL; PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV = NULL; PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV = NULL; PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV = NULL; PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV = NULL; PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV = NULL; PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV = NULL; PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV = NULL; PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV = NULL; PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV = NULL; PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV = NULL; PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV = NULL; PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV = NULL; PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV = NULL; PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV = NULL; PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV = NULL; PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV = NULL; PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV = NULL; PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV = NULL; PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV = NULL; PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV = NULL; PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV = NULL; PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV = NULL; PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV = NULL; PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV = NULL; PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV = NULL; PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV = NULL; PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV = NULL; PFNGLCOLORFORMATNVPROC __glewColorFormatNV = NULL; PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV = NULL; PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV = NULL; PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV = NULL; PFNGLINDEXFORMATNVPROC __glewIndexFormatNV = NULL; PFNGLNORMALFORMATNVPROC __glewNormalFormatNV = NULL; PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV = NULL; PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV = NULL; PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV = NULL; PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV = NULL; PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV = NULL; PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV = NULL; PFNGLBINDPROGRAMNVPROC __glewBindProgramNV = NULL; PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV = NULL; PFNGLEXECUTEPROGRAMNVPROC __glewExecuteProgramNV = NULL; PFNGLGENPROGRAMSNVPROC __glewGenProgramsNV = NULL; PFNGLGETPROGRAMPARAMETERDVNVPROC __glewGetProgramParameterdvNV = NULL; PFNGLGETPROGRAMPARAMETERFVNVPROC __glewGetProgramParameterfvNV = NULL; PFNGLGETPROGRAMSTRINGNVPROC __glewGetProgramStringNV = NULL; PFNGLGETPROGRAMIVNVPROC __glewGetProgramivNV = NULL; PFNGLGETTRACKMATRIXIVNVPROC __glewGetTrackMatrixivNV = NULL; PFNGLGETVERTEXATTRIBPOINTERVNVPROC __glewGetVertexAttribPointervNV = NULL; PFNGLGETVERTEXATTRIBDVNVPROC __glewGetVertexAttribdvNV = NULL; PFNGLGETVERTEXATTRIBFVNVPROC __glewGetVertexAttribfvNV = NULL; PFNGLGETVERTEXATTRIBIVNVPROC __glewGetVertexAttribivNV = NULL; PFNGLISPROGRAMNVPROC __glewIsProgramNV = NULL; PFNGLLOADPROGRAMNVPROC __glewLoadProgramNV = NULL; PFNGLPROGRAMPARAMETER4DNVPROC __glewProgramParameter4dNV = NULL; PFNGLPROGRAMPARAMETER4DVNVPROC __glewProgramParameter4dvNV = NULL; PFNGLPROGRAMPARAMETER4FNVPROC __glewProgramParameter4fNV = NULL; PFNGLPROGRAMPARAMETER4FVNVPROC __glewProgramParameter4fvNV = NULL; PFNGLPROGRAMPARAMETERS4DVNVPROC __glewProgramParameters4dvNV = NULL; PFNGLPROGRAMPARAMETERS4FVNVPROC __glewProgramParameters4fvNV = NULL; PFNGLREQUESTRESIDENTPROGRAMSNVPROC __glewRequestResidentProgramsNV = NULL; PFNGLTRACKMATRIXNVPROC __glewTrackMatrixNV = NULL; PFNGLVERTEXATTRIB1DNVPROC __glewVertexAttrib1dNV = NULL; PFNGLVERTEXATTRIB1DVNVPROC __glewVertexAttrib1dvNV = NULL; PFNGLVERTEXATTRIB1FNVPROC __glewVertexAttrib1fNV = NULL; PFNGLVERTEXATTRIB1FVNVPROC __glewVertexAttrib1fvNV = NULL; PFNGLVERTEXATTRIB1SNVPROC __glewVertexAttrib1sNV = NULL; PFNGLVERTEXATTRIB1SVNVPROC __glewVertexAttrib1svNV = NULL; PFNGLVERTEXATTRIB2DNVPROC __glewVertexAttrib2dNV = NULL; PFNGLVERTEXATTRIB2DVNVPROC __glewVertexAttrib2dvNV = NULL; PFNGLVERTEXATTRIB2FNVPROC __glewVertexAttrib2fNV = NULL; PFNGLVERTEXATTRIB2FVNVPROC __glewVertexAttrib2fvNV = NULL; PFNGLVERTEXATTRIB2SNVPROC __glewVertexAttrib2sNV = NULL; PFNGLVERTEXATTRIB2SVNVPROC __glewVertexAttrib2svNV = NULL; PFNGLVERTEXATTRIB3DNVPROC __glewVertexAttrib3dNV = NULL; PFNGLVERTEXATTRIB3DVNVPROC __glewVertexAttrib3dvNV = NULL; PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV = NULL; PFNGLVERTEXATTRIB3FVNVPROC __glewVertexAttrib3fvNV = NULL; PFNGLVERTEXATTRIB3SNVPROC __glewVertexAttrib3sNV = NULL; PFNGLVERTEXATTRIB3SVNVPROC __glewVertexAttrib3svNV = NULL; PFNGLVERTEXATTRIB4DNVPROC __glewVertexAttrib4dNV = NULL; PFNGLVERTEXATTRIB4DVNVPROC __glewVertexAttrib4dvNV = NULL; PFNGLVERTEXATTRIB4FNVPROC __glewVertexAttrib4fNV = NULL; PFNGLVERTEXATTRIB4FVNVPROC __glewVertexAttrib4fvNV = NULL; PFNGLVERTEXATTRIB4SNVPROC __glewVertexAttrib4sNV = NULL; PFNGLVERTEXATTRIB4SVNVPROC __glewVertexAttrib4svNV = NULL; PFNGLVERTEXATTRIB4UBNVPROC __glewVertexAttrib4ubNV = NULL; PFNGLVERTEXATTRIB4UBVNVPROC __glewVertexAttrib4ubvNV = NULL; PFNGLVERTEXATTRIBPOINTERNVPROC __glewVertexAttribPointerNV = NULL; PFNGLVERTEXATTRIBS1DVNVPROC __glewVertexAttribs1dvNV = NULL; PFNGLVERTEXATTRIBS1FVNVPROC __glewVertexAttribs1fvNV = NULL; PFNGLVERTEXATTRIBS1SVNVPROC __glewVertexAttribs1svNV = NULL; PFNGLVERTEXATTRIBS2DVNVPROC __glewVertexAttribs2dvNV = NULL; PFNGLVERTEXATTRIBS2FVNVPROC __glewVertexAttribs2fvNV = NULL; PFNGLVERTEXATTRIBS2SVNVPROC __glewVertexAttribs2svNV = NULL; PFNGLVERTEXATTRIBS3DVNVPROC __glewVertexAttribs3dvNV = NULL; PFNGLVERTEXATTRIBS3FVNVPROC __glewVertexAttribs3fvNV = NULL; PFNGLVERTEXATTRIBS3SVNVPROC __glewVertexAttribs3svNV = NULL; PFNGLVERTEXATTRIBS4DVNVPROC __glewVertexAttribs4dvNV = NULL; PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV = NULL; PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV = NULL; PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV = NULL; PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV = NULL; PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV = NULL; PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV = NULL; PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV = NULL; PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV = NULL; PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV = NULL; PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV = NULL; PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV = NULL; PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV = NULL; PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV = NULL; PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV = NULL; PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV = NULL; PFNGLDEPTHRANGEARRAYFVNVPROC __glewDepthRangeArrayfvNV = NULL; PFNGLDEPTHRANGEINDEXEDFNVPROC __glewDepthRangeIndexedfNV = NULL; PFNGLDISABLEINVPROC __glewDisableiNV = NULL; PFNGLENABLEINVPROC __glewEnableiNV = NULL; PFNGLGETFLOATI_VNVPROC __glewGetFloati_vNV = NULL; PFNGLISENABLEDINVPROC __glewIsEnablediNV = NULL; PFNGLSCISSORARRAYVNVPROC __glewScissorArrayvNV = NULL; PFNGLSCISSORINDEXEDNVPROC __glewScissorIndexedNV = NULL; PFNGLSCISSORINDEXEDVNVPROC __glewScissorIndexedvNV = NULL; PFNGLVIEWPORTARRAYVNVPROC __glewViewportArrayvNV = NULL; PFNGLVIEWPORTINDEXEDFNVPROC __glewViewportIndexedfNV = NULL; PFNGLVIEWPORTINDEXEDFVNVPROC __glewViewportIndexedfvNV = NULL; PFNGLVIEWPORTSWIZZLENVPROC __glewViewportSwizzleNV = NULL; PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC __glewFramebufferTextureMultiviewOVR = NULL; PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC __glewFramebufferTextureMultisampleMultiviewOVR = NULL; PFNGLALPHAFUNCQCOMPROC __glewAlphaFuncQCOM = NULL; PFNGLDISABLEDRIVERCONTROLQCOMPROC __glewDisableDriverControlQCOM = NULL; PFNGLENABLEDRIVERCONTROLQCOMPROC __glewEnableDriverControlQCOM = NULL; PFNGLGETDRIVERCONTROLSTRINGQCOMPROC __glewGetDriverControlStringQCOM = NULL; PFNGLGETDRIVERCONTROLSQCOMPROC __glewGetDriverControlsQCOM = NULL; PFNGLEXTGETBUFFERPOINTERVQCOMPROC __glewExtGetBufferPointervQCOM = NULL; PFNGLEXTGETBUFFERSQCOMPROC __glewExtGetBuffersQCOM = NULL; PFNGLEXTGETFRAMEBUFFERSQCOMPROC __glewExtGetFramebuffersQCOM = NULL; PFNGLEXTGETRENDERBUFFERSQCOMPROC __glewExtGetRenderbuffersQCOM = NULL; PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC __glewExtGetTexLevelParameterivQCOM = NULL; PFNGLEXTGETTEXSUBIMAGEQCOMPROC __glewExtGetTexSubImageQCOM = NULL; PFNGLEXTGETTEXTURESQCOMPROC __glewExtGetTexturesQCOM = NULL; PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC __glewExtTexObjectStateOverrideiQCOM = NULL; PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC __glewExtGetProgramBinarySourceQCOM = NULL; PFNGLEXTGETPROGRAMSQCOMPROC __glewExtGetProgramsQCOM = NULL; PFNGLEXTGETSHADERSQCOMPROC __glewExtGetShadersQCOM = NULL; PFNGLEXTISPROGRAMBINARYQCOMPROC __glewExtIsProgramBinaryQCOM = NULL; PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC __glewFramebufferFoveationConfigQCOM = NULL; PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC __glewFramebufferFoveationParametersQCOM = NULL; PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC __glewFramebufferFetchBarrierQCOM = NULL; PFNGLENDTILINGQCOMPROC __glewEndTilingQCOM = NULL; PFNGLSTARTTILINGQCOMPROC __glewStartTilingQCOM = NULL; PFNGLALPHAFUNCXPROC __glewAlphaFuncx = NULL; PFNGLCLEARCOLORXPROC __glewClearColorx = NULL; PFNGLCLEARDEPTHXPROC __glewClearDepthx = NULL; PFNGLCOLOR4XPROC __glewColor4x = NULL; PFNGLDEPTHRANGEXPROC __glewDepthRangex = NULL; PFNGLFOGXPROC __glewFogx = NULL; PFNGLFOGXVPROC __glewFogxv = NULL; PFNGLFRUSTUMFPROC __glewFrustumf = NULL; PFNGLFRUSTUMXPROC __glewFrustumx = NULL; PFNGLLIGHTMODELXPROC __glewLightModelx = NULL; PFNGLLIGHTMODELXVPROC __glewLightModelxv = NULL; PFNGLLIGHTXPROC __glewLightx = NULL; PFNGLLIGHTXVPROC __glewLightxv = NULL; PFNGLLINEWIDTHXPROC __glewLineWidthx = NULL; PFNGLLOADMATRIXXPROC __glewLoadMatrixx = NULL; PFNGLMATERIALXPROC __glewMaterialx = NULL; PFNGLMATERIALXVPROC __glewMaterialxv = NULL; PFNGLMULTMATRIXXPROC __glewMultMatrixx = NULL; PFNGLMULTITEXCOORD4XPROC __glewMultiTexCoord4x = NULL; PFNGLNORMAL3XPROC __glewNormal3x = NULL; PFNGLORTHOFPROC __glewOrthof = NULL; PFNGLORTHOXPROC __glewOrthox = NULL; PFNGLPOINTSIZEXPROC __glewPointSizex = NULL; PFNGLPOLYGONOFFSETXPROC __glewPolygonOffsetx = NULL; PFNGLROTATEXPROC __glewRotatex = NULL; PFNGLSAMPLECOVERAGEXPROC __glewSampleCoveragex = NULL; PFNGLSCALEXPROC __glewScalex = NULL; PFNGLTEXENVXPROC __glewTexEnvx = NULL; PFNGLTEXENVXVPROC __glewTexEnvxv = NULL; PFNGLTEXPARAMETERXPROC __glewTexParameterx = NULL; PFNGLTRANSLATEXPROC __glewTranslatex = NULL; PFNGLCLIPPLANEFPROC __glewClipPlanef = NULL; PFNGLCLIPPLANEXPROC __glewClipPlanex = NULL; PFNGLGETCLIPPLANEFPROC __glewGetClipPlanef = NULL; PFNGLGETCLIPPLANEXPROC __glewGetClipPlanex = NULL; PFNGLGETFIXEDVPROC __glewGetFixedv = NULL; PFNGLGETLIGHTXVPROC __glewGetLightxv = NULL; PFNGLGETMATERIALXVPROC __glewGetMaterialxv = NULL; PFNGLGETTEXENVXVPROC __glewGetTexEnvxv = NULL; PFNGLGETTEXPARAMETERXVPROC __glewGetTexParameterxv = NULL; PFNGLPOINTPARAMETERXPROC __glewPointParameterx = NULL; PFNGLPOINTPARAMETERXVPROC __glewPointParameterxv = NULL; PFNGLPOINTSIZEPOINTEROESPROC __glewPointSizePointerOES = NULL; PFNGLTEXPARAMETERXVPROC __glewTexParameterxv = NULL; PFNGLERRORSTRINGREGALPROC __glewErrorStringREGAL = NULL; PFNGLGETEXTENSIONREGALPROC __glewGetExtensionREGAL = NULL; PFNGLISSUPPORTEDREGALPROC __glewIsSupportedREGAL = NULL; PFNGLLOGMESSAGECALLBACKREGALPROC __glewLogMessageCallbackREGAL = NULL; PFNGLGETPROCADDRESSREGALPROC __glewGetProcAddressREGAL = NULL; PFNGLDETAILTEXFUNCSGISPROC __glewDetailTexFuncSGIS = NULL; PFNGLGETDETAILTEXFUNCSGISPROC __glewGetDetailTexFuncSGIS = NULL; PFNGLFOGFUNCSGISPROC __glewFogFuncSGIS = NULL; PFNGLGETFOGFUNCSGISPROC __glewGetFogFuncSGIS = NULL; PFNGLSAMPLEMASKSGISPROC __glewSampleMaskSGIS = NULL; PFNGLSAMPLEPATTERNSGISPROC __glewSamplePatternSGIS = NULL; PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC __glewInterleavedTextureCoordSetsSGIS = NULL; PFNGLSELECTTEXTURECOORDSETSGISPROC __glewSelectTextureCoordSetSGIS = NULL; PFNGLSELECTTEXTURESGISPROC __glewSelectTextureSGIS = NULL; PFNGLSELECTTEXTURETRANSFORMSGISPROC __glewSelectTextureTransformSGIS = NULL; PFNGLMULTISAMPLESUBRECTPOSSGISPROC __glewMultisampleSubRectPosSGIS = NULL; PFNGLGETSHARPENTEXFUNCSGISPROC __glewGetSharpenTexFuncSGIS = NULL; PFNGLSHARPENTEXFUNCSGISPROC __glewSharpenTexFuncSGIS = NULL; PFNGLTEXIMAGE4DSGISPROC __glewTexImage4DSGIS = NULL; PFNGLTEXSUBIMAGE4DSGISPROC __glewTexSubImage4DSGIS = NULL; PFNGLGETTEXFILTERFUNCSGISPROC __glewGetTexFilterFuncSGIS = NULL; PFNGLTEXFILTERFUNCSGISPROC __glewTexFilterFuncSGIS = NULL; PFNGLASYNCMARKERSGIXPROC __glewAsyncMarkerSGIX = NULL; PFNGLDELETEASYNCMARKERSSGIXPROC __glewDeleteAsyncMarkersSGIX = NULL; PFNGLFINISHASYNCSGIXPROC __glewFinishAsyncSGIX = NULL; PFNGLGENASYNCMARKERSSGIXPROC __glewGenAsyncMarkersSGIX = NULL; PFNGLISASYNCMARKERSGIXPROC __glewIsAsyncMarkerSGIX = NULL; PFNGLPOLLASYNCSGIXPROC __glewPollAsyncSGIX = NULL; PFNGLADDRESSSPACEPROC __glewAddressSpace = NULL; PFNGLDATAPIPEPROC __glewDataPipe = NULL; PFNGLFLUSHRASTERSGIXPROC __glewFlushRasterSGIX = NULL; PFNGLFOGLAYERSSGIXPROC __glewFogLayersSGIX = NULL; PFNGLGETFOGLAYERSSGIXPROC __glewGetFogLayersSGIX = NULL; PFNGLTEXTUREFOGSGIXPROC __glewTextureFogSGIX = NULL; PFNGLFRAGMENTCOLORMATERIALSGIXPROC __glewFragmentColorMaterialSGIX = NULL; PFNGLFRAGMENTLIGHTMODELFSGIXPROC __glewFragmentLightModelfSGIX = NULL; PFNGLFRAGMENTLIGHTMODELFVSGIXPROC __glewFragmentLightModelfvSGIX = NULL; PFNGLFRAGMENTLIGHTMODELISGIXPROC __glewFragmentLightModeliSGIX = NULL; PFNGLFRAGMENTLIGHTMODELIVSGIXPROC __glewFragmentLightModelivSGIX = NULL; PFNGLFRAGMENTLIGHTFSGIXPROC __glewFragmentLightfSGIX = NULL; PFNGLFRAGMENTLIGHTFVSGIXPROC __glewFragmentLightfvSGIX = NULL; PFNGLFRAGMENTLIGHTISGIXPROC __glewFragmentLightiSGIX = NULL; PFNGLFRAGMENTLIGHTIVSGIXPROC __glewFragmentLightivSGIX = NULL; PFNGLFRAGMENTMATERIALFSGIXPROC __glewFragmentMaterialfSGIX = NULL; PFNGLFRAGMENTMATERIALFVSGIXPROC __glewFragmentMaterialfvSGIX = NULL; PFNGLFRAGMENTMATERIALISGIXPROC __glewFragmentMaterialiSGIX = NULL; PFNGLFRAGMENTMATERIALIVSGIXPROC __glewFragmentMaterialivSGIX = NULL; PFNGLGETFRAGMENTLIGHTFVSGIXPROC __glewGetFragmentLightfvSGIX = NULL; PFNGLGETFRAGMENTLIGHTIVSGIXPROC __glewGetFragmentLightivSGIX = NULL; PFNGLGETFRAGMENTMATERIALFVSGIXPROC __glewGetFragmentMaterialfvSGIX = NULL; PFNGLGETFRAGMENTMATERIALIVSGIXPROC __glewGetFragmentMaterialivSGIX = NULL; PFNGLFRAMEZOOMSGIXPROC __glewFrameZoomSGIX = NULL; PFNGLIGLOOINTERFACESGIXPROC __glewIglooInterfaceSGIX = NULL; PFNGLALLOCMPEGPREDICTORSSGIXPROC __glewAllocMPEGPredictorsSGIX = NULL; PFNGLDELETEMPEGPREDICTORSSGIXPROC __glewDeleteMPEGPredictorsSGIX = NULL; PFNGLGENMPEGPREDICTORSSGIXPROC __glewGenMPEGPredictorsSGIX = NULL; PFNGLGETMPEGPARAMETERFVSGIXPROC __glewGetMPEGParameterfvSGIX = NULL; PFNGLGETMPEGPARAMETERIVSGIXPROC __glewGetMPEGParameterivSGIX = NULL; PFNGLGETMPEGPREDICTORSGIXPROC __glewGetMPEGPredictorSGIX = NULL; PFNGLGETMPEGQUANTTABLEUBVPROC __glewGetMPEGQuantTableubv = NULL; PFNGLISMPEGPREDICTORSGIXPROC __glewIsMPEGPredictorSGIX = NULL; PFNGLMPEGPREDICTORSGIXPROC __glewMPEGPredictorSGIX = NULL; PFNGLMPEGQUANTTABLEUBVPROC __glewMPEGQuantTableubv = NULL; PFNGLSWAPMPEGPREDICTORSSGIXPROC __glewSwapMPEGPredictorsSGIX = NULL; PFNGLGETNONLINLIGHTFVSGIXPROC __glewGetNonlinLightfvSGIX = NULL; PFNGLGETNONLINMATERIALFVSGIXPROC __glewGetNonlinMaterialfvSGIX = NULL; PFNGLNONLINLIGHTFVSGIXPROC __glewNonlinLightfvSGIX = NULL; PFNGLNONLINMATERIALFVSGIXPROC __glewNonlinMaterialfvSGIX = NULL; PFNGLPIXELTEXGENSGIXPROC __glewPixelTexGenSGIX = NULL; PFNGLDEFORMSGIXPROC __glewDeformSGIX = NULL; PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC __glewLoadIdentityDeformationMapSGIX = NULL; PFNGLMESHBREADTHSGIXPROC __glewMeshBreadthSGIX = NULL; PFNGLMESHSTRIDESGIXPROC __glewMeshStrideSGIX = NULL; PFNGLREFERENCEPLANESGIXPROC __glewReferencePlaneSGIX = NULL; PFNGLSPRITEPARAMETERFSGIXPROC __glewSpriteParameterfSGIX = NULL; PFNGLSPRITEPARAMETERFVSGIXPROC __glewSpriteParameterfvSGIX = NULL; PFNGLSPRITEPARAMETERISGIXPROC __glewSpriteParameteriSGIX = NULL; PFNGLSPRITEPARAMETERIVSGIXPROC __glewSpriteParameterivSGIX = NULL; PFNGLTAGSAMPLEBUFFERSGIXPROC __glewTagSampleBufferSGIX = NULL; PFNGLGETVECTOROPERATIONSGIXPROC __glewGetVectorOperationSGIX = NULL; PFNGLVECTOROPERATIONSGIXPROC __glewVectorOperationSGIX = NULL; PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC __glewAreVertexArraysResidentSGIX = NULL; PFNGLBINDVERTEXARRAYSGIXPROC __glewBindVertexArraySGIX = NULL; PFNGLDELETEVERTEXARRAYSSGIXPROC __glewDeleteVertexArraysSGIX = NULL; PFNGLGENVERTEXARRAYSSGIXPROC __glewGenVertexArraysSGIX = NULL; PFNGLISVERTEXARRAYSGIXPROC __glewIsVertexArraySGIX = NULL; PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC __glewPrioritizeVertexArraysSGIX = NULL; PFNGLCOLORTABLEPARAMETERFVSGIPROC __glewColorTableParameterfvSGI = NULL; PFNGLCOLORTABLEPARAMETERIVSGIPROC __glewColorTableParameterivSGI = NULL; PFNGLCOLORTABLESGIPROC __glewColorTableSGI = NULL; PFNGLCOPYCOLORTABLESGIPROC __glewCopyColorTableSGI = NULL; PFNGLGETCOLORTABLEPARAMETERFVSGIPROC __glewGetColorTableParameterfvSGI = NULL; PFNGLGETCOLORTABLEPARAMETERIVSGIPROC __glewGetColorTableParameterivSGI = NULL; PFNGLGETCOLORTABLESGIPROC __glewGetColorTableSGI = NULL; PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC __glewGetPixelTransformParameterfvSGI = NULL; PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC __glewGetPixelTransformParameterivSGI = NULL; PFNGLPIXELTRANSFORMPARAMETERFSGIPROC __glewPixelTransformParameterfSGI = NULL; PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC __glewPixelTransformParameterfvSGI = NULL; PFNGLPIXELTRANSFORMPARAMETERISGIPROC __glewPixelTransformParameteriSGI = NULL; PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC __glewPixelTransformParameterivSGI = NULL; PFNGLPIXELTRANSFORMSGIPROC __glewPixelTransformSGI = NULL; PFNGLFINISHTEXTURESUNXPROC __glewFinishTextureSUNX = NULL; PFNGLGLOBALALPHAFACTORBSUNPROC __glewGlobalAlphaFactorbSUN = NULL; PFNGLGLOBALALPHAFACTORDSUNPROC __glewGlobalAlphaFactordSUN = NULL; PFNGLGLOBALALPHAFACTORFSUNPROC __glewGlobalAlphaFactorfSUN = NULL; PFNGLGLOBALALPHAFACTORISUNPROC __glewGlobalAlphaFactoriSUN = NULL; PFNGLGLOBALALPHAFACTORSSUNPROC __glewGlobalAlphaFactorsSUN = NULL; PFNGLGLOBALALPHAFACTORUBSUNPROC __glewGlobalAlphaFactorubSUN = NULL; PFNGLGLOBALALPHAFACTORUISUNPROC __glewGlobalAlphaFactoruiSUN = NULL; PFNGLGLOBALALPHAFACTORUSSUNPROC __glewGlobalAlphaFactorusSUN = NULL; PFNGLREADVIDEOPIXELSSUNPROC __glewReadVideoPixelsSUN = NULL; PFNGLREPLACEMENTCODEPOINTERSUNPROC __glewReplacementCodePointerSUN = NULL; PFNGLREPLACEMENTCODEUBSUNPROC __glewReplacementCodeubSUN = NULL; PFNGLREPLACEMENTCODEUBVSUNPROC __glewReplacementCodeubvSUN = NULL; PFNGLREPLACEMENTCODEUISUNPROC __glewReplacementCodeuiSUN = NULL; PFNGLREPLACEMENTCODEUIVSUNPROC __glewReplacementCodeuivSUN = NULL; PFNGLREPLACEMENTCODEUSSUNPROC __glewReplacementCodeusSUN = NULL; PFNGLREPLACEMENTCODEUSVSUNPROC __glewReplacementCodeusvSUN = NULL; PFNGLCOLOR3FVERTEX3FSUNPROC __glewColor3fVertex3fSUN = NULL; PFNGLCOLOR3FVERTEX3FVSUNPROC __glewColor3fVertex3fvSUN = NULL; PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewColor4fNormal3fVertex3fSUN = NULL; PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewColor4fNormal3fVertex3fvSUN = NULL; PFNGLCOLOR4UBVERTEX2FSUNPROC __glewColor4ubVertex2fSUN = NULL; PFNGLCOLOR4UBVERTEX2FVSUNPROC __glewColor4ubVertex2fvSUN = NULL; PFNGLCOLOR4UBVERTEX3FSUNPROC __glewColor4ubVertex3fSUN = NULL; PFNGLCOLOR4UBVERTEX3FVSUNPROC __glewColor4ubVertex3fvSUN = NULL; PFNGLNORMAL3FVERTEX3FSUNPROC __glewNormal3fVertex3fSUN = NULL; PFNGLNORMAL3FVERTEX3FVSUNPROC __glewNormal3fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC __glewReplacementCodeuiColor3fVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor3fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiColor4fNormal3fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC __glewReplacementCodeuiColor4ubVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC __glewReplacementCodeuiColor4ubVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiNormal3fVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiNormal3fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC __glewReplacementCodeuiTexCoord2fVertex3fvSUN = NULL; PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC __glewReplacementCodeuiVertex3fSUN = NULL; PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC __glewReplacementCodeuiVertex3fvSUN = NULL; PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC __glewTexCoord2fColor3fVertex3fSUN = NULL; PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC __glewTexCoord2fColor3fVertex3fvSUN = NULL; PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fSUN = NULL; PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fColor4fNormal3fVertex3fvSUN = NULL; PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC __glewTexCoord2fColor4ubVertex3fSUN = NULL; PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC __glewTexCoord2fColor4ubVertex3fvSUN = NULL; PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC __glewTexCoord2fNormal3fVertex3fSUN = NULL; PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC __glewTexCoord2fNormal3fVertex3fvSUN = NULL; PFNGLTEXCOORD2FVERTEX3FSUNPROC __glewTexCoord2fVertex3fSUN = NULL; PFNGLTEXCOORD2FVERTEX3FVSUNPROC __glewTexCoord2fVertex3fvSUN = NULL; PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fSUN = NULL; PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC __glewTexCoord4fColor4fNormal3fVertex4fvSUN = NULL; PFNGLTEXCOORD4FVERTEX4FSUNPROC __glewTexCoord4fVertex4fSUN = NULL; PFNGLTEXCOORD4FVERTEX4FVSUNPROC __glewTexCoord4fVertex4fvSUN = NULL; PFNGLADDSWAPHINTRECTWINPROC __glewAddSwapHintRectWIN = NULL; GLboolean __GLEW_VERSION_1_1 = GL_FALSE; GLboolean __GLEW_VERSION_1_2 = GL_FALSE; GLboolean __GLEW_VERSION_1_2_1 = GL_FALSE; GLboolean __GLEW_VERSION_1_3 = GL_FALSE; GLboolean __GLEW_VERSION_1_4 = GL_FALSE; GLboolean __GLEW_VERSION_1_5 = GL_FALSE; GLboolean __GLEW_VERSION_2_0 = GL_FALSE; GLboolean __GLEW_VERSION_2_1 = GL_FALSE; GLboolean __GLEW_VERSION_3_0 = GL_FALSE; GLboolean __GLEW_VERSION_3_1 = GL_FALSE; GLboolean __GLEW_VERSION_3_2 = GL_FALSE; GLboolean __GLEW_VERSION_3_3 = GL_FALSE; GLboolean __GLEW_VERSION_4_0 = GL_FALSE; GLboolean __GLEW_VERSION_4_1 = GL_FALSE; GLboolean __GLEW_VERSION_4_2 = GL_FALSE; GLboolean __GLEW_VERSION_4_3 = GL_FALSE; GLboolean __GLEW_VERSION_4_4 = GL_FALSE; GLboolean __GLEW_VERSION_4_5 = GL_FALSE; GLboolean __GLEW_VERSION_4_6 = GL_FALSE; GLboolean __GLEW_3DFX_multisample = GL_FALSE; GLboolean __GLEW_3DFX_tbuffer = GL_FALSE; GLboolean __GLEW_3DFX_texture_compression_FXT1 = GL_FALSE; GLboolean __GLEW_AMD_blend_minmax_factor = GL_FALSE; GLboolean __GLEW_AMD_compressed_3DC_texture = GL_FALSE; GLboolean __GLEW_AMD_compressed_ATC_texture = GL_FALSE; GLboolean __GLEW_AMD_conservative_depth = GL_FALSE; GLboolean __GLEW_AMD_debug_output = GL_FALSE; GLboolean __GLEW_AMD_depth_clamp_separate = GL_FALSE; GLboolean __GLEW_AMD_draw_buffers_blend = GL_FALSE; GLboolean __GLEW_AMD_framebuffer_sample_positions = GL_FALSE; GLboolean __GLEW_AMD_gcn_shader = GL_FALSE; GLboolean __GLEW_AMD_gpu_shader_half_float = GL_FALSE; GLboolean __GLEW_AMD_gpu_shader_int16 = GL_FALSE; GLboolean __GLEW_AMD_gpu_shader_int64 = GL_FALSE; GLboolean __GLEW_AMD_interleaved_elements = GL_FALSE; GLboolean __GLEW_AMD_multi_draw_indirect = GL_FALSE; GLboolean __GLEW_AMD_name_gen_delete = GL_FALSE; GLboolean __GLEW_AMD_occlusion_query_event = GL_FALSE; GLboolean __GLEW_AMD_performance_monitor = GL_FALSE; GLboolean __GLEW_AMD_pinned_memory = GL_FALSE; GLboolean __GLEW_AMD_program_binary_Z400 = GL_FALSE; GLboolean __GLEW_AMD_query_buffer_object = GL_FALSE; GLboolean __GLEW_AMD_sample_positions = GL_FALSE; GLboolean __GLEW_AMD_seamless_cubemap_per_texture = GL_FALSE; GLboolean __GLEW_AMD_shader_atomic_counter_ops = GL_FALSE; GLboolean __GLEW_AMD_shader_ballot = GL_FALSE; GLboolean __GLEW_AMD_shader_explicit_vertex_parameter = GL_FALSE; GLboolean __GLEW_AMD_shader_stencil_export = GL_FALSE; GLboolean __GLEW_AMD_shader_stencil_value_export = GL_FALSE; GLboolean __GLEW_AMD_shader_trinary_minmax = GL_FALSE; GLboolean __GLEW_AMD_sparse_texture = GL_FALSE; GLboolean __GLEW_AMD_stencil_operation_extended = GL_FALSE; GLboolean __GLEW_AMD_texture_gather_bias_lod = GL_FALSE; GLboolean __GLEW_AMD_texture_texture4 = GL_FALSE; GLboolean __GLEW_AMD_transform_feedback3_lines_triangles = GL_FALSE; GLboolean __GLEW_AMD_transform_feedback4 = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_layer = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_tessellator = GL_FALSE; GLboolean __GLEW_AMD_vertex_shader_viewport_index = GL_FALSE; GLboolean __GLEW_ANDROID_extension_pack_es31a = GL_FALSE; GLboolean __GLEW_ANGLE_depth_texture = GL_FALSE; GLboolean __GLEW_ANGLE_framebuffer_blit = GL_FALSE; GLboolean __GLEW_ANGLE_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_ANGLE_instanced_arrays = GL_FALSE; GLboolean __GLEW_ANGLE_pack_reverse_row_order = GL_FALSE; GLboolean __GLEW_ANGLE_program_binary = GL_FALSE; GLboolean __GLEW_ANGLE_texture_compression_dxt1 = GL_FALSE; GLboolean __GLEW_ANGLE_texture_compression_dxt3 = GL_FALSE; GLboolean __GLEW_ANGLE_texture_compression_dxt5 = GL_FALSE; GLboolean __GLEW_ANGLE_texture_usage = GL_FALSE; GLboolean __GLEW_ANGLE_timer_query = GL_FALSE; GLboolean __GLEW_ANGLE_translated_shader_source = GL_FALSE; GLboolean __GLEW_APPLE_aux_depth_stencil = GL_FALSE; GLboolean __GLEW_APPLE_client_storage = GL_FALSE; GLboolean __GLEW_APPLE_clip_distance = GL_FALSE; GLboolean __GLEW_APPLE_color_buffer_packed_float = GL_FALSE; GLboolean __GLEW_APPLE_copy_texture_levels = GL_FALSE; GLboolean __GLEW_APPLE_element_array = GL_FALSE; GLboolean __GLEW_APPLE_fence = GL_FALSE; GLboolean __GLEW_APPLE_float_pixels = GL_FALSE; GLboolean __GLEW_APPLE_flush_buffer_range = GL_FALSE; GLboolean __GLEW_APPLE_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_APPLE_object_purgeable = GL_FALSE; GLboolean __GLEW_APPLE_pixel_buffer = GL_FALSE; GLboolean __GLEW_APPLE_rgb_422 = GL_FALSE; GLboolean __GLEW_APPLE_row_bytes = GL_FALSE; GLboolean __GLEW_APPLE_specular_vector = GL_FALSE; GLboolean __GLEW_APPLE_sync = GL_FALSE; GLboolean __GLEW_APPLE_texture_2D_limited_npot = GL_FALSE; GLboolean __GLEW_APPLE_texture_format_BGRA8888 = GL_FALSE; GLboolean __GLEW_APPLE_texture_max_level = GL_FALSE; GLboolean __GLEW_APPLE_texture_packed_float = GL_FALSE; GLboolean __GLEW_APPLE_texture_range = GL_FALSE; GLboolean __GLEW_APPLE_transform_hint = GL_FALSE; GLboolean __GLEW_APPLE_vertex_array_object = GL_FALSE; GLboolean __GLEW_APPLE_vertex_array_range = GL_FALSE; GLboolean __GLEW_APPLE_vertex_program_evaluators = GL_FALSE; GLboolean __GLEW_APPLE_ycbcr_422 = GL_FALSE; GLboolean __GLEW_ARB_ES2_compatibility = GL_FALSE; GLboolean __GLEW_ARB_ES3_1_compatibility = GL_FALSE; GLboolean __GLEW_ARB_ES3_2_compatibility = GL_FALSE; GLboolean __GLEW_ARB_ES3_compatibility = GL_FALSE; GLboolean __GLEW_ARB_arrays_of_arrays = GL_FALSE; GLboolean __GLEW_ARB_base_instance = GL_FALSE; GLboolean __GLEW_ARB_bindless_texture = GL_FALSE; GLboolean __GLEW_ARB_blend_func_extended = GL_FALSE; GLboolean __GLEW_ARB_buffer_storage = GL_FALSE; GLboolean __GLEW_ARB_cl_event = GL_FALSE; GLboolean __GLEW_ARB_clear_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_clear_texture = GL_FALSE; GLboolean __GLEW_ARB_clip_control = GL_FALSE; GLboolean __GLEW_ARB_color_buffer_float = GL_FALSE; GLboolean __GLEW_ARB_compatibility = GL_FALSE; GLboolean __GLEW_ARB_compressed_texture_pixel_storage = GL_FALSE; GLboolean __GLEW_ARB_compute_shader = GL_FALSE; GLboolean __GLEW_ARB_compute_variable_group_size = GL_FALSE; GLboolean __GLEW_ARB_conditional_render_inverted = GL_FALSE; GLboolean __GLEW_ARB_conservative_depth = GL_FALSE; GLboolean __GLEW_ARB_copy_buffer = GL_FALSE; GLboolean __GLEW_ARB_copy_image = GL_FALSE; GLboolean __GLEW_ARB_cull_distance = GL_FALSE; GLboolean __GLEW_ARB_debug_output = GL_FALSE; GLboolean __GLEW_ARB_depth_buffer_float = GL_FALSE; GLboolean __GLEW_ARB_depth_clamp = GL_FALSE; GLboolean __GLEW_ARB_depth_texture = GL_FALSE; GLboolean __GLEW_ARB_derivative_control = GL_FALSE; GLboolean __GLEW_ARB_direct_state_access = GL_FALSE; GLboolean __GLEW_ARB_draw_buffers = GL_FALSE; GLboolean __GLEW_ARB_draw_buffers_blend = GL_FALSE; GLboolean __GLEW_ARB_draw_elements_base_vertex = GL_FALSE; GLboolean __GLEW_ARB_draw_indirect = GL_FALSE; GLboolean __GLEW_ARB_draw_instanced = GL_FALSE; GLboolean __GLEW_ARB_enhanced_layouts = GL_FALSE; GLboolean __GLEW_ARB_explicit_attrib_location = GL_FALSE; GLboolean __GLEW_ARB_explicit_uniform_location = GL_FALSE; GLboolean __GLEW_ARB_fragment_coord_conventions = GL_FALSE; GLboolean __GLEW_ARB_fragment_layer_viewport = GL_FALSE; GLboolean __GLEW_ARB_fragment_program = GL_FALSE; GLboolean __GLEW_ARB_fragment_program_shadow = GL_FALSE; GLboolean __GLEW_ARB_fragment_shader = GL_FALSE; GLboolean __GLEW_ARB_fragment_shader_interlock = GL_FALSE; GLboolean __GLEW_ARB_framebuffer_no_attachments = GL_FALSE; GLboolean __GLEW_ARB_framebuffer_object = GL_FALSE; GLboolean __GLEW_ARB_framebuffer_sRGB = GL_FALSE; GLboolean __GLEW_ARB_geometry_shader4 = GL_FALSE; GLboolean __GLEW_ARB_get_program_binary = GL_FALSE; GLboolean __GLEW_ARB_get_texture_sub_image = GL_FALSE; GLboolean __GLEW_ARB_gl_spirv = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader5 = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader_fp64 = GL_FALSE; GLboolean __GLEW_ARB_gpu_shader_int64 = GL_FALSE; GLboolean __GLEW_ARB_half_float_pixel = GL_FALSE; GLboolean __GLEW_ARB_half_float_vertex = GL_FALSE; GLboolean __GLEW_ARB_imaging = GL_FALSE; GLboolean __GLEW_ARB_indirect_parameters = GL_FALSE; GLboolean __GLEW_ARB_instanced_arrays = GL_FALSE; GLboolean __GLEW_ARB_internalformat_query = GL_FALSE; GLboolean __GLEW_ARB_internalformat_query2 = GL_FALSE; GLboolean __GLEW_ARB_invalidate_subdata = GL_FALSE; GLboolean __GLEW_ARB_map_buffer_alignment = GL_FALSE; GLboolean __GLEW_ARB_map_buffer_range = GL_FALSE; GLboolean __GLEW_ARB_matrix_palette = GL_FALSE; GLboolean __GLEW_ARB_multi_bind = GL_FALSE; GLboolean __GLEW_ARB_multi_draw_indirect = GL_FALSE; GLboolean __GLEW_ARB_multisample = GL_FALSE; GLboolean __GLEW_ARB_multitexture = GL_FALSE; GLboolean __GLEW_ARB_occlusion_query = GL_FALSE; GLboolean __GLEW_ARB_occlusion_query2 = GL_FALSE; GLboolean __GLEW_ARB_parallel_shader_compile = GL_FALSE; GLboolean __GLEW_ARB_pipeline_statistics_query = GL_FALSE; GLboolean __GLEW_ARB_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_point_parameters = GL_FALSE; GLboolean __GLEW_ARB_point_sprite = GL_FALSE; GLboolean __GLEW_ARB_polygon_offset_clamp = GL_FALSE; GLboolean __GLEW_ARB_post_depth_coverage = GL_FALSE; GLboolean __GLEW_ARB_program_interface_query = GL_FALSE; GLboolean __GLEW_ARB_provoking_vertex = GL_FALSE; GLboolean __GLEW_ARB_query_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_robust_buffer_access_behavior = GL_FALSE; GLboolean __GLEW_ARB_robustness = GL_FALSE; GLboolean __GLEW_ARB_robustness_application_isolation = GL_FALSE; GLboolean __GLEW_ARB_robustness_share_group_isolation = GL_FALSE; GLboolean __GLEW_ARB_sample_locations = GL_FALSE; GLboolean __GLEW_ARB_sample_shading = GL_FALSE; GLboolean __GLEW_ARB_sampler_objects = GL_FALSE; GLboolean __GLEW_ARB_seamless_cube_map = GL_FALSE; GLboolean __GLEW_ARB_seamless_cubemap_per_texture = GL_FALSE; GLboolean __GLEW_ARB_separate_shader_objects = GL_FALSE; GLboolean __GLEW_ARB_shader_atomic_counter_ops = GL_FALSE; GLboolean __GLEW_ARB_shader_atomic_counters = GL_FALSE; GLboolean __GLEW_ARB_shader_ballot = GL_FALSE; GLboolean __GLEW_ARB_shader_bit_encoding = GL_FALSE; GLboolean __GLEW_ARB_shader_clock = GL_FALSE; GLboolean __GLEW_ARB_shader_draw_parameters = GL_FALSE; GLboolean __GLEW_ARB_shader_group_vote = GL_FALSE; GLboolean __GLEW_ARB_shader_image_load_store = GL_FALSE; GLboolean __GLEW_ARB_shader_image_size = GL_FALSE; GLboolean __GLEW_ARB_shader_objects = GL_FALSE; GLboolean __GLEW_ARB_shader_precision = GL_FALSE; GLboolean __GLEW_ARB_shader_stencil_export = GL_FALSE; GLboolean __GLEW_ARB_shader_storage_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_shader_subroutine = GL_FALSE; GLboolean __GLEW_ARB_shader_texture_image_samples = GL_FALSE; GLboolean __GLEW_ARB_shader_texture_lod = GL_FALSE; GLboolean __GLEW_ARB_shader_viewport_layer_array = GL_FALSE; GLboolean __GLEW_ARB_shading_language_100 = GL_FALSE; GLboolean __GLEW_ARB_shading_language_420pack = GL_FALSE; GLboolean __GLEW_ARB_shading_language_include = GL_FALSE; GLboolean __GLEW_ARB_shading_language_packing = GL_FALSE; GLboolean __GLEW_ARB_shadow = GL_FALSE; GLboolean __GLEW_ARB_shadow_ambient = GL_FALSE; GLboolean __GLEW_ARB_sparse_buffer = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture2 = GL_FALSE; GLboolean __GLEW_ARB_sparse_texture_clamp = GL_FALSE; GLboolean __GLEW_ARB_spirv_extensions = GL_FALSE; GLboolean __GLEW_ARB_stencil_texturing = GL_FALSE; GLboolean __GLEW_ARB_sync = GL_FALSE; GLboolean __GLEW_ARB_tessellation_shader = GL_FALSE; GLboolean __GLEW_ARB_texture_barrier = GL_FALSE; GLboolean __GLEW_ARB_texture_border_clamp = GL_FALSE; GLboolean __GLEW_ARB_texture_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_texture_buffer_object_rgb32 = GL_FALSE; GLboolean __GLEW_ARB_texture_buffer_range = GL_FALSE; GLboolean __GLEW_ARB_texture_compression = GL_FALSE; GLboolean __GLEW_ARB_texture_compression_bptc = GL_FALSE; GLboolean __GLEW_ARB_texture_compression_rgtc = GL_FALSE; GLboolean __GLEW_ARB_texture_cube_map = GL_FALSE; GLboolean __GLEW_ARB_texture_cube_map_array = GL_FALSE; GLboolean __GLEW_ARB_texture_env_add = GL_FALSE; GLboolean __GLEW_ARB_texture_env_combine = GL_FALSE; GLboolean __GLEW_ARB_texture_env_crossbar = GL_FALSE; GLboolean __GLEW_ARB_texture_env_dot3 = GL_FALSE; GLboolean __GLEW_ARB_texture_filter_anisotropic = GL_FALSE; GLboolean __GLEW_ARB_texture_filter_minmax = GL_FALSE; GLboolean __GLEW_ARB_texture_float = GL_FALSE; GLboolean __GLEW_ARB_texture_gather = GL_FALSE; GLboolean __GLEW_ARB_texture_mirror_clamp_to_edge = GL_FALSE; GLboolean __GLEW_ARB_texture_mirrored_repeat = GL_FALSE; GLboolean __GLEW_ARB_texture_multisample = GL_FALSE; GLboolean __GLEW_ARB_texture_non_power_of_two = GL_FALSE; GLboolean __GLEW_ARB_texture_query_levels = GL_FALSE; GLboolean __GLEW_ARB_texture_query_lod = GL_FALSE; GLboolean __GLEW_ARB_texture_rectangle = GL_FALSE; GLboolean __GLEW_ARB_texture_rg = GL_FALSE; GLboolean __GLEW_ARB_texture_rgb10_a2ui = GL_FALSE; GLboolean __GLEW_ARB_texture_stencil8 = GL_FALSE; GLboolean __GLEW_ARB_texture_storage = GL_FALSE; GLboolean __GLEW_ARB_texture_storage_multisample = GL_FALSE; GLboolean __GLEW_ARB_texture_swizzle = GL_FALSE; GLboolean __GLEW_ARB_texture_view = GL_FALSE; GLboolean __GLEW_ARB_timer_query = GL_FALSE; GLboolean __GLEW_ARB_transform_feedback2 = GL_FALSE; GLboolean __GLEW_ARB_transform_feedback3 = GL_FALSE; GLboolean __GLEW_ARB_transform_feedback_instanced = GL_FALSE; GLboolean __GLEW_ARB_transform_feedback_overflow_query = GL_FALSE; GLboolean __GLEW_ARB_transpose_matrix = GL_FALSE; GLboolean __GLEW_ARB_uniform_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_vertex_array_bgra = GL_FALSE; GLboolean __GLEW_ARB_vertex_array_object = GL_FALSE; GLboolean __GLEW_ARB_vertex_attrib_64bit = GL_FALSE; GLboolean __GLEW_ARB_vertex_attrib_binding = GL_FALSE; GLboolean __GLEW_ARB_vertex_blend = GL_FALSE; GLboolean __GLEW_ARB_vertex_buffer_object = GL_FALSE; GLboolean __GLEW_ARB_vertex_program = GL_FALSE; GLboolean __GLEW_ARB_vertex_shader = GL_FALSE; GLboolean __GLEW_ARB_vertex_type_10f_11f_11f_rev = GL_FALSE; GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev = GL_FALSE; GLboolean __GLEW_ARB_viewport_array = GL_FALSE; GLboolean __GLEW_ARB_window_pos = GL_FALSE; GLboolean __GLEW_ARM_mali_program_binary = GL_FALSE; GLboolean __GLEW_ARM_mali_shader_binary = GL_FALSE; GLboolean __GLEW_ARM_rgba8 = GL_FALSE; GLboolean __GLEW_ARM_shader_framebuffer_fetch = GL_FALSE; GLboolean __GLEW_ARM_shader_framebuffer_fetch_depth_stencil = GL_FALSE; GLboolean __GLEW_ATIX_point_sprites = GL_FALSE; GLboolean __GLEW_ATIX_texture_env_combine3 = GL_FALSE; GLboolean __GLEW_ATIX_texture_env_route = GL_FALSE; GLboolean __GLEW_ATIX_vertex_shader_output_point_size = GL_FALSE; GLboolean __GLEW_ATI_draw_buffers = GL_FALSE; GLboolean __GLEW_ATI_element_array = GL_FALSE; GLboolean __GLEW_ATI_envmap_bumpmap = GL_FALSE; GLboolean __GLEW_ATI_fragment_shader = GL_FALSE; GLboolean __GLEW_ATI_map_object_buffer = GL_FALSE; GLboolean __GLEW_ATI_meminfo = GL_FALSE; GLboolean __GLEW_ATI_pn_triangles = GL_FALSE; GLboolean __GLEW_ATI_separate_stencil = GL_FALSE; GLboolean __GLEW_ATI_shader_texture_lod = GL_FALSE; GLboolean __GLEW_ATI_text_fragment_shader = GL_FALSE; GLboolean __GLEW_ATI_texture_compression_3dc = GL_FALSE; GLboolean __GLEW_ATI_texture_env_combine3 = GL_FALSE; GLboolean __GLEW_ATI_texture_float = GL_FALSE; GLboolean __GLEW_ATI_texture_mirror_once = GL_FALSE; GLboolean __GLEW_ATI_vertex_array_object = GL_FALSE; GLboolean __GLEW_ATI_vertex_attrib_array_object = GL_FALSE; GLboolean __GLEW_ATI_vertex_streams = GL_FALSE; GLboolean __GLEW_EGL_KHR_context_flush_control = GL_FALSE; GLboolean __GLEW_EGL_NV_robustness_video_memory_purge = GL_FALSE; GLboolean __GLEW_EXT_422_pixels = GL_FALSE; GLboolean __GLEW_EXT_Cg_shader = GL_FALSE; GLboolean __GLEW_EXT_EGL_image_array = GL_FALSE; GLboolean __GLEW_EXT_YUV_target = GL_FALSE; GLboolean __GLEW_EXT_abgr = GL_FALSE; GLboolean __GLEW_EXT_base_instance = GL_FALSE; GLboolean __GLEW_EXT_bgra = GL_FALSE; GLboolean __GLEW_EXT_bindable_uniform = GL_FALSE; GLboolean __GLEW_EXT_blend_color = GL_FALSE; GLboolean __GLEW_EXT_blend_equation_separate = GL_FALSE; GLboolean __GLEW_EXT_blend_func_extended = GL_FALSE; GLboolean __GLEW_EXT_blend_func_separate = GL_FALSE; GLboolean __GLEW_EXT_blend_logic_op = GL_FALSE; GLboolean __GLEW_EXT_blend_minmax = GL_FALSE; GLboolean __GLEW_EXT_blend_subtract = GL_FALSE; GLboolean __GLEW_EXT_buffer_storage = GL_FALSE; GLboolean __GLEW_EXT_clear_texture = GL_FALSE; GLboolean __GLEW_EXT_clip_cull_distance = GL_FALSE; GLboolean __GLEW_EXT_clip_volume_hint = GL_FALSE; GLboolean __GLEW_EXT_cmyka = GL_FALSE; GLboolean __GLEW_EXT_color_buffer_float = GL_FALSE; GLboolean __GLEW_EXT_color_buffer_half_float = GL_FALSE; GLboolean __GLEW_EXT_color_subtable = GL_FALSE; GLboolean __GLEW_EXT_compiled_vertex_array = GL_FALSE; GLboolean __GLEW_EXT_compressed_ETC1_RGB8_sub_texture = GL_FALSE; GLboolean __GLEW_EXT_conservative_depth = GL_FALSE; GLboolean __GLEW_EXT_convolution = GL_FALSE; GLboolean __GLEW_EXT_coordinate_frame = GL_FALSE; GLboolean __GLEW_EXT_copy_image = GL_FALSE; GLboolean __GLEW_EXT_copy_texture = GL_FALSE; GLboolean __GLEW_EXT_cull_vertex = GL_FALSE; GLboolean __GLEW_EXT_debug_label = GL_FALSE; GLboolean __GLEW_EXT_debug_marker = GL_FALSE; GLboolean __GLEW_EXT_depth_bounds_test = GL_FALSE; GLboolean __GLEW_EXT_direct_state_access = GL_FALSE; GLboolean __GLEW_EXT_discard_framebuffer = GL_FALSE; GLboolean __GLEW_EXT_draw_buffers = GL_FALSE; GLboolean __GLEW_EXT_draw_buffers2 = GL_FALSE; GLboolean __GLEW_EXT_draw_buffers_indexed = GL_FALSE; GLboolean __GLEW_EXT_draw_elements_base_vertex = GL_FALSE; GLboolean __GLEW_EXT_draw_instanced = GL_FALSE; GLboolean __GLEW_EXT_draw_range_elements = GL_FALSE; GLboolean __GLEW_EXT_external_buffer = GL_FALSE; GLboolean __GLEW_EXT_float_blend = GL_FALSE; GLboolean __GLEW_EXT_fog_coord = GL_FALSE; GLboolean __GLEW_EXT_frag_depth = GL_FALSE; GLboolean __GLEW_EXT_fragment_lighting = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_blit = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_multisample_blit_scaled = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_object = GL_FALSE; GLboolean __GLEW_EXT_framebuffer_sRGB = GL_FALSE; GLboolean __GLEW_EXT_geometry_point_size = GL_FALSE; GLboolean __GLEW_EXT_geometry_shader = GL_FALSE; GLboolean __GLEW_EXT_geometry_shader4 = GL_FALSE; GLboolean __GLEW_EXT_gpu_program_parameters = GL_FALSE; GLboolean __GLEW_EXT_gpu_shader4 = GL_FALSE; GLboolean __GLEW_EXT_gpu_shader5 = GL_FALSE; GLboolean __GLEW_EXT_histogram = GL_FALSE; GLboolean __GLEW_EXT_index_array_formats = GL_FALSE; GLboolean __GLEW_EXT_index_func = GL_FALSE; GLboolean __GLEW_EXT_index_material = GL_FALSE; GLboolean __GLEW_EXT_index_texture = GL_FALSE; GLboolean __GLEW_EXT_instanced_arrays = GL_FALSE; GLboolean __GLEW_EXT_light_texture = GL_FALSE; GLboolean __GLEW_EXT_map_buffer_range = GL_FALSE; GLboolean __GLEW_EXT_memory_object = GL_FALSE; GLboolean __GLEW_EXT_memory_object_fd = GL_FALSE; GLboolean __GLEW_EXT_memory_object_win32 = GL_FALSE; GLboolean __GLEW_EXT_misc_attribute = GL_FALSE; GLboolean __GLEW_EXT_multi_draw_arrays = GL_FALSE; GLboolean __GLEW_EXT_multi_draw_indirect = GL_FALSE; GLboolean __GLEW_EXT_multiple_textures = GL_FALSE; GLboolean __GLEW_EXT_multisample = GL_FALSE; GLboolean __GLEW_EXT_multisample_compatibility = GL_FALSE; GLboolean __GLEW_EXT_multisampled_render_to_texture = GL_FALSE; GLboolean __GLEW_EXT_multisampled_render_to_texture2 = GL_FALSE; GLboolean __GLEW_EXT_multiview_draw_buffers = GL_FALSE; GLboolean __GLEW_EXT_packed_depth_stencil = GL_FALSE; GLboolean __GLEW_EXT_packed_float = GL_FALSE; GLboolean __GLEW_EXT_packed_pixels = GL_FALSE; GLboolean __GLEW_EXT_paletted_texture = GL_FALSE; GLboolean __GLEW_EXT_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_EXT_pixel_transform = GL_FALSE; GLboolean __GLEW_EXT_pixel_transform_color_table = GL_FALSE; GLboolean __GLEW_EXT_point_parameters = GL_FALSE; GLboolean __GLEW_EXT_polygon_offset = GL_FALSE; GLboolean __GLEW_EXT_polygon_offset_clamp = GL_FALSE; GLboolean __GLEW_EXT_post_depth_coverage = GL_FALSE; GLboolean __GLEW_EXT_provoking_vertex = GL_FALSE; GLboolean __GLEW_EXT_pvrtc_sRGB = GL_FALSE; GLboolean __GLEW_EXT_raster_multisample = GL_FALSE; GLboolean __GLEW_EXT_read_format_bgra = GL_FALSE; GLboolean __GLEW_EXT_render_snorm = GL_FALSE; GLboolean __GLEW_EXT_rescale_normal = GL_FALSE; GLboolean __GLEW_EXT_sRGB = GL_FALSE; GLboolean __GLEW_EXT_sRGB_write_control = GL_FALSE; GLboolean __GLEW_EXT_scene_marker = GL_FALSE; GLboolean __GLEW_EXT_secondary_color = GL_FALSE; GLboolean __GLEW_EXT_semaphore = GL_FALSE; GLboolean __GLEW_EXT_semaphore_fd = GL_FALSE; GLboolean __GLEW_EXT_semaphore_win32 = GL_FALSE; GLboolean __GLEW_EXT_separate_shader_objects = GL_FALSE; GLboolean __GLEW_EXT_separate_specular_color = GL_FALSE; GLboolean __GLEW_EXT_shader_framebuffer_fetch = GL_FALSE; GLboolean __GLEW_EXT_shader_group_vote = GL_FALSE; GLboolean __GLEW_EXT_shader_image_load_formatted = GL_FALSE; GLboolean __GLEW_EXT_shader_image_load_store = GL_FALSE; GLboolean __GLEW_EXT_shader_implicit_conversions = GL_FALSE; GLboolean __GLEW_EXT_shader_integer_mix = GL_FALSE; GLboolean __GLEW_EXT_shader_io_blocks = GL_FALSE; GLboolean __GLEW_EXT_shader_non_constant_global_initializers = GL_FALSE; GLboolean __GLEW_EXT_shader_pixel_local_storage = GL_FALSE; GLboolean __GLEW_EXT_shader_pixel_local_storage2 = GL_FALSE; GLboolean __GLEW_EXT_shader_texture_lod = GL_FALSE; GLboolean __GLEW_EXT_shadow_funcs = GL_FALSE; GLboolean __GLEW_EXT_shadow_samplers = GL_FALSE; GLboolean __GLEW_EXT_shared_texture_palette = GL_FALSE; GLboolean __GLEW_EXT_sparse_texture = GL_FALSE; GLboolean __GLEW_EXT_sparse_texture2 = GL_FALSE; GLboolean __GLEW_EXT_stencil_clear_tag = GL_FALSE; GLboolean __GLEW_EXT_stencil_two_side = GL_FALSE; GLboolean __GLEW_EXT_stencil_wrap = GL_FALSE; GLboolean __GLEW_EXT_subtexture = GL_FALSE; GLboolean __GLEW_EXT_texture = GL_FALSE; GLboolean __GLEW_EXT_texture3D = GL_FALSE; GLboolean __GLEW_EXT_texture_array = GL_FALSE; GLboolean __GLEW_EXT_texture_buffer_object = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_astc_decode_mode = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5 = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_bptc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_dxt1 = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_latc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_rgtc = GL_FALSE; GLboolean __GLEW_EXT_texture_compression_s3tc = GL_FALSE; GLboolean __GLEW_EXT_texture_cube_map = GL_FALSE; GLboolean __GLEW_EXT_texture_cube_map_array = GL_FALSE; GLboolean __GLEW_EXT_texture_edge_clamp = GL_FALSE; GLboolean __GLEW_EXT_texture_env = GL_FALSE; GLboolean __GLEW_EXT_texture_env_add = GL_FALSE; GLboolean __GLEW_EXT_texture_env_combine = GL_FALSE; GLboolean __GLEW_EXT_texture_env_dot3 = GL_FALSE; GLboolean __GLEW_EXT_texture_filter_anisotropic = GL_FALSE; GLboolean __GLEW_EXT_texture_filter_minmax = GL_FALSE; GLboolean __GLEW_EXT_texture_format_BGRA8888 = GL_FALSE; GLboolean __GLEW_EXT_texture_integer = GL_FALSE; GLboolean __GLEW_EXT_texture_lod_bias = GL_FALSE; GLboolean __GLEW_EXT_texture_mirror_clamp = GL_FALSE; GLboolean __GLEW_EXT_texture_norm16 = GL_FALSE; GLboolean __GLEW_EXT_texture_object = GL_FALSE; GLboolean __GLEW_EXT_texture_perturb_normal = GL_FALSE; GLboolean __GLEW_EXT_texture_rectangle = GL_FALSE; GLboolean __GLEW_EXT_texture_rg = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB_R8 = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB_RG8 = GL_FALSE; GLboolean __GLEW_EXT_texture_sRGB_decode = GL_FALSE; GLboolean __GLEW_EXT_texture_shared_exponent = GL_FALSE; GLboolean __GLEW_EXT_texture_snorm = GL_FALSE; GLboolean __GLEW_EXT_texture_storage = GL_FALSE; GLboolean __GLEW_EXT_texture_swizzle = GL_FALSE; GLboolean __GLEW_EXT_texture_type_2_10_10_10_REV = GL_FALSE; GLboolean __GLEW_EXT_texture_view = GL_FALSE; GLboolean __GLEW_EXT_timer_query = GL_FALSE; GLboolean __GLEW_EXT_transform_feedback = GL_FALSE; GLboolean __GLEW_EXT_unpack_subimage = GL_FALSE; GLboolean __GLEW_EXT_vertex_array = GL_FALSE; GLboolean __GLEW_EXT_vertex_array_bgra = GL_FALSE; GLboolean __GLEW_EXT_vertex_array_setXXX = GL_FALSE; GLboolean __GLEW_EXT_vertex_attrib_64bit = GL_FALSE; GLboolean __GLEW_EXT_vertex_shader = GL_FALSE; GLboolean __GLEW_EXT_vertex_weighting = GL_FALSE; GLboolean __GLEW_EXT_win32_keyed_mutex = GL_FALSE; GLboolean __GLEW_EXT_window_rectangles = GL_FALSE; GLboolean __GLEW_EXT_x11_sync_object = GL_FALSE; GLboolean __GLEW_GREMEDY_frame_terminator = GL_FALSE; GLboolean __GLEW_GREMEDY_string_marker = GL_FALSE; GLboolean __GLEW_HP_convolution_border_modes = GL_FALSE; GLboolean __GLEW_HP_image_transform = GL_FALSE; GLboolean __GLEW_HP_occlusion_test = GL_FALSE; GLboolean __GLEW_HP_texture_lighting = GL_FALSE; GLboolean __GLEW_IBM_cull_vertex = GL_FALSE; GLboolean __GLEW_IBM_multimode_draw_arrays = GL_FALSE; GLboolean __GLEW_IBM_rasterpos_clip = GL_FALSE; GLboolean __GLEW_IBM_static_data = GL_FALSE; GLboolean __GLEW_IBM_texture_mirrored_repeat = GL_FALSE; GLboolean __GLEW_IBM_vertex_array_lists = GL_FALSE; GLboolean __GLEW_INGR_color_clamp = GL_FALSE; GLboolean __GLEW_INGR_interlace_read = GL_FALSE; GLboolean __GLEW_INTEL_conservative_rasterization = GL_FALSE; GLboolean __GLEW_INTEL_fragment_shader_ordering = GL_FALSE; GLboolean __GLEW_INTEL_framebuffer_CMAA = GL_FALSE; GLboolean __GLEW_INTEL_map_texture = GL_FALSE; GLboolean __GLEW_INTEL_parallel_arrays = GL_FALSE; GLboolean __GLEW_INTEL_performance_query = GL_FALSE; GLboolean __GLEW_INTEL_texture_scissor = GL_FALSE; GLboolean __GLEW_KHR_blend_equation_advanced = GL_FALSE; GLboolean __GLEW_KHR_blend_equation_advanced_coherent = GL_FALSE; GLboolean __GLEW_KHR_context_flush_control = GL_FALSE; GLboolean __GLEW_KHR_debug = GL_FALSE; GLboolean __GLEW_KHR_no_error = GL_FALSE; GLboolean __GLEW_KHR_parallel_shader_compile = GL_FALSE; GLboolean __GLEW_KHR_robust_buffer_access_behavior = GL_FALSE; GLboolean __GLEW_KHR_robustness = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_hdr = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_ldr = GL_FALSE; GLboolean __GLEW_KHR_texture_compression_astc_sliced_3d = GL_FALSE; GLboolean __GLEW_KTX_buffer_region = GL_FALSE; GLboolean __GLEW_MESAX_texture_stack = GL_FALSE; GLboolean __GLEW_MESA_pack_invert = GL_FALSE; GLboolean __GLEW_MESA_resize_buffers = GL_FALSE; GLboolean __GLEW_MESA_shader_integer_functions = GL_FALSE; GLboolean __GLEW_MESA_window_pos = GL_FALSE; GLboolean __GLEW_MESA_ycbcr_texture = GL_FALSE; GLboolean __GLEW_NVX_blend_equation_advanced_multi_draw_buffers = GL_FALSE; GLboolean __GLEW_NVX_conditional_render = GL_FALSE; GLboolean __GLEW_NVX_gpu_memory_info = GL_FALSE; GLboolean __GLEW_NVX_linked_gpu_multicast = GL_FALSE; GLboolean __GLEW_NV_3dvision_settings = GL_FALSE; GLboolean __GLEW_NV_EGL_stream_consumer_external = GL_FALSE; GLboolean __GLEW_NV_alpha_to_coverage_dither_control = GL_FALSE; GLboolean __GLEW_NV_bgr = GL_FALSE; GLboolean __GLEW_NV_bindless_multi_draw_indirect = GL_FALSE; GLboolean __GLEW_NV_bindless_multi_draw_indirect_count = GL_FALSE; GLboolean __GLEW_NV_bindless_texture = GL_FALSE; GLboolean __GLEW_NV_blend_equation_advanced = GL_FALSE; GLboolean __GLEW_NV_blend_equation_advanced_coherent = GL_FALSE; GLboolean __GLEW_NV_blend_minmax_factor = GL_FALSE; GLboolean __GLEW_NV_blend_square = GL_FALSE; GLboolean __GLEW_NV_clip_space_w_scaling = GL_FALSE; GLboolean __GLEW_NV_command_list = GL_FALSE; GLboolean __GLEW_NV_compute_program5 = GL_FALSE; GLboolean __GLEW_NV_conditional_render = GL_FALSE; GLboolean __GLEW_NV_conservative_raster = GL_FALSE; GLboolean __GLEW_NV_conservative_raster_dilate = GL_FALSE; GLboolean __GLEW_NV_conservative_raster_pre_snap_triangles = GL_FALSE; GLboolean __GLEW_NV_copy_buffer = GL_FALSE; GLboolean __GLEW_NV_copy_depth_to_color = GL_FALSE; GLboolean __GLEW_NV_copy_image = GL_FALSE; GLboolean __GLEW_NV_deep_texture3D = GL_FALSE; GLboolean __GLEW_NV_depth_buffer_float = GL_FALSE; GLboolean __GLEW_NV_depth_clamp = GL_FALSE; GLboolean __GLEW_NV_depth_range_unclamped = GL_FALSE; GLboolean __GLEW_NV_draw_buffers = GL_FALSE; GLboolean __GLEW_NV_draw_instanced = GL_FALSE; GLboolean __GLEW_NV_draw_texture = GL_FALSE; GLboolean __GLEW_NV_draw_vulkan_image = GL_FALSE; GLboolean __GLEW_NV_evaluators = GL_FALSE; GLboolean __GLEW_NV_explicit_attrib_location = GL_FALSE; GLboolean __GLEW_NV_explicit_multisample = GL_FALSE; GLboolean __GLEW_NV_fbo_color_attachments = GL_FALSE; GLboolean __GLEW_NV_fence = GL_FALSE; GLboolean __GLEW_NV_fill_rectangle = GL_FALSE; GLboolean __GLEW_NV_float_buffer = GL_FALSE; GLboolean __GLEW_NV_fog_distance = GL_FALSE; GLboolean __GLEW_NV_fragment_coverage_to_color = GL_FALSE; GLboolean __GLEW_NV_fragment_program = GL_FALSE; GLboolean __GLEW_NV_fragment_program2 = GL_FALSE; GLboolean __GLEW_NV_fragment_program4 = GL_FALSE; GLboolean __GLEW_NV_fragment_program_option = GL_FALSE; GLboolean __GLEW_NV_fragment_shader_interlock = GL_FALSE; GLboolean __GLEW_NV_framebuffer_blit = GL_FALSE; GLboolean __GLEW_NV_framebuffer_mixed_samples = GL_FALSE; GLboolean __GLEW_NV_framebuffer_multisample = GL_FALSE; GLboolean __GLEW_NV_framebuffer_multisample_coverage = GL_FALSE; GLboolean __GLEW_NV_generate_mipmap_sRGB = GL_FALSE; GLboolean __GLEW_NV_geometry_program4 = GL_FALSE; GLboolean __GLEW_NV_geometry_shader4 = GL_FALSE; GLboolean __GLEW_NV_geometry_shader_passthrough = GL_FALSE; GLboolean __GLEW_NV_gpu_multicast = GL_FALSE; GLboolean __GLEW_NV_gpu_program4 = GL_FALSE; GLboolean __GLEW_NV_gpu_program5 = GL_FALSE; GLboolean __GLEW_NV_gpu_program5_mem_extended = GL_FALSE; GLboolean __GLEW_NV_gpu_program_fp64 = GL_FALSE; GLboolean __GLEW_NV_gpu_shader5 = GL_FALSE; GLboolean __GLEW_NV_half_float = GL_FALSE; GLboolean __GLEW_NV_image_formats = GL_FALSE; GLboolean __GLEW_NV_instanced_arrays = GL_FALSE; GLboolean __GLEW_NV_internalformat_sample_query = GL_FALSE; GLboolean __GLEW_NV_light_max_exponent = GL_FALSE; GLboolean __GLEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLEW_NV_multisample_filter_hint = GL_FALSE; GLboolean __GLEW_NV_non_square_matrices = GL_FALSE; GLboolean __GLEW_NV_occlusion_query = GL_FALSE; GLboolean __GLEW_NV_pack_subimage = GL_FALSE; GLboolean __GLEW_NV_packed_depth_stencil = GL_FALSE; GLboolean __GLEW_NV_packed_float = GL_FALSE; GLboolean __GLEW_NV_packed_float_linear = GL_FALSE; GLboolean __GLEW_NV_parameter_buffer_object = GL_FALSE; GLboolean __GLEW_NV_parameter_buffer_object2 = GL_FALSE; GLboolean __GLEW_NV_path_rendering = GL_FALSE; GLboolean __GLEW_NV_path_rendering_shared_edge = GL_FALSE; GLboolean __GLEW_NV_pixel_buffer_object = GL_FALSE; GLboolean __GLEW_NV_pixel_data_range = GL_FALSE; GLboolean __GLEW_NV_platform_binary = GL_FALSE; GLboolean __GLEW_NV_point_sprite = GL_FALSE; GLboolean __GLEW_NV_polygon_mode = GL_FALSE; GLboolean __GLEW_NV_present_video = GL_FALSE; GLboolean __GLEW_NV_primitive_restart = GL_FALSE; GLboolean __GLEW_NV_read_depth = GL_FALSE; GLboolean __GLEW_NV_read_depth_stencil = GL_FALSE; GLboolean __GLEW_NV_read_stencil = GL_FALSE; GLboolean __GLEW_NV_register_combiners = GL_FALSE; GLboolean __GLEW_NV_register_combiners2 = GL_FALSE; GLboolean __GLEW_NV_robustness_video_memory_purge = GL_FALSE; GLboolean __GLEW_NV_sRGB_formats = GL_FALSE; GLboolean __GLEW_NV_sample_locations = GL_FALSE; GLboolean __GLEW_NV_sample_mask_override_coverage = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_counters = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_float = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_float64 = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_fp16_vector = GL_FALSE; GLboolean __GLEW_NV_shader_atomic_int64 = GL_FALSE; GLboolean __GLEW_NV_shader_buffer_load = GL_FALSE; GLboolean __GLEW_NV_shader_noperspective_interpolation = GL_FALSE; GLboolean __GLEW_NV_shader_storage_buffer_object = GL_FALSE; GLboolean __GLEW_NV_shader_thread_group = GL_FALSE; GLboolean __GLEW_NV_shader_thread_shuffle = GL_FALSE; GLboolean __GLEW_NV_shadow_samplers_array = GL_FALSE; GLboolean __GLEW_NV_shadow_samplers_cube = GL_FALSE; GLboolean __GLEW_NV_stereo_view_rendering = GL_FALSE; GLboolean __GLEW_NV_tessellation_program5 = GL_FALSE; GLboolean __GLEW_NV_texgen_emboss = GL_FALSE; GLboolean __GLEW_NV_texgen_reflection = GL_FALSE; GLboolean __GLEW_NV_texture_array = GL_FALSE; GLboolean __GLEW_NV_texture_barrier = GL_FALSE; GLboolean __GLEW_NV_texture_border_clamp = GL_FALSE; GLboolean __GLEW_NV_texture_compression_latc = GL_FALSE; GLboolean __GLEW_NV_texture_compression_s3tc = GL_FALSE; GLboolean __GLEW_NV_texture_compression_s3tc_update = GL_FALSE; GLboolean __GLEW_NV_texture_compression_vtc = GL_FALSE; GLboolean __GLEW_NV_texture_env_combine4 = GL_FALSE; GLboolean __GLEW_NV_texture_expand_normal = GL_FALSE; GLboolean __GLEW_NV_texture_multisample = GL_FALSE; GLboolean __GLEW_NV_texture_npot_2D_mipmap = GL_FALSE; GLboolean __GLEW_NV_texture_rectangle = GL_FALSE; GLboolean __GLEW_NV_texture_rectangle_compressed = GL_FALSE; GLboolean __GLEW_NV_texture_shader = GL_FALSE; GLboolean __GLEW_NV_texture_shader2 = GL_FALSE; GLboolean __GLEW_NV_texture_shader3 = GL_FALSE; GLboolean __GLEW_NV_transform_feedback = GL_FALSE; GLboolean __GLEW_NV_transform_feedback2 = GL_FALSE; GLboolean __GLEW_NV_uniform_buffer_unified_memory = GL_FALSE; GLboolean __GLEW_NV_vdpau_interop = GL_FALSE; GLboolean __GLEW_NV_vertex_array_range = GL_FALSE; GLboolean __GLEW_NV_vertex_array_range2 = GL_FALSE; GLboolean __GLEW_NV_vertex_attrib_integer_64bit = GL_FALSE; GLboolean __GLEW_NV_vertex_buffer_unified_memory = GL_FALSE; GLboolean __GLEW_NV_vertex_program = GL_FALSE; GLboolean __GLEW_NV_vertex_program1_1 = GL_FALSE; GLboolean __GLEW_NV_vertex_program2 = GL_FALSE; GLboolean __GLEW_NV_vertex_program2_option = GL_FALSE; GLboolean __GLEW_NV_vertex_program3 = GL_FALSE; GLboolean __GLEW_NV_vertex_program4 = GL_FALSE; GLboolean __GLEW_NV_video_capture = GL_FALSE; GLboolean __GLEW_NV_viewport_array = GL_FALSE; GLboolean __GLEW_NV_viewport_array2 = GL_FALSE; GLboolean __GLEW_NV_viewport_swizzle = GL_FALSE; GLboolean __GLEW_OES_byte_coordinates = GL_FALSE; GLboolean __GLEW_OML_interlace = GL_FALSE; GLboolean __GLEW_OML_resample = GL_FALSE; GLboolean __GLEW_OML_subsample = GL_FALSE; GLboolean __GLEW_OVR_multiview = GL_FALSE; GLboolean __GLEW_OVR_multiview2 = GL_FALSE; GLboolean __GLEW_OVR_multiview_multisampled_render_to_texture = GL_FALSE; GLboolean __GLEW_PGI_misc_hints = GL_FALSE; GLboolean __GLEW_PGI_vertex_hints = GL_FALSE; GLboolean __GLEW_QCOM_alpha_test = GL_FALSE; GLboolean __GLEW_QCOM_binning_control = GL_FALSE; GLboolean __GLEW_QCOM_driver_control = GL_FALSE; GLboolean __GLEW_QCOM_extended_get = GL_FALSE; GLboolean __GLEW_QCOM_extended_get2 = GL_FALSE; GLboolean __GLEW_QCOM_framebuffer_foveated = GL_FALSE; GLboolean __GLEW_QCOM_perfmon_global_mode = GL_FALSE; GLboolean __GLEW_QCOM_shader_framebuffer_fetch_noncoherent = GL_FALSE; GLboolean __GLEW_QCOM_tiled_rendering = GL_FALSE; GLboolean __GLEW_QCOM_writeonly_rendering = GL_FALSE; GLboolean __GLEW_REGAL_ES1_0_compatibility = GL_FALSE; GLboolean __GLEW_REGAL_ES1_1_compatibility = GL_FALSE; GLboolean __GLEW_REGAL_enable = GL_FALSE; GLboolean __GLEW_REGAL_error_string = GL_FALSE; GLboolean __GLEW_REGAL_extension_query = GL_FALSE; GLboolean __GLEW_REGAL_log = GL_FALSE; GLboolean __GLEW_REGAL_proc_address = GL_FALSE; GLboolean __GLEW_REND_screen_coordinates = GL_FALSE; GLboolean __GLEW_S3_s3tc = GL_FALSE; GLboolean __GLEW_SGIS_clip_band_hint = GL_FALSE; GLboolean __GLEW_SGIS_color_range = GL_FALSE; GLboolean __GLEW_SGIS_detail_texture = GL_FALSE; GLboolean __GLEW_SGIS_fog_function = GL_FALSE; GLboolean __GLEW_SGIS_generate_mipmap = GL_FALSE; GLboolean __GLEW_SGIS_line_texgen = GL_FALSE; GLboolean __GLEW_SGIS_multisample = GL_FALSE; GLboolean __GLEW_SGIS_multitexture = GL_FALSE; GLboolean __GLEW_SGIS_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIS_point_line_texgen = GL_FALSE; GLboolean __GLEW_SGIS_shared_multisample = GL_FALSE; GLboolean __GLEW_SGIS_sharpen_texture = GL_FALSE; GLboolean __GLEW_SGIS_texture4D = GL_FALSE; GLboolean __GLEW_SGIS_texture_border_clamp = GL_FALSE; GLboolean __GLEW_SGIS_texture_edge_clamp = GL_FALSE; GLboolean __GLEW_SGIS_texture_filter4 = GL_FALSE; GLboolean __GLEW_SGIS_texture_lod = GL_FALSE; GLboolean __GLEW_SGIS_texture_select = GL_FALSE; GLboolean __GLEW_SGIX_async = GL_FALSE; GLboolean __GLEW_SGIX_async_histogram = GL_FALSE; GLboolean __GLEW_SGIX_async_pixel = GL_FALSE; GLboolean __GLEW_SGIX_bali_g_instruments = GL_FALSE; GLboolean __GLEW_SGIX_bali_r_instruments = GL_FALSE; GLboolean __GLEW_SGIX_bali_timer_instruments = GL_FALSE; GLboolean __GLEW_SGIX_blend_alpha_minmax = GL_FALSE; GLboolean __GLEW_SGIX_blend_cadd = GL_FALSE; GLboolean __GLEW_SGIX_blend_cmultiply = GL_FALSE; GLboolean __GLEW_SGIX_calligraphic_fragment = GL_FALSE; GLboolean __GLEW_SGIX_clipmap = GL_FALSE; GLboolean __GLEW_SGIX_color_matrix_accuracy = GL_FALSE; GLboolean __GLEW_SGIX_color_table_index_mode = GL_FALSE; GLboolean __GLEW_SGIX_complex_polar = GL_FALSE; GLboolean __GLEW_SGIX_convolution_accuracy = GL_FALSE; GLboolean __GLEW_SGIX_cube_map = GL_FALSE; GLboolean __GLEW_SGIX_cylinder_texgen = GL_FALSE; GLboolean __GLEW_SGIX_datapipe = GL_FALSE; GLboolean __GLEW_SGIX_decimation = GL_FALSE; GLboolean __GLEW_SGIX_depth_pass_instrument = GL_FALSE; GLboolean __GLEW_SGIX_depth_texture = GL_FALSE; GLboolean __GLEW_SGIX_dvc = GL_FALSE; GLboolean __GLEW_SGIX_flush_raster = GL_FALSE; GLboolean __GLEW_SGIX_fog_blend = GL_FALSE; GLboolean __GLEW_SGIX_fog_factor_to_alpha = GL_FALSE; GLboolean __GLEW_SGIX_fog_layers = GL_FALSE; GLboolean __GLEW_SGIX_fog_offset = GL_FALSE; GLboolean __GLEW_SGIX_fog_patchy = GL_FALSE; GLboolean __GLEW_SGIX_fog_scale = GL_FALSE; GLboolean __GLEW_SGIX_fog_texture = GL_FALSE; GLboolean __GLEW_SGIX_fragment_lighting_space = GL_FALSE; GLboolean __GLEW_SGIX_fragment_specular_lighting = GL_FALSE; GLboolean __GLEW_SGIX_fragments_instrument = GL_FALSE; GLboolean __GLEW_SGIX_framezoom = GL_FALSE; GLboolean __GLEW_SGIX_icc_texture = GL_FALSE; GLboolean __GLEW_SGIX_igloo_interface = GL_FALSE; GLboolean __GLEW_SGIX_image_compression = GL_FALSE; GLboolean __GLEW_SGIX_impact_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIX_instrument_error = GL_FALSE; GLboolean __GLEW_SGIX_interlace = GL_FALSE; GLboolean __GLEW_SGIX_ir_instrument1 = GL_FALSE; GLboolean __GLEW_SGIX_line_quality_hint = GL_FALSE; GLboolean __GLEW_SGIX_list_priority = GL_FALSE; GLboolean __GLEW_SGIX_mpeg1 = GL_FALSE; GLboolean __GLEW_SGIX_mpeg2 = GL_FALSE; GLboolean __GLEW_SGIX_nonlinear_lighting_pervertex = GL_FALSE; GLboolean __GLEW_SGIX_nurbs_eval = GL_FALSE; GLboolean __GLEW_SGIX_occlusion_instrument = GL_FALSE; GLboolean __GLEW_SGIX_packed_6bytes = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture_bits = GL_FALSE; GLboolean __GLEW_SGIX_pixel_texture_lod = GL_FALSE; GLboolean __GLEW_SGIX_pixel_tiles = GL_FALSE; GLboolean __GLEW_SGIX_polynomial_ffd = GL_FALSE; GLboolean __GLEW_SGIX_quad_mesh = GL_FALSE; GLboolean __GLEW_SGIX_reference_plane = GL_FALSE; GLboolean __GLEW_SGIX_resample = GL_FALSE; GLboolean __GLEW_SGIX_scalebias_hint = GL_FALSE; GLboolean __GLEW_SGIX_shadow = GL_FALSE; GLboolean __GLEW_SGIX_shadow_ambient = GL_FALSE; GLboolean __GLEW_SGIX_slim = GL_FALSE; GLboolean __GLEW_SGIX_spotlight_cutoff = GL_FALSE; GLboolean __GLEW_SGIX_sprite = GL_FALSE; GLboolean __GLEW_SGIX_subdiv_patch = GL_FALSE; GLboolean __GLEW_SGIX_subsample = GL_FALSE; GLboolean __GLEW_SGIX_tag_sample_buffer = GL_FALSE; GLboolean __GLEW_SGIX_texture_add_env = GL_FALSE; GLboolean __GLEW_SGIX_texture_coordinate_clamp = GL_FALSE; GLboolean __GLEW_SGIX_texture_lod_bias = GL_FALSE; GLboolean __GLEW_SGIX_texture_mipmap_anisotropic = GL_FALSE; GLboolean __GLEW_SGIX_texture_multi_buffer = GL_FALSE; GLboolean __GLEW_SGIX_texture_phase = GL_FALSE; GLboolean __GLEW_SGIX_texture_range = GL_FALSE; GLboolean __GLEW_SGIX_texture_scale_bias = GL_FALSE; GLboolean __GLEW_SGIX_texture_supersample = GL_FALSE; GLboolean __GLEW_SGIX_vector_ops = GL_FALSE; GLboolean __GLEW_SGIX_vertex_array_object = GL_FALSE; GLboolean __GLEW_SGIX_vertex_preclip = GL_FALSE; GLboolean __GLEW_SGIX_vertex_preclip_hint = GL_FALSE; GLboolean __GLEW_SGIX_ycrcb = GL_FALSE; GLboolean __GLEW_SGIX_ycrcb_subsample = GL_FALSE; GLboolean __GLEW_SGIX_ycrcba = GL_FALSE; GLboolean __GLEW_SGI_color_matrix = GL_FALSE; GLboolean __GLEW_SGI_color_table = GL_FALSE; GLboolean __GLEW_SGI_complex = GL_FALSE; GLboolean __GLEW_SGI_complex_type = GL_FALSE; GLboolean __GLEW_SGI_fft = GL_FALSE; GLboolean __GLEW_SGI_texture_color_table = GL_FALSE; GLboolean __GLEW_SUNX_constant_data = GL_FALSE; GLboolean __GLEW_SUN_convolution_border_modes = GL_FALSE; GLboolean __GLEW_SUN_global_alpha = GL_FALSE; GLboolean __GLEW_SUN_mesh_array = GL_FALSE; GLboolean __GLEW_SUN_read_video_pixels = GL_FALSE; GLboolean __GLEW_SUN_slice_accum = GL_FALSE; GLboolean __GLEW_SUN_triangle_list = GL_FALSE; GLboolean __GLEW_SUN_vertex = GL_FALSE; GLboolean __GLEW_WIN_phong_shading = GL_FALSE; GLboolean __GLEW_WIN_scene_markerXXX = GL_FALSE; GLboolean __GLEW_WIN_specular_fog = GL_FALSE; GLboolean __GLEW_WIN_swap_hint = GL_FALSE; static const char * _glewExtensionLookup[] = { #ifdef GL_VERSION_1_2 "GL_VERSION_1_2", #endif #ifdef GL_VERSION_1_2_1 "GL_VERSION_1_2_1", #endif #ifdef GL_VERSION_1_3 "GL_VERSION_1_3", #endif #ifdef GL_VERSION_1_4 "GL_VERSION_1_4", #endif #ifdef GL_VERSION_1_5 "GL_VERSION_1_5", #endif #ifdef GL_VERSION_2_0 "GL_VERSION_2_0", #endif #ifdef GL_VERSION_2_1 "GL_VERSION_2_1", #endif #ifdef GL_VERSION_3_0 "GL_VERSION_3_0", #endif #ifdef GL_VERSION_3_1 "GL_VERSION_3_1", #endif #ifdef GL_VERSION_3_2 "GL_VERSION_3_2", #endif #ifdef GL_VERSION_3_3 "GL_VERSION_3_3", #endif #ifdef GL_VERSION_4_0 "GL_VERSION_4_0", #endif #ifdef GL_VERSION_4_1 "GL_VERSION_4_1", #endif #ifdef GL_VERSION_4_2 "GL_VERSION_4_2", #endif #ifdef GL_VERSION_4_3 "GL_VERSION_4_3", #endif #ifdef GL_VERSION_4_4 "GL_VERSION_4_4", #endif #ifdef GL_VERSION_4_5 "GL_VERSION_4_5", #endif #ifdef GL_VERSION_4_6 "GL_VERSION_4_6", #endif #ifdef GL_3DFX_multisample "GL_3DFX_multisample", #endif #ifdef GL_3DFX_tbuffer "GL_3DFX_tbuffer", #endif #ifdef GL_3DFX_texture_compression_FXT1 "GL_3DFX_texture_compression_FXT1", #endif #ifdef GL_AMD_blend_minmax_factor "GL_AMD_blend_minmax_factor", #endif #ifdef GL_AMD_compressed_3DC_texture "GL_AMD_compressed_3DC_texture", #endif #ifdef GL_AMD_compressed_ATC_texture "GL_AMD_compressed_ATC_texture", #endif #ifdef GL_AMD_conservative_depth "GL_AMD_conservative_depth", #endif #ifdef GL_AMD_debug_output "GL_AMD_debug_output", #endif #ifdef GL_AMD_depth_clamp_separate "GL_AMD_depth_clamp_separate", #endif #ifdef GL_AMD_draw_buffers_blend "GL_AMD_draw_buffers_blend", #endif #ifdef GL_AMD_framebuffer_sample_positions "GL_AMD_framebuffer_sample_positions", #endif #ifdef GL_AMD_gcn_shader "GL_AMD_gcn_shader", #endif #ifdef GL_AMD_gpu_shader_half_float "GL_AMD_gpu_shader_half_float", #endif #ifdef GL_AMD_gpu_shader_int16 "GL_AMD_gpu_shader_int16", #endif #ifdef GL_AMD_gpu_shader_int64 "GL_AMD_gpu_shader_int64", #endif #ifdef GL_AMD_interleaved_elements "GL_AMD_interleaved_elements", #endif #ifdef GL_AMD_multi_draw_indirect "GL_AMD_multi_draw_indirect", #endif #ifdef GL_AMD_name_gen_delete "GL_AMD_name_gen_delete", #endif #ifdef GL_AMD_occlusion_query_event "GL_AMD_occlusion_query_event", #endif #ifdef GL_AMD_performance_monitor "GL_AMD_performance_monitor", #endif #ifdef GL_AMD_pinned_memory "GL_AMD_pinned_memory", #endif #ifdef GL_AMD_program_binary_Z400 "GL_AMD_program_binary_Z400", #endif #ifdef GL_AMD_query_buffer_object "GL_AMD_query_buffer_object", #endif #ifdef GL_AMD_sample_positions "GL_AMD_sample_positions", #endif #ifdef GL_AMD_seamless_cubemap_per_texture "GL_AMD_seamless_cubemap_per_texture", #endif #ifdef GL_AMD_shader_atomic_counter_ops "GL_AMD_shader_atomic_counter_ops", #endif #ifdef GL_AMD_shader_ballot "GL_AMD_shader_ballot", #endif #ifdef GL_AMD_shader_explicit_vertex_parameter "GL_AMD_shader_explicit_vertex_parameter", #endif #ifdef GL_AMD_shader_stencil_export "GL_AMD_shader_stencil_export", #endif #ifdef GL_AMD_shader_stencil_value_export "GL_AMD_shader_stencil_value_export", #endif #ifdef GL_AMD_shader_trinary_minmax "GL_AMD_shader_trinary_minmax", #endif #ifdef GL_AMD_sparse_texture "GL_AMD_sparse_texture", #endif #ifdef GL_AMD_stencil_operation_extended "GL_AMD_stencil_operation_extended", #endif #ifdef GL_AMD_texture_gather_bias_lod "GL_AMD_texture_gather_bias_lod", #endif #ifdef GL_AMD_texture_texture4 "GL_AMD_texture_texture4", #endif #ifdef GL_AMD_transform_feedback3_lines_triangles "GL_AMD_transform_feedback3_lines_triangles", #endif #ifdef GL_AMD_transform_feedback4 "GL_AMD_transform_feedback4", #endif #ifdef GL_AMD_vertex_shader_layer "GL_AMD_vertex_shader_layer", #endif #ifdef GL_AMD_vertex_shader_tessellator "GL_AMD_vertex_shader_tessellator", #endif #ifdef GL_AMD_vertex_shader_viewport_index "GL_AMD_vertex_shader_viewport_index", #endif #ifdef GL_ANDROID_extension_pack_es31a "GL_ANDROID_extension_pack_es31a", #endif #ifdef GL_ANGLE_depth_texture "GL_ANGLE_depth_texture", #endif #ifdef GL_ANGLE_framebuffer_blit "GL_ANGLE_framebuffer_blit", #endif #ifdef GL_ANGLE_framebuffer_multisample "GL_ANGLE_framebuffer_multisample", #endif #ifdef GL_ANGLE_instanced_arrays "GL_ANGLE_instanced_arrays", #endif #ifdef GL_ANGLE_pack_reverse_row_order "GL_ANGLE_pack_reverse_row_order", #endif #ifdef GL_ANGLE_program_binary "GL_ANGLE_program_binary", #endif #ifdef GL_ANGLE_texture_compression_dxt1 "GL_ANGLE_texture_compression_dxt1", #endif #ifdef GL_ANGLE_texture_compression_dxt3 "GL_ANGLE_texture_compression_dxt3", #endif #ifdef GL_ANGLE_texture_compression_dxt5 "GL_ANGLE_texture_compression_dxt5", #endif #ifdef GL_ANGLE_texture_usage "GL_ANGLE_texture_usage", #endif #ifdef GL_ANGLE_timer_query "GL_ANGLE_timer_query", #endif #ifdef GL_ANGLE_translated_shader_source "GL_ANGLE_translated_shader_source", #endif #ifdef GL_APPLE_aux_depth_stencil "GL_APPLE_aux_depth_stencil", #endif #ifdef GL_APPLE_client_storage "GL_APPLE_client_storage", #endif #ifdef GL_APPLE_clip_distance "GL_APPLE_clip_distance", #endif #ifdef GL_APPLE_color_buffer_packed_float "GL_APPLE_color_buffer_packed_float", #endif #ifdef GL_APPLE_copy_texture_levels "GL_APPLE_copy_texture_levels", #endif #ifdef GL_APPLE_element_array "GL_APPLE_element_array", #endif #ifdef GL_APPLE_fence "GL_APPLE_fence", #endif #ifdef GL_APPLE_float_pixels "GL_APPLE_float_pixels", #endif #ifdef GL_APPLE_flush_buffer_range "GL_APPLE_flush_buffer_range", #endif #ifdef GL_APPLE_framebuffer_multisample "GL_APPLE_framebuffer_multisample", #endif #ifdef GL_APPLE_object_purgeable "GL_APPLE_object_purgeable", #endif #ifdef GL_APPLE_pixel_buffer "GL_APPLE_pixel_buffer", #endif #ifdef GL_APPLE_rgb_422 "GL_APPLE_rgb_422", #endif #ifdef GL_APPLE_row_bytes "GL_APPLE_row_bytes", #endif #ifdef GL_APPLE_specular_vector "GL_APPLE_specular_vector", #endif #ifdef GL_APPLE_sync "GL_APPLE_sync", #endif #ifdef GL_APPLE_texture_2D_limited_npot "GL_APPLE_texture_2D_limited_npot", #endif #ifdef GL_APPLE_texture_format_BGRA8888 "GL_APPLE_texture_format_BGRA8888", #endif #ifdef GL_APPLE_texture_max_level "GL_APPLE_texture_max_level", #endif #ifdef GL_APPLE_texture_packed_float "GL_APPLE_texture_packed_float", #endif #ifdef GL_APPLE_texture_range "GL_APPLE_texture_range", #endif #ifdef GL_APPLE_transform_hint "GL_APPLE_transform_hint", #endif #ifdef GL_APPLE_vertex_array_object "GL_APPLE_vertex_array_object", #endif #ifdef GL_APPLE_vertex_array_range "GL_APPLE_vertex_array_range", #endif #ifdef GL_APPLE_vertex_program_evaluators "GL_APPLE_vertex_program_evaluators", #endif #ifdef GL_APPLE_ycbcr_422 "GL_APPLE_ycbcr_422", #endif #ifdef GL_ARB_ES2_compatibility "GL_ARB_ES2_compatibility", #endif #ifdef GL_ARB_ES3_1_compatibility "GL_ARB_ES3_1_compatibility", #endif #ifdef GL_ARB_ES3_2_compatibility "GL_ARB_ES3_2_compatibility", #endif #ifdef GL_ARB_ES3_compatibility "GL_ARB_ES3_compatibility", #endif #ifdef GL_ARB_arrays_of_arrays "GL_ARB_arrays_of_arrays", #endif #ifdef GL_ARB_base_instance "GL_ARB_base_instance", #endif #ifdef GL_ARB_bindless_texture "GL_ARB_bindless_texture", #endif #ifdef GL_ARB_blend_func_extended "GL_ARB_blend_func_extended", #endif #ifdef GL_ARB_buffer_storage "GL_ARB_buffer_storage", #endif #ifdef GL_ARB_cl_event "GL_ARB_cl_event", #endif #ifdef GL_ARB_clear_buffer_object "GL_ARB_clear_buffer_object", #endif #ifdef GL_ARB_clear_texture "GL_ARB_clear_texture", #endif #ifdef GL_ARB_clip_control "GL_ARB_clip_control", #endif #ifdef GL_ARB_color_buffer_float "GL_ARB_color_buffer_float", #endif #ifdef GL_ARB_compatibility "GL_ARB_compatibility", #endif #ifdef GL_ARB_compressed_texture_pixel_storage "GL_ARB_compressed_texture_pixel_storage", #endif #ifdef GL_ARB_compute_shader "GL_ARB_compute_shader", #endif #ifdef GL_ARB_compute_variable_group_size "GL_ARB_compute_variable_group_size", #endif #ifdef GL_ARB_conditional_render_inverted "GL_ARB_conditional_render_inverted", #endif #ifdef GL_ARB_conservative_depth "GL_ARB_conservative_depth", #endif #ifdef GL_ARB_copy_buffer "GL_ARB_copy_buffer", #endif #ifdef GL_ARB_copy_image "GL_ARB_copy_image", #endif #ifdef GL_ARB_cull_distance "GL_ARB_cull_distance", #endif #ifdef GL_ARB_debug_output "GL_ARB_debug_output", #endif #ifdef GL_ARB_depth_buffer_float "GL_ARB_depth_buffer_float", #endif #ifdef GL_ARB_depth_clamp "GL_ARB_depth_clamp", #endif #ifdef GL_ARB_depth_texture "GL_ARB_depth_texture", #endif #ifdef GL_ARB_derivative_control "GL_ARB_derivative_control", #endif #ifdef GL_ARB_direct_state_access "GL_ARB_direct_state_access", #endif #ifdef GL_ARB_draw_buffers "GL_ARB_draw_buffers", #endif #ifdef GL_ARB_draw_buffers_blend "GL_ARB_draw_buffers_blend", #endif #ifdef GL_ARB_draw_elements_base_vertex "GL_ARB_draw_elements_base_vertex", #endif #ifdef GL_ARB_draw_indirect "GL_ARB_draw_indirect", #endif #ifdef GL_ARB_draw_instanced "GL_ARB_draw_instanced", #endif #ifdef GL_ARB_enhanced_layouts "GL_ARB_enhanced_layouts", #endif #ifdef GL_ARB_explicit_attrib_location "GL_ARB_explicit_attrib_location", #endif #ifdef GL_ARB_explicit_uniform_location "GL_ARB_explicit_uniform_location", #endif #ifdef GL_ARB_fragment_coord_conventions "GL_ARB_fragment_coord_conventions", #endif #ifdef GL_ARB_fragment_layer_viewport "GL_ARB_fragment_layer_viewport", #endif #ifdef GL_ARB_fragment_program "GL_ARB_fragment_program", #endif #ifdef GL_ARB_fragment_program_shadow "GL_ARB_fragment_program_shadow", #endif #ifdef GL_ARB_fragment_shader "GL_ARB_fragment_shader", #endif #ifdef GL_ARB_fragment_shader_interlock "GL_ARB_fragment_shader_interlock", #endif #ifdef GL_ARB_framebuffer_no_attachments "GL_ARB_framebuffer_no_attachments", #endif #ifdef GL_ARB_framebuffer_object "GL_ARB_framebuffer_object", #endif #ifdef GL_ARB_framebuffer_sRGB "GL_ARB_framebuffer_sRGB", #endif #ifdef GL_ARB_geometry_shader4 "GL_ARB_geometry_shader4", #endif #ifdef GL_ARB_get_program_binary "GL_ARB_get_program_binary", #endif #ifdef GL_ARB_get_texture_sub_image "GL_ARB_get_texture_sub_image", #endif #ifdef GL_ARB_gl_spirv "GL_ARB_gl_spirv", #endif #ifdef GL_ARB_gpu_shader5 "GL_ARB_gpu_shader5", #endif #ifdef GL_ARB_gpu_shader_fp64 "GL_ARB_gpu_shader_fp64", #endif #ifdef GL_ARB_gpu_shader_int64 "GL_ARB_gpu_shader_int64", #endif #ifdef GL_ARB_half_float_pixel "GL_ARB_half_float_pixel", #endif #ifdef GL_ARB_half_float_vertex "GL_ARB_half_float_vertex", #endif #ifdef GL_ARB_imaging "GL_ARB_imaging", #endif #ifdef GL_ARB_indirect_parameters "GL_ARB_indirect_parameters", #endif #ifdef GL_ARB_instanced_arrays "GL_ARB_instanced_arrays", #endif #ifdef GL_ARB_internalformat_query "GL_ARB_internalformat_query", #endif #ifdef GL_ARB_internalformat_query2 "GL_ARB_internalformat_query2", #endif #ifdef GL_ARB_invalidate_subdata "GL_ARB_invalidate_subdata", #endif #ifdef GL_ARB_map_buffer_alignment "GL_ARB_map_buffer_alignment", #endif #ifdef GL_ARB_map_buffer_range "GL_ARB_map_buffer_range", #endif #ifdef GL_ARB_matrix_palette "GL_ARB_matrix_palette", #endif #ifdef GL_ARB_multi_bind "GL_ARB_multi_bind", #endif #ifdef GL_ARB_multi_draw_indirect "GL_ARB_multi_draw_indirect", #endif #ifdef GL_ARB_multisample "GL_ARB_multisample", #endif #ifdef GL_ARB_multitexture "GL_ARB_multitexture", #endif #ifdef GL_ARB_occlusion_query "GL_ARB_occlusion_query", #endif #ifdef GL_ARB_occlusion_query2 "GL_ARB_occlusion_query2", #endif #ifdef GL_ARB_parallel_shader_compile "GL_ARB_parallel_shader_compile", #endif #ifdef GL_ARB_pipeline_statistics_query "GL_ARB_pipeline_statistics_query", #endif #ifdef GL_ARB_pixel_buffer_object "GL_ARB_pixel_buffer_object", #endif #ifdef GL_ARB_point_parameters "GL_ARB_point_parameters", #endif #ifdef GL_ARB_point_sprite "GL_ARB_point_sprite", #endif #ifdef GL_ARB_polygon_offset_clamp "GL_ARB_polygon_offset_clamp", #endif #ifdef GL_ARB_post_depth_coverage "GL_ARB_post_depth_coverage", #endif #ifdef GL_ARB_program_interface_query "GL_ARB_program_interface_query", #endif #ifdef GL_ARB_provoking_vertex "GL_ARB_provoking_vertex", #endif #ifdef GL_ARB_query_buffer_object "GL_ARB_query_buffer_object", #endif #ifdef GL_ARB_robust_buffer_access_behavior "GL_ARB_robust_buffer_access_behavior", #endif #ifdef GL_ARB_robustness "GL_ARB_robustness", #endif #ifdef GL_ARB_robustness_application_isolation "GL_ARB_robustness_application_isolation", #endif #ifdef GL_ARB_robustness_share_group_isolation "GL_ARB_robustness_share_group_isolation", #endif #ifdef GL_ARB_sample_locations "GL_ARB_sample_locations", #endif #ifdef GL_ARB_sample_shading "GL_ARB_sample_shading", #endif #ifdef GL_ARB_sampler_objects "GL_ARB_sampler_objects", #endif #ifdef GL_ARB_seamless_cube_map "GL_ARB_seamless_cube_map", #endif #ifdef GL_ARB_seamless_cubemap_per_texture "GL_ARB_seamless_cubemap_per_texture", #endif #ifdef GL_ARB_separate_shader_objects "GL_ARB_separate_shader_objects", #endif #ifdef GL_ARB_shader_atomic_counter_ops "GL_ARB_shader_atomic_counter_ops", #endif #ifdef GL_ARB_shader_atomic_counters "GL_ARB_shader_atomic_counters", #endif #ifdef GL_ARB_shader_ballot "GL_ARB_shader_ballot", #endif #ifdef GL_ARB_shader_bit_encoding "GL_ARB_shader_bit_encoding", #endif #ifdef GL_ARB_shader_clock "GL_ARB_shader_clock", #endif #ifdef GL_ARB_shader_draw_parameters "GL_ARB_shader_draw_parameters", #endif #ifdef GL_ARB_shader_group_vote "GL_ARB_shader_group_vote", #endif #ifdef GL_ARB_shader_image_load_store "GL_ARB_shader_image_load_store", #endif #ifdef GL_ARB_shader_image_size "GL_ARB_shader_image_size", #endif #ifdef GL_ARB_shader_objects "GL_ARB_shader_objects", #endif #ifdef GL_ARB_shader_precision "GL_ARB_shader_precision", #endif #ifdef GL_ARB_shader_stencil_export "GL_ARB_shader_stencil_export", #endif #ifdef GL_ARB_shader_storage_buffer_object "GL_ARB_shader_storage_buffer_object", #endif #ifdef GL_ARB_shader_subroutine "GL_ARB_shader_subroutine", #endif #ifdef GL_ARB_shader_texture_image_samples "GL_ARB_shader_texture_image_samples", #endif #ifdef GL_ARB_shader_texture_lod "GL_ARB_shader_texture_lod", #endif #ifdef GL_ARB_shader_viewport_layer_array "GL_ARB_shader_viewport_layer_array", #endif #ifdef GL_ARB_shading_language_100 "GL_ARB_shading_language_100", #endif #ifdef GL_ARB_shading_language_420pack "GL_ARB_shading_language_420pack", #endif #ifdef GL_ARB_shading_language_include "GL_ARB_shading_language_include", #endif #ifdef GL_ARB_shading_language_packing "GL_ARB_shading_language_packing", #endif #ifdef GL_ARB_shadow "GL_ARB_shadow", #endif #ifdef GL_ARB_shadow_ambient "GL_ARB_shadow_ambient", #endif #ifdef GL_ARB_sparse_buffer "GL_ARB_sparse_buffer", #endif #ifdef GL_ARB_sparse_texture "GL_ARB_sparse_texture", #endif #ifdef GL_ARB_sparse_texture2 "GL_ARB_sparse_texture2", #endif #ifdef GL_ARB_sparse_texture_clamp "GL_ARB_sparse_texture_clamp", #endif #ifdef GL_ARB_spirv_extensions "GL_ARB_spirv_extensions", #endif #ifdef GL_ARB_stencil_texturing "GL_ARB_stencil_texturing", #endif #ifdef GL_ARB_sync "GL_ARB_sync", #endif #ifdef GL_ARB_tessellation_shader "GL_ARB_tessellation_shader", #endif #ifdef GL_ARB_texture_barrier "GL_ARB_texture_barrier", #endif #ifdef GL_ARB_texture_border_clamp "GL_ARB_texture_border_clamp", #endif #ifdef GL_ARB_texture_buffer_object "GL_ARB_texture_buffer_object", #endif #ifdef GL_ARB_texture_buffer_object_rgb32 "GL_ARB_texture_buffer_object_rgb32", #endif #ifdef GL_ARB_texture_buffer_range "GL_ARB_texture_buffer_range", #endif #ifdef GL_ARB_texture_compression "GL_ARB_texture_compression", #endif #ifdef GL_ARB_texture_compression_bptc "GL_ARB_texture_compression_bptc", #endif #ifdef GL_ARB_texture_compression_rgtc "GL_ARB_texture_compression_rgtc", #endif #ifdef GL_ARB_texture_cube_map "GL_ARB_texture_cube_map", #endif #ifdef GL_ARB_texture_cube_map_array "GL_ARB_texture_cube_map_array", #endif #ifdef GL_ARB_texture_env_add "GL_ARB_texture_env_add", #endif #ifdef GL_ARB_texture_env_combine "GL_ARB_texture_env_combine", #endif #ifdef GL_ARB_texture_env_crossbar "GL_ARB_texture_env_crossbar", #endif #ifdef GL_ARB_texture_env_dot3 "GL_ARB_texture_env_dot3", #endif #ifdef GL_ARB_texture_filter_anisotropic "GL_ARB_texture_filter_anisotropic", #endif #ifdef GL_ARB_texture_filter_minmax "GL_ARB_texture_filter_minmax", #endif #ifdef GL_ARB_texture_float "GL_ARB_texture_float", #endif #ifdef GL_ARB_texture_gather "GL_ARB_texture_gather", #endif #ifdef GL_ARB_texture_mirror_clamp_to_edge "GL_ARB_texture_mirror_clamp_to_edge", #endif #ifdef GL_ARB_texture_mirrored_repeat "GL_ARB_texture_mirrored_repeat", #endif #ifdef GL_ARB_texture_multisample "GL_ARB_texture_multisample", #endif #ifdef GL_ARB_texture_non_power_of_two "GL_ARB_texture_non_power_of_two", #endif #ifdef GL_ARB_texture_query_levels "GL_ARB_texture_query_levels", #endif #ifdef GL_ARB_texture_query_lod "GL_ARB_texture_query_lod", #endif #ifdef GL_ARB_texture_rectangle "GL_ARB_texture_rectangle", #endif #ifdef GL_ARB_texture_rg "GL_ARB_texture_rg", #endif #ifdef GL_ARB_texture_rgb10_a2ui "GL_ARB_texture_rgb10_a2ui", #endif #ifdef GL_ARB_texture_stencil8 "GL_ARB_texture_stencil8", #endif #ifdef GL_ARB_texture_storage "GL_ARB_texture_storage", #endif #ifdef GL_ARB_texture_storage_multisample "GL_ARB_texture_storage_multisample", #endif #ifdef GL_ARB_texture_swizzle "GL_ARB_texture_swizzle", #endif #ifdef GL_ARB_texture_view "GL_ARB_texture_view", #endif #ifdef GL_ARB_timer_query "GL_ARB_timer_query", #endif #ifdef GL_ARB_transform_feedback2 "GL_ARB_transform_feedback2", #endif #ifdef GL_ARB_transform_feedback3 "GL_ARB_transform_feedback3", #endif #ifdef GL_ARB_transform_feedback_instanced "GL_ARB_transform_feedback_instanced", #endif #ifdef GL_ARB_transform_feedback_overflow_query "GL_ARB_transform_feedback_overflow_query", #endif #ifdef GL_ARB_transpose_matrix "GL_ARB_transpose_matrix", #endif #ifdef GL_ARB_uniform_buffer_object "GL_ARB_uniform_buffer_object", #endif #ifdef GL_ARB_vertex_array_bgra "GL_ARB_vertex_array_bgra", #endif #ifdef GL_ARB_vertex_array_object "GL_ARB_vertex_array_object", #endif #ifdef GL_ARB_vertex_attrib_64bit "GL_ARB_vertex_attrib_64bit", #endif #ifdef GL_ARB_vertex_attrib_binding "GL_ARB_vertex_attrib_binding", #endif #ifdef GL_ARB_vertex_blend "GL_ARB_vertex_blend", #endif #ifdef GL_ARB_vertex_buffer_object "GL_ARB_vertex_buffer_object", #endif #ifdef GL_ARB_vertex_program "GL_ARB_vertex_program", #endif #ifdef GL_ARB_vertex_shader "GL_ARB_vertex_shader", #endif #ifdef GL_ARB_vertex_type_10f_11f_11f_rev "GL_ARB_vertex_type_10f_11f_11f_rev", #endif #ifdef GL_ARB_vertex_type_2_10_10_10_rev "GL_ARB_vertex_type_2_10_10_10_rev", #endif #ifdef GL_ARB_viewport_array "GL_ARB_viewport_array", #endif #ifdef GL_ARB_window_pos "GL_ARB_window_pos", #endif #ifdef GL_ARM_mali_program_binary "GL_ARM_mali_program_binary", #endif #ifdef GL_ARM_mali_shader_binary "GL_ARM_mali_shader_binary", #endif #ifdef GL_ARM_rgba8 "GL_ARM_rgba8", #endif #ifdef GL_ARM_shader_framebuffer_fetch "GL_ARM_shader_framebuffer_fetch", #endif #ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil "GL_ARM_shader_framebuffer_fetch_depth_stencil", #endif #ifdef GL_ATIX_point_sprites "GL_ATIX_point_sprites", #endif #ifdef GL_ATIX_texture_env_combine3 "GL_ATIX_texture_env_combine3", #endif #ifdef GL_ATIX_texture_env_route "GL_ATIX_texture_env_route", #endif #ifdef GL_ATIX_vertex_shader_output_point_size "GL_ATIX_vertex_shader_output_point_size", #endif #ifdef GL_ATI_draw_buffers "GL_ATI_draw_buffers", #endif #ifdef GL_ATI_element_array "GL_ATI_element_array", #endif #ifdef GL_ATI_envmap_bumpmap "GL_ATI_envmap_bumpmap", #endif #ifdef GL_ATI_fragment_shader "GL_ATI_fragment_shader", #endif #ifdef GL_ATI_map_object_buffer "GL_ATI_map_object_buffer", #endif #ifdef GL_ATI_meminfo "GL_ATI_meminfo", #endif #ifdef GL_ATI_pn_triangles "GL_ATI_pn_triangles", #endif #ifdef GL_ATI_separate_stencil "GL_ATI_separate_stencil", #endif #ifdef GL_ATI_shader_texture_lod "GL_ATI_shader_texture_lod", #endif #ifdef GL_ATI_text_fragment_shader "GL_ATI_text_fragment_shader", #endif #ifdef GL_ATI_texture_compression_3dc "GL_ATI_texture_compression_3dc", #endif #ifdef GL_ATI_texture_env_combine3 "GL_ATI_texture_env_combine3", #endif #ifdef GL_ATI_texture_float "GL_ATI_texture_float", #endif #ifdef GL_ATI_texture_mirror_once "GL_ATI_texture_mirror_once", #endif #ifdef GL_ATI_vertex_array_object "GL_ATI_vertex_array_object", #endif #ifdef GL_ATI_vertex_attrib_array_object "GL_ATI_vertex_attrib_array_object", #endif #ifdef GL_ATI_vertex_streams "GL_ATI_vertex_streams", #endif #ifdef GL_EGL_KHR_context_flush_control "GL_EGL_KHR_context_flush_control", #endif #ifdef GL_EGL_NV_robustness_video_memory_purge "GL_EGL_NV_robustness_video_memory_purge", #endif #ifdef GL_EXT_422_pixels "GL_EXT_422_pixels", #endif #ifdef GL_EXT_Cg_shader "GL_EXT_Cg_shader", #endif #ifdef GL_EXT_EGL_image_array "GL_EXT_EGL_image_array", #endif #ifdef GL_EXT_YUV_target "GL_EXT_YUV_target", #endif #ifdef GL_EXT_abgr "GL_EXT_abgr", #endif #ifdef GL_EXT_base_instance "GL_EXT_base_instance", #endif #ifdef GL_EXT_bgra "GL_EXT_bgra", #endif #ifdef GL_EXT_bindable_uniform "GL_EXT_bindable_uniform", #endif #ifdef GL_EXT_blend_color "GL_EXT_blend_color", #endif #ifdef GL_EXT_blend_equation_separate "GL_EXT_blend_equation_separate", #endif #ifdef GL_EXT_blend_func_extended "GL_EXT_blend_func_extended", #endif #ifdef GL_EXT_blend_func_separate "GL_EXT_blend_func_separate", #endif #ifdef GL_EXT_blend_logic_op "GL_EXT_blend_logic_op", #endif #ifdef GL_EXT_blend_minmax "GL_EXT_blend_minmax", #endif #ifdef GL_EXT_blend_subtract "GL_EXT_blend_subtract", #endif #ifdef GL_EXT_buffer_storage "GL_EXT_buffer_storage", #endif #ifdef GL_EXT_clear_texture "GL_EXT_clear_texture", #endif #ifdef GL_EXT_clip_cull_distance "GL_EXT_clip_cull_distance", #endif #ifdef GL_EXT_clip_volume_hint "GL_EXT_clip_volume_hint", #endif #ifdef GL_EXT_cmyka "GL_EXT_cmyka", #endif #ifdef GL_EXT_color_buffer_float "GL_EXT_color_buffer_float", #endif #ifdef GL_EXT_color_buffer_half_float "GL_EXT_color_buffer_half_float", #endif #ifdef GL_EXT_color_subtable "GL_EXT_color_subtable", #endif #ifdef GL_EXT_compiled_vertex_array "GL_EXT_compiled_vertex_array", #endif #ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture "GL_EXT_compressed_ETC1_RGB8_sub_texture", #endif #ifdef GL_EXT_conservative_depth "GL_EXT_conservative_depth", #endif #ifdef GL_EXT_convolution "GL_EXT_convolution", #endif #ifdef GL_EXT_coordinate_frame "GL_EXT_coordinate_frame", #endif #ifdef GL_EXT_copy_image "GL_EXT_copy_image", #endif #ifdef GL_EXT_copy_texture "GL_EXT_copy_texture", #endif #ifdef GL_EXT_cull_vertex "GL_EXT_cull_vertex", #endif #ifdef GL_EXT_debug_label "GL_EXT_debug_label", #endif #ifdef GL_EXT_debug_marker "GL_EXT_debug_marker", #endif #ifdef GL_EXT_depth_bounds_test "GL_EXT_depth_bounds_test", #endif #ifdef GL_EXT_direct_state_access "GL_EXT_direct_state_access", #endif #ifdef GL_EXT_discard_framebuffer "GL_EXT_discard_framebuffer", #endif #ifdef GL_EXT_draw_buffers "GL_EXT_draw_buffers", #endif #ifdef GL_EXT_draw_buffers2 "GL_EXT_draw_buffers2", #endif #ifdef GL_EXT_draw_buffers_indexed "GL_EXT_draw_buffers_indexed", #endif #ifdef GL_EXT_draw_elements_base_vertex "GL_EXT_draw_elements_base_vertex", #endif #ifdef GL_EXT_draw_instanced "GL_EXT_draw_instanced", #endif #ifdef GL_EXT_draw_range_elements "GL_EXT_draw_range_elements", #endif #ifdef GL_EXT_external_buffer "GL_EXT_external_buffer", #endif #ifdef GL_EXT_float_blend "GL_EXT_float_blend", #endif #ifdef GL_EXT_fog_coord "GL_EXT_fog_coord", #endif #ifdef GL_EXT_frag_depth "GL_EXT_frag_depth", #endif #ifdef GL_EXT_fragment_lighting "GL_EXT_fragment_lighting", #endif #ifdef GL_EXT_framebuffer_blit "GL_EXT_framebuffer_blit", #endif #ifdef GL_EXT_framebuffer_multisample "GL_EXT_framebuffer_multisample", #endif #ifdef GL_EXT_framebuffer_multisample_blit_scaled "GL_EXT_framebuffer_multisample_blit_scaled", #endif #ifdef GL_EXT_framebuffer_object "GL_EXT_framebuffer_object", #endif #ifdef GL_EXT_framebuffer_sRGB "GL_EXT_framebuffer_sRGB", #endif #ifdef GL_EXT_geometry_point_size "GL_EXT_geometry_point_size", #endif #ifdef GL_EXT_geometry_shader "GL_EXT_geometry_shader", #endif #ifdef GL_EXT_geometry_shader4 "GL_EXT_geometry_shader4", #endif #ifdef GL_EXT_gpu_program_parameters "GL_EXT_gpu_program_parameters", #endif #ifdef GL_EXT_gpu_shader4 "GL_EXT_gpu_shader4", #endif #ifdef GL_EXT_gpu_shader5 "GL_EXT_gpu_shader5", #endif #ifdef GL_EXT_histogram "GL_EXT_histogram", #endif #ifdef GL_EXT_index_array_formats "GL_EXT_index_array_formats", #endif #ifdef GL_EXT_index_func "GL_EXT_index_func", #endif #ifdef GL_EXT_index_material "GL_EXT_index_material", #endif #ifdef GL_EXT_index_texture "GL_EXT_index_texture", #endif #ifdef GL_EXT_instanced_arrays "GL_EXT_instanced_arrays", #endif #ifdef GL_EXT_light_texture "GL_EXT_light_texture", #endif #ifdef GL_EXT_map_buffer_range "GL_EXT_map_buffer_range", #endif #ifdef GL_EXT_memory_object "GL_EXT_memory_object", #endif #ifdef GL_EXT_memory_object_fd "GL_EXT_memory_object_fd", #endif #ifdef GL_EXT_memory_object_win32 "GL_EXT_memory_object_win32", #endif #ifdef GL_EXT_misc_attribute "GL_EXT_misc_attribute", #endif #ifdef GL_EXT_multi_draw_arrays "GL_EXT_multi_draw_arrays", #endif #ifdef GL_EXT_multi_draw_indirect "GL_EXT_multi_draw_indirect", #endif #ifdef GL_EXT_multiple_textures "GL_EXT_multiple_textures", #endif #ifdef GL_EXT_multisample "GL_EXT_multisample", #endif #ifdef GL_EXT_multisample_compatibility "GL_EXT_multisample_compatibility", #endif #ifdef GL_EXT_multisampled_render_to_texture "GL_EXT_multisampled_render_to_texture", #endif #ifdef GL_EXT_multisampled_render_to_texture2 "GL_EXT_multisampled_render_to_texture2", #endif #ifdef GL_EXT_multiview_draw_buffers "GL_EXT_multiview_draw_buffers", #endif #ifdef GL_EXT_packed_depth_stencil "GL_EXT_packed_depth_stencil", #endif #ifdef GL_EXT_packed_float "GL_EXT_packed_float", #endif #ifdef GL_EXT_packed_pixels "GL_EXT_packed_pixels", #endif #ifdef GL_EXT_paletted_texture "GL_EXT_paletted_texture", #endif #ifdef GL_EXT_pixel_buffer_object "GL_EXT_pixel_buffer_object", #endif #ifdef GL_EXT_pixel_transform "GL_EXT_pixel_transform", #endif #ifdef GL_EXT_pixel_transform_color_table "GL_EXT_pixel_transform_color_table", #endif #ifdef GL_EXT_point_parameters "GL_EXT_point_parameters", #endif #ifdef GL_EXT_polygon_offset "GL_EXT_polygon_offset", #endif #ifdef GL_EXT_polygon_offset_clamp "GL_EXT_polygon_offset_clamp", #endif #ifdef GL_EXT_post_depth_coverage "GL_EXT_post_depth_coverage", #endif #ifdef GL_EXT_provoking_vertex "GL_EXT_provoking_vertex", #endif #ifdef GL_EXT_pvrtc_sRGB "GL_EXT_pvrtc_sRGB", #endif #ifdef GL_EXT_raster_multisample "GL_EXT_raster_multisample", #endif #ifdef GL_EXT_read_format_bgra "GL_EXT_read_format_bgra", #endif #ifdef GL_EXT_render_snorm "GL_EXT_render_snorm", #endif #ifdef GL_EXT_rescale_normal "GL_EXT_rescale_normal", #endif #ifdef GL_EXT_sRGB "GL_EXT_sRGB", #endif #ifdef GL_EXT_sRGB_write_control "GL_EXT_sRGB_write_control", #endif #ifdef GL_EXT_scene_marker "GL_EXT_scene_marker", #endif #ifdef GL_EXT_secondary_color "GL_EXT_secondary_color", #endif #ifdef GL_EXT_semaphore "GL_EXT_semaphore", #endif #ifdef GL_EXT_semaphore_fd "GL_EXT_semaphore_fd", #endif #ifdef GL_EXT_semaphore_win32 "GL_EXT_semaphore_win32", #endif #ifdef GL_EXT_separate_shader_objects "GL_EXT_separate_shader_objects", #endif #ifdef GL_EXT_separate_specular_color "GL_EXT_separate_specular_color", #endif #ifdef GL_EXT_shader_framebuffer_fetch "GL_EXT_shader_framebuffer_fetch", #endif #ifdef GL_EXT_shader_group_vote "GL_EXT_shader_group_vote", #endif #ifdef GL_EXT_shader_image_load_formatted "GL_EXT_shader_image_load_formatted", #endif #ifdef GL_EXT_shader_image_load_store "GL_EXT_shader_image_load_store", #endif #ifdef GL_EXT_shader_implicit_conversions "GL_EXT_shader_implicit_conversions", #endif #ifdef GL_EXT_shader_integer_mix "GL_EXT_shader_integer_mix", #endif #ifdef GL_EXT_shader_io_blocks "GL_EXT_shader_io_blocks", #endif #ifdef GL_EXT_shader_non_constant_global_initializers "GL_EXT_shader_non_constant_global_initializers", #endif #ifdef GL_EXT_shader_pixel_local_storage "GL_EXT_shader_pixel_local_storage", #endif #ifdef GL_EXT_shader_pixel_local_storage2 "GL_EXT_shader_pixel_local_storage2", #endif #ifdef GL_EXT_shader_texture_lod "GL_EXT_shader_texture_lod", #endif #ifdef GL_EXT_shadow_funcs "GL_EXT_shadow_funcs", #endif #ifdef GL_EXT_shadow_samplers "GL_EXT_shadow_samplers", #endif #ifdef GL_EXT_shared_texture_palette "GL_EXT_shared_texture_palette", #endif #ifdef GL_EXT_sparse_texture "GL_EXT_sparse_texture", #endif #ifdef GL_EXT_sparse_texture2 "GL_EXT_sparse_texture2", #endif #ifdef GL_EXT_stencil_clear_tag "GL_EXT_stencil_clear_tag", #endif #ifdef GL_EXT_stencil_two_side "GL_EXT_stencil_two_side", #endif #ifdef GL_EXT_stencil_wrap "GL_EXT_stencil_wrap", #endif #ifdef GL_EXT_subtexture "GL_EXT_subtexture", #endif #ifdef GL_EXT_texture "GL_EXT_texture", #endif #ifdef GL_EXT_texture3D "GL_EXT_texture3D", #endif #ifdef GL_EXT_texture_array "GL_EXT_texture_array", #endif #ifdef GL_EXT_texture_buffer_object "GL_EXT_texture_buffer_object", #endif #ifdef GL_EXT_texture_compression_astc_decode_mode "GL_EXT_texture_compression_astc_decode_mode", #endif #ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 "GL_EXT_texture_compression_astc_decode_mode_rgb9e5", #endif #ifdef GL_EXT_texture_compression_bptc "GL_EXT_texture_compression_bptc", #endif #ifdef GL_EXT_texture_compression_dxt1 "GL_EXT_texture_compression_dxt1", #endif #ifdef GL_EXT_texture_compression_latc "GL_EXT_texture_compression_latc", #endif #ifdef GL_EXT_texture_compression_rgtc "GL_EXT_texture_compression_rgtc", #endif #ifdef GL_EXT_texture_compression_s3tc "GL_EXT_texture_compression_s3tc", #endif #ifdef GL_EXT_texture_cube_map "GL_EXT_texture_cube_map", #endif #ifdef GL_EXT_texture_cube_map_array "GL_EXT_texture_cube_map_array", #endif #ifdef GL_EXT_texture_edge_clamp "GL_EXT_texture_edge_clamp", #endif #ifdef GL_EXT_texture_env "GL_EXT_texture_env", #endif #ifdef GL_EXT_texture_env_add "GL_EXT_texture_env_add", #endif #ifdef GL_EXT_texture_env_combine "GL_EXT_texture_env_combine", #endif #ifdef GL_EXT_texture_env_dot3 "GL_EXT_texture_env_dot3", #endif #ifdef GL_EXT_texture_filter_anisotropic "GL_EXT_texture_filter_anisotropic", #endif #ifdef GL_EXT_texture_filter_minmax "GL_EXT_texture_filter_minmax", #endif #ifdef GL_EXT_texture_format_BGRA8888 "GL_EXT_texture_format_BGRA8888", #endif #ifdef GL_EXT_texture_integer "GL_EXT_texture_integer", #endif #ifdef GL_EXT_texture_lod_bias "GL_EXT_texture_lod_bias", #endif #ifdef GL_EXT_texture_mirror_clamp "GL_EXT_texture_mirror_clamp", #endif #ifdef GL_EXT_texture_norm16 "GL_EXT_texture_norm16", #endif #ifdef GL_EXT_texture_object "GL_EXT_texture_object", #endif #ifdef GL_EXT_texture_perturb_normal "GL_EXT_texture_perturb_normal", #endif #ifdef GL_EXT_texture_rectangle "GL_EXT_texture_rectangle", #endif #ifdef GL_EXT_texture_rg "GL_EXT_texture_rg", #endif #ifdef GL_EXT_texture_sRGB "GL_EXT_texture_sRGB", #endif #ifdef GL_EXT_texture_sRGB_R8 "GL_EXT_texture_sRGB_R8", #endif #ifdef GL_EXT_texture_sRGB_RG8 "GL_EXT_texture_sRGB_RG8", #endif #ifdef GL_EXT_texture_sRGB_decode "GL_EXT_texture_sRGB_decode", #endif #ifdef GL_EXT_texture_shared_exponent "GL_EXT_texture_shared_exponent", #endif #ifdef GL_EXT_texture_snorm "GL_EXT_texture_snorm", #endif #ifdef GL_EXT_texture_storage "GL_EXT_texture_storage", #endif #ifdef GL_EXT_texture_swizzle "GL_EXT_texture_swizzle", #endif #ifdef GL_EXT_texture_type_2_10_10_10_REV "GL_EXT_texture_type_2_10_10_10_REV", #endif #ifdef GL_EXT_texture_view "GL_EXT_texture_view", #endif #ifdef GL_EXT_timer_query "GL_EXT_timer_query", #endif #ifdef GL_EXT_transform_feedback "GL_EXT_transform_feedback", #endif #ifdef GL_EXT_unpack_subimage "GL_EXT_unpack_subimage", #endif #ifdef GL_EXT_vertex_array "GL_EXT_vertex_array", #endif #ifdef GL_EXT_vertex_array_bgra "GL_EXT_vertex_array_bgra", #endif #ifdef GL_EXT_vertex_array_setXXX "GL_EXT_vertex_array_setXXX", #endif #ifdef GL_EXT_vertex_attrib_64bit "GL_EXT_vertex_attrib_64bit", #endif #ifdef GL_EXT_vertex_shader "GL_EXT_vertex_shader", #endif #ifdef GL_EXT_vertex_weighting "GL_EXT_vertex_weighting", #endif #ifdef GL_EXT_win32_keyed_mutex "GL_EXT_win32_keyed_mutex", #endif #ifdef GL_EXT_window_rectangles "GL_EXT_window_rectangles", #endif #ifdef GL_EXT_x11_sync_object "GL_EXT_x11_sync_object", #endif #ifdef GL_GREMEDY_frame_terminator "GL_GREMEDY_frame_terminator", #endif #ifdef GL_GREMEDY_string_marker "GL_GREMEDY_string_marker", #endif #ifdef GL_HP_convolution_border_modes "GL_HP_convolution_border_modes", #endif #ifdef GL_HP_image_transform "GL_HP_image_transform", #endif #ifdef GL_HP_occlusion_test "GL_HP_occlusion_test", #endif #ifdef GL_HP_texture_lighting "GL_HP_texture_lighting", #endif #ifdef GL_IBM_cull_vertex "GL_IBM_cull_vertex", #endif #ifdef GL_IBM_multimode_draw_arrays "GL_IBM_multimode_draw_arrays", #endif #ifdef GL_IBM_rasterpos_clip "GL_IBM_rasterpos_clip", #endif #ifdef GL_IBM_static_data "GL_IBM_static_data", #endif #ifdef GL_IBM_texture_mirrored_repeat "GL_IBM_texture_mirrored_repeat", #endif #ifdef GL_IBM_vertex_array_lists "GL_IBM_vertex_array_lists", #endif #ifdef GL_INGR_color_clamp "GL_INGR_color_clamp", #endif #ifdef GL_INGR_interlace_read "GL_INGR_interlace_read", #endif #ifdef GL_INTEL_conservative_rasterization "GL_INTEL_conservative_rasterization", #endif #ifdef GL_INTEL_fragment_shader_ordering "GL_INTEL_fragment_shader_ordering", #endif #ifdef GL_INTEL_framebuffer_CMAA "GL_INTEL_framebuffer_CMAA", #endif #ifdef GL_INTEL_map_texture "GL_INTEL_map_texture", #endif #ifdef GL_INTEL_parallel_arrays "GL_INTEL_parallel_arrays", #endif #ifdef GL_INTEL_performance_query "GL_INTEL_performance_query", #endif #ifdef GL_INTEL_texture_scissor "GL_INTEL_texture_scissor", #endif #ifdef GL_KHR_blend_equation_advanced "GL_KHR_blend_equation_advanced", #endif #ifdef GL_KHR_blend_equation_advanced_coherent "GL_KHR_blend_equation_advanced_coherent", #endif #ifdef GL_KHR_context_flush_control "GL_KHR_context_flush_control", #endif #ifdef GL_KHR_debug "GL_KHR_debug", #endif #ifdef GL_KHR_no_error "GL_KHR_no_error", #endif #ifdef GL_KHR_parallel_shader_compile "GL_KHR_parallel_shader_compile", #endif #ifdef GL_KHR_robust_buffer_access_behavior "GL_KHR_robust_buffer_access_behavior", #endif #ifdef GL_KHR_robustness "GL_KHR_robustness", #endif #ifdef GL_KHR_texture_compression_astc_hdr "GL_KHR_texture_compression_astc_hdr", #endif #ifdef GL_KHR_texture_compression_astc_ldr "GL_KHR_texture_compression_astc_ldr", #endif #ifdef GL_KHR_texture_compression_astc_sliced_3d "GL_KHR_texture_compression_astc_sliced_3d", #endif #ifdef GL_KTX_buffer_region "GL_KTX_buffer_region", #endif #ifdef GL_MESAX_texture_stack "GL_MESAX_texture_stack", #endif #ifdef GL_MESA_pack_invert "GL_MESA_pack_invert", #endif #ifdef GL_MESA_resize_buffers "GL_MESA_resize_buffers", #endif #ifdef GL_MESA_shader_integer_functions "GL_MESA_shader_integer_functions", #endif #ifdef GL_MESA_window_pos "GL_MESA_window_pos", #endif #ifdef GL_MESA_ycbcr_texture "GL_MESA_ycbcr_texture", #endif #ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers "GL_NVX_blend_equation_advanced_multi_draw_buffers", #endif #ifdef GL_NVX_conditional_render "GL_NVX_conditional_render", #endif #ifdef GL_NVX_gpu_memory_info "GL_NVX_gpu_memory_info", #endif #ifdef GL_NVX_linked_gpu_multicast "GL_NVX_linked_gpu_multicast", #endif #ifdef GL_NV_3dvision_settings "GL_NV_3dvision_settings", #endif #ifdef GL_NV_EGL_stream_consumer_external "GL_NV_EGL_stream_consumer_external", #endif #ifdef GL_NV_alpha_to_coverage_dither_control "GL_NV_alpha_to_coverage_dither_control", #endif #ifdef GL_NV_bgr "GL_NV_bgr", #endif #ifdef GL_NV_bindless_multi_draw_indirect "GL_NV_bindless_multi_draw_indirect", #endif #ifdef GL_NV_bindless_multi_draw_indirect_count "GL_NV_bindless_multi_draw_indirect_count", #endif #ifdef GL_NV_bindless_texture "GL_NV_bindless_texture", #endif #ifdef GL_NV_blend_equation_advanced "GL_NV_blend_equation_advanced", #endif #ifdef GL_NV_blend_equation_advanced_coherent "GL_NV_blend_equation_advanced_coherent", #endif #ifdef GL_NV_blend_minmax_factor "GL_NV_blend_minmax_factor", #endif #ifdef GL_NV_blend_square "GL_NV_blend_square", #endif #ifdef GL_NV_clip_space_w_scaling "GL_NV_clip_space_w_scaling", #endif #ifdef GL_NV_command_list "GL_NV_command_list", #endif #ifdef GL_NV_compute_program5 "GL_NV_compute_program5", #endif #ifdef GL_NV_conditional_render "GL_NV_conditional_render", #endif #ifdef GL_NV_conservative_raster "GL_NV_conservative_raster", #endif #ifdef GL_NV_conservative_raster_dilate "GL_NV_conservative_raster_dilate", #endif #ifdef GL_NV_conservative_raster_pre_snap_triangles "GL_NV_conservative_raster_pre_snap_triangles", #endif #ifdef GL_NV_copy_buffer "GL_NV_copy_buffer", #endif #ifdef GL_NV_copy_depth_to_color "GL_NV_copy_depth_to_color", #endif #ifdef GL_NV_copy_image "GL_NV_copy_image", #endif #ifdef GL_NV_deep_texture3D "GL_NV_deep_texture3D", #endif #ifdef GL_NV_depth_buffer_float "GL_NV_depth_buffer_float", #endif #ifdef GL_NV_depth_clamp "GL_NV_depth_clamp", #endif #ifdef GL_NV_depth_range_unclamped "GL_NV_depth_range_unclamped", #endif #ifdef GL_NV_draw_buffers "GL_NV_draw_buffers", #endif #ifdef GL_NV_draw_instanced "GL_NV_draw_instanced", #endif #ifdef GL_NV_draw_texture "GL_NV_draw_texture", #endif #ifdef GL_NV_draw_vulkan_image "GL_NV_draw_vulkan_image", #endif #ifdef GL_NV_evaluators "GL_NV_evaluators", #endif #ifdef GL_NV_explicit_attrib_location "GL_NV_explicit_attrib_location", #endif #ifdef GL_NV_explicit_multisample "GL_NV_explicit_multisample", #endif #ifdef GL_NV_fbo_color_attachments "GL_NV_fbo_color_attachments", #endif #ifdef GL_NV_fence "GL_NV_fence", #endif #ifdef GL_NV_fill_rectangle "GL_NV_fill_rectangle", #endif #ifdef GL_NV_float_buffer "GL_NV_float_buffer", #endif #ifdef GL_NV_fog_distance "GL_NV_fog_distance", #endif #ifdef GL_NV_fragment_coverage_to_color "GL_NV_fragment_coverage_to_color", #endif #ifdef GL_NV_fragment_program "GL_NV_fragment_program", #endif #ifdef GL_NV_fragment_program2 "GL_NV_fragment_program2", #endif #ifdef GL_NV_fragment_program4 "GL_NV_fragment_program4", #endif #ifdef GL_NV_fragment_program_option "GL_NV_fragment_program_option", #endif #ifdef GL_NV_fragment_shader_interlock "GL_NV_fragment_shader_interlock", #endif #ifdef GL_NV_framebuffer_blit "GL_NV_framebuffer_blit", #endif #ifdef GL_NV_framebuffer_mixed_samples "GL_NV_framebuffer_mixed_samples", #endif #ifdef GL_NV_framebuffer_multisample "GL_NV_framebuffer_multisample", #endif #ifdef GL_NV_framebuffer_multisample_coverage "GL_NV_framebuffer_multisample_coverage", #endif #ifdef GL_NV_generate_mipmap_sRGB "GL_NV_generate_mipmap_sRGB", #endif #ifdef GL_NV_geometry_program4 "GL_NV_geometry_program4", #endif #ifdef GL_NV_geometry_shader4 "GL_NV_geometry_shader4", #endif #ifdef GL_NV_geometry_shader_passthrough "GL_NV_geometry_shader_passthrough", #endif #ifdef GL_NV_gpu_multicast "GL_NV_gpu_multicast", #endif #ifdef GL_NV_gpu_program4 "GL_NV_gpu_program4", #endif #ifdef GL_NV_gpu_program5 "GL_NV_gpu_program5", #endif #ifdef GL_NV_gpu_program5_mem_extended "GL_NV_gpu_program5_mem_extended", #endif #ifdef GL_NV_gpu_program_fp64 "GL_NV_gpu_program_fp64", #endif #ifdef GL_NV_gpu_shader5 "GL_NV_gpu_shader5", #endif #ifdef GL_NV_half_float "GL_NV_half_float", #endif #ifdef GL_NV_image_formats "GL_NV_image_formats", #endif #ifdef GL_NV_instanced_arrays "GL_NV_instanced_arrays", #endif #ifdef GL_NV_internalformat_sample_query "GL_NV_internalformat_sample_query", #endif #ifdef GL_NV_light_max_exponent "GL_NV_light_max_exponent", #endif #ifdef GL_NV_multisample_coverage "GL_NV_multisample_coverage", #endif #ifdef GL_NV_multisample_filter_hint "GL_NV_multisample_filter_hint", #endif #ifdef GL_NV_non_square_matrices "GL_NV_non_square_matrices", #endif #ifdef GL_NV_occlusion_query "GL_NV_occlusion_query", #endif #ifdef GL_NV_pack_subimage "GL_NV_pack_subimage", #endif #ifdef GL_NV_packed_depth_stencil "GL_NV_packed_depth_stencil", #endif #ifdef GL_NV_packed_float "GL_NV_packed_float", #endif #ifdef GL_NV_packed_float_linear "GL_NV_packed_float_linear", #endif #ifdef GL_NV_parameter_buffer_object "GL_NV_parameter_buffer_object", #endif #ifdef GL_NV_parameter_buffer_object2 "GL_NV_parameter_buffer_object2", #endif #ifdef GL_NV_path_rendering "GL_NV_path_rendering", #endif #ifdef GL_NV_path_rendering_shared_edge "GL_NV_path_rendering_shared_edge", #endif #ifdef GL_NV_pixel_buffer_object "GL_NV_pixel_buffer_object", #endif #ifdef GL_NV_pixel_data_range "GL_NV_pixel_data_range", #endif #ifdef GL_NV_platform_binary "GL_NV_platform_binary", #endif #ifdef GL_NV_point_sprite "GL_NV_point_sprite", #endif #ifdef GL_NV_polygon_mode "GL_NV_polygon_mode", #endif #ifdef GL_NV_present_video "GL_NV_present_video", #endif #ifdef GL_NV_primitive_restart "GL_NV_primitive_restart", #endif #ifdef GL_NV_read_depth "GL_NV_read_depth", #endif #ifdef GL_NV_read_depth_stencil "GL_NV_read_depth_stencil", #endif #ifdef GL_NV_read_stencil "GL_NV_read_stencil", #endif #ifdef GL_NV_register_combiners "GL_NV_register_combiners", #endif #ifdef GL_NV_register_combiners2 "GL_NV_register_combiners2", #endif #ifdef GL_NV_robustness_video_memory_purge "GL_NV_robustness_video_memory_purge", #endif #ifdef GL_NV_sRGB_formats "GL_NV_sRGB_formats", #endif #ifdef GL_NV_sample_locations "GL_NV_sample_locations", #endif #ifdef GL_NV_sample_mask_override_coverage "GL_NV_sample_mask_override_coverage", #endif #ifdef GL_NV_shader_atomic_counters "GL_NV_shader_atomic_counters", #endif #ifdef GL_NV_shader_atomic_float "GL_NV_shader_atomic_float", #endif #ifdef GL_NV_shader_atomic_float64 "GL_NV_shader_atomic_float64", #endif #ifdef GL_NV_shader_atomic_fp16_vector "GL_NV_shader_atomic_fp16_vector", #endif #ifdef GL_NV_shader_atomic_int64 "GL_NV_shader_atomic_int64", #endif #ifdef GL_NV_shader_buffer_load "GL_NV_shader_buffer_load", #endif #ifdef GL_NV_shader_noperspective_interpolation "GL_NV_shader_noperspective_interpolation", #endif #ifdef GL_NV_shader_storage_buffer_object "GL_NV_shader_storage_buffer_object", #endif #ifdef GL_NV_shader_thread_group "GL_NV_shader_thread_group", #endif #ifdef GL_NV_shader_thread_shuffle "GL_NV_shader_thread_shuffle", #endif #ifdef GL_NV_shadow_samplers_array "GL_NV_shadow_samplers_array", #endif #ifdef GL_NV_shadow_samplers_cube "GL_NV_shadow_samplers_cube", #endif #ifdef GL_NV_stereo_view_rendering "GL_NV_stereo_view_rendering", #endif #ifdef GL_NV_tessellation_program5 "GL_NV_tessellation_program5", #endif #ifdef GL_NV_texgen_emboss "GL_NV_texgen_emboss", #endif #ifdef GL_NV_texgen_reflection "GL_NV_texgen_reflection", #endif #ifdef GL_NV_texture_array "GL_NV_texture_array", #endif #ifdef GL_NV_texture_barrier "GL_NV_texture_barrier", #endif #ifdef GL_NV_texture_border_clamp "GL_NV_texture_border_clamp", #endif #ifdef GL_NV_texture_compression_latc "GL_NV_texture_compression_latc", #endif #ifdef GL_NV_texture_compression_s3tc "GL_NV_texture_compression_s3tc", #endif #ifdef GL_NV_texture_compression_s3tc_update "GL_NV_texture_compression_s3tc_update", #endif #ifdef GL_NV_texture_compression_vtc "GL_NV_texture_compression_vtc", #endif #ifdef GL_NV_texture_env_combine4 "GL_NV_texture_env_combine4", #endif #ifdef GL_NV_texture_expand_normal "GL_NV_texture_expand_normal", #endif #ifdef GL_NV_texture_multisample "GL_NV_texture_multisample", #endif #ifdef GL_NV_texture_npot_2D_mipmap "GL_NV_texture_npot_2D_mipmap", #endif #ifdef GL_NV_texture_rectangle "GL_NV_texture_rectangle", #endif #ifdef GL_NV_texture_rectangle_compressed "GL_NV_texture_rectangle_compressed", #endif #ifdef GL_NV_texture_shader "GL_NV_texture_shader", #endif #ifdef GL_NV_texture_shader2 "GL_NV_texture_shader2", #endif #ifdef GL_NV_texture_shader3 "GL_NV_texture_shader3", #endif #ifdef GL_NV_transform_feedback "GL_NV_transform_feedback", #endif #ifdef GL_NV_transform_feedback2 "GL_NV_transform_feedback2", #endif #ifdef GL_NV_uniform_buffer_unified_memory "GL_NV_uniform_buffer_unified_memory", #endif #ifdef GL_NV_vdpau_interop "GL_NV_vdpau_interop", #endif #ifdef GL_NV_vertex_array_range "GL_NV_vertex_array_range", #endif #ifdef GL_NV_vertex_array_range2 "GL_NV_vertex_array_range2", #endif #ifdef GL_NV_vertex_attrib_integer_64bit "GL_NV_vertex_attrib_integer_64bit", #endif #ifdef GL_NV_vertex_buffer_unified_memory "GL_NV_vertex_buffer_unified_memory", #endif #ifdef GL_NV_vertex_program "GL_NV_vertex_program", #endif #ifdef GL_NV_vertex_program1_1 "GL_NV_vertex_program1_1", #endif #ifdef GL_NV_vertex_program2 "GL_NV_vertex_program2", #endif #ifdef GL_NV_vertex_program2_option "GL_NV_vertex_program2_option", #endif #ifdef GL_NV_vertex_program3 "GL_NV_vertex_program3", #endif #ifdef GL_NV_vertex_program4 "GL_NV_vertex_program4", #endif #ifdef GL_NV_video_capture "GL_NV_video_capture", #endif #ifdef GL_NV_viewport_array "GL_NV_viewport_array", #endif #ifdef GL_NV_viewport_array2 "GL_NV_viewport_array2", #endif #ifdef GL_NV_viewport_swizzle "GL_NV_viewport_swizzle", #endif #ifdef GL_OES_byte_coordinates "GL_OES_byte_coordinates", #endif #ifdef GL_OML_interlace "GL_OML_interlace", #endif #ifdef GL_OML_resample "GL_OML_resample", #endif #ifdef GL_OML_subsample "GL_OML_subsample", #endif #ifdef GL_OVR_multiview "GL_OVR_multiview", #endif #ifdef GL_OVR_multiview2 "GL_OVR_multiview2", #endif #ifdef GL_OVR_multiview_multisampled_render_to_texture "GL_OVR_multiview_multisampled_render_to_texture", #endif #ifdef GL_PGI_misc_hints "GL_PGI_misc_hints", #endif #ifdef GL_PGI_vertex_hints "GL_PGI_vertex_hints", #endif #ifdef GL_QCOM_alpha_test "GL_QCOM_alpha_test", #endif #ifdef GL_QCOM_binning_control "GL_QCOM_binning_control", #endif #ifdef GL_QCOM_driver_control "GL_QCOM_driver_control", #endif #ifdef GL_QCOM_extended_get "GL_QCOM_extended_get", #endif #ifdef GL_QCOM_extended_get2 "GL_QCOM_extended_get2", #endif #ifdef GL_QCOM_framebuffer_foveated "GL_QCOM_framebuffer_foveated", #endif #ifdef GL_QCOM_perfmon_global_mode "GL_QCOM_perfmon_global_mode", #endif #ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent "GL_QCOM_shader_framebuffer_fetch_noncoherent", #endif #ifdef GL_QCOM_tiled_rendering "GL_QCOM_tiled_rendering", #endif #ifdef GL_QCOM_writeonly_rendering "GL_QCOM_writeonly_rendering", #endif #ifdef GL_REGAL_ES1_0_compatibility "GL_REGAL_ES1_0_compatibility", #endif #ifdef GL_REGAL_ES1_1_compatibility "GL_REGAL_ES1_1_compatibility", #endif #ifdef GL_REGAL_enable "GL_REGAL_enable", #endif #ifdef GL_REGAL_error_string "GL_REGAL_error_string", #endif #ifdef GL_REGAL_extension_query "GL_REGAL_extension_query", #endif #ifdef GL_REGAL_log "GL_REGAL_log", #endif #ifdef GL_REGAL_proc_address "GL_REGAL_proc_address", #endif #ifdef GL_REND_screen_coordinates "GL_REND_screen_coordinates", #endif #ifdef GL_S3_s3tc "GL_S3_s3tc", #endif #ifdef GL_SGIS_clip_band_hint "GL_SGIS_clip_band_hint", #endif #ifdef GL_SGIS_color_range "GL_SGIS_color_range", #endif #ifdef GL_SGIS_detail_texture "GL_SGIS_detail_texture", #endif #ifdef GL_SGIS_fog_function "GL_SGIS_fog_function", #endif #ifdef GL_SGIS_generate_mipmap "GL_SGIS_generate_mipmap", #endif #ifdef GL_SGIS_line_texgen "GL_SGIS_line_texgen", #endif #ifdef GL_SGIS_multisample "GL_SGIS_multisample", #endif #ifdef GL_SGIS_multitexture "GL_SGIS_multitexture", #endif #ifdef GL_SGIS_pixel_texture "GL_SGIS_pixel_texture", #endif #ifdef GL_SGIS_point_line_texgen "GL_SGIS_point_line_texgen", #endif #ifdef GL_SGIS_shared_multisample "GL_SGIS_shared_multisample", #endif #ifdef GL_SGIS_sharpen_texture "GL_SGIS_sharpen_texture", #endif #ifdef GL_SGIS_texture4D "GL_SGIS_texture4D", #endif #ifdef GL_SGIS_texture_border_clamp "GL_SGIS_texture_border_clamp", #endif #ifdef GL_SGIS_texture_edge_clamp "GL_SGIS_texture_edge_clamp", #endif #ifdef GL_SGIS_texture_filter4 "GL_SGIS_texture_filter4", #endif #ifdef GL_SGIS_texture_lod "GL_SGIS_texture_lod", #endif #ifdef GL_SGIS_texture_select "GL_SGIS_texture_select", #endif #ifdef GL_SGIX_async "GL_SGIX_async", #endif #ifdef GL_SGIX_async_histogram "GL_SGIX_async_histogram", #endif #ifdef GL_SGIX_async_pixel "GL_SGIX_async_pixel", #endif #ifdef GL_SGIX_bali_g_instruments "GL_SGIX_bali_g_instruments", #endif #ifdef GL_SGIX_bali_r_instruments "GL_SGIX_bali_r_instruments", #endif #ifdef GL_SGIX_bali_timer_instruments "GL_SGIX_bali_timer_instruments", #endif #ifdef GL_SGIX_blend_alpha_minmax "GL_SGIX_blend_alpha_minmax", #endif #ifdef GL_SGIX_blend_cadd "GL_SGIX_blend_cadd", #endif #ifdef GL_SGIX_blend_cmultiply "GL_SGIX_blend_cmultiply", #endif #ifdef GL_SGIX_calligraphic_fragment "GL_SGIX_calligraphic_fragment", #endif #ifdef GL_SGIX_clipmap "GL_SGIX_clipmap", #endif #ifdef GL_SGIX_color_matrix_accuracy "GL_SGIX_color_matrix_accuracy", #endif #ifdef GL_SGIX_color_table_index_mode "GL_SGIX_color_table_index_mode", #endif #ifdef GL_SGIX_complex_polar "GL_SGIX_complex_polar", #endif #ifdef GL_SGIX_convolution_accuracy "GL_SGIX_convolution_accuracy", #endif #ifdef GL_SGIX_cube_map "GL_SGIX_cube_map", #endif #ifdef GL_SGIX_cylinder_texgen "GL_SGIX_cylinder_texgen", #endif #ifdef GL_SGIX_datapipe "GL_SGIX_datapipe", #endif #ifdef GL_SGIX_decimation "GL_SGIX_decimation", #endif #ifdef GL_SGIX_depth_pass_instrument "GL_SGIX_depth_pass_instrument", #endif #ifdef GL_SGIX_depth_texture "GL_SGIX_depth_texture", #endif #ifdef GL_SGIX_dvc "GL_SGIX_dvc", #endif #ifdef GL_SGIX_flush_raster "GL_SGIX_flush_raster", #endif #ifdef GL_SGIX_fog_blend "GL_SGIX_fog_blend", #endif #ifdef GL_SGIX_fog_factor_to_alpha "GL_SGIX_fog_factor_to_alpha", #endif #ifdef GL_SGIX_fog_layers "GL_SGIX_fog_layers", #endif #ifdef GL_SGIX_fog_offset "GL_SGIX_fog_offset", #endif #ifdef GL_SGIX_fog_patchy "GL_SGIX_fog_patchy", #endif #ifdef GL_SGIX_fog_scale "GL_SGIX_fog_scale", #endif #ifdef GL_SGIX_fog_texture "GL_SGIX_fog_texture", #endif #ifdef GL_SGIX_fragment_lighting_space "GL_SGIX_fragment_lighting_space", #endif #ifdef GL_SGIX_fragment_specular_lighting "GL_SGIX_fragment_specular_lighting", #endif #ifdef GL_SGIX_fragments_instrument "GL_SGIX_fragments_instrument", #endif #ifdef GL_SGIX_framezoom "GL_SGIX_framezoom", #endif #ifdef GL_SGIX_icc_texture "GL_SGIX_icc_texture", #endif #ifdef GL_SGIX_igloo_interface "GL_SGIX_igloo_interface", #endif #ifdef GL_SGIX_image_compression "GL_SGIX_image_compression", #endif #ifdef GL_SGIX_impact_pixel_texture "GL_SGIX_impact_pixel_texture", #endif #ifdef GL_SGIX_instrument_error "GL_SGIX_instrument_error", #endif #ifdef GL_SGIX_interlace "GL_SGIX_interlace", #endif #ifdef GL_SGIX_ir_instrument1 "GL_SGIX_ir_instrument1", #endif #ifdef GL_SGIX_line_quality_hint "GL_SGIX_line_quality_hint", #endif #ifdef GL_SGIX_list_priority "GL_SGIX_list_priority", #endif #ifdef GL_SGIX_mpeg1 "GL_SGIX_mpeg1", #endif #ifdef GL_SGIX_mpeg2 "GL_SGIX_mpeg2", #endif #ifdef GL_SGIX_nonlinear_lighting_pervertex "GL_SGIX_nonlinear_lighting_pervertex", #endif #ifdef GL_SGIX_nurbs_eval "GL_SGIX_nurbs_eval", #endif #ifdef GL_SGIX_occlusion_instrument "GL_SGIX_occlusion_instrument", #endif #ifdef GL_SGIX_packed_6bytes "GL_SGIX_packed_6bytes", #endif #ifdef GL_SGIX_pixel_texture "GL_SGIX_pixel_texture", #endif #ifdef GL_SGIX_pixel_texture_bits "GL_SGIX_pixel_texture_bits", #endif #ifdef GL_SGIX_pixel_texture_lod "GL_SGIX_pixel_texture_lod", #endif #ifdef GL_SGIX_pixel_tiles "GL_SGIX_pixel_tiles", #endif #ifdef GL_SGIX_polynomial_ffd "GL_SGIX_polynomial_ffd", #endif #ifdef GL_SGIX_quad_mesh "GL_SGIX_quad_mesh", #endif #ifdef GL_SGIX_reference_plane "GL_SGIX_reference_plane", #endif #ifdef GL_SGIX_resample "GL_SGIX_resample", #endif #ifdef GL_SGIX_scalebias_hint "GL_SGIX_scalebias_hint", #endif #ifdef GL_SGIX_shadow "GL_SGIX_shadow", #endif #ifdef GL_SGIX_shadow_ambient "GL_SGIX_shadow_ambient", #endif #ifdef GL_SGIX_slim "GL_SGIX_slim", #endif #ifdef GL_SGIX_spotlight_cutoff "GL_SGIX_spotlight_cutoff", #endif #ifdef GL_SGIX_sprite "GL_SGIX_sprite", #endif #ifdef GL_SGIX_subdiv_patch "GL_SGIX_subdiv_patch", #endif #ifdef GL_SGIX_subsample "GL_SGIX_subsample", #endif #ifdef GL_SGIX_tag_sample_buffer "GL_SGIX_tag_sample_buffer", #endif #ifdef GL_SGIX_texture_add_env "GL_SGIX_texture_add_env", #endif #ifdef GL_SGIX_texture_coordinate_clamp "GL_SGIX_texture_coordinate_clamp", #endif #ifdef GL_SGIX_texture_lod_bias "GL_SGIX_texture_lod_bias", #endif #ifdef GL_SGIX_texture_mipmap_anisotropic "GL_SGIX_texture_mipmap_anisotropic", #endif #ifdef GL_SGIX_texture_multi_buffer "GL_SGIX_texture_multi_buffer", #endif #ifdef GL_SGIX_texture_phase "GL_SGIX_texture_phase", #endif #ifdef GL_SGIX_texture_range "GL_SGIX_texture_range", #endif #ifdef GL_SGIX_texture_scale_bias "GL_SGIX_texture_scale_bias", #endif #ifdef GL_SGIX_texture_supersample "GL_SGIX_texture_supersample", #endif #ifdef GL_SGIX_vector_ops "GL_SGIX_vector_ops", #endif #ifdef GL_SGIX_vertex_array_object "GL_SGIX_vertex_array_object", #endif #ifdef GL_SGIX_vertex_preclip "GL_SGIX_vertex_preclip", #endif #ifdef GL_SGIX_vertex_preclip_hint "GL_SGIX_vertex_preclip_hint", #endif #ifdef GL_SGIX_ycrcb "GL_SGIX_ycrcb", #endif #ifdef GL_SGIX_ycrcb_subsample "GL_SGIX_ycrcb_subsample", #endif #ifdef GL_SGIX_ycrcba "GL_SGIX_ycrcba", #endif #ifdef GL_SGI_color_matrix "GL_SGI_color_matrix", #endif #ifdef GL_SGI_color_table "GL_SGI_color_table", #endif #ifdef GL_SGI_complex "GL_SGI_complex", #endif #ifdef GL_SGI_complex_type "GL_SGI_complex_type", #endif #ifdef GL_SGI_fft "GL_SGI_fft", #endif #ifdef GL_SGI_texture_color_table "GL_SGI_texture_color_table", #endif #ifdef GL_SUNX_constant_data "GL_SUNX_constant_data", #endif #ifdef GL_SUN_convolution_border_modes "GL_SUN_convolution_border_modes", #endif #ifdef GL_SUN_global_alpha "GL_SUN_global_alpha", #endif #ifdef GL_SUN_mesh_array "GL_SUN_mesh_array", #endif #ifdef GL_SUN_read_video_pixels "GL_SUN_read_video_pixels", #endif #ifdef GL_SUN_slice_accum "GL_SUN_slice_accum", #endif #ifdef GL_SUN_triangle_list "GL_SUN_triangle_list", #endif #ifdef GL_SUN_vertex "GL_SUN_vertex", #endif #ifdef GL_WIN_phong_shading "GL_WIN_phong_shading", #endif #ifdef GL_WIN_scene_markerXXX "GL_WIN_scene_markerXXX", #endif #ifdef GL_WIN_specular_fog "GL_WIN_specular_fog", #endif #ifdef GL_WIN_swap_hint "GL_WIN_swap_hint", #endif NULL }; /* Detected in the extension string or strings */ static GLboolean _glewExtensionString[801]; /* Detected via extension string or experimental mode */ static GLboolean* _glewExtensionEnabled[] = { #ifdef GL_VERSION_1_2 &__GLEW_VERSION_1_2, #endif #ifdef GL_VERSION_1_2_1 &__GLEW_VERSION_1_2_1, #endif #ifdef GL_VERSION_1_3 &__GLEW_VERSION_1_3, #endif #ifdef GL_VERSION_1_4 &__GLEW_VERSION_1_4, #endif #ifdef GL_VERSION_1_5 &__GLEW_VERSION_1_5, #endif #ifdef GL_VERSION_2_0 &__GLEW_VERSION_2_0, #endif #ifdef GL_VERSION_2_1 &__GLEW_VERSION_2_1, #endif #ifdef GL_VERSION_3_0 &__GLEW_VERSION_3_0, #endif #ifdef GL_VERSION_3_1 &__GLEW_VERSION_3_1, #endif #ifdef GL_VERSION_3_2 &__GLEW_VERSION_3_2, #endif #ifdef GL_VERSION_3_3 &__GLEW_VERSION_3_3, #endif #ifdef GL_VERSION_4_0 &__GLEW_VERSION_4_0, #endif #ifdef GL_VERSION_4_1 &__GLEW_VERSION_4_1, #endif #ifdef GL_VERSION_4_2 &__GLEW_VERSION_4_2, #endif #ifdef GL_VERSION_4_3 &__GLEW_VERSION_4_3, #endif #ifdef GL_VERSION_4_4 &__GLEW_VERSION_4_4, #endif #ifdef GL_VERSION_4_5 &__GLEW_VERSION_4_5, #endif #ifdef GL_VERSION_4_6 &__GLEW_VERSION_4_6, #endif #ifdef GL_3DFX_multisample &__GLEW_3DFX_multisample, #endif #ifdef GL_3DFX_tbuffer &__GLEW_3DFX_tbuffer, #endif #ifdef GL_3DFX_texture_compression_FXT1 &__GLEW_3DFX_texture_compression_FXT1, #endif #ifdef GL_AMD_blend_minmax_factor &__GLEW_AMD_blend_minmax_factor, #endif #ifdef GL_AMD_compressed_3DC_texture &__GLEW_AMD_compressed_3DC_texture, #endif #ifdef GL_AMD_compressed_ATC_texture &__GLEW_AMD_compressed_ATC_texture, #endif #ifdef GL_AMD_conservative_depth &__GLEW_AMD_conservative_depth, #endif #ifdef GL_AMD_debug_output &__GLEW_AMD_debug_output, #endif #ifdef GL_AMD_depth_clamp_separate &__GLEW_AMD_depth_clamp_separate, #endif #ifdef GL_AMD_draw_buffers_blend &__GLEW_AMD_draw_buffers_blend, #endif #ifdef GL_AMD_framebuffer_sample_positions &__GLEW_AMD_framebuffer_sample_positions, #endif #ifdef GL_AMD_gcn_shader &__GLEW_AMD_gcn_shader, #endif #ifdef GL_AMD_gpu_shader_half_float &__GLEW_AMD_gpu_shader_half_float, #endif #ifdef GL_AMD_gpu_shader_int16 &__GLEW_AMD_gpu_shader_int16, #endif #ifdef GL_AMD_gpu_shader_int64 &__GLEW_AMD_gpu_shader_int64, #endif #ifdef GL_AMD_interleaved_elements &__GLEW_AMD_interleaved_elements, #endif #ifdef GL_AMD_multi_draw_indirect &__GLEW_AMD_multi_draw_indirect, #endif #ifdef GL_AMD_name_gen_delete &__GLEW_AMD_name_gen_delete, #endif #ifdef GL_AMD_occlusion_query_event &__GLEW_AMD_occlusion_query_event, #endif #ifdef GL_AMD_performance_monitor &__GLEW_AMD_performance_monitor, #endif #ifdef GL_AMD_pinned_memory &__GLEW_AMD_pinned_memory, #endif #ifdef GL_AMD_program_binary_Z400 &__GLEW_AMD_program_binary_Z400, #endif #ifdef GL_AMD_query_buffer_object &__GLEW_AMD_query_buffer_object, #endif #ifdef GL_AMD_sample_positions &__GLEW_AMD_sample_positions, #endif #ifdef GL_AMD_seamless_cubemap_per_texture &__GLEW_AMD_seamless_cubemap_per_texture, #endif #ifdef GL_AMD_shader_atomic_counter_ops &__GLEW_AMD_shader_atomic_counter_ops, #endif #ifdef GL_AMD_shader_ballot &__GLEW_AMD_shader_ballot, #endif #ifdef GL_AMD_shader_explicit_vertex_parameter &__GLEW_AMD_shader_explicit_vertex_parameter, #endif #ifdef GL_AMD_shader_stencil_export &__GLEW_AMD_shader_stencil_export, #endif #ifdef GL_AMD_shader_stencil_value_export &__GLEW_AMD_shader_stencil_value_export, #endif #ifdef GL_AMD_shader_trinary_minmax &__GLEW_AMD_shader_trinary_minmax, #endif #ifdef GL_AMD_sparse_texture &__GLEW_AMD_sparse_texture, #endif #ifdef GL_AMD_stencil_operation_extended &__GLEW_AMD_stencil_operation_extended, #endif #ifdef GL_AMD_texture_gather_bias_lod &__GLEW_AMD_texture_gather_bias_lod, #endif #ifdef GL_AMD_texture_texture4 &__GLEW_AMD_texture_texture4, #endif #ifdef GL_AMD_transform_feedback3_lines_triangles &__GLEW_AMD_transform_feedback3_lines_triangles, #endif #ifdef GL_AMD_transform_feedback4 &__GLEW_AMD_transform_feedback4, #endif #ifdef GL_AMD_vertex_shader_layer &__GLEW_AMD_vertex_shader_layer, #endif #ifdef GL_AMD_vertex_shader_tessellator &__GLEW_AMD_vertex_shader_tessellator, #endif #ifdef GL_AMD_vertex_shader_viewport_index &__GLEW_AMD_vertex_shader_viewport_index, #endif #ifdef GL_ANDROID_extension_pack_es31a &__GLEW_ANDROID_extension_pack_es31a, #endif #ifdef GL_ANGLE_depth_texture &__GLEW_ANGLE_depth_texture, #endif #ifdef GL_ANGLE_framebuffer_blit &__GLEW_ANGLE_framebuffer_blit, #endif #ifdef GL_ANGLE_framebuffer_multisample &__GLEW_ANGLE_framebuffer_multisample, #endif #ifdef GL_ANGLE_instanced_arrays &__GLEW_ANGLE_instanced_arrays, #endif #ifdef GL_ANGLE_pack_reverse_row_order &__GLEW_ANGLE_pack_reverse_row_order, #endif #ifdef GL_ANGLE_program_binary &__GLEW_ANGLE_program_binary, #endif #ifdef GL_ANGLE_texture_compression_dxt1 &__GLEW_ANGLE_texture_compression_dxt1, #endif #ifdef GL_ANGLE_texture_compression_dxt3 &__GLEW_ANGLE_texture_compression_dxt3, #endif #ifdef GL_ANGLE_texture_compression_dxt5 &__GLEW_ANGLE_texture_compression_dxt5, #endif #ifdef GL_ANGLE_texture_usage &__GLEW_ANGLE_texture_usage, #endif #ifdef GL_ANGLE_timer_query &__GLEW_ANGLE_timer_query, #endif #ifdef GL_ANGLE_translated_shader_source &__GLEW_ANGLE_translated_shader_source, #endif #ifdef GL_APPLE_aux_depth_stencil &__GLEW_APPLE_aux_depth_stencil, #endif #ifdef GL_APPLE_client_storage &__GLEW_APPLE_client_storage, #endif #ifdef GL_APPLE_clip_distance &__GLEW_APPLE_clip_distance, #endif #ifdef GL_APPLE_color_buffer_packed_float &__GLEW_APPLE_color_buffer_packed_float, #endif #ifdef GL_APPLE_copy_texture_levels &__GLEW_APPLE_copy_texture_levels, #endif #ifdef GL_APPLE_element_array &__GLEW_APPLE_element_array, #endif #ifdef GL_APPLE_fence &__GLEW_APPLE_fence, #endif #ifdef GL_APPLE_float_pixels &__GLEW_APPLE_float_pixels, #endif #ifdef GL_APPLE_flush_buffer_range &__GLEW_APPLE_flush_buffer_range, #endif #ifdef GL_APPLE_framebuffer_multisample &__GLEW_APPLE_framebuffer_multisample, #endif #ifdef GL_APPLE_object_purgeable &__GLEW_APPLE_object_purgeable, #endif #ifdef GL_APPLE_pixel_buffer &__GLEW_APPLE_pixel_buffer, #endif #ifdef GL_APPLE_rgb_422 &__GLEW_APPLE_rgb_422, #endif #ifdef GL_APPLE_row_bytes &__GLEW_APPLE_row_bytes, #endif #ifdef GL_APPLE_specular_vector &__GLEW_APPLE_specular_vector, #endif #ifdef GL_APPLE_sync &__GLEW_APPLE_sync, #endif #ifdef GL_APPLE_texture_2D_limited_npot &__GLEW_APPLE_texture_2D_limited_npot, #endif #ifdef GL_APPLE_texture_format_BGRA8888 &__GLEW_APPLE_texture_format_BGRA8888, #endif #ifdef GL_APPLE_texture_max_level &__GLEW_APPLE_texture_max_level, #endif #ifdef GL_APPLE_texture_packed_float &__GLEW_APPLE_texture_packed_float, #endif #ifdef GL_APPLE_texture_range &__GLEW_APPLE_texture_range, #endif #ifdef GL_APPLE_transform_hint &__GLEW_APPLE_transform_hint, #endif #ifdef GL_APPLE_vertex_array_object &__GLEW_APPLE_vertex_array_object, #endif #ifdef GL_APPLE_vertex_array_range &__GLEW_APPLE_vertex_array_range, #endif #ifdef GL_APPLE_vertex_program_evaluators &__GLEW_APPLE_vertex_program_evaluators, #endif #ifdef GL_APPLE_ycbcr_422 &__GLEW_APPLE_ycbcr_422, #endif #ifdef GL_ARB_ES2_compatibility &__GLEW_ARB_ES2_compatibility, #endif #ifdef GL_ARB_ES3_1_compatibility &__GLEW_ARB_ES3_1_compatibility, #endif #ifdef GL_ARB_ES3_2_compatibility &__GLEW_ARB_ES3_2_compatibility, #endif #ifdef GL_ARB_ES3_compatibility &__GLEW_ARB_ES3_compatibility, #endif #ifdef GL_ARB_arrays_of_arrays &__GLEW_ARB_arrays_of_arrays, #endif #ifdef GL_ARB_base_instance &__GLEW_ARB_base_instance, #endif #ifdef GL_ARB_bindless_texture &__GLEW_ARB_bindless_texture, #endif #ifdef GL_ARB_blend_func_extended &__GLEW_ARB_blend_func_extended, #endif #ifdef GL_ARB_buffer_storage &__GLEW_ARB_buffer_storage, #endif #ifdef GL_ARB_cl_event &__GLEW_ARB_cl_event, #endif #ifdef GL_ARB_clear_buffer_object &__GLEW_ARB_clear_buffer_object, #endif #ifdef GL_ARB_clear_texture &__GLEW_ARB_clear_texture, #endif #ifdef GL_ARB_clip_control &__GLEW_ARB_clip_control, #endif #ifdef GL_ARB_color_buffer_float &__GLEW_ARB_color_buffer_float, #endif #ifdef GL_ARB_compatibility &__GLEW_ARB_compatibility, #endif #ifdef GL_ARB_compressed_texture_pixel_storage &__GLEW_ARB_compressed_texture_pixel_storage, #endif #ifdef GL_ARB_compute_shader &__GLEW_ARB_compute_shader, #endif #ifdef GL_ARB_compute_variable_group_size &__GLEW_ARB_compute_variable_group_size, #endif #ifdef GL_ARB_conditional_render_inverted &__GLEW_ARB_conditional_render_inverted, #endif #ifdef GL_ARB_conservative_depth &__GLEW_ARB_conservative_depth, #endif #ifdef GL_ARB_copy_buffer &__GLEW_ARB_copy_buffer, #endif #ifdef GL_ARB_copy_image &__GLEW_ARB_copy_image, #endif #ifdef GL_ARB_cull_distance &__GLEW_ARB_cull_distance, #endif #ifdef GL_ARB_debug_output &__GLEW_ARB_debug_output, #endif #ifdef GL_ARB_depth_buffer_float &__GLEW_ARB_depth_buffer_float, #endif #ifdef GL_ARB_depth_clamp &__GLEW_ARB_depth_clamp, #endif #ifdef GL_ARB_depth_texture &__GLEW_ARB_depth_texture, #endif #ifdef GL_ARB_derivative_control &__GLEW_ARB_derivative_control, #endif #ifdef GL_ARB_direct_state_access &__GLEW_ARB_direct_state_access, #endif #ifdef GL_ARB_draw_buffers &__GLEW_ARB_draw_buffers, #endif #ifdef GL_ARB_draw_buffers_blend &__GLEW_ARB_draw_buffers_blend, #endif #ifdef GL_ARB_draw_elements_base_vertex &__GLEW_ARB_draw_elements_base_vertex, #endif #ifdef GL_ARB_draw_indirect &__GLEW_ARB_draw_indirect, #endif #ifdef GL_ARB_draw_instanced &__GLEW_ARB_draw_instanced, #endif #ifdef GL_ARB_enhanced_layouts &__GLEW_ARB_enhanced_layouts, #endif #ifdef GL_ARB_explicit_attrib_location &__GLEW_ARB_explicit_attrib_location, #endif #ifdef GL_ARB_explicit_uniform_location &__GLEW_ARB_explicit_uniform_location, #endif #ifdef GL_ARB_fragment_coord_conventions &__GLEW_ARB_fragment_coord_conventions, #endif #ifdef GL_ARB_fragment_layer_viewport &__GLEW_ARB_fragment_layer_viewport, #endif #ifdef GL_ARB_fragment_program &__GLEW_ARB_fragment_program, #endif #ifdef GL_ARB_fragment_program_shadow &__GLEW_ARB_fragment_program_shadow, #endif #ifdef GL_ARB_fragment_shader &__GLEW_ARB_fragment_shader, #endif #ifdef GL_ARB_fragment_shader_interlock &__GLEW_ARB_fragment_shader_interlock, #endif #ifdef GL_ARB_framebuffer_no_attachments &__GLEW_ARB_framebuffer_no_attachments, #endif #ifdef GL_ARB_framebuffer_object &__GLEW_ARB_framebuffer_object, #endif #ifdef GL_ARB_framebuffer_sRGB &__GLEW_ARB_framebuffer_sRGB, #endif #ifdef GL_ARB_geometry_shader4 &__GLEW_ARB_geometry_shader4, #endif #ifdef GL_ARB_get_program_binary &__GLEW_ARB_get_program_binary, #endif #ifdef GL_ARB_get_texture_sub_image &__GLEW_ARB_get_texture_sub_image, #endif #ifdef GL_ARB_gl_spirv &__GLEW_ARB_gl_spirv, #endif #ifdef GL_ARB_gpu_shader5 &__GLEW_ARB_gpu_shader5, #endif #ifdef GL_ARB_gpu_shader_fp64 &__GLEW_ARB_gpu_shader_fp64, #endif #ifdef GL_ARB_gpu_shader_int64 &__GLEW_ARB_gpu_shader_int64, #endif #ifdef GL_ARB_half_float_pixel &__GLEW_ARB_half_float_pixel, #endif #ifdef GL_ARB_half_float_vertex &__GLEW_ARB_half_float_vertex, #endif #ifdef GL_ARB_imaging &__GLEW_ARB_imaging, #endif #ifdef GL_ARB_indirect_parameters &__GLEW_ARB_indirect_parameters, #endif #ifdef GL_ARB_instanced_arrays &__GLEW_ARB_instanced_arrays, #endif #ifdef GL_ARB_internalformat_query &__GLEW_ARB_internalformat_query, #endif #ifdef GL_ARB_internalformat_query2 &__GLEW_ARB_internalformat_query2, #endif #ifdef GL_ARB_invalidate_subdata &__GLEW_ARB_invalidate_subdata, #endif #ifdef GL_ARB_map_buffer_alignment &__GLEW_ARB_map_buffer_alignment, #endif #ifdef GL_ARB_map_buffer_range &__GLEW_ARB_map_buffer_range, #endif #ifdef GL_ARB_matrix_palette &__GLEW_ARB_matrix_palette, #endif #ifdef GL_ARB_multi_bind &__GLEW_ARB_multi_bind, #endif #ifdef GL_ARB_multi_draw_indirect &__GLEW_ARB_multi_draw_indirect, #endif #ifdef GL_ARB_multisample &__GLEW_ARB_multisample, #endif #ifdef GL_ARB_multitexture &__GLEW_ARB_multitexture, #endif #ifdef GL_ARB_occlusion_query &__GLEW_ARB_occlusion_query, #endif #ifdef GL_ARB_occlusion_query2 &__GLEW_ARB_occlusion_query2, #endif #ifdef GL_ARB_parallel_shader_compile &__GLEW_ARB_parallel_shader_compile, #endif #ifdef GL_ARB_pipeline_statistics_query &__GLEW_ARB_pipeline_statistics_query, #endif #ifdef GL_ARB_pixel_buffer_object &__GLEW_ARB_pixel_buffer_object, #endif #ifdef GL_ARB_point_parameters &__GLEW_ARB_point_parameters, #endif #ifdef GL_ARB_point_sprite &__GLEW_ARB_point_sprite, #endif #ifdef GL_ARB_polygon_offset_clamp &__GLEW_ARB_polygon_offset_clamp, #endif #ifdef GL_ARB_post_depth_coverage &__GLEW_ARB_post_depth_coverage, #endif #ifdef GL_ARB_program_interface_query &__GLEW_ARB_program_interface_query, #endif #ifdef GL_ARB_provoking_vertex &__GLEW_ARB_provoking_vertex, #endif #ifdef GL_ARB_query_buffer_object &__GLEW_ARB_query_buffer_object, #endif #ifdef GL_ARB_robust_buffer_access_behavior &__GLEW_ARB_robust_buffer_access_behavior, #endif #ifdef GL_ARB_robustness &__GLEW_ARB_robustness, #endif #ifdef GL_ARB_robustness_application_isolation &__GLEW_ARB_robustness_application_isolation, #endif #ifdef GL_ARB_robustness_share_group_isolation &__GLEW_ARB_robustness_share_group_isolation, #endif #ifdef GL_ARB_sample_locations &__GLEW_ARB_sample_locations, #endif #ifdef GL_ARB_sample_shading &__GLEW_ARB_sample_shading, #endif #ifdef GL_ARB_sampler_objects &__GLEW_ARB_sampler_objects, #endif #ifdef GL_ARB_seamless_cube_map &__GLEW_ARB_seamless_cube_map, #endif #ifdef GL_ARB_seamless_cubemap_per_texture &__GLEW_ARB_seamless_cubemap_per_texture, #endif #ifdef GL_ARB_separate_shader_objects &__GLEW_ARB_separate_shader_objects, #endif #ifdef GL_ARB_shader_atomic_counter_ops &__GLEW_ARB_shader_atomic_counter_ops, #endif #ifdef GL_ARB_shader_atomic_counters &__GLEW_ARB_shader_atomic_counters, #endif #ifdef GL_ARB_shader_ballot &__GLEW_ARB_shader_ballot, #endif #ifdef GL_ARB_shader_bit_encoding &__GLEW_ARB_shader_bit_encoding, #endif #ifdef GL_ARB_shader_clock &__GLEW_ARB_shader_clock, #endif #ifdef GL_ARB_shader_draw_parameters &__GLEW_ARB_shader_draw_parameters, #endif #ifdef GL_ARB_shader_group_vote &__GLEW_ARB_shader_group_vote, #endif #ifdef GL_ARB_shader_image_load_store &__GLEW_ARB_shader_image_load_store, #endif #ifdef GL_ARB_shader_image_size &__GLEW_ARB_shader_image_size, #endif #ifdef GL_ARB_shader_objects &__GLEW_ARB_shader_objects, #endif #ifdef GL_ARB_shader_precision &__GLEW_ARB_shader_precision, #endif #ifdef GL_ARB_shader_stencil_export &__GLEW_ARB_shader_stencil_export, #endif #ifdef GL_ARB_shader_storage_buffer_object &__GLEW_ARB_shader_storage_buffer_object, #endif #ifdef GL_ARB_shader_subroutine &__GLEW_ARB_shader_subroutine, #endif #ifdef GL_ARB_shader_texture_image_samples &__GLEW_ARB_shader_texture_image_samples, #endif #ifdef GL_ARB_shader_texture_lod &__GLEW_ARB_shader_texture_lod, #endif #ifdef GL_ARB_shader_viewport_layer_array &__GLEW_ARB_shader_viewport_layer_array, #endif #ifdef GL_ARB_shading_language_100 &__GLEW_ARB_shading_language_100, #endif #ifdef GL_ARB_shading_language_420pack &__GLEW_ARB_shading_language_420pack, #endif #ifdef GL_ARB_shading_language_include &__GLEW_ARB_shading_language_include, #endif #ifdef GL_ARB_shading_language_packing &__GLEW_ARB_shading_language_packing, #endif #ifdef GL_ARB_shadow &__GLEW_ARB_shadow, #endif #ifdef GL_ARB_shadow_ambient &__GLEW_ARB_shadow_ambient, #endif #ifdef GL_ARB_sparse_buffer &__GLEW_ARB_sparse_buffer, #endif #ifdef GL_ARB_sparse_texture &__GLEW_ARB_sparse_texture, #endif #ifdef GL_ARB_sparse_texture2 &__GLEW_ARB_sparse_texture2, #endif #ifdef GL_ARB_sparse_texture_clamp &__GLEW_ARB_sparse_texture_clamp, #endif #ifdef GL_ARB_spirv_extensions &__GLEW_ARB_spirv_extensions, #endif #ifdef GL_ARB_stencil_texturing &__GLEW_ARB_stencil_texturing, #endif #ifdef GL_ARB_sync &__GLEW_ARB_sync, #endif #ifdef GL_ARB_tessellation_shader &__GLEW_ARB_tessellation_shader, #endif #ifdef GL_ARB_texture_barrier &__GLEW_ARB_texture_barrier, #endif #ifdef GL_ARB_texture_border_clamp &__GLEW_ARB_texture_border_clamp, #endif #ifdef GL_ARB_texture_buffer_object &__GLEW_ARB_texture_buffer_object, #endif #ifdef GL_ARB_texture_buffer_object_rgb32 &__GLEW_ARB_texture_buffer_object_rgb32, #endif #ifdef GL_ARB_texture_buffer_range &__GLEW_ARB_texture_buffer_range, #endif #ifdef GL_ARB_texture_compression &__GLEW_ARB_texture_compression, #endif #ifdef GL_ARB_texture_compression_bptc &__GLEW_ARB_texture_compression_bptc, #endif #ifdef GL_ARB_texture_compression_rgtc &__GLEW_ARB_texture_compression_rgtc, #endif #ifdef GL_ARB_texture_cube_map &__GLEW_ARB_texture_cube_map, #endif #ifdef GL_ARB_texture_cube_map_array &__GLEW_ARB_texture_cube_map_array, #endif #ifdef GL_ARB_texture_env_add &__GLEW_ARB_texture_env_add, #endif #ifdef GL_ARB_texture_env_combine &__GLEW_ARB_texture_env_combine, #endif #ifdef GL_ARB_texture_env_crossbar &__GLEW_ARB_texture_env_crossbar, #endif #ifdef GL_ARB_texture_env_dot3 &__GLEW_ARB_texture_env_dot3, #endif #ifdef GL_ARB_texture_filter_anisotropic &__GLEW_ARB_texture_filter_anisotropic, #endif #ifdef GL_ARB_texture_filter_minmax &__GLEW_ARB_texture_filter_minmax, #endif #ifdef GL_ARB_texture_float &__GLEW_ARB_texture_float, #endif #ifdef GL_ARB_texture_gather &__GLEW_ARB_texture_gather, #endif #ifdef GL_ARB_texture_mirror_clamp_to_edge &__GLEW_ARB_texture_mirror_clamp_to_edge, #endif #ifdef GL_ARB_texture_mirrored_repeat &__GLEW_ARB_texture_mirrored_repeat, #endif #ifdef GL_ARB_texture_multisample &__GLEW_ARB_texture_multisample, #endif #ifdef GL_ARB_texture_non_power_of_two &__GLEW_ARB_texture_non_power_of_two, #endif #ifdef GL_ARB_texture_query_levels &__GLEW_ARB_texture_query_levels, #endif #ifdef GL_ARB_texture_query_lod &__GLEW_ARB_texture_query_lod, #endif #ifdef GL_ARB_texture_rectangle &__GLEW_ARB_texture_rectangle, #endif #ifdef GL_ARB_texture_rg &__GLEW_ARB_texture_rg, #endif #ifdef GL_ARB_texture_rgb10_a2ui &__GLEW_ARB_texture_rgb10_a2ui, #endif #ifdef GL_ARB_texture_stencil8 &__GLEW_ARB_texture_stencil8, #endif #ifdef GL_ARB_texture_storage &__GLEW_ARB_texture_storage, #endif #ifdef GL_ARB_texture_storage_multisample &__GLEW_ARB_texture_storage_multisample, #endif #ifdef GL_ARB_texture_swizzle &__GLEW_ARB_texture_swizzle, #endif #ifdef GL_ARB_texture_view &__GLEW_ARB_texture_view, #endif #ifdef GL_ARB_timer_query &__GLEW_ARB_timer_query, #endif #ifdef GL_ARB_transform_feedback2 &__GLEW_ARB_transform_feedback2, #endif #ifdef GL_ARB_transform_feedback3 &__GLEW_ARB_transform_feedback3, #endif #ifdef GL_ARB_transform_feedback_instanced &__GLEW_ARB_transform_feedback_instanced, #endif #ifdef GL_ARB_transform_feedback_overflow_query &__GLEW_ARB_transform_feedback_overflow_query, #endif #ifdef GL_ARB_transpose_matrix &__GLEW_ARB_transpose_matrix, #endif #ifdef GL_ARB_uniform_buffer_object &__GLEW_ARB_uniform_buffer_object, #endif #ifdef GL_ARB_vertex_array_bgra &__GLEW_ARB_vertex_array_bgra, #endif #ifdef GL_ARB_vertex_array_object &__GLEW_ARB_vertex_array_object, #endif #ifdef GL_ARB_vertex_attrib_64bit &__GLEW_ARB_vertex_attrib_64bit, #endif #ifdef GL_ARB_vertex_attrib_binding &__GLEW_ARB_vertex_attrib_binding, #endif #ifdef GL_ARB_vertex_blend &__GLEW_ARB_vertex_blend, #endif #ifdef GL_ARB_vertex_buffer_object &__GLEW_ARB_vertex_buffer_object, #endif #ifdef GL_ARB_vertex_program &__GLEW_ARB_vertex_program, #endif #ifdef GL_ARB_vertex_shader &__GLEW_ARB_vertex_shader, #endif #ifdef GL_ARB_vertex_type_10f_11f_11f_rev &__GLEW_ARB_vertex_type_10f_11f_11f_rev, #endif #ifdef GL_ARB_vertex_type_2_10_10_10_rev &__GLEW_ARB_vertex_type_2_10_10_10_rev, #endif #ifdef GL_ARB_viewport_array &__GLEW_ARB_viewport_array, #endif #ifdef GL_ARB_window_pos &__GLEW_ARB_window_pos, #endif #ifdef GL_ARM_mali_program_binary &__GLEW_ARM_mali_program_binary, #endif #ifdef GL_ARM_mali_shader_binary &__GLEW_ARM_mali_shader_binary, #endif #ifdef GL_ARM_rgba8 &__GLEW_ARM_rgba8, #endif #ifdef GL_ARM_shader_framebuffer_fetch &__GLEW_ARM_shader_framebuffer_fetch, #endif #ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil &__GLEW_ARM_shader_framebuffer_fetch_depth_stencil, #endif #ifdef GL_ATIX_point_sprites &__GLEW_ATIX_point_sprites, #endif #ifdef GL_ATIX_texture_env_combine3 &__GLEW_ATIX_texture_env_combine3, #endif #ifdef GL_ATIX_texture_env_route &__GLEW_ATIX_texture_env_route, #endif #ifdef GL_ATIX_vertex_shader_output_point_size &__GLEW_ATIX_vertex_shader_output_point_size, #endif #ifdef GL_ATI_draw_buffers &__GLEW_ATI_draw_buffers, #endif #ifdef GL_ATI_element_array &__GLEW_ATI_element_array, #endif #ifdef GL_ATI_envmap_bumpmap &__GLEW_ATI_envmap_bumpmap, #endif #ifdef GL_ATI_fragment_shader &__GLEW_ATI_fragment_shader, #endif #ifdef GL_ATI_map_object_buffer &__GLEW_ATI_map_object_buffer, #endif #ifdef GL_ATI_meminfo &__GLEW_ATI_meminfo, #endif #ifdef GL_ATI_pn_triangles &__GLEW_ATI_pn_triangles, #endif #ifdef GL_ATI_separate_stencil &__GLEW_ATI_separate_stencil, #endif #ifdef GL_ATI_shader_texture_lod &__GLEW_ATI_shader_texture_lod, #endif #ifdef GL_ATI_text_fragment_shader &__GLEW_ATI_text_fragment_shader, #endif #ifdef GL_ATI_texture_compression_3dc &__GLEW_ATI_texture_compression_3dc, #endif #ifdef GL_ATI_texture_env_combine3 &__GLEW_ATI_texture_env_combine3, #endif #ifdef GL_ATI_texture_float &__GLEW_ATI_texture_float, #endif #ifdef GL_ATI_texture_mirror_once &__GLEW_ATI_texture_mirror_once, #endif #ifdef GL_ATI_vertex_array_object &__GLEW_ATI_vertex_array_object, #endif #ifdef GL_ATI_vertex_attrib_array_object &__GLEW_ATI_vertex_attrib_array_object, #endif #ifdef GL_ATI_vertex_streams &__GLEW_ATI_vertex_streams, #endif #ifdef GL_EGL_KHR_context_flush_control &__GLEW_EGL_KHR_context_flush_control, #endif #ifdef GL_EGL_NV_robustness_video_memory_purge &__GLEW_EGL_NV_robustness_video_memory_purge, #endif #ifdef GL_EXT_422_pixels &__GLEW_EXT_422_pixels, #endif #ifdef GL_EXT_Cg_shader &__GLEW_EXT_Cg_shader, #endif #ifdef GL_EXT_EGL_image_array &__GLEW_EXT_EGL_image_array, #endif #ifdef GL_EXT_YUV_target &__GLEW_EXT_YUV_target, #endif #ifdef GL_EXT_abgr &__GLEW_EXT_abgr, #endif #ifdef GL_EXT_base_instance &__GLEW_EXT_base_instance, #endif #ifdef GL_EXT_bgra &__GLEW_EXT_bgra, #endif #ifdef GL_EXT_bindable_uniform &__GLEW_EXT_bindable_uniform, #endif #ifdef GL_EXT_blend_color &__GLEW_EXT_blend_color, #endif #ifdef GL_EXT_blend_equation_separate &__GLEW_EXT_blend_equation_separate, #endif #ifdef GL_EXT_blend_func_extended &__GLEW_EXT_blend_func_extended, #endif #ifdef GL_EXT_blend_func_separate &__GLEW_EXT_blend_func_separate, #endif #ifdef GL_EXT_blend_logic_op &__GLEW_EXT_blend_logic_op, #endif #ifdef GL_EXT_blend_minmax &__GLEW_EXT_blend_minmax, #endif #ifdef GL_EXT_blend_subtract &__GLEW_EXT_blend_subtract, #endif #ifdef GL_EXT_buffer_storage &__GLEW_EXT_buffer_storage, #endif #ifdef GL_EXT_clear_texture &__GLEW_EXT_clear_texture, #endif #ifdef GL_EXT_clip_cull_distance &__GLEW_EXT_clip_cull_distance, #endif #ifdef GL_EXT_clip_volume_hint &__GLEW_EXT_clip_volume_hint, #endif #ifdef GL_EXT_cmyka &__GLEW_EXT_cmyka, #endif #ifdef GL_EXT_color_buffer_float &__GLEW_EXT_color_buffer_float, #endif #ifdef GL_EXT_color_buffer_half_float &__GLEW_EXT_color_buffer_half_float, #endif #ifdef GL_EXT_color_subtable &__GLEW_EXT_color_subtable, #endif #ifdef GL_EXT_compiled_vertex_array &__GLEW_EXT_compiled_vertex_array, #endif #ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture &__GLEW_EXT_compressed_ETC1_RGB8_sub_texture, #endif #ifdef GL_EXT_conservative_depth &__GLEW_EXT_conservative_depth, #endif #ifdef GL_EXT_convolution &__GLEW_EXT_convolution, #endif #ifdef GL_EXT_coordinate_frame &__GLEW_EXT_coordinate_frame, #endif #ifdef GL_EXT_copy_image &__GLEW_EXT_copy_image, #endif #ifdef GL_EXT_copy_texture &__GLEW_EXT_copy_texture, #endif #ifdef GL_EXT_cull_vertex &__GLEW_EXT_cull_vertex, #endif #ifdef GL_EXT_debug_label &__GLEW_EXT_debug_label, #endif #ifdef GL_EXT_debug_marker &__GLEW_EXT_debug_marker, #endif #ifdef GL_EXT_depth_bounds_test &__GLEW_EXT_depth_bounds_test, #endif #ifdef GL_EXT_direct_state_access &__GLEW_EXT_direct_state_access, #endif #ifdef GL_EXT_discard_framebuffer &__GLEW_EXT_discard_framebuffer, #endif #ifdef GL_EXT_draw_buffers &__GLEW_EXT_draw_buffers, #endif #ifdef GL_EXT_draw_buffers2 &__GLEW_EXT_draw_buffers2, #endif #ifdef GL_EXT_draw_buffers_indexed &__GLEW_EXT_draw_buffers_indexed, #endif #ifdef GL_EXT_draw_elements_base_vertex &__GLEW_EXT_draw_elements_base_vertex, #endif #ifdef GL_EXT_draw_instanced &__GLEW_EXT_draw_instanced, #endif #ifdef GL_EXT_draw_range_elements &__GLEW_EXT_draw_range_elements, #endif #ifdef GL_EXT_external_buffer &__GLEW_EXT_external_buffer, #endif #ifdef GL_EXT_float_blend &__GLEW_EXT_float_blend, #endif #ifdef GL_EXT_fog_coord &__GLEW_EXT_fog_coord, #endif #ifdef GL_EXT_frag_depth &__GLEW_EXT_frag_depth, #endif #ifdef GL_EXT_fragment_lighting &__GLEW_EXT_fragment_lighting, #endif #ifdef GL_EXT_framebuffer_blit &__GLEW_EXT_framebuffer_blit, #endif #ifdef GL_EXT_framebuffer_multisample &__GLEW_EXT_framebuffer_multisample, #endif #ifdef GL_EXT_framebuffer_multisample_blit_scaled &__GLEW_EXT_framebuffer_multisample_blit_scaled, #endif #ifdef GL_EXT_framebuffer_object &__GLEW_EXT_framebuffer_object, #endif #ifdef GL_EXT_framebuffer_sRGB &__GLEW_EXT_framebuffer_sRGB, #endif #ifdef GL_EXT_geometry_point_size &__GLEW_EXT_geometry_point_size, #endif #ifdef GL_EXT_geometry_shader &__GLEW_EXT_geometry_shader, #endif #ifdef GL_EXT_geometry_shader4 &__GLEW_EXT_geometry_shader4, #endif #ifdef GL_EXT_gpu_program_parameters &__GLEW_EXT_gpu_program_parameters, #endif #ifdef GL_EXT_gpu_shader4 &__GLEW_EXT_gpu_shader4, #endif #ifdef GL_EXT_gpu_shader5 &__GLEW_EXT_gpu_shader5, #endif #ifdef GL_EXT_histogram &__GLEW_EXT_histogram, #endif #ifdef GL_EXT_index_array_formats &__GLEW_EXT_index_array_formats, #endif #ifdef GL_EXT_index_func &__GLEW_EXT_index_func, #endif #ifdef GL_EXT_index_material &__GLEW_EXT_index_material, #endif #ifdef GL_EXT_index_texture &__GLEW_EXT_index_texture, #endif #ifdef GL_EXT_instanced_arrays &__GLEW_EXT_instanced_arrays, #endif #ifdef GL_EXT_light_texture &__GLEW_EXT_light_texture, #endif #ifdef GL_EXT_map_buffer_range &__GLEW_EXT_map_buffer_range, #endif #ifdef GL_EXT_memory_object &__GLEW_EXT_memory_object, #endif #ifdef GL_EXT_memory_object_fd &__GLEW_EXT_memory_object_fd, #endif #ifdef GL_EXT_memory_object_win32 &__GLEW_EXT_memory_object_win32, #endif #ifdef GL_EXT_misc_attribute &__GLEW_EXT_misc_attribute, #endif #ifdef GL_EXT_multi_draw_arrays &__GLEW_EXT_multi_draw_arrays, #endif #ifdef GL_EXT_multi_draw_indirect &__GLEW_EXT_multi_draw_indirect, #endif #ifdef GL_EXT_multiple_textures &__GLEW_EXT_multiple_textures, #endif #ifdef GL_EXT_multisample &__GLEW_EXT_multisample, #endif #ifdef GL_EXT_multisample_compatibility &__GLEW_EXT_multisample_compatibility, #endif #ifdef GL_EXT_multisampled_render_to_texture &__GLEW_EXT_multisampled_render_to_texture, #endif #ifdef GL_EXT_multisampled_render_to_texture2 &__GLEW_EXT_multisampled_render_to_texture2, #endif #ifdef GL_EXT_multiview_draw_buffers &__GLEW_EXT_multiview_draw_buffers, #endif #ifdef GL_EXT_packed_depth_stencil &__GLEW_EXT_packed_depth_stencil, #endif #ifdef GL_EXT_packed_float &__GLEW_EXT_packed_float, #endif #ifdef GL_EXT_packed_pixels &__GLEW_EXT_packed_pixels, #endif #ifdef GL_EXT_paletted_texture &__GLEW_EXT_paletted_texture, #endif #ifdef GL_EXT_pixel_buffer_object &__GLEW_EXT_pixel_buffer_object, #endif #ifdef GL_EXT_pixel_transform &__GLEW_EXT_pixel_transform, #endif #ifdef GL_EXT_pixel_transform_color_table &__GLEW_EXT_pixel_transform_color_table, #endif #ifdef GL_EXT_point_parameters &__GLEW_EXT_point_parameters, #endif #ifdef GL_EXT_polygon_offset &__GLEW_EXT_polygon_offset, #endif #ifdef GL_EXT_polygon_offset_clamp &__GLEW_EXT_polygon_offset_clamp, #endif #ifdef GL_EXT_post_depth_coverage &__GLEW_EXT_post_depth_coverage, #endif #ifdef GL_EXT_provoking_vertex &__GLEW_EXT_provoking_vertex, #endif #ifdef GL_EXT_pvrtc_sRGB &__GLEW_EXT_pvrtc_sRGB, #endif #ifdef GL_EXT_raster_multisample &__GLEW_EXT_raster_multisample, #endif #ifdef GL_EXT_read_format_bgra &__GLEW_EXT_read_format_bgra, #endif #ifdef GL_EXT_render_snorm &__GLEW_EXT_render_snorm, #endif #ifdef GL_EXT_rescale_normal &__GLEW_EXT_rescale_normal, #endif #ifdef GL_EXT_sRGB &__GLEW_EXT_sRGB, #endif #ifdef GL_EXT_sRGB_write_control &__GLEW_EXT_sRGB_write_control, #endif #ifdef GL_EXT_scene_marker &__GLEW_EXT_scene_marker, #endif #ifdef GL_EXT_secondary_color &__GLEW_EXT_secondary_color, #endif #ifdef GL_EXT_semaphore &__GLEW_EXT_semaphore, #endif #ifdef GL_EXT_semaphore_fd &__GLEW_EXT_semaphore_fd, #endif #ifdef GL_EXT_semaphore_win32 &__GLEW_EXT_semaphore_win32, #endif #ifdef GL_EXT_separate_shader_objects &__GLEW_EXT_separate_shader_objects, #endif #ifdef GL_EXT_separate_specular_color &__GLEW_EXT_separate_specular_color, #endif #ifdef GL_EXT_shader_framebuffer_fetch &__GLEW_EXT_shader_framebuffer_fetch, #endif #ifdef GL_EXT_shader_group_vote &__GLEW_EXT_shader_group_vote, #endif #ifdef GL_EXT_shader_image_load_formatted &__GLEW_EXT_shader_image_load_formatted, #endif #ifdef GL_EXT_shader_image_load_store &__GLEW_EXT_shader_image_load_store, #endif #ifdef GL_EXT_shader_implicit_conversions &__GLEW_EXT_shader_implicit_conversions, #endif #ifdef GL_EXT_shader_integer_mix &__GLEW_EXT_shader_integer_mix, #endif #ifdef GL_EXT_shader_io_blocks &__GLEW_EXT_shader_io_blocks, #endif #ifdef GL_EXT_shader_non_constant_global_initializers &__GLEW_EXT_shader_non_constant_global_initializers, #endif #ifdef GL_EXT_shader_pixel_local_storage &__GLEW_EXT_shader_pixel_local_storage, #endif #ifdef GL_EXT_shader_pixel_local_storage2 &__GLEW_EXT_shader_pixel_local_storage2, #endif #ifdef GL_EXT_shader_texture_lod &__GLEW_EXT_shader_texture_lod, #endif #ifdef GL_EXT_shadow_funcs &__GLEW_EXT_shadow_funcs, #endif #ifdef GL_EXT_shadow_samplers &__GLEW_EXT_shadow_samplers, #endif #ifdef GL_EXT_shared_texture_palette &__GLEW_EXT_shared_texture_palette, #endif #ifdef GL_EXT_sparse_texture &__GLEW_EXT_sparse_texture, #endif #ifdef GL_EXT_sparse_texture2 &__GLEW_EXT_sparse_texture2, #endif #ifdef GL_EXT_stencil_clear_tag &__GLEW_EXT_stencil_clear_tag, #endif #ifdef GL_EXT_stencil_two_side &__GLEW_EXT_stencil_two_side, #endif #ifdef GL_EXT_stencil_wrap &__GLEW_EXT_stencil_wrap, #endif #ifdef GL_EXT_subtexture &__GLEW_EXT_subtexture, #endif #ifdef GL_EXT_texture &__GLEW_EXT_texture, #endif #ifdef GL_EXT_texture3D &__GLEW_EXT_texture3D, #endif #ifdef GL_EXT_texture_array &__GLEW_EXT_texture_array, #endif #ifdef GL_EXT_texture_buffer_object &__GLEW_EXT_texture_buffer_object, #endif #ifdef GL_EXT_texture_compression_astc_decode_mode &__GLEW_EXT_texture_compression_astc_decode_mode, #endif #ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 &__GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5, #endif #ifdef GL_EXT_texture_compression_bptc &__GLEW_EXT_texture_compression_bptc, #endif #ifdef GL_EXT_texture_compression_dxt1 &__GLEW_EXT_texture_compression_dxt1, #endif #ifdef GL_EXT_texture_compression_latc &__GLEW_EXT_texture_compression_latc, #endif #ifdef GL_EXT_texture_compression_rgtc &__GLEW_EXT_texture_compression_rgtc, #endif #ifdef GL_EXT_texture_compression_s3tc &__GLEW_EXT_texture_compression_s3tc, #endif #ifdef GL_EXT_texture_cube_map &__GLEW_EXT_texture_cube_map, #endif #ifdef GL_EXT_texture_cube_map_array &__GLEW_EXT_texture_cube_map_array, #endif #ifdef GL_EXT_texture_edge_clamp &__GLEW_EXT_texture_edge_clamp, #endif #ifdef GL_EXT_texture_env &__GLEW_EXT_texture_env, #endif #ifdef GL_EXT_texture_env_add &__GLEW_EXT_texture_env_add, #endif #ifdef GL_EXT_texture_env_combine &__GLEW_EXT_texture_env_combine, #endif #ifdef GL_EXT_texture_env_dot3 &__GLEW_EXT_texture_env_dot3, #endif #ifdef GL_EXT_texture_filter_anisotropic &__GLEW_EXT_texture_filter_anisotropic, #endif #ifdef GL_EXT_texture_filter_minmax &__GLEW_EXT_texture_filter_minmax, #endif #ifdef GL_EXT_texture_format_BGRA8888 &__GLEW_EXT_texture_format_BGRA8888, #endif #ifdef GL_EXT_texture_integer &__GLEW_EXT_texture_integer, #endif #ifdef GL_EXT_texture_lod_bias &__GLEW_EXT_texture_lod_bias, #endif #ifdef GL_EXT_texture_mirror_clamp &__GLEW_EXT_texture_mirror_clamp, #endif #ifdef GL_EXT_texture_norm16 &__GLEW_EXT_texture_norm16, #endif #ifdef GL_EXT_texture_object &__GLEW_EXT_texture_object, #endif #ifdef GL_EXT_texture_perturb_normal &__GLEW_EXT_texture_perturb_normal, #endif #ifdef GL_EXT_texture_rectangle &__GLEW_EXT_texture_rectangle, #endif #ifdef GL_EXT_texture_rg &__GLEW_EXT_texture_rg, #endif #ifdef GL_EXT_texture_sRGB &__GLEW_EXT_texture_sRGB, #endif #ifdef GL_EXT_texture_sRGB_R8 &__GLEW_EXT_texture_sRGB_R8, #endif #ifdef GL_EXT_texture_sRGB_RG8 &__GLEW_EXT_texture_sRGB_RG8, #endif #ifdef GL_EXT_texture_sRGB_decode &__GLEW_EXT_texture_sRGB_decode, #endif #ifdef GL_EXT_texture_shared_exponent &__GLEW_EXT_texture_shared_exponent, #endif #ifdef GL_EXT_texture_snorm &__GLEW_EXT_texture_snorm, #endif #ifdef GL_EXT_texture_storage &__GLEW_EXT_texture_storage, #endif #ifdef GL_EXT_texture_swizzle &__GLEW_EXT_texture_swizzle, #endif #ifdef GL_EXT_texture_type_2_10_10_10_REV &__GLEW_EXT_texture_type_2_10_10_10_REV, #endif #ifdef GL_EXT_texture_view &__GLEW_EXT_texture_view, #endif #ifdef GL_EXT_timer_query &__GLEW_EXT_timer_query, #endif #ifdef GL_EXT_transform_feedback &__GLEW_EXT_transform_feedback, #endif #ifdef GL_EXT_unpack_subimage &__GLEW_EXT_unpack_subimage, #endif #ifdef GL_EXT_vertex_array &__GLEW_EXT_vertex_array, #endif #ifdef GL_EXT_vertex_array_bgra &__GLEW_EXT_vertex_array_bgra, #endif #ifdef GL_EXT_vertex_array_setXXX &__GLEW_EXT_vertex_array_setXXX, #endif #ifdef GL_EXT_vertex_attrib_64bit &__GLEW_EXT_vertex_attrib_64bit, #endif #ifdef GL_EXT_vertex_shader &__GLEW_EXT_vertex_shader, #endif #ifdef GL_EXT_vertex_weighting &__GLEW_EXT_vertex_weighting, #endif #ifdef GL_EXT_win32_keyed_mutex &__GLEW_EXT_win32_keyed_mutex, #endif #ifdef GL_EXT_window_rectangles &__GLEW_EXT_window_rectangles, #endif #ifdef GL_EXT_x11_sync_object &__GLEW_EXT_x11_sync_object, #endif #ifdef GL_GREMEDY_frame_terminator &__GLEW_GREMEDY_frame_terminator, #endif #ifdef GL_GREMEDY_string_marker &__GLEW_GREMEDY_string_marker, #endif #ifdef GL_HP_convolution_border_modes &__GLEW_HP_convolution_border_modes, #endif #ifdef GL_HP_image_transform &__GLEW_HP_image_transform, #endif #ifdef GL_HP_occlusion_test &__GLEW_HP_occlusion_test, #endif #ifdef GL_HP_texture_lighting &__GLEW_HP_texture_lighting, #endif #ifdef GL_IBM_cull_vertex &__GLEW_IBM_cull_vertex, #endif #ifdef GL_IBM_multimode_draw_arrays &__GLEW_IBM_multimode_draw_arrays, #endif #ifdef GL_IBM_rasterpos_clip &__GLEW_IBM_rasterpos_clip, #endif #ifdef GL_IBM_static_data &__GLEW_IBM_static_data, #endif #ifdef GL_IBM_texture_mirrored_repeat &__GLEW_IBM_texture_mirrored_repeat, #endif #ifdef GL_IBM_vertex_array_lists &__GLEW_IBM_vertex_array_lists, #endif #ifdef GL_INGR_color_clamp &__GLEW_INGR_color_clamp, #endif #ifdef GL_INGR_interlace_read &__GLEW_INGR_interlace_read, #endif #ifdef GL_INTEL_conservative_rasterization &__GLEW_INTEL_conservative_rasterization, #endif #ifdef GL_INTEL_fragment_shader_ordering &__GLEW_INTEL_fragment_shader_ordering, #endif #ifdef GL_INTEL_framebuffer_CMAA &__GLEW_INTEL_framebuffer_CMAA, #endif #ifdef GL_INTEL_map_texture &__GLEW_INTEL_map_texture, #endif #ifdef GL_INTEL_parallel_arrays &__GLEW_INTEL_parallel_arrays, #endif #ifdef GL_INTEL_performance_query &__GLEW_INTEL_performance_query, #endif #ifdef GL_INTEL_texture_scissor &__GLEW_INTEL_texture_scissor, #endif #ifdef GL_KHR_blend_equation_advanced &__GLEW_KHR_blend_equation_advanced, #endif #ifdef GL_KHR_blend_equation_advanced_coherent &__GLEW_KHR_blend_equation_advanced_coherent, #endif #ifdef GL_KHR_context_flush_control &__GLEW_KHR_context_flush_control, #endif #ifdef GL_KHR_debug &__GLEW_KHR_debug, #endif #ifdef GL_KHR_no_error &__GLEW_KHR_no_error, #endif #ifdef GL_KHR_parallel_shader_compile &__GLEW_KHR_parallel_shader_compile, #endif #ifdef GL_KHR_robust_buffer_access_behavior &__GLEW_KHR_robust_buffer_access_behavior, #endif #ifdef GL_KHR_robustness &__GLEW_KHR_robustness, #endif #ifdef GL_KHR_texture_compression_astc_hdr &__GLEW_KHR_texture_compression_astc_hdr, #endif #ifdef GL_KHR_texture_compression_astc_ldr &__GLEW_KHR_texture_compression_astc_ldr, #endif #ifdef GL_KHR_texture_compression_astc_sliced_3d &__GLEW_KHR_texture_compression_astc_sliced_3d, #endif #ifdef GL_KTX_buffer_region &__GLEW_KTX_buffer_region, #endif #ifdef GL_MESAX_texture_stack &__GLEW_MESAX_texture_stack, #endif #ifdef GL_MESA_pack_invert &__GLEW_MESA_pack_invert, #endif #ifdef GL_MESA_resize_buffers &__GLEW_MESA_resize_buffers, #endif #ifdef GL_MESA_shader_integer_functions &__GLEW_MESA_shader_integer_functions, #endif #ifdef GL_MESA_window_pos &__GLEW_MESA_window_pos, #endif #ifdef GL_MESA_ycbcr_texture &__GLEW_MESA_ycbcr_texture, #endif #ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers &__GLEW_NVX_blend_equation_advanced_multi_draw_buffers, #endif #ifdef GL_NVX_conditional_render &__GLEW_NVX_conditional_render, #endif #ifdef GL_NVX_gpu_memory_info &__GLEW_NVX_gpu_memory_info, #endif #ifdef GL_NVX_linked_gpu_multicast &__GLEW_NVX_linked_gpu_multicast, #endif #ifdef GL_NV_3dvision_settings &__GLEW_NV_3dvision_settings, #endif #ifdef GL_NV_EGL_stream_consumer_external &__GLEW_NV_EGL_stream_consumer_external, #endif #ifdef GL_NV_alpha_to_coverage_dither_control &__GLEW_NV_alpha_to_coverage_dither_control, #endif #ifdef GL_NV_bgr &__GLEW_NV_bgr, #endif #ifdef GL_NV_bindless_multi_draw_indirect &__GLEW_NV_bindless_multi_draw_indirect, #endif #ifdef GL_NV_bindless_multi_draw_indirect_count &__GLEW_NV_bindless_multi_draw_indirect_count, #endif #ifdef GL_NV_bindless_texture &__GLEW_NV_bindless_texture, #endif #ifdef GL_NV_blend_equation_advanced &__GLEW_NV_blend_equation_advanced, #endif #ifdef GL_NV_blend_equation_advanced_coherent &__GLEW_NV_blend_equation_advanced_coherent, #endif #ifdef GL_NV_blend_minmax_factor &__GLEW_NV_blend_minmax_factor, #endif #ifdef GL_NV_blend_square &__GLEW_NV_blend_square, #endif #ifdef GL_NV_clip_space_w_scaling &__GLEW_NV_clip_space_w_scaling, #endif #ifdef GL_NV_command_list &__GLEW_NV_command_list, #endif #ifdef GL_NV_compute_program5 &__GLEW_NV_compute_program5, #endif #ifdef GL_NV_conditional_render &__GLEW_NV_conditional_render, #endif #ifdef GL_NV_conservative_raster &__GLEW_NV_conservative_raster, #endif #ifdef GL_NV_conservative_raster_dilate &__GLEW_NV_conservative_raster_dilate, #endif #ifdef GL_NV_conservative_raster_pre_snap_triangles &__GLEW_NV_conservative_raster_pre_snap_triangles, #endif #ifdef GL_NV_copy_buffer &__GLEW_NV_copy_buffer, #endif #ifdef GL_NV_copy_depth_to_color &__GLEW_NV_copy_depth_to_color, #endif #ifdef GL_NV_copy_image &__GLEW_NV_copy_image, #endif #ifdef GL_NV_deep_texture3D &__GLEW_NV_deep_texture3D, #endif #ifdef GL_NV_depth_buffer_float &__GLEW_NV_depth_buffer_float, #endif #ifdef GL_NV_depth_clamp &__GLEW_NV_depth_clamp, #endif #ifdef GL_NV_depth_range_unclamped &__GLEW_NV_depth_range_unclamped, #endif #ifdef GL_NV_draw_buffers &__GLEW_NV_draw_buffers, #endif #ifdef GL_NV_draw_instanced &__GLEW_NV_draw_instanced, #endif #ifdef GL_NV_draw_texture &__GLEW_NV_draw_texture, #endif #ifdef GL_NV_draw_vulkan_image &__GLEW_NV_draw_vulkan_image, #endif #ifdef GL_NV_evaluators &__GLEW_NV_evaluators, #endif #ifdef GL_NV_explicit_attrib_location &__GLEW_NV_explicit_attrib_location, #endif #ifdef GL_NV_explicit_multisample &__GLEW_NV_explicit_multisample, #endif #ifdef GL_NV_fbo_color_attachments &__GLEW_NV_fbo_color_attachments, #endif #ifdef GL_NV_fence &__GLEW_NV_fence, #endif #ifdef GL_NV_fill_rectangle &__GLEW_NV_fill_rectangle, #endif #ifdef GL_NV_float_buffer &__GLEW_NV_float_buffer, #endif #ifdef GL_NV_fog_distance &__GLEW_NV_fog_distance, #endif #ifdef GL_NV_fragment_coverage_to_color &__GLEW_NV_fragment_coverage_to_color, #endif #ifdef GL_NV_fragment_program &__GLEW_NV_fragment_program, #endif #ifdef GL_NV_fragment_program2 &__GLEW_NV_fragment_program2, #endif #ifdef GL_NV_fragment_program4 &__GLEW_NV_fragment_program4, #endif #ifdef GL_NV_fragment_program_option &__GLEW_NV_fragment_program_option, #endif #ifdef GL_NV_fragment_shader_interlock &__GLEW_NV_fragment_shader_interlock, #endif #ifdef GL_NV_framebuffer_blit &__GLEW_NV_framebuffer_blit, #endif #ifdef GL_NV_framebuffer_mixed_samples &__GLEW_NV_framebuffer_mixed_samples, #endif #ifdef GL_NV_framebuffer_multisample &__GLEW_NV_framebuffer_multisample, #endif #ifdef GL_NV_framebuffer_multisample_coverage &__GLEW_NV_framebuffer_multisample_coverage, #endif #ifdef GL_NV_generate_mipmap_sRGB &__GLEW_NV_generate_mipmap_sRGB, #endif #ifdef GL_NV_geometry_program4 &__GLEW_NV_geometry_program4, #endif #ifdef GL_NV_geometry_shader4 &__GLEW_NV_geometry_shader4, #endif #ifdef GL_NV_geometry_shader_passthrough &__GLEW_NV_geometry_shader_passthrough, #endif #ifdef GL_NV_gpu_multicast &__GLEW_NV_gpu_multicast, #endif #ifdef GL_NV_gpu_program4 &__GLEW_NV_gpu_program4, #endif #ifdef GL_NV_gpu_program5 &__GLEW_NV_gpu_program5, #endif #ifdef GL_NV_gpu_program5_mem_extended &__GLEW_NV_gpu_program5_mem_extended, #endif #ifdef GL_NV_gpu_program_fp64 &__GLEW_NV_gpu_program_fp64, #endif #ifdef GL_NV_gpu_shader5 &__GLEW_NV_gpu_shader5, #endif #ifdef GL_NV_half_float &__GLEW_NV_half_float, #endif #ifdef GL_NV_image_formats &__GLEW_NV_image_formats, #endif #ifdef GL_NV_instanced_arrays &__GLEW_NV_instanced_arrays, #endif #ifdef GL_NV_internalformat_sample_query &__GLEW_NV_internalformat_sample_query, #endif #ifdef GL_NV_light_max_exponent &__GLEW_NV_light_max_exponent, #endif #ifdef GL_NV_multisample_coverage &__GLEW_NV_multisample_coverage, #endif #ifdef GL_NV_multisample_filter_hint &__GLEW_NV_multisample_filter_hint, #endif #ifdef GL_NV_non_square_matrices &__GLEW_NV_non_square_matrices, #endif #ifdef GL_NV_occlusion_query &__GLEW_NV_occlusion_query, #endif #ifdef GL_NV_pack_subimage &__GLEW_NV_pack_subimage, #endif #ifdef GL_NV_packed_depth_stencil &__GLEW_NV_packed_depth_stencil, #endif #ifdef GL_NV_packed_float &__GLEW_NV_packed_float, #endif #ifdef GL_NV_packed_float_linear &__GLEW_NV_packed_float_linear, #endif #ifdef GL_NV_parameter_buffer_object &__GLEW_NV_parameter_buffer_object, #endif #ifdef GL_NV_parameter_buffer_object2 &__GLEW_NV_parameter_buffer_object2, #endif #ifdef GL_NV_path_rendering &__GLEW_NV_path_rendering, #endif #ifdef GL_NV_path_rendering_shared_edge &__GLEW_NV_path_rendering_shared_edge, #endif #ifdef GL_NV_pixel_buffer_object &__GLEW_NV_pixel_buffer_object, #endif #ifdef GL_NV_pixel_data_range &__GLEW_NV_pixel_data_range, #endif #ifdef GL_NV_platform_binary &__GLEW_NV_platform_binary, #endif #ifdef GL_NV_point_sprite &__GLEW_NV_point_sprite, #endif #ifdef GL_NV_polygon_mode &__GLEW_NV_polygon_mode, #endif #ifdef GL_NV_present_video &__GLEW_NV_present_video, #endif #ifdef GL_NV_primitive_restart &__GLEW_NV_primitive_restart, #endif #ifdef GL_NV_read_depth &__GLEW_NV_read_depth, #endif #ifdef GL_NV_read_depth_stencil &__GLEW_NV_read_depth_stencil, #endif #ifdef GL_NV_read_stencil &__GLEW_NV_read_stencil, #endif #ifdef GL_NV_register_combiners &__GLEW_NV_register_combiners, #endif #ifdef GL_NV_register_combiners2 &__GLEW_NV_register_combiners2, #endif #ifdef GL_NV_robustness_video_memory_purge &__GLEW_NV_robustness_video_memory_purge, #endif #ifdef GL_NV_sRGB_formats &__GLEW_NV_sRGB_formats, #endif #ifdef GL_NV_sample_locations &__GLEW_NV_sample_locations, #endif #ifdef GL_NV_sample_mask_override_coverage &__GLEW_NV_sample_mask_override_coverage, #endif #ifdef GL_NV_shader_atomic_counters &__GLEW_NV_shader_atomic_counters, #endif #ifdef GL_NV_shader_atomic_float &__GLEW_NV_shader_atomic_float, #endif #ifdef GL_NV_shader_atomic_float64 &__GLEW_NV_shader_atomic_float64, #endif #ifdef GL_NV_shader_atomic_fp16_vector &__GLEW_NV_shader_atomic_fp16_vector, #endif #ifdef GL_NV_shader_atomic_int64 &__GLEW_NV_shader_atomic_int64, #endif #ifdef GL_NV_shader_buffer_load &__GLEW_NV_shader_buffer_load, #endif #ifdef GL_NV_shader_noperspective_interpolation &__GLEW_NV_shader_noperspective_interpolation, #endif #ifdef GL_NV_shader_storage_buffer_object &__GLEW_NV_shader_storage_buffer_object, #endif #ifdef GL_NV_shader_thread_group &__GLEW_NV_shader_thread_group, #endif #ifdef GL_NV_shader_thread_shuffle &__GLEW_NV_shader_thread_shuffle, #endif #ifdef GL_NV_shadow_samplers_array &__GLEW_NV_shadow_samplers_array, #endif #ifdef GL_NV_shadow_samplers_cube &__GLEW_NV_shadow_samplers_cube, #endif #ifdef GL_NV_stereo_view_rendering &__GLEW_NV_stereo_view_rendering, #endif #ifdef GL_NV_tessellation_program5 &__GLEW_NV_tessellation_program5, #endif #ifdef GL_NV_texgen_emboss &__GLEW_NV_texgen_emboss, #endif #ifdef GL_NV_texgen_reflection &__GLEW_NV_texgen_reflection, #endif #ifdef GL_NV_texture_array &__GLEW_NV_texture_array, #endif #ifdef GL_NV_texture_barrier &__GLEW_NV_texture_barrier, #endif #ifdef GL_NV_texture_border_clamp &__GLEW_NV_texture_border_clamp, #endif #ifdef GL_NV_texture_compression_latc &__GLEW_NV_texture_compression_latc, #endif #ifdef GL_NV_texture_compression_s3tc &__GLEW_NV_texture_compression_s3tc, #endif #ifdef GL_NV_texture_compression_s3tc_update &__GLEW_NV_texture_compression_s3tc_update, #endif #ifdef GL_NV_texture_compression_vtc &__GLEW_NV_texture_compression_vtc, #endif #ifdef GL_NV_texture_env_combine4 &__GLEW_NV_texture_env_combine4, #endif #ifdef GL_NV_texture_expand_normal &__GLEW_NV_texture_expand_normal, #endif #ifdef GL_NV_texture_multisample &__GLEW_NV_texture_multisample, #endif #ifdef GL_NV_texture_npot_2D_mipmap &__GLEW_NV_texture_npot_2D_mipmap, #endif #ifdef GL_NV_texture_rectangle &__GLEW_NV_texture_rectangle, #endif #ifdef GL_NV_texture_rectangle_compressed &__GLEW_NV_texture_rectangle_compressed, #endif #ifdef GL_NV_texture_shader &__GLEW_NV_texture_shader, #endif #ifdef GL_NV_texture_shader2 &__GLEW_NV_texture_shader2, #endif #ifdef GL_NV_texture_shader3 &__GLEW_NV_texture_shader3, #endif #ifdef GL_NV_transform_feedback &__GLEW_NV_transform_feedback, #endif #ifdef GL_NV_transform_feedback2 &__GLEW_NV_transform_feedback2, #endif #ifdef GL_NV_uniform_buffer_unified_memory &__GLEW_NV_uniform_buffer_unified_memory, #endif #ifdef GL_NV_vdpau_interop &__GLEW_NV_vdpau_interop, #endif #ifdef GL_NV_vertex_array_range &__GLEW_NV_vertex_array_range, #endif #ifdef GL_NV_vertex_array_range2 &__GLEW_NV_vertex_array_range2, #endif #ifdef GL_NV_vertex_attrib_integer_64bit &__GLEW_NV_vertex_attrib_integer_64bit, #endif #ifdef GL_NV_vertex_buffer_unified_memory &__GLEW_NV_vertex_buffer_unified_memory, #endif #ifdef GL_NV_vertex_program &__GLEW_NV_vertex_program, #endif #ifdef GL_NV_vertex_program1_1 &__GLEW_NV_vertex_program1_1, #endif #ifdef GL_NV_vertex_program2 &__GLEW_NV_vertex_program2, #endif #ifdef GL_NV_vertex_program2_option &__GLEW_NV_vertex_program2_option, #endif #ifdef GL_NV_vertex_program3 &__GLEW_NV_vertex_program3, #endif #ifdef GL_NV_vertex_program4 &__GLEW_NV_vertex_program4, #endif #ifdef GL_NV_video_capture &__GLEW_NV_video_capture, #endif #ifdef GL_NV_viewport_array &__GLEW_NV_viewport_array, #endif #ifdef GL_NV_viewport_array2 &__GLEW_NV_viewport_array2, #endif #ifdef GL_NV_viewport_swizzle &__GLEW_NV_viewport_swizzle, #endif #ifdef GL_OES_byte_coordinates &__GLEW_OES_byte_coordinates, #endif #ifdef GL_OML_interlace &__GLEW_OML_interlace, #endif #ifdef GL_OML_resample &__GLEW_OML_resample, #endif #ifdef GL_OML_subsample &__GLEW_OML_subsample, #endif #ifdef GL_OVR_multiview &__GLEW_OVR_multiview, #endif #ifdef GL_OVR_multiview2 &__GLEW_OVR_multiview2, #endif #ifdef GL_OVR_multiview_multisampled_render_to_texture &__GLEW_OVR_multiview_multisampled_render_to_texture, #endif #ifdef GL_PGI_misc_hints &__GLEW_PGI_misc_hints, #endif #ifdef GL_PGI_vertex_hints &__GLEW_PGI_vertex_hints, #endif #ifdef GL_QCOM_alpha_test &__GLEW_QCOM_alpha_test, #endif #ifdef GL_QCOM_binning_control &__GLEW_QCOM_binning_control, #endif #ifdef GL_QCOM_driver_control &__GLEW_QCOM_driver_control, #endif #ifdef GL_QCOM_extended_get &__GLEW_QCOM_extended_get, #endif #ifdef GL_QCOM_extended_get2 &__GLEW_QCOM_extended_get2, #endif #ifdef GL_QCOM_framebuffer_foveated &__GLEW_QCOM_framebuffer_foveated, #endif #ifdef GL_QCOM_perfmon_global_mode &__GLEW_QCOM_perfmon_global_mode, #endif #ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent &__GLEW_QCOM_shader_framebuffer_fetch_noncoherent, #endif #ifdef GL_QCOM_tiled_rendering &__GLEW_QCOM_tiled_rendering, #endif #ifdef GL_QCOM_writeonly_rendering &__GLEW_QCOM_writeonly_rendering, #endif #ifdef GL_REGAL_ES1_0_compatibility &__GLEW_REGAL_ES1_0_compatibility, #endif #ifdef GL_REGAL_ES1_1_compatibility &__GLEW_REGAL_ES1_1_compatibility, #endif #ifdef GL_REGAL_enable &__GLEW_REGAL_enable, #endif #ifdef GL_REGAL_error_string &__GLEW_REGAL_error_string, #endif #ifdef GL_REGAL_extension_query &__GLEW_REGAL_extension_query, #endif #ifdef GL_REGAL_log &__GLEW_REGAL_log, #endif #ifdef GL_REGAL_proc_address &__GLEW_REGAL_proc_address, #endif #ifdef GL_REND_screen_coordinates &__GLEW_REND_screen_coordinates, #endif #ifdef GL_S3_s3tc &__GLEW_S3_s3tc, #endif #ifdef GL_SGIS_clip_band_hint &__GLEW_SGIS_clip_band_hint, #endif #ifdef GL_SGIS_color_range &__GLEW_SGIS_color_range, #endif #ifdef GL_SGIS_detail_texture &__GLEW_SGIS_detail_texture, #endif #ifdef GL_SGIS_fog_function &__GLEW_SGIS_fog_function, #endif #ifdef GL_SGIS_generate_mipmap &__GLEW_SGIS_generate_mipmap, #endif #ifdef GL_SGIS_line_texgen &__GLEW_SGIS_line_texgen, #endif #ifdef GL_SGIS_multisample &__GLEW_SGIS_multisample, #endif #ifdef GL_SGIS_multitexture &__GLEW_SGIS_multitexture, #endif #ifdef GL_SGIS_pixel_texture &__GLEW_SGIS_pixel_texture, #endif #ifdef GL_SGIS_point_line_texgen &__GLEW_SGIS_point_line_texgen, #endif #ifdef GL_SGIS_shared_multisample &__GLEW_SGIS_shared_multisample, #endif #ifdef GL_SGIS_sharpen_texture &__GLEW_SGIS_sharpen_texture, #endif #ifdef GL_SGIS_texture4D &__GLEW_SGIS_texture4D, #endif #ifdef GL_SGIS_texture_border_clamp &__GLEW_SGIS_texture_border_clamp, #endif #ifdef GL_SGIS_texture_edge_clamp &__GLEW_SGIS_texture_edge_clamp, #endif #ifdef GL_SGIS_texture_filter4 &__GLEW_SGIS_texture_filter4, #endif #ifdef GL_SGIS_texture_lod &__GLEW_SGIS_texture_lod, #endif #ifdef GL_SGIS_texture_select &__GLEW_SGIS_texture_select, #endif #ifdef GL_SGIX_async &__GLEW_SGIX_async, #endif #ifdef GL_SGIX_async_histogram &__GLEW_SGIX_async_histogram, #endif #ifdef GL_SGIX_async_pixel &__GLEW_SGIX_async_pixel, #endif #ifdef GL_SGIX_bali_g_instruments &__GLEW_SGIX_bali_g_instruments, #endif #ifdef GL_SGIX_bali_r_instruments &__GLEW_SGIX_bali_r_instruments, #endif #ifdef GL_SGIX_bali_timer_instruments &__GLEW_SGIX_bali_timer_instruments, #endif #ifdef GL_SGIX_blend_alpha_minmax &__GLEW_SGIX_blend_alpha_minmax, #endif #ifdef GL_SGIX_blend_cadd &__GLEW_SGIX_blend_cadd, #endif #ifdef GL_SGIX_blend_cmultiply &__GLEW_SGIX_blend_cmultiply, #endif #ifdef GL_SGIX_calligraphic_fragment &__GLEW_SGIX_calligraphic_fragment, #endif #ifdef GL_SGIX_clipmap &__GLEW_SGIX_clipmap, #endif #ifdef GL_SGIX_color_matrix_accuracy &__GLEW_SGIX_color_matrix_accuracy, #endif #ifdef GL_SGIX_color_table_index_mode &__GLEW_SGIX_color_table_index_mode, #endif #ifdef GL_SGIX_complex_polar &__GLEW_SGIX_complex_polar, #endif #ifdef GL_SGIX_convolution_accuracy &__GLEW_SGIX_convolution_accuracy, #endif #ifdef GL_SGIX_cube_map &__GLEW_SGIX_cube_map, #endif #ifdef GL_SGIX_cylinder_texgen &__GLEW_SGIX_cylinder_texgen, #endif #ifdef GL_SGIX_datapipe &__GLEW_SGIX_datapipe, #endif #ifdef GL_SGIX_decimation &__GLEW_SGIX_decimation, #endif #ifdef GL_SGIX_depth_pass_instrument &__GLEW_SGIX_depth_pass_instrument, #endif #ifdef GL_SGIX_depth_texture &__GLEW_SGIX_depth_texture, #endif #ifdef GL_SGIX_dvc &__GLEW_SGIX_dvc, #endif #ifdef GL_SGIX_flush_raster &__GLEW_SGIX_flush_raster, #endif #ifdef GL_SGIX_fog_blend &__GLEW_SGIX_fog_blend, #endif #ifdef GL_SGIX_fog_factor_to_alpha &__GLEW_SGIX_fog_factor_to_alpha, #endif #ifdef GL_SGIX_fog_layers &__GLEW_SGIX_fog_layers, #endif #ifdef GL_SGIX_fog_offset &__GLEW_SGIX_fog_offset, #endif #ifdef GL_SGIX_fog_patchy &__GLEW_SGIX_fog_patchy, #endif #ifdef GL_SGIX_fog_scale &__GLEW_SGIX_fog_scale, #endif #ifdef GL_SGIX_fog_texture &__GLEW_SGIX_fog_texture, #endif #ifdef GL_SGIX_fragment_lighting_space &__GLEW_SGIX_fragment_lighting_space, #endif #ifdef GL_SGIX_fragment_specular_lighting &__GLEW_SGIX_fragment_specular_lighting, #endif #ifdef GL_SGIX_fragments_instrument &__GLEW_SGIX_fragments_instrument, #endif #ifdef GL_SGIX_framezoom &__GLEW_SGIX_framezoom, #endif #ifdef GL_SGIX_icc_texture &__GLEW_SGIX_icc_texture, #endif #ifdef GL_SGIX_igloo_interface &__GLEW_SGIX_igloo_interface, #endif #ifdef GL_SGIX_image_compression &__GLEW_SGIX_image_compression, #endif #ifdef GL_SGIX_impact_pixel_texture &__GLEW_SGIX_impact_pixel_texture, #endif #ifdef GL_SGIX_instrument_error &__GLEW_SGIX_instrument_error, #endif #ifdef GL_SGIX_interlace &__GLEW_SGIX_interlace, #endif #ifdef GL_SGIX_ir_instrument1 &__GLEW_SGIX_ir_instrument1, #endif #ifdef GL_SGIX_line_quality_hint &__GLEW_SGIX_line_quality_hint, #endif #ifdef GL_SGIX_list_priority &__GLEW_SGIX_list_priority, #endif #ifdef GL_SGIX_mpeg1 &__GLEW_SGIX_mpeg1, #endif #ifdef GL_SGIX_mpeg2 &__GLEW_SGIX_mpeg2, #endif #ifdef GL_SGIX_nonlinear_lighting_pervertex &__GLEW_SGIX_nonlinear_lighting_pervertex, #endif #ifdef GL_SGIX_nurbs_eval &__GLEW_SGIX_nurbs_eval, #endif #ifdef GL_SGIX_occlusion_instrument &__GLEW_SGIX_occlusion_instrument, #endif #ifdef GL_SGIX_packed_6bytes &__GLEW_SGIX_packed_6bytes, #endif #ifdef GL_SGIX_pixel_texture &__GLEW_SGIX_pixel_texture, #endif #ifdef GL_SGIX_pixel_texture_bits &__GLEW_SGIX_pixel_texture_bits, #endif #ifdef GL_SGIX_pixel_texture_lod &__GLEW_SGIX_pixel_texture_lod, #endif #ifdef GL_SGIX_pixel_tiles &__GLEW_SGIX_pixel_tiles, #endif #ifdef GL_SGIX_polynomial_ffd &__GLEW_SGIX_polynomial_ffd, #endif #ifdef GL_SGIX_quad_mesh &__GLEW_SGIX_quad_mesh, #endif #ifdef GL_SGIX_reference_plane &__GLEW_SGIX_reference_plane, #endif #ifdef GL_SGIX_resample &__GLEW_SGIX_resample, #endif #ifdef GL_SGIX_scalebias_hint &__GLEW_SGIX_scalebias_hint, #endif #ifdef GL_SGIX_shadow &__GLEW_SGIX_shadow, #endif #ifdef GL_SGIX_shadow_ambient &__GLEW_SGIX_shadow_ambient, #endif #ifdef GL_SGIX_slim &__GLEW_SGIX_slim, #endif #ifdef GL_SGIX_spotlight_cutoff &__GLEW_SGIX_spotlight_cutoff, #endif #ifdef GL_SGIX_sprite &__GLEW_SGIX_sprite, #endif #ifdef GL_SGIX_subdiv_patch &__GLEW_SGIX_subdiv_patch, #endif #ifdef GL_SGIX_subsample &__GLEW_SGIX_subsample, #endif #ifdef GL_SGIX_tag_sample_buffer &__GLEW_SGIX_tag_sample_buffer, #endif #ifdef GL_SGIX_texture_add_env &__GLEW_SGIX_texture_add_env, #endif #ifdef GL_SGIX_texture_coordinate_clamp &__GLEW_SGIX_texture_coordinate_clamp, #endif #ifdef GL_SGIX_texture_lod_bias &__GLEW_SGIX_texture_lod_bias, #endif #ifdef GL_SGIX_texture_mipmap_anisotropic &__GLEW_SGIX_texture_mipmap_anisotropic, #endif #ifdef GL_SGIX_texture_multi_buffer &__GLEW_SGIX_texture_multi_buffer, #endif #ifdef GL_SGIX_texture_phase &__GLEW_SGIX_texture_phase, #endif #ifdef GL_SGIX_texture_range &__GLEW_SGIX_texture_range, #endif #ifdef GL_SGIX_texture_scale_bias &__GLEW_SGIX_texture_scale_bias, #endif #ifdef GL_SGIX_texture_supersample &__GLEW_SGIX_texture_supersample, #endif #ifdef GL_SGIX_vector_ops &__GLEW_SGIX_vector_ops, #endif #ifdef GL_SGIX_vertex_array_object &__GLEW_SGIX_vertex_array_object, #endif #ifdef GL_SGIX_vertex_preclip &__GLEW_SGIX_vertex_preclip, #endif #ifdef GL_SGIX_vertex_preclip_hint &__GLEW_SGIX_vertex_preclip_hint, #endif #ifdef GL_SGIX_ycrcb &__GLEW_SGIX_ycrcb, #endif #ifdef GL_SGIX_ycrcb_subsample &__GLEW_SGIX_ycrcb_subsample, #endif #ifdef GL_SGIX_ycrcba &__GLEW_SGIX_ycrcba, #endif #ifdef GL_SGI_color_matrix &__GLEW_SGI_color_matrix, #endif #ifdef GL_SGI_color_table &__GLEW_SGI_color_table, #endif #ifdef GL_SGI_complex &__GLEW_SGI_complex, #endif #ifdef GL_SGI_complex_type &__GLEW_SGI_complex_type, #endif #ifdef GL_SGI_fft &__GLEW_SGI_fft, #endif #ifdef GL_SGI_texture_color_table &__GLEW_SGI_texture_color_table, #endif #ifdef GL_SUNX_constant_data &__GLEW_SUNX_constant_data, #endif #ifdef GL_SUN_convolution_border_modes &__GLEW_SUN_convolution_border_modes, #endif #ifdef GL_SUN_global_alpha &__GLEW_SUN_global_alpha, #endif #ifdef GL_SUN_mesh_array &__GLEW_SUN_mesh_array, #endif #ifdef GL_SUN_read_video_pixels &__GLEW_SUN_read_video_pixels, #endif #ifdef GL_SUN_slice_accum &__GLEW_SUN_slice_accum, #endif #ifdef GL_SUN_triangle_list &__GLEW_SUN_triangle_list, #endif #ifdef GL_SUN_vertex &__GLEW_SUN_vertex, #endif #ifdef GL_WIN_phong_shading &__GLEW_WIN_phong_shading, #endif #ifdef GL_WIN_scene_markerXXX &__GLEW_WIN_scene_markerXXX, #endif #ifdef GL_WIN_specular_fog &__GLEW_WIN_specular_fog, #endif #ifdef GL_WIN_swap_hint &__GLEW_WIN_swap_hint, #endif NULL }; static GLboolean _glewInit_GL_VERSION_1_2 (); static GLboolean _glewInit_GL_VERSION_1_3 (); static GLboolean _glewInit_GL_VERSION_1_4 (); static GLboolean _glewInit_GL_VERSION_1_5 (); static GLboolean _glewInit_GL_VERSION_2_0 (); static GLboolean _glewInit_GL_VERSION_2_1 (); static GLboolean _glewInit_GL_VERSION_3_0 (); static GLboolean _glewInit_GL_VERSION_3_1 (); static GLboolean _glewInit_GL_VERSION_3_2 (); static GLboolean _glewInit_GL_VERSION_3_3 (); static GLboolean _glewInit_GL_VERSION_4_0 (); static GLboolean _glewInit_GL_VERSION_4_5 (); static GLboolean _glewInit_GL_VERSION_4_6 (); static GLboolean _glewInit_GL_3DFX_tbuffer (); static GLboolean _glewInit_GL_AMD_debug_output (); static GLboolean _glewInit_GL_AMD_draw_buffers_blend (); static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions (); static GLboolean _glewInit_GL_AMD_interleaved_elements (); static GLboolean _glewInit_GL_AMD_multi_draw_indirect (); static GLboolean _glewInit_GL_AMD_name_gen_delete (); static GLboolean _glewInit_GL_AMD_occlusion_query_event (); static GLboolean _glewInit_GL_AMD_performance_monitor (); static GLboolean _glewInit_GL_AMD_sample_positions (); static GLboolean _glewInit_GL_AMD_sparse_texture (); static GLboolean _glewInit_GL_AMD_stencil_operation_extended (); static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator (); static GLboolean _glewInit_GL_ANGLE_framebuffer_blit (); static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample (); static GLboolean _glewInit_GL_ANGLE_instanced_arrays (); static GLboolean _glewInit_GL_ANGLE_timer_query (); static GLboolean _glewInit_GL_ANGLE_translated_shader_source (); static GLboolean _glewInit_GL_APPLE_copy_texture_levels (); static GLboolean _glewInit_GL_APPLE_element_array (); static GLboolean _glewInit_GL_APPLE_fence (); static GLboolean _glewInit_GL_APPLE_flush_buffer_range (); static GLboolean _glewInit_GL_APPLE_framebuffer_multisample (); static GLboolean _glewInit_GL_APPLE_object_purgeable (); static GLboolean _glewInit_GL_APPLE_sync (); static GLboolean _glewInit_GL_APPLE_texture_range (); static GLboolean _glewInit_GL_APPLE_vertex_array_object (); static GLboolean _glewInit_GL_APPLE_vertex_array_range (); static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators (); static GLboolean _glewInit_GL_ARB_ES2_compatibility (); static GLboolean _glewInit_GL_ARB_ES3_1_compatibility (); static GLboolean _glewInit_GL_ARB_ES3_2_compatibility (); static GLboolean _glewInit_GL_ARB_base_instance (); static GLboolean _glewInit_GL_ARB_bindless_texture (); static GLboolean _glewInit_GL_ARB_blend_func_extended (); static GLboolean _glewInit_GL_ARB_buffer_storage (); static GLboolean _glewInit_GL_ARB_cl_event (); static GLboolean _glewInit_GL_ARB_clear_buffer_object (); static GLboolean _glewInit_GL_ARB_clear_texture (); static GLboolean _glewInit_GL_ARB_clip_control (); static GLboolean _glewInit_GL_ARB_color_buffer_float (); static GLboolean _glewInit_GL_ARB_compute_shader (); static GLboolean _glewInit_GL_ARB_compute_variable_group_size (); static GLboolean _glewInit_GL_ARB_copy_buffer (); static GLboolean _glewInit_GL_ARB_copy_image (); static GLboolean _glewInit_GL_ARB_debug_output (); static GLboolean _glewInit_GL_ARB_direct_state_access (); static GLboolean _glewInit_GL_ARB_draw_buffers (); static GLboolean _glewInit_GL_ARB_draw_buffers_blend (); static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex (); static GLboolean _glewInit_GL_ARB_draw_indirect (); static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments (); static GLboolean _glewInit_GL_ARB_framebuffer_object (); static GLboolean _glewInit_GL_ARB_geometry_shader4 (); static GLboolean _glewInit_GL_ARB_get_program_binary (); static GLboolean _glewInit_GL_ARB_get_texture_sub_image (); static GLboolean _glewInit_GL_ARB_gl_spirv (); static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 (); static GLboolean _glewInit_GL_ARB_gpu_shader_int64 (); static GLboolean _glewInit_GL_ARB_imaging (); static GLboolean _glewInit_GL_ARB_indirect_parameters (); static GLboolean _glewInit_GL_ARB_instanced_arrays (); static GLboolean _glewInit_GL_ARB_internalformat_query (); static GLboolean _glewInit_GL_ARB_internalformat_query2 (); static GLboolean _glewInit_GL_ARB_invalidate_subdata (); static GLboolean _glewInit_GL_ARB_map_buffer_range (); static GLboolean _glewInit_GL_ARB_matrix_palette (); static GLboolean _glewInit_GL_ARB_multi_bind (); static GLboolean _glewInit_GL_ARB_multi_draw_indirect (); static GLboolean _glewInit_GL_ARB_multisample (); static GLboolean _glewInit_GL_ARB_multitexture (); static GLboolean _glewInit_GL_ARB_occlusion_query (); static GLboolean _glewInit_GL_ARB_parallel_shader_compile (); static GLboolean _glewInit_GL_ARB_point_parameters (); static GLboolean _glewInit_GL_ARB_polygon_offset_clamp (); static GLboolean _glewInit_GL_ARB_program_interface_query (); static GLboolean _glewInit_GL_ARB_provoking_vertex (); static GLboolean _glewInit_GL_ARB_robustness (); static GLboolean _glewInit_GL_ARB_sample_locations (); static GLboolean _glewInit_GL_ARB_sample_shading (); static GLboolean _glewInit_GL_ARB_sampler_objects (); static GLboolean _glewInit_GL_ARB_separate_shader_objects (); static GLboolean _glewInit_GL_ARB_shader_atomic_counters (); static GLboolean _glewInit_GL_ARB_shader_image_load_store (); static GLboolean _glewInit_GL_ARB_shader_objects (); static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object (); static GLboolean _glewInit_GL_ARB_shader_subroutine (); static GLboolean _glewInit_GL_ARB_shading_language_include (); static GLboolean _glewInit_GL_ARB_sparse_buffer (); static GLboolean _glewInit_GL_ARB_sparse_texture (); static GLboolean _glewInit_GL_ARB_sync (); static GLboolean _glewInit_GL_ARB_tessellation_shader (); static GLboolean _glewInit_GL_ARB_texture_barrier (); static GLboolean _glewInit_GL_ARB_texture_buffer_object (); static GLboolean _glewInit_GL_ARB_texture_buffer_range (); static GLboolean _glewInit_GL_ARB_texture_compression (); static GLboolean _glewInit_GL_ARB_texture_multisample (); static GLboolean _glewInit_GL_ARB_texture_storage (); static GLboolean _glewInit_GL_ARB_texture_storage_multisample (); static GLboolean _glewInit_GL_ARB_texture_view (); static GLboolean _glewInit_GL_ARB_timer_query (); static GLboolean _glewInit_GL_ARB_transform_feedback2 (); static GLboolean _glewInit_GL_ARB_transform_feedback3 (); static GLboolean _glewInit_GL_ARB_transform_feedback_instanced (); static GLboolean _glewInit_GL_ARB_transpose_matrix (); static GLboolean _glewInit_GL_ARB_uniform_buffer_object (); static GLboolean _glewInit_GL_ARB_vertex_array_object (); static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit (); static GLboolean _glewInit_GL_ARB_vertex_attrib_binding (); static GLboolean _glewInit_GL_ARB_vertex_blend (); static GLboolean _glewInit_GL_ARB_vertex_buffer_object (); static GLboolean _glewInit_GL_ARB_vertex_program (); static GLboolean _glewInit_GL_ARB_vertex_shader (); static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev (); static GLboolean _glewInit_GL_ARB_viewport_array (); static GLboolean _glewInit_GL_ARB_window_pos (); static GLboolean _glewInit_GL_ATI_draw_buffers (); static GLboolean _glewInit_GL_ATI_element_array (); static GLboolean _glewInit_GL_ATI_envmap_bumpmap (); static GLboolean _glewInit_GL_ATI_fragment_shader (); static GLboolean _glewInit_GL_ATI_map_object_buffer (); static GLboolean _glewInit_GL_ATI_pn_triangles (); static GLboolean _glewInit_GL_ATI_separate_stencil (); static GLboolean _glewInit_GL_ATI_vertex_array_object (); static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object (); static GLboolean _glewInit_GL_ATI_vertex_streams (); static GLboolean _glewInit_GL_EXT_base_instance (); static GLboolean _glewInit_GL_EXT_bindable_uniform (); static GLboolean _glewInit_GL_EXT_blend_color (); static GLboolean _glewInit_GL_EXT_blend_equation_separate (); static GLboolean _glewInit_GL_EXT_blend_func_extended (); static GLboolean _glewInit_GL_EXT_blend_func_separate (); static GLboolean _glewInit_GL_EXT_blend_minmax (); static GLboolean _glewInit_GL_EXT_buffer_storage (); static GLboolean _glewInit_GL_EXT_clear_texture (); static GLboolean _glewInit_GL_EXT_color_subtable (); static GLboolean _glewInit_GL_EXT_compiled_vertex_array (); static GLboolean _glewInit_GL_EXT_convolution (); static GLboolean _glewInit_GL_EXT_coordinate_frame (); static GLboolean _glewInit_GL_EXT_copy_image (); static GLboolean _glewInit_GL_EXT_copy_texture (); static GLboolean _glewInit_GL_EXT_cull_vertex (); static GLboolean _glewInit_GL_EXT_debug_label (); static GLboolean _glewInit_GL_EXT_debug_marker (); static GLboolean _glewInit_GL_EXT_depth_bounds_test (); static GLboolean _glewInit_GL_EXT_direct_state_access (); static GLboolean _glewInit_GL_EXT_discard_framebuffer (); static GLboolean _glewInit_GL_EXT_draw_buffers (); static GLboolean _glewInit_GL_EXT_draw_buffers2 (); static GLboolean _glewInit_GL_EXT_draw_buffers_indexed (); static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex (); static GLboolean _glewInit_GL_EXT_draw_instanced (); static GLboolean _glewInit_GL_EXT_draw_range_elements (); static GLboolean _glewInit_GL_EXT_external_buffer (); static GLboolean _glewInit_GL_EXT_fog_coord (); static GLboolean _glewInit_GL_EXT_fragment_lighting (); static GLboolean _glewInit_GL_EXT_framebuffer_blit (); static GLboolean _glewInit_GL_EXT_framebuffer_multisample (); static GLboolean _glewInit_GL_EXT_framebuffer_object (); static GLboolean _glewInit_GL_EXT_geometry_shader4 (); static GLboolean _glewInit_GL_EXT_gpu_program_parameters (); static GLboolean _glewInit_GL_EXT_gpu_shader4 (); static GLboolean _glewInit_GL_EXT_histogram (); static GLboolean _glewInit_GL_EXT_index_func (); static GLboolean _glewInit_GL_EXT_index_material (); static GLboolean _glewInit_GL_EXT_instanced_arrays (); static GLboolean _glewInit_GL_EXT_light_texture (); static GLboolean _glewInit_GL_EXT_map_buffer_range (); static GLboolean _glewInit_GL_EXT_memory_object (); static GLboolean _glewInit_GL_EXT_memory_object_fd (); static GLboolean _glewInit_GL_EXT_memory_object_win32 (); static GLboolean _glewInit_GL_EXT_multi_draw_arrays (); static GLboolean _glewInit_GL_EXT_multi_draw_indirect (); static GLboolean _glewInit_GL_EXT_multisample (); static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture (); static GLboolean _glewInit_GL_EXT_multiview_draw_buffers (); static GLboolean _glewInit_GL_EXT_paletted_texture (); static GLboolean _glewInit_GL_EXT_pixel_transform (); static GLboolean _glewInit_GL_EXT_point_parameters (); static GLboolean _glewInit_GL_EXT_polygon_offset (); static GLboolean _glewInit_GL_EXT_polygon_offset_clamp (); static GLboolean _glewInit_GL_EXT_provoking_vertex (); static GLboolean _glewInit_GL_EXT_raster_multisample (); static GLboolean _glewInit_GL_EXT_scene_marker (); static GLboolean _glewInit_GL_EXT_secondary_color (); static GLboolean _glewInit_GL_EXT_semaphore (); static GLboolean _glewInit_GL_EXT_semaphore_fd (); static GLboolean _glewInit_GL_EXT_semaphore_win32 (); static GLboolean _glewInit_GL_EXT_separate_shader_objects (); static GLboolean _glewInit_GL_EXT_shader_image_load_store (); static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 (); static GLboolean _glewInit_GL_EXT_sparse_texture (); static GLboolean _glewInit_GL_EXT_stencil_two_side (); static GLboolean _glewInit_GL_EXT_subtexture (); static GLboolean _glewInit_GL_EXT_texture3D (); static GLboolean _glewInit_GL_EXT_texture_array (); static GLboolean _glewInit_GL_EXT_texture_buffer_object (); static GLboolean _glewInit_GL_EXT_texture_integer (); static GLboolean _glewInit_GL_EXT_texture_object (); static GLboolean _glewInit_GL_EXT_texture_perturb_normal (); static GLboolean _glewInit_GL_EXT_texture_storage (); static GLboolean _glewInit_GL_EXT_texture_view (); static GLboolean _glewInit_GL_EXT_timer_query (); static GLboolean _glewInit_GL_EXT_transform_feedback (); static GLboolean _glewInit_GL_EXT_vertex_array (); static GLboolean _glewInit_GL_EXT_vertex_array_setXXX (); static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit (); static GLboolean _glewInit_GL_EXT_vertex_shader (); static GLboolean _glewInit_GL_EXT_vertex_weighting (); static GLboolean _glewInit_GL_EXT_win32_keyed_mutex (); static GLboolean _glewInit_GL_EXT_window_rectangles (); static GLboolean _glewInit_GL_EXT_x11_sync_object (); static GLboolean _glewInit_GL_GREMEDY_frame_terminator (); static GLboolean _glewInit_GL_GREMEDY_string_marker (); static GLboolean _glewInit_GL_HP_image_transform (); static GLboolean _glewInit_GL_IBM_multimode_draw_arrays (); static GLboolean _glewInit_GL_IBM_vertex_array_lists (); static GLboolean _glewInit_GL_INTEL_map_texture (); static GLboolean _glewInit_GL_INTEL_parallel_arrays (); static GLboolean _glewInit_GL_INTEL_performance_query (); static GLboolean _glewInit_GL_INTEL_texture_scissor (); static GLboolean _glewInit_GL_KHR_blend_equation_advanced (); static GLboolean _glewInit_GL_KHR_debug (); static GLboolean _glewInit_GL_KHR_parallel_shader_compile (); static GLboolean _glewInit_GL_KHR_robustness (); static GLboolean _glewInit_GL_KTX_buffer_region (); static GLboolean _glewInit_GL_MESA_resize_buffers (); static GLboolean _glewInit_GL_MESA_window_pos (); static GLboolean _glewInit_GL_NVX_conditional_render (); static GLboolean _glewInit_GL_NVX_linked_gpu_multicast (); static GLboolean _glewInit_GL_NV_3dvision_settings (); static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect (); static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count (); static GLboolean _glewInit_GL_NV_bindless_texture (); static GLboolean _glewInit_GL_NV_blend_equation_advanced (); static GLboolean _glewInit_GL_NV_clip_space_w_scaling (); static GLboolean _glewInit_GL_NV_command_list (); static GLboolean _glewInit_GL_NV_conditional_render (); static GLboolean _glewInit_GL_NV_conservative_raster (); static GLboolean _glewInit_GL_NV_conservative_raster_dilate (); static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles (); static GLboolean _glewInit_GL_NV_copy_buffer (); static GLboolean _glewInit_GL_NV_copy_image (); static GLboolean _glewInit_GL_NV_depth_buffer_float (); static GLboolean _glewInit_GL_NV_draw_buffers (); static GLboolean _glewInit_GL_NV_draw_instanced (); static GLboolean _glewInit_GL_NV_draw_texture (); static GLboolean _glewInit_GL_NV_draw_vulkan_image (); static GLboolean _glewInit_GL_NV_evaluators (); static GLboolean _glewInit_GL_NV_explicit_multisample (); static GLboolean _glewInit_GL_NV_fence (); static GLboolean _glewInit_GL_NV_fragment_coverage_to_color (); static GLboolean _glewInit_GL_NV_fragment_program (); static GLboolean _glewInit_GL_NV_framebuffer_blit (); static GLboolean _glewInit_GL_NV_framebuffer_multisample (); static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage (); static GLboolean _glewInit_GL_NV_geometry_program4 (); static GLboolean _glewInit_GL_NV_gpu_multicast (); static GLboolean _glewInit_GL_NV_gpu_program4 (); static GLboolean _glewInit_GL_NV_gpu_shader5 (); static GLboolean _glewInit_GL_NV_half_float (); static GLboolean _glewInit_GL_NV_instanced_arrays (); static GLboolean _glewInit_GL_NV_internalformat_sample_query (); static GLboolean _glewInit_GL_NV_non_square_matrices (); static GLboolean _glewInit_GL_NV_occlusion_query (); static GLboolean _glewInit_GL_NV_parameter_buffer_object (); static GLboolean _glewInit_GL_NV_path_rendering (); static GLboolean _glewInit_GL_NV_pixel_data_range (); static GLboolean _glewInit_GL_NV_point_sprite (); static GLboolean _glewInit_GL_NV_polygon_mode (); static GLboolean _glewInit_GL_NV_present_video (); static GLboolean _glewInit_GL_NV_primitive_restart (); static GLboolean _glewInit_GL_NV_register_combiners (); static GLboolean _glewInit_GL_NV_register_combiners2 (); static GLboolean _glewInit_GL_NV_sample_locations (); static GLboolean _glewInit_GL_NV_shader_buffer_load (); static GLboolean _glewInit_GL_NV_texture_array (); static GLboolean _glewInit_GL_NV_texture_barrier (); static GLboolean _glewInit_GL_NV_texture_multisample (); static GLboolean _glewInit_GL_NV_transform_feedback (); static GLboolean _glewInit_GL_NV_transform_feedback2 (); static GLboolean _glewInit_GL_NV_vdpau_interop (); static GLboolean _glewInit_GL_NV_vertex_array_range (); static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit (); static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory (); static GLboolean _glewInit_GL_NV_vertex_program (); static GLboolean _glewInit_GL_NV_video_capture (); static GLboolean _glewInit_GL_NV_viewport_array (); static GLboolean _glewInit_GL_NV_viewport_swizzle (); static GLboolean _glewInit_GL_OVR_multiview (); static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture (); static GLboolean _glewInit_GL_QCOM_alpha_test (); static GLboolean _glewInit_GL_QCOM_driver_control (); static GLboolean _glewInit_GL_QCOM_extended_get (); static GLboolean _glewInit_GL_QCOM_extended_get2 (); static GLboolean _glewInit_GL_QCOM_framebuffer_foveated (); static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent (); static GLboolean _glewInit_GL_QCOM_tiled_rendering (); static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility (); static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility (); static GLboolean _glewInit_GL_REGAL_error_string (); static GLboolean _glewInit_GL_REGAL_extension_query (); static GLboolean _glewInit_GL_REGAL_log (); static GLboolean _glewInit_GL_REGAL_proc_address (); static GLboolean _glewInit_GL_SGIS_detail_texture (); static GLboolean _glewInit_GL_SGIS_fog_function (); static GLboolean _glewInit_GL_SGIS_multisample (); static GLboolean _glewInit_GL_SGIS_multitexture (); static GLboolean _glewInit_GL_SGIS_shared_multisample (); static GLboolean _glewInit_GL_SGIS_sharpen_texture (); static GLboolean _glewInit_GL_SGIS_texture4D (); static GLboolean _glewInit_GL_SGIS_texture_filter4 (); static GLboolean _glewInit_GL_SGIX_async (); static GLboolean _glewInit_GL_SGIX_datapipe (); static GLboolean _glewInit_GL_SGIX_flush_raster (); static GLboolean _glewInit_GL_SGIX_fog_layers (); static GLboolean _glewInit_GL_SGIX_fog_texture (); static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting (); static GLboolean _glewInit_GL_SGIX_framezoom (); static GLboolean _glewInit_GL_SGIX_igloo_interface (); static GLboolean _glewInit_GL_SGIX_mpeg1 (); static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex (); static GLboolean _glewInit_GL_SGIX_pixel_texture (); static GLboolean _glewInit_GL_SGIX_polynomial_ffd (); static GLboolean _glewInit_GL_SGIX_quad_mesh (); static GLboolean _glewInit_GL_SGIX_reference_plane (); static GLboolean _glewInit_GL_SGIX_sprite (); static GLboolean _glewInit_GL_SGIX_tag_sample_buffer (); static GLboolean _glewInit_GL_SGIX_vector_ops (); static GLboolean _glewInit_GL_SGIX_vertex_array_object (); static GLboolean _glewInit_GL_SGI_color_table (); static GLboolean _glewInit_GL_SGI_fft (); static GLboolean _glewInit_GL_SUNX_constant_data (); static GLboolean _glewInit_GL_SUN_global_alpha (); static GLboolean _glewInit_GL_SUN_read_video_pixels (); static GLboolean _glewInit_GL_SUN_triangle_list (); static GLboolean _glewInit_GL_SUN_vertex (); static GLboolean _glewInit_GL_WIN_swap_hint (); #ifdef GL_VERSION_1_2 static GLboolean _glewInit_GL_VERSION_1_2 () { GLboolean r = GL_FALSE; r = ((glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3D")) == NULL) || r; r = ((glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElements")) == NULL) || r; r = ((glTexImage3D = (PFNGLTEXIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexImage3D")) == NULL) || r; r = ((glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3D")) == NULL) || r; return r; } #endif /* GL_VERSION_1_2 */ #ifdef GL_VERSION_1_3 static GLboolean _glewInit_GL_VERSION_1_3 () { GLboolean r = GL_FALSE; r = ((glActiveTexture = (PFNGLACTIVETEXTUREPROC)glewGetProcAddress((const GLubyte*)"glActiveTexture")) == NULL) || r; r = ((glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)glewGetProcAddress((const GLubyte*)"glClientActiveTexture")) == NULL) || r; r = ((glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage1D")) == NULL) || r; r = ((glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage2D")) == NULL) || r; r = ((glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3D")) == NULL) || r; r = ((glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage1D")) == NULL) || r; r = ((glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage2D")) == NULL) || r; r = ((glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3D")) == NULL) || r; r = ((glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTexImage")) == NULL) || r; r = ((glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixd")) == NULL) || r; r = ((glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixf")) == NULL) || r; r = ((glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixd")) == NULL) || r; r = ((glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixf")) == NULL) || r; r = ((glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1d")) == NULL) || r; r = ((glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1dv")) == NULL) || r; r = ((glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1f")) == NULL) || r; r = ((glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1fv")) == NULL) || r; r = ((glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1i")) == NULL) || r; r = ((glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1iv")) == NULL) || r; r = ((glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1s")) == NULL) || r; r = ((glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1sv")) == NULL) || r; r = ((glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2d")) == NULL) || r; r = ((glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2dv")) == NULL) || r; r = ((glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2f")) == NULL) || r; r = ((glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2fv")) == NULL) || r; r = ((glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2i")) == NULL) || r; r = ((glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2iv")) == NULL) || r; r = ((glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2s")) == NULL) || r; r = ((glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2sv")) == NULL) || r; r = ((glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3d")) == NULL) || r; r = ((glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3dv")) == NULL) || r; r = ((glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3f")) == NULL) || r; r = ((glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3fv")) == NULL) || r; r = ((glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3i")) == NULL) || r; r = ((glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3iv")) == NULL) || r; r = ((glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3s")) == NULL) || r; r = ((glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3sv")) == NULL) || r; r = ((glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4d")) == NULL) || r; r = ((glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4dv")) == NULL) || r; r = ((glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4f")) == NULL) || r; r = ((glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4fv")) == NULL) || r; r = ((glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4i")) == NULL) || r; r = ((glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4iv")) == NULL) || r; r = ((glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4s")) == NULL) || r; r = ((glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4sv")) == NULL) || r; r = ((glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)glewGetProcAddress((const GLubyte*)"glSampleCoverage")) == NULL) || r; return r; } #endif /* GL_VERSION_1_3 */ #ifdef GL_VERSION_1_4 static GLboolean _glewInit_GL_VERSION_1_4 () { GLboolean r = GL_FALSE; r = ((glBlendColor = (PFNGLBLENDCOLORPROC)glewGetProcAddress((const GLubyte*)"glBlendColor")) == NULL) || r; r = ((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)"glBlendEquation")) == NULL) || r; r = ((glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparate")) == NULL) || r; r = ((glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)glewGetProcAddress((const GLubyte*)"glFogCoordPointer")) == NULL) || r; r = ((glFogCoordd = (PFNGLFOGCOORDDPROC)glewGetProcAddress((const GLubyte*)"glFogCoordd")) == NULL) || r; r = ((glFogCoorddv = (PFNGLFOGCOORDDVPROC)glewGetProcAddress((const GLubyte*)"glFogCoorddv")) == NULL) || r; r = ((glFogCoordf = (PFNGLFOGCOORDFPROC)glewGetProcAddress((const GLubyte*)"glFogCoordf")) == NULL) || r; r = ((glFogCoordfv = (PFNGLFOGCOORDFVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordfv")) == NULL) || r; r = ((glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArrays")) == NULL) || r; r = ((glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElements")) == NULL) || r; r = ((glPointParameterf = (PFNGLPOINTPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glPointParameterf")) == NULL) || r; r = ((glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfv")) == NULL) || r; r = ((glPointParameteri = (PFNGLPOINTPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glPointParameteri")) == NULL) || r; r = ((glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glPointParameteriv")) == NULL) || r; r = ((glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3b")) == NULL) || r; r = ((glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3bv")) == NULL) || r; r = ((glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3d")) == NULL) || r; r = ((glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3dv")) == NULL) || r; r = ((glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3f")) == NULL) || r; r = ((glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3fv")) == NULL) || r; r = ((glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3i")) == NULL) || r; r = ((glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3iv")) == NULL) || r; r = ((glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3s")) == NULL) || r; r = ((glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3sv")) == NULL) || r; r = ((glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ub")) == NULL) || r; r = ((glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ubv")) == NULL) || r; r = ((glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ui")) == NULL) || r; r = ((glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3uiv")) == NULL) || r; r = ((glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3us")) == NULL) || r; r = ((glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3usv")) == NULL) || r; r = ((glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorPointer")) == NULL) || r; r = ((glWindowPos2d = (PFNGLWINDOWPOS2DPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2d")) == NULL) || r; r = ((glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dv")) == NULL) || r; r = ((glWindowPos2f = (PFNGLWINDOWPOS2FPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2f")) == NULL) || r; r = ((glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fv")) == NULL) || r; r = ((glWindowPos2i = (PFNGLWINDOWPOS2IPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2i")) == NULL) || r; r = ((glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2iv")) == NULL) || r; r = ((glWindowPos2s = (PFNGLWINDOWPOS2SPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2s")) == NULL) || r; r = ((glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2sv")) == NULL) || r; r = ((glWindowPos3d = (PFNGLWINDOWPOS3DPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3d")) == NULL) || r; r = ((glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dv")) == NULL) || r; r = ((glWindowPos3f = (PFNGLWINDOWPOS3FPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3f")) == NULL) || r; r = ((glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fv")) == NULL) || r; r = ((glWindowPos3i = (PFNGLWINDOWPOS3IPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3i")) == NULL) || r; r = ((glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3iv")) == NULL) || r; r = ((glWindowPos3s = (PFNGLWINDOWPOS3SPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3s")) == NULL) || r; r = ((glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3sv")) == NULL) || r; return r; } #endif /* GL_VERSION_1_4 */ #ifdef GL_VERSION_1_5 static GLboolean _glewInit_GL_VERSION_1_5 () { GLboolean r = GL_FALSE; r = ((glBeginQuery = (PFNGLBEGINQUERYPROC)glewGetProcAddress((const GLubyte*)"glBeginQuery")) == NULL) || r; r = ((glBindBuffer = (PFNGLBINDBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindBuffer")) == NULL) || r; r = ((glBufferData = (PFNGLBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glBufferData")) == NULL) || r; r = ((glBufferSubData = (PFNGLBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glBufferSubData")) == NULL) || r; r = ((glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteBuffers")) == NULL) || r; r = ((glDeleteQueries = (PFNGLDELETEQUERIESPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueries")) == NULL) || r; r = ((glEndQuery = (PFNGLENDQUERYPROC)glewGetProcAddress((const GLubyte*)"glEndQuery")) == NULL) || r; r = ((glGenBuffers = (PFNGLGENBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glGenBuffers")) == NULL) || r; r = ((glGenQueries = (PFNGLGENQUERIESPROC)glewGetProcAddress((const GLubyte*)"glGenQueries")) == NULL) || r; r = ((glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameteriv")) == NULL) || r; r = ((glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointerv")) == NULL) || r; r = ((glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glGetBufferSubData")) == NULL) || r; r = ((glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectiv")) == NULL) || r; r = ((glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuiv")) == NULL) || r; r = ((glGetQueryiv = (PFNGLGETQUERYIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryiv")) == NULL) || r; r = ((glIsBuffer = (PFNGLISBUFFERPROC)glewGetProcAddress((const GLubyte*)"glIsBuffer")) == NULL) || r; r = ((glIsQuery = (PFNGLISQUERYPROC)glewGetProcAddress((const GLubyte*)"glIsQuery")) == NULL) || r; r = ((glMapBuffer = (PFNGLMAPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glMapBuffer")) == NULL) || r; r = ((glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glUnmapBuffer")) == NULL) || r; return r; } #endif /* GL_VERSION_1_5 */ #ifdef GL_VERSION_2_0 static GLboolean _glewInit_GL_VERSION_2_0 () { GLboolean r = GL_FALSE; r = ((glAttachShader = (PFNGLATTACHSHADERPROC)glewGetProcAddress((const GLubyte*)"glAttachShader")) == NULL) || r; r = ((glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindAttribLocation")) == NULL) || r; r = ((glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparate")) == NULL) || r; r = ((glCompileShader = (PFNGLCOMPILESHADERPROC)glewGetProcAddress((const GLubyte*)"glCompileShader")) == NULL) || r; r = ((glCreateProgram = (PFNGLCREATEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glCreateProgram")) == NULL) || r; r = ((glCreateShader = (PFNGLCREATESHADERPROC)glewGetProcAddress((const GLubyte*)"glCreateShader")) == NULL) || r; r = ((glDeleteProgram = (PFNGLDELETEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgram")) == NULL) || r; r = ((glDeleteShader = (PFNGLDELETESHADERPROC)glewGetProcAddress((const GLubyte*)"glDeleteShader")) == NULL) || r; r = ((glDetachShader = (PFNGLDETACHSHADERPROC)glewGetProcAddress((const GLubyte*)"glDetachShader")) == NULL) || r; r = ((glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexAttribArray")) == NULL) || r; r = ((glDrawBuffers = (PFNGLDRAWBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffers")) == NULL) || r; r = ((glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexAttribArray")) == NULL) || r; r = ((glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)glewGetProcAddress((const GLubyte*)"glGetActiveAttrib")) == NULL) || r; r = ((glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniform")) == NULL) || r; r = ((glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)glewGetProcAddress((const GLubyte*)"glGetAttachedShaders")) == NULL) || r; r = ((glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetAttribLocation")) == NULL) || r; r = ((glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)glewGetProcAddress((const GLubyte*)"glGetProgramInfoLog")) == NULL) || r; r = ((glGetProgramiv = (PFNGLGETPROGRAMIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramiv")) == NULL) || r; r = ((glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)glewGetProcAddress((const GLubyte*)"glGetShaderInfoLog")) == NULL) || r; r = ((glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)glewGetProcAddress((const GLubyte*)"glGetShaderSource")) == NULL) || r; r = ((glGetShaderiv = (PFNGLGETSHADERIVPROC)glewGetProcAddress((const GLubyte*)"glGetShaderiv")) == NULL) || r; r = ((glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetUniformLocation")) == NULL) || r; r = ((glGetUniformfv = (PFNGLGETUNIFORMFVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformfv")) == NULL) || r; r = ((glGetUniformiv = (PFNGLGETUNIFORMIVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformiv")) == NULL) || r; r = ((glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribPointerv")) == NULL) || r; r = ((glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribdv")) == NULL) || r; r = ((glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribfv")) == NULL) || r; r = ((glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribiv")) == NULL) || r; r = ((glIsProgram = (PFNGLISPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glIsProgram")) == NULL) || r; r = ((glIsShader = (PFNGLISSHADERPROC)glewGetProcAddress((const GLubyte*)"glIsShader")) == NULL) || r; r = ((glLinkProgram = (PFNGLLINKPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glLinkProgram")) == NULL) || r; r = ((glShaderSource = (PFNGLSHADERSOURCEPROC)glewGetProcAddress((const GLubyte*)"glShaderSource")) == NULL) || r; r = ((glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glStencilFuncSeparate")) == NULL) || r; r = ((glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glStencilMaskSeparate")) == NULL) || r; r = ((glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)glewGetProcAddress((const GLubyte*)"glStencilOpSeparate")) == NULL) || r; r = ((glUniform1f = (PFNGLUNIFORM1FPROC)glewGetProcAddress((const GLubyte*)"glUniform1f")) == NULL) || r; r = ((glUniform1fv = (PFNGLUNIFORM1FVPROC)glewGetProcAddress((const GLubyte*)"glUniform1fv")) == NULL) || r; r = ((glUniform1i = (PFNGLUNIFORM1IPROC)glewGetProcAddress((const GLubyte*)"glUniform1i")) == NULL) || r; r = ((glUniform1iv = (PFNGLUNIFORM1IVPROC)glewGetProcAddress((const GLubyte*)"glUniform1iv")) == NULL) || r; r = ((glUniform2f = (PFNGLUNIFORM2FPROC)glewGetProcAddress((const GLubyte*)"glUniform2f")) == NULL) || r; r = ((glUniform2fv = (PFNGLUNIFORM2FVPROC)glewGetProcAddress((const GLubyte*)"glUniform2fv")) == NULL) || r; r = ((glUniform2i = (PFNGLUNIFORM2IPROC)glewGetProcAddress((const GLubyte*)"glUniform2i")) == NULL) || r; r = ((glUniform2iv = (PFNGLUNIFORM2IVPROC)glewGetProcAddress((const GLubyte*)"glUniform2iv")) == NULL) || r; r = ((glUniform3f = (PFNGLUNIFORM3FPROC)glewGetProcAddress((const GLubyte*)"glUniform3f")) == NULL) || r; r = ((glUniform3fv = (PFNGLUNIFORM3FVPROC)glewGetProcAddress((const GLubyte*)"glUniform3fv")) == NULL) || r; r = ((glUniform3i = (PFNGLUNIFORM3IPROC)glewGetProcAddress((const GLubyte*)"glUniform3i")) == NULL) || r; r = ((glUniform3iv = (PFNGLUNIFORM3IVPROC)glewGetProcAddress((const GLubyte*)"glUniform3iv")) == NULL) || r; r = ((glUniform4f = (PFNGLUNIFORM4FPROC)glewGetProcAddress((const GLubyte*)"glUniform4f")) == NULL) || r; r = ((glUniform4fv = (PFNGLUNIFORM4FVPROC)glewGetProcAddress((const GLubyte*)"glUniform4fv")) == NULL) || r; r = ((glUniform4i = (PFNGLUNIFORM4IPROC)glewGetProcAddress((const GLubyte*)"glUniform4i")) == NULL) || r; r = ((glUniform4iv = (PFNGLUNIFORM4IVPROC)glewGetProcAddress((const GLubyte*)"glUniform4iv")) == NULL) || r; r = ((glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2fv")) == NULL) || r; r = ((glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3fv")) == NULL) || r; r = ((glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4fv")) == NULL) || r; r = ((glUseProgram = (PFNGLUSEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glUseProgram")) == NULL) || r; r = ((glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glValidateProgram")) == NULL) || r; r = ((glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1d")) == NULL) || r; r = ((glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dv")) == NULL) || r; r = ((glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1f")) == NULL) || r; r = ((glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fv")) == NULL) || r; r = ((glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1s")) == NULL) || r; r = ((glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1sv")) == NULL) || r; r = ((glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2d")) == NULL) || r; r = ((glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dv")) == NULL) || r; r = ((glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2f")) == NULL) || r; r = ((glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fv")) == NULL) || r; r = ((glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2s")) == NULL) || r; r = ((glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2sv")) == NULL) || r; r = ((glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3d")) == NULL) || r; r = ((glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dv")) == NULL) || r; r = ((glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3f")) == NULL) || r; r = ((glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fv")) == NULL) || r; r = ((glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3s")) == NULL) || r; r = ((glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3sv")) == NULL) || r; r = ((glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nbv")) == NULL) || r; r = ((glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Niv")) == NULL) || r; r = ((glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nsv")) == NULL) || r; r = ((glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nub")) == NULL) || r; r = ((glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nubv")) == NULL) || r; r = ((glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nuiv")) == NULL) || r; r = ((glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4Nusv")) == NULL) || r; r = ((glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4bv")) == NULL) || r; r = ((glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4d")) == NULL) || r; r = ((glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dv")) == NULL) || r; r = ((glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4f")) == NULL) || r; r = ((glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fv")) == NULL) || r; r = ((glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4iv")) == NULL) || r; r = ((glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4s")) == NULL) || r; r = ((glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4sv")) == NULL) || r; r = ((glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubv")) == NULL) || r; r = ((glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4uiv")) == NULL) || r; r = ((glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4usv")) == NULL) || r; r = ((glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointer")) == NULL) || r; return r; } #endif /* GL_VERSION_2_0 */ #ifdef GL_VERSION_2_1 static GLboolean _glewInit_GL_VERSION_2_1 () { GLboolean r = GL_FALSE; r = ((glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3fv")) == NULL) || r; r = ((glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4fv")) == NULL) || r; r = ((glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2fv")) == NULL) || r; r = ((glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4fv")) == NULL) || r; r = ((glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2fv")) == NULL) || r; r = ((glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3fv")) == NULL) || r; return r; } #endif /* GL_VERSION_2_1 */ #ifdef GL_VERSION_3_0 static GLboolean _glewInit_GL_VERSION_3_0 () { GLboolean r = GL_FALSE; r = _glewInit_GL_ARB_framebuffer_object() || r; r = _glewInit_GL_ARB_map_buffer_range() || r; r = _glewInit_GL_ARB_uniform_buffer_object() || r; r = _glewInit_GL_ARB_vertex_array_object() || r; r = ((glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRender")) == NULL) || r; r = ((glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedback")) == NULL) || r; r = ((glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocation")) == NULL) || r; r = ((glClampColor = (PFNGLCLAMPCOLORPROC)glewGetProcAddress((const GLubyte*)"glClampColor")) == NULL) || r; r = ((glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)glewGetProcAddress((const GLubyte*)"glClearBufferfi")) == NULL) || r; r = ((glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)glewGetProcAddress((const GLubyte*)"glClearBufferfv")) == NULL) || r; r = ((glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)glewGetProcAddress((const GLubyte*)"glClearBufferiv")) == NULL) || r; r = ((glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)glewGetProcAddress((const GLubyte*)"glClearBufferuiv")) == NULL) || r; r = ((glColorMaski = (PFNGLCOLORMASKIPROC)glewGetProcAddress((const GLubyte*)"glColorMaski")) == NULL) || r; r = ((glDisablei = (PFNGLDISABLEIPROC)glewGetProcAddress((const GLubyte*)"glDisablei")) == NULL) || r; r = ((glEnablei = (PFNGLENABLEIPROC)glewGetProcAddress((const GLubyte*)"glEnablei")) == NULL) || r; r = ((glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)glewGetProcAddress((const GLubyte*)"glEndConditionalRender")) == NULL) || r; r = ((glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glEndTransformFeedback")) == NULL) || r; r = ((glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)glewGetProcAddress((const GLubyte*)"glGetBooleani_v")) == NULL) || r; r = ((glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataLocation")) == NULL) || r; r = ((glGetStringi = (PFNGLGETSTRINGIPROC)glewGetProcAddress((const GLubyte*)"glGetStringi")) == NULL) || r; r = ((glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIiv")) == NULL) || r; r = ((glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuiv")) == NULL) || r; r = ((glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackVarying")) == NULL) || r; r = ((glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformuiv")) == NULL) || r; r = ((glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIiv")) == NULL) || r; r = ((glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIuiv")) == NULL) || r; r = ((glIsEnabledi = (PFNGLISENABLEDIPROC)glewGetProcAddress((const GLubyte*)"glIsEnabledi")) == NULL) || r; r = ((glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIiv")) == NULL) || r; r = ((glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuiv")) == NULL) || r; r = ((glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackVaryings")) == NULL) || r; r = ((glUniform1ui = (PFNGLUNIFORM1UIPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui")) == NULL) || r; r = ((glUniform1uiv = (PFNGLUNIFORM1UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform1uiv")) == NULL) || r; r = ((glUniform2ui = (PFNGLUNIFORM2UIPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui")) == NULL) || r; r = ((glUniform2uiv = (PFNGLUNIFORM2UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform2uiv")) == NULL) || r; r = ((glUniform3ui = (PFNGLUNIFORM3UIPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui")) == NULL) || r; r = ((glUniform3uiv = (PFNGLUNIFORM3UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform3uiv")) == NULL) || r; r = ((glUniform4ui = (PFNGLUNIFORM4UIPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui")) == NULL) || r; r = ((glUniform4uiv = (PFNGLUNIFORM4UIVPROC)glewGetProcAddress((const GLubyte*)"glUniform4uiv")) == NULL) || r; r = ((glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1i")) == NULL) || r; r = ((glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1iv")) == NULL) || r; r = ((glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1ui")) == NULL) || r; r = ((glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1uiv")) == NULL) || r; r = ((glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2i")) == NULL) || r; r = ((glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2iv")) == NULL) || r; r = ((glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2ui")) == NULL) || r; r = ((glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2uiv")) == NULL) || r; r = ((glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3i")) == NULL) || r; r = ((glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3iv")) == NULL) || r; r = ((glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3ui")) == NULL) || r; r = ((glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3uiv")) == NULL) || r; r = ((glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4bv")) == NULL) || r; r = ((glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4i")) == NULL) || r; r = ((glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4iv")) == NULL) || r; r = ((glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4sv")) == NULL) || r; r = ((glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ubv")) == NULL) || r; r = ((glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ui")) == NULL) || r; r = ((glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4uiv")) == NULL) || r; r = ((glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4usv")) == NULL) || r; r = ((glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIPointer")) == NULL) || r; return r; } #endif /* GL_VERSION_3_0 */ #ifdef GL_VERSION_3_1 static GLboolean _glewInit_GL_VERSION_3_1 () { GLboolean r = GL_FALSE; r = _glewInit_GL_ARB_copy_buffer() || r; r = ((glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstanced")) == NULL) || r; r = ((glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstanced")) == NULL) || r; r = ((glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartIndex")) == NULL) || r; r = ((glTexBuffer = (PFNGLTEXBUFFERPROC)glewGetProcAddress((const GLubyte*)"glTexBuffer")) == NULL) || r; return r; } #endif /* GL_VERSION_3_1 */ #ifdef GL_VERSION_3_2 static GLboolean _glewInit_GL_VERSION_3_2 () { GLboolean r = GL_FALSE; r = _glewInit_GL_ARB_draw_elements_base_vertex() || r; r = _glewInit_GL_ARB_provoking_vertex() || r; r = _glewInit_GL_ARB_sync() || r; r = _glewInit_GL_ARB_texture_multisample() || r; r = ((glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture")) == NULL) || r; r = ((glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameteri64v")) == NULL) || r; r = ((glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64i_v")) == NULL) || r; return r; } #endif /* GL_VERSION_3_2 */ #ifdef GL_VERSION_3_3 static GLboolean _glewInit_GL_VERSION_3_3 () { GLboolean r = GL_FALSE; r = ((glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisor")) == NULL) || r; return r; } #endif /* GL_VERSION_3_3 */ #ifdef GL_VERSION_4_0 static GLboolean _glewInit_GL_VERSION_4_0 () { GLboolean r = GL_FALSE; r = ((glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparatei")) == NULL) || r; r = ((glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationi")) == NULL) || r; r = ((glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparatei")) == NULL) || r; r = ((glBlendFunci = (PFNGLBLENDFUNCIPROC)glewGetProcAddress((const GLubyte*)"glBlendFunci")) == NULL) || r; r = ((glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShading")) == NULL) || r; return r; } #endif /* GL_VERSION_4_0 */ #ifdef GL_VERSION_4_5 static GLboolean _glewInit_GL_VERSION_4_5 () { GLboolean r = GL_FALSE; r = ((glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)glewGetProcAddress((const GLubyte*)"glGetGraphicsResetStatus")) == NULL) || r; r = ((glGetnCompressedTexImage = (PFNGLGETNCOMPRESSEDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetnCompressedTexImage")) == NULL) || r; r = ((glGetnTexImage = (PFNGLGETNTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetnTexImage")) == NULL) || r; r = ((glGetnUniformdv = (PFNGLGETNUNIFORMDVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformdv")) == NULL) || r; return r; } #endif /* GL_VERSION_4_5 */ #ifdef GL_VERSION_4_6 static GLboolean _glewInit_GL_VERSION_4_6 () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectCount")) == NULL) || r; r = ((glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectCount")) == NULL) || r; r = ((glSpecializeShader = (PFNGLSPECIALIZESHADERPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShader")) == NULL) || r; return r; } #endif /* GL_VERSION_4_6 */ #ifdef GL_3DFX_tbuffer static GLboolean _glewInit_GL_3DFX_tbuffer () { GLboolean r = GL_FALSE; r = ((glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC)glewGetProcAddress((const GLubyte*)"glTbufferMask3DFX")) == NULL) || r; return r; } #endif /* GL_3DFX_tbuffer */ #ifdef GL_AMD_debug_output static GLboolean _glewInit_GL_AMD_debug_output () { GLboolean r = GL_FALSE; r = ((glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageCallbackAMD")) == NULL) || r; r = ((glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageEnableAMD")) == NULL) || r; r = ((glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageInsertAMD")) == NULL) || r; r = ((glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)glewGetProcAddress((const GLubyte*)"glGetDebugMessageLogAMD")) == NULL) || r; return r; } #endif /* GL_AMD_debug_output */ #ifdef GL_AMD_draw_buffers_blend static GLboolean _glewInit_GL_AMD_draw_buffers_blend () { GLboolean r = GL_FALSE; r = ((glBlendEquationIndexedAMD = (PFNGLBLENDEQUATIONINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationIndexedAMD")) == NULL) || r; r = ((glBlendEquationSeparateIndexedAMD = (PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateIndexedAMD")) == NULL) || r; r = ((glBlendFuncIndexedAMD = (PFNGLBLENDFUNCINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncIndexedAMD")) == NULL) || r; r = ((glBlendFuncSeparateIndexedAMD = (PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateIndexedAMD")) == NULL) || r; return r; } #endif /* GL_AMD_draw_buffers_blend */ #ifdef GL_AMD_framebuffer_sample_positions static GLboolean _glewInit_GL_AMD_framebuffer_sample_positions () { GLboolean r = GL_FALSE; r = ((glFramebufferSamplePositionsfvAMD = (PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSamplePositionsfvAMD")) == NULL) || r; r = ((glGetFramebufferParameterfvAMD = (PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterfvAMD")) == NULL) || r; r = ((glGetNamedFramebufferParameterfvAMD = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameterfvAMD")) == NULL) || r; r = ((glNamedFramebufferSamplePositionsfvAMD = (PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSamplePositionsfvAMD")) == NULL) || r; return r; } #endif /* GL_AMD_framebuffer_sample_positions */ #ifdef GL_AMD_interleaved_elements static GLboolean _glewInit_GL_AMD_interleaved_elements () { GLboolean r = GL_FALSE; r = ((glVertexAttribParameteriAMD = (PFNGLVERTEXATTRIBPARAMETERIAMDPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribParameteriAMD")) == NULL) || r; return r; } #endif /* GL_AMD_interleaved_elements */ #ifdef GL_AMD_multi_draw_indirect static GLboolean _glewInit_GL_AMD_multi_draw_indirect () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirectAMD = (PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectAMD")) == NULL) || r; r = ((glMultiDrawElementsIndirectAMD = (PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectAMD")) == NULL) || r; return r; } #endif /* GL_AMD_multi_draw_indirect */ #ifdef GL_AMD_name_gen_delete static GLboolean _glewInit_GL_AMD_name_gen_delete () { GLboolean r = GL_FALSE; r = ((glDeleteNamesAMD = (PFNGLDELETENAMESAMDPROC)glewGetProcAddress((const GLubyte*)"glDeleteNamesAMD")) == NULL) || r; r = ((glGenNamesAMD = (PFNGLGENNAMESAMDPROC)glewGetProcAddress((const GLubyte*)"glGenNamesAMD")) == NULL) || r; r = ((glIsNameAMD = (PFNGLISNAMEAMDPROC)glewGetProcAddress((const GLubyte*)"glIsNameAMD")) == NULL) || r; return r; } #endif /* GL_AMD_name_gen_delete */ #ifdef GL_AMD_occlusion_query_event static GLboolean _glewInit_GL_AMD_occlusion_query_event () { GLboolean r = GL_FALSE; r = ((glQueryObjectParameteruiAMD = (PFNGLQUERYOBJECTPARAMETERUIAMDPROC)glewGetProcAddress((const GLubyte*)"glQueryObjectParameteruiAMD")) == NULL) || r; return r; } #endif /* GL_AMD_occlusion_query_event */ #ifdef GL_AMD_performance_monitor static GLboolean _glewInit_GL_AMD_performance_monitor () { GLboolean r = GL_FALSE; r = ((glBeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC)glewGetProcAddress((const GLubyte*)"glBeginPerfMonitorAMD")) == NULL) || r; r = ((glDeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC)glewGetProcAddress((const GLubyte*)"glDeletePerfMonitorsAMD")) == NULL) || r; r = ((glEndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC)glewGetProcAddress((const GLubyte*)"glEndPerfMonitorAMD")) == NULL) || r; r = ((glGenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC)glewGetProcAddress((const GLubyte*)"glGenPerfMonitorsAMD")) == NULL) || r; r = ((glGetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCounterDataAMD")) == NULL) || r; r = ((glGetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCounterInfoAMD")) == NULL) || r; r = ((glGetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCounterStringAMD")) == NULL) || r; r = ((glGetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorCountersAMD")) == NULL) || r; r = ((glGetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorGroupStringAMD")) == NULL) || r; r = ((glGetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC)glewGetProcAddress((const GLubyte*)"glGetPerfMonitorGroupsAMD")) == NULL) || r; r = ((glSelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)glewGetProcAddress((const GLubyte*)"glSelectPerfMonitorCountersAMD")) == NULL) || r; return r; } #endif /* GL_AMD_performance_monitor */ #ifdef GL_AMD_sample_positions static GLboolean _glewInit_GL_AMD_sample_positions () { GLboolean r = GL_FALSE; r = ((glSetMultisamplefvAMD = (PFNGLSETMULTISAMPLEFVAMDPROC)glewGetProcAddress((const GLubyte*)"glSetMultisamplefvAMD")) == NULL) || r; return r; } #endif /* GL_AMD_sample_positions */ #ifdef GL_AMD_sparse_texture static GLboolean _glewInit_GL_AMD_sparse_texture () { GLboolean r = GL_FALSE; r = ((glTexStorageSparseAMD = (PFNGLTEXSTORAGESPARSEAMDPROC)glewGetProcAddress((const GLubyte*)"glTexStorageSparseAMD")) == NULL) || r; r = ((glTextureStorageSparseAMD = (PFNGLTEXTURESTORAGESPARSEAMDPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageSparseAMD")) == NULL) || r; return r; } #endif /* GL_AMD_sparse_texture */ #ifdef GL_AMD_stencil_operation_extended static GLboolean _glewInit_GL_AMD_stencil_operation_extended () { GLboolean r = GL_FALSE; r = ((glStencilOpValueAMD = (PFNGLSTENCILOPVALUEAMDPROC)glewGetProcAddress((const GLubyte*)"glStencilOpValueAMD")) == NULL) || r; return r; } #endif /* GL_AMD_stencil_operation_extended */ #ifdef GL_AMD_vertex_shader_tessellator static GLboolean _glewInit_GL_AMD_vertex_shader_tessellator () { GLboolean r = GL_FALSE; r = ((glTessellationFactorAMD = (PFNGLTESSELLATIONFACTORAMDPROC)glewGetProcAddress((const GLubyte*)"glTessellationFactorAMD")) == NULL) || r; r = ((glTessellationModeAMD = (PFNGLTESSELLATIONMODEAMDPROC)glewGetProcAddress((const GLubyte*)"glTessellationModeAMD")) == NULL) || r; return r; } #endif /* GL_AMD_vertex_shader_tessellator */ #ifdef GL_ANGLE_framebuffer_blit static GLboolean _glewInit_GL_ANGLE_framebuffer_blit () { GLboolean r = GL_FALSE; r = ((glBlitFramebufferANGLE = (PFNGLBLITFRAMEBUFFERANGLEPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferANGLE")) == NULL) || r; return r; } #endif /* GL_ANGLE_framebuffer_blit */ #ifdef GL_ANGLE_framebuffer_multisample static GLboolean _glewInit_GL_ANGLE_framebuffer_multisample () { GLboolean r = GL_FALSE; r = ((glRenderbufferStorageMultisampleANGLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleANGLE")) == NULL) || r; return r; } #endif /* GL_ANGLE_framebuffer_multisample */ #ifdef GL_ANGLE_instanced_arrays static GLboolean _glewInit_GL_ANGLE_instanced_arrays () { GLboolean r = GL_FALSE; r = ((glDrawArraysInstancedANGLE = (PFNGLDRAWARRAYSINSTANCEDANGLEPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedANGLE")) == NULL) || r; r = ((glDrawElementsInstancedANGLE = (PFNGLDRAWELEMENTSINSTANCEDANGLEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedANGLE")) == NULL) || r; r = ((glVertexAttribDivisorANGLE = (PFNGLVERTEXATTRIBDIVISORANGLEPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorANGLE")) == NULL) || r; return r; } #endif /* GL_ANGLE_instanced_arrays */ #ifdef GL_ANGLE_timer_query static GLboolean _glewInit_GL_ANGLE_timer_query () { GLboolean r = GL_FALSE; r = ((glBeginQueryANGLE = (PFNGLBEGINQUERYANGLEPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryANGLE")) == NULL) || r; r = ((glDeleteQueriesANGLE = (PFNGLDELETEQUERIESANGLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesANGLE")) == NULL) || r; r = ((glEndQueryANGLE = (PFNGLENDQUERYANGLEPROC)glewGetProcAddress((const GLubyte*)"glEndQueryANGLE")) == NULL) || r; r = ((glGenQueriesANGLE = (PFNGLGENQUERIESANGLEPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesANGLE")) == NULL) || r; r = ((glGetQueryObjecti64vANGLE = (PFNGLGETQUERYOBJECTI64VANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjecti64vANGLE")) == NULL) || r; r = ((glGetQueryObjectivANGLE = (PFNGLGETQUERYOBJECTIVANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivANGLE")) == NULL) || r; r = ((glGetQueryObjectui64vANGLE = (PFNGLGETQUERYOBJECTUI64VANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectui64vANGLE")) == NULL) || r; r = ((glGetQueryObjectuivANGLE = (PFNGLGETQUERYOBJECTUIVANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivANGLE")) == NULL) || r; r = ((glGetQueryivANGLE = (PFNGLGETQUERYIVANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivANGLE")) == NULL) || r; r = ((glIsQueryANGLE = (PFNGLISQUERYANGLEPROC)glewGetProcAddress((const GLubyte*)"glIsQueryANGLE")) == NULL) || r; r = ((glQueryCounterANGLE = (PFNGLQUERYCOUNTERANGLEPROC)glewGetProcAddress((const GLubyte*)"glQueryCounterANGLE")) == NULL) || r; return r; } #endif /* GL_ANGLE_timer_query */ #ifdef GL_ANGLE_translated_shader_source static GLboolean _glewInit_GL_ANGLE_translated_shader_source () { GLboolean r = GL_FALSE; r = ((glGetTranslatedShaderSourceANGLE = (PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)glewGetProcAddress((const GLubyte*)"glGetTranslatedShaderSourceANGLE")) == NULL) || r; return r; } #endif /* GL_ANGLE_translated_shader_source */ #ifdef GL_APPLE_copy_texture_levels static GLboolean _glewInit_GL_APPLE_copy_texture_levels () { GLboolean r = GL_FALSE; r = ((glCopyTextureLevelsAPPLE = (PFNGLCOPYTEXTURELEVELSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureLevelsAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_copy_texture_levels */ #ifdef GL_APPLE_element_array static GLboolean _glewInit_GL_APPLE_element_array () { GLboolean r = GL_FALSE; r = ((glDrawElementArrayAPPLE = (PFNGLDRAWELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementArrayAPPLE")) == NULL) || r; r = ((glDrawRangeElementArrayAPPLE = (PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementArrayAPPLE")) == NULL) || r; r = ((glElementPointerAPPLE = (PFNGLELEMENTPOINTERAPPLEPROC)glewGetProcAddress((const GLubyte*)"glElementPointerAPPLE")) == NULL) || r; r = ((glMultiDrawElementArrayAPPLE = (PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementArrayAPPLE")) == NULL) || r; r = ((glMultiDrawRangeElementArrayAPPLE = (PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawRangeElementArrayAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_element_array */ #ifdef GL_APPLE_fence static GLboolean _glewInit_GL_APPLE_fence () { GLboolean r = GL_FALSE; r = ((glDeleteFencesAPPLE = (PFNGLDELETEFENCESAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteFencesAPPLE")) == NULL) || r; r = ((glFinishFenceAPPLE = (PFNGLFINISHFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFinishFenceAPPLE")) == NULL) || r; r = ((glFinishObjectAPPLE = (PFNGLFINISHOBJECTAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFinishObjectAPPLE")) == NULL) || r; r = ((glGenFencesAPPLE = (PFNGLGENFENCESAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGenFencesAPPLE")) == NULL) || r; r = ((glIsFenceAPPLE = (PFNGLISFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsFenceAPPLE")) == NULL) || r; r = ((glSetFenceAPPLE = (PFNGLSETFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glSetFenceAPPLE")) == NULL) || r; r = ((glTestFenceAPPLE = (PFNGLTESTFENCEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glTestFenceAPPLE")) == NULL) || r; r = ((glTestObjectAPPLE = (PFNGLTESTOBJECTAPPLEPROC)glewGetProcAddress((const GLubyte*)"glTestObjectAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_fence */ #ifdef GL_APPLE_flush_buffer_range static GLboolean _glewInit_GL_APPLE_flush_buffer_range () { GLboolean r = GL_FALSE; r = ((glBufferParameteriAPPLE = (PFNGLBUFFERPARAMETERIAPPLEPROC)glewGetProcAddress((const GLubyte*)"glBufferParameteriAPPLE")) == NULL) || r; r = ((glFlushMappedBufferRangeAPPLE = (PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRangeAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_flush_buffer_range */ #ifdef GL_APPLE_framebuffer_multisample static GLboolean _glewInit_GL_APPLE_framebuffer_multisample () { GLboolean r = GL_FALSE; r = ((glRenderbufferStorageMultisampleAPPLE = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleAPPLE")) == NULL) || r; r = ((glResolveMultisampleFramebufferAPPLE = (PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)glewGetProcAddress((const GLubyte*)"glResolveMultisampleFramebufferAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_framebuffer_multisample */ #ifdef GL_APPLE_object_purgeable static GLboolean _glewInit_GL_APPLE_object_purgeable () { GLboolean r = GL_FALSE; r = ((glGetObjectParameterivAPPLE = (PFNGLGETOBJECTPARAMETERIVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetObjectParameterivAPPLE")) == NULL) || r; r = ((glObjectPurgeableAPPLE = (PFNGLOBJECTPURGEABLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glObjectPurgeableAPPLE")) == NULL) || r; r = ((glObjectUnpurgeableAPPLE = (PFNGLOBJECTUNPURGEABLEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glObjectUnpurgeableAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_object_purgeable */ #ifdef GL_APPLE_sync static GLboolean _glewInit_GL_APPLE_sync () { GLboolean r = GL_FALSE; r = ((glClientWaitSyncAPPLE = (PFNGLCLIENTWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSyncAPPLE")) == NULL) || r; r = ((glDeleteSyncAPPLE = (PFNGLDELETESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteSyncAPPLE")) == NULL) || r; r = ((glFenceSyncAPPLE = (PFNGLFENCESYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFenceSyncAPPLE")) == NULL) || r; r = ((glGetInteger64vAPPLE = (PFNGLGETINTEGER64VAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64vAPPLE")) == NULL) || r; r = ((glGetSyncivAPPLE = (PFNGLGETSYNCIVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetSyncivAPPLE")) == NULL) || r; r = ((glIsSyncAPPLE = (PFNGLISSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsSyncAPPLE")) == NULL) || r; r = ((glWaitSyncAPPLE = (PFNGLWAITSYNCAPPLEPROC)glewGetProcAddress((const GLubyte*)"glWaitSyncAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_sync */ #ifdef GL_APPLE_texture_range static GLboolean _glewInit_GL_APPLE_texture_range () { GLboolean r = GL_FALSE; r = ((glGetTexParameterPointervAPPLE = (PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterPointervAPPLE")) == NULL) || r; r = ((glTextureRangeAPPLE = (PFNGLTEXTURERANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glTextureRangeAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_texture_range */ #ifdef GL_APPLE_vertex_array_object static GLboolean _glewInit_GL_APPLE_vertex_array_object () { GLboolean r = GL_FALSE; r = ((glBindVertexArrayAPPLE = (PFNGLBINDVERTEXARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArrayAPPLE")) == NULL) || r; r = ((glDeleteVertexArraysAPPLE = (PFNGLDELETEVERTEXARRAYSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysAPPLE")) == NULL) || r; r = ((glGenVertexArraysAPPLE = (PFNGLGENVERTEXARRAYSAPPLEPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysAPPLE")) == NULL) || r; r = ((glIsVertexArrayAPPLE = (PFNGLISVERTEXARRAYAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArrayAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_vertex_array_object */ #ifdef GL_APPLE_vertex_array_range static GLboolean _glewInit_GL_APPLE_vertex_array_range () { GLboolean r = GL_FALSE; r = ((glFlushVertexArrayRangeAPPLE = (PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glFlushVertexArrayRangeAPPLE")) == NULL) || r; r = ((glVertexArrayParameteriAPPLE = (PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayParameteriAPPLE")) == NULL) || r; r = ((glVertexArrayRangeAPPLE = (PFNGLVERTEXARRAYRANGEAPPLEPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayRangeAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_vertex_array_range */ #ifdef GL_APPLE_vertex_program_evaluators static GLboolean _glewInit_GL_APPLE_vertex_program_evaluators () { GLboolean r = GL_FALSE; r = ((glDisableVertexAttribAPPLE = (PFNGLDISABLEVERTEXATTRIBAPPLEPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexAttribAPPLE")) == NULL) || r; r = ((glEnableVertexAttribAPPLE = (PFNGLENABLEVERTEXATTRIBAPPLEPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexAttribAPPLE")) == NULL) || r; r = ((glIsVertexAttribEnabledAPPLE = (PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)glewGetProcAddress((const GLubyte*)"glIsVertexAttribEnabledAPPLE")) == NULL) || r; r = ((glMapVertexAttrib1dAPPLE = (PFNGLMAPVERTEXATTRIB1DAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib1dAPPLE")) == NULL) || r; r = ((glMapVertexAttrib1fAPPLE = (PFNGLMAPVERTEXATTRIB1FAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib1fAPPLE")) == NULL) || r; r = ((glMapVertexAttrib2dAPPLE = (PFNGLMAPVERTEXATTRIB2DAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib2dAPPLE")) == NULL) || r; r = ((glMapVertexAttrib2fAPPLE = (PFNGLMAPVERTEXATTRIB2FAPPLEPROC)glewGetProcAddress((const GLubyte*)"glMapVertexAttrib2fAPPLE")) == NULL) || r; return r; } #endif /* GL_APPLE_vertex_program_evaluators */ #ifdef GL_ARB_ES2_compatibility static GLboolean _glewInit_GL_ARB_ES2_compatibility () { GLboolean r = GL_FALSE; r = ((glClearDepthf = (PFNGLCLEARDEPTHFPROC)glewGetProcAddress((const GLubyte*)"glClearDepthf")) == NULL) || r; r = ((glDepthRangef = (PFNGLDEPTHRANGEFPROC)glewGetProcAddress((const GLubyte*)"glDepthRangef")) == NULL) || r; r = ((glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)glewGetProcAddress((const GLubyte*)"glGetShaderPrecisionFormat")) == NULL) || r; r = ((glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)glewGetProcAddress((const GLubyte*)"glReleaseShaderCompiler")) == NULL) || r; r = ((glShaderBinary = (PFNGLSHADERBINARYPROC)glewGetProcAddress((const GLubyte*)"glShaderBinary")) == NULL) || r; return r; } #endif /* GL_ARB_ES2_compatibility */ #ifdef GL_ARB_ES3_1_compatibility static GLboolean _glewInit_GL_ARB_ES3_1_compatibility () { GLboolean r = GL_FALSE; r = ((glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)glewGetProcAddress((const GLubyte*)"glMemoryBarrierByRegion")) == NULL) || r; return r; } #endif /* GL_ARB_ES3_1_compatibility */ #ifdef GL_ARB_ES3_2_compatibility static GLboolean _glewInit_GL_ARB_ES3_2_compatibility () { GLboolean r = GL_FALSE; r = ((glPrimitiveBoundingBoxARB = (PFNGLPRIMITIVEBOUNDINGBOXARBPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveBoundingBoxARB")) == NULL) || r; return r; } #endif /* GL_ARB_ES3_2_compatibility */ #ifdef GL_ARB_base_instance static GLboolean _glewInit_GL_ARB_base_instance () { GLboolean r = GL_FALSE; r = ((glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedBaseInstance")) == NULL) || r; r = ((glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseInstance")) == NULL) || r; r = ((glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexBaseInstance")) == NULL) || r; return r; } #endif /* GL_ARB_base_instance */ #ifdef GL_ARB_bindless_texture static GLboolean _glewInit_GL_ARB_bindless_texture () { GLboolean r = GL_FALSE; r = ((glGetImageHandleARB = (PFNGLGETIMAGEHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetImageHandleARB")) == NULL) || r; r = ((glGetTextureHandleARB = (PFNGLGETTEXTUREHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleARB")) == NULL) || r; r = ((glGetTextureSamplerHandleARB = (PFNGLGETTEXTURESAMPLERHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleARB")) == NULL) || r; r = ((glGetVertexAttribLui64vARB = (PFNGLGETVERTEXATTRIBLUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLui64vARB")) == NULL) || r; r = ((glIsImageHandleResidentARB = (PFNGLISIMAGEHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glIsImageHandleResidentARB")) == NULL) || r; r = ((glIsTextureHandleResidentARB = (PFNGLISTEXTUREHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glIsTextureHandleResidentARB")) == NULL) || r; r = ((glMakeImageHandleNonResidentARB = (PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleNonResidentARB")) == NULL) || r; r = ((glMakeImageHandleResidentARB = (PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleResidentARB")) == NULL) || r; r = ((glMakeTextureHandleNonResidentARB = (PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleNonResidentARB")) == NULL) || r; r = ((glMakeTextureHandleResidentARB = (PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleResidentARB")) == NULL) || r; r = ((glProgramUniformHandleui64ARB = (PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64ARB")) == NULL) || r; r = ((glProgramUniformHandleui64vARB = (PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vARB")) == NULL) || r; r = ((glUniformHandleui64ARB = (PFNGLUNIFORMHANDLEUI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64ARB")) == NULL) || r; r = ((glUniformHandleui64vARB = (PFNGLUNIFORMHANDLEUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vARB")) == NULL) || r; r = ((glVertexAttribL1ui64ARB = (PFNGLVERTEXATTRIBL1UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64ARB")) == NULL) || r; r = ((glVertexAttribL1ui64vARB = (PFNGLVERTEXATTRIBL1UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64vARB")) == NULL) || r; return r; } #endif /* GL_ARB_bindless_texture */ #ifdef GL_ARB_blend_func_extended static GLboolean _glewInit_GL_ARB_blend_func_extended () { GLboolean r = GL_FALSE; r = ((glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationIndexed")) == NULL) || r; r = ((glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataIndex")) == NULL) || r; return r; } #endif /* GL_ARB_blend_func_extended */ #ifdef GL_ARB_buffer_storage static GLboolean _glewInit_GL_ARB_buffer_storage () { GLboolean r = GL_FALSE; r = ((glBufferStorage = (PFNGLBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glBufferStorage")) == NULL) || r; return r; } #endif /* GL_ARB_buffer_storage */ #ifdef GL_ARB_cl_event static GLboolean _glewInit_GL_ARB_cl_event () { GLboolean r = GL_FALSE; r = ((glCreateSyncFromCLeventARB = (PFNGLCREATESYNCFROMCLEVENTARBPROC)glewGetProcAddress((const GLubyte*)"glCreateSyncFromCLeventARB")) == NULL) || r; return r; } #endif /* GL_ARB_cl_event */ #ifdef GL_ARB_clear_buffer_object static GLboolean _glewInit_GL_ARB_clear_buffer_object () { GLboolean r = GL_FALSE; r = ((glClearBufferData = (PFNGLCLEARBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glClearBufferData")) == NULL) || r; r = ((glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glClearBufferSubData")) == NULL) || r; r = ((glClearNamedBufferDataEXT = (PFNGLCLEARNAMEDBUFFERDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferDataEXT")) == NULL) || r; r = ((glClearNamedBufferSubDataEXT = (PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferSubDataEXT")) == NULL) || r; return r; } #endif /* GL_ARB_clear_buffer_object */ #ifdef GL_ARB_clear_texture static GLboolean _glewInit_GL_ARB_clear_texture () { GLboolean r = GL_FALSE; r = ((glClearTexImage = (PFNGLCLEARTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glClearTexImage")) == NULL) || r; r = ((glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glClearTexSubImage")) == NULL) || r; return r; } #endif /* GL_ARB_clear_texture */ #ifdef GL_ARB_clip_control static GLboolean _glewInit_GL_ARB_clip_control () { GLboolean r = GL_FALSE; r = ((glClipControl = (PFNGLCLIPCONTROLPROC)glewGetProcAddress((const GLubyte*)"glClipControl")) == NULL) || r; return r; } #endif /* GL_ARB_clip_control */ #ifdef GL_ARB_color_buffer_float static GLboolean _glewInit_GL_ARB_color_buffer_float () { GLboolean r = GL_FALSE; r = ((glClampColorARB = (PFNGLCLAMPCOLORARBPROC)glewGetProcAddress((const GLubyte*)"glClampColorARB")) == NULL) || r; return r; } #endif /* GL_ARB_color_buffer_float */ #ifdef GL_ARB_compute_shader static GLboolean _glewInit_GL_ARB_compute_shader () { GLboolean r = GL_FALSE; r = ((glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)glewGetProcAddress((const GLubyte*)"glDispatchCompute")) == NULL) || r; r = ((glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glDispatchComputeIndirect")) == NULL) || r; return r; } #endif /* GL_ARB_compute_shader */ #ifdef GL_ARB_compute_variable_group_size static GLboolean _glewInit_GL_ARB_compute_variable_group_size () { GLboolean r = GL_FALSE; r = ((glDispatchComputeGroupSizeARB = (PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)glewGetProcAddress((const GLubyte*)"glDispatchComputeGroupSizeARB")) == NULL) || r; return r; } #endif /* GL_ARB_compute_variable_group_size */ #ifdef GL_ARB_copy_buffer static GLboolean _glewInit_GL_ARB_copy_buffer () { GLboolean r = GL_FALSE; r = ((glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glCopyBufferSubData")) == NULL) || r; return r; } #endif /* GL_ARB_copy_buffer */ #ifdef GL_ARB_copy_image static GLboolean _glewInit_GL_ARB_copy_image () { GLboolean r = GL_FALSE; r = ((glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubData")) == NULL) || r; return r; } #endif /* GL_ARB_copy_image */ #ifdef GL_ARB_debug_output static GLboolean _glewInit_GL_ARB_debug_output () { GLboolean r = GL_FALSE; r = ((glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageCallbackARB")) == NULL) || r; r = ((glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageControlARB")) == NULL) || r; r = ((glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageInsertARB")) == NULL) || r; r = ((glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)glewGetProcAddress((const GLubyte*)"glGetDebugMessageLogARB")) == NULL) || r; return r; } #endif /* GL_ARB_debug_output */ #ifdef GL_ARB_direct_state_access static GLboolean _glewInit_GL_ARB_direct_state_access () { GLboolean r = GL_FALSE; r = ((glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC)glewGetProcAddress((const GLubyte*)"glBindTextureUnit")) == NULL) || r; r = ((glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBlitNamedFramebuffer")) == NULL) || r; r = ((glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)glewGetProcAddress((const GLubyte*)"glCheckNamedFramebufferStatus")) == NULL) || r; r = ((glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferData")) == NULL) || r; r = ((glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glClearNamedBufferSubData")) == NULL) || r; r = ((glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferfi")) == NULL) || r; r = ((glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferfv")) == NULL) || r; r = ((glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferiv")) == NULL) || r; r = ((glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)glewGetProcAddress((const GLubyte*)"glClearNamedFramebufferuiv")) == NULL) || r; r = ((glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage1D")) == NULL) || r; r = ((glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage2D")) == NULL) || r; r = ((glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage3D")) == NULL) || r; r = ((glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glCopyNamedBufferSubData")) == NULL) || r; r = ((glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage1D")) == NULL) || r; r = ((glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage2D")) == NULL) || r; r = ((glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage3D")) == NULL) || r; r = ((glCreateBuffers = (PFNGLCREATEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glCreateBuffers")) == NULL) || r; r = ((glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glCreateFramebuffers")) == NULL) || r; r = ((glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC)glewGetProcAddress((const GLubyte*)"glCreateProgramPipelines")) == NULL) || r; r = ((glCreateQueries = (PFNGLCREATEQUERIESPROC)glewGetProcAddress((const GLubyte*)"glCreateQueries")) == NULL) || r; r = ((glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glCreateRenderbuffers")) == NULL) || r; r = ((glCreateSamplers = (PFNGLCREATESAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glCreateSamplers")) == NULL) || r; r = ((glCreateTextures = (PFNGLCREATETEXTURESPROC)glewGetProcAddress((const GLubyte*)"glCreateTextures")) == NULL) || r; r = ((glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC)glewGetProcAddress((const GLubyte*)"glCreateTransformFeedbacks")) == NULL) || r; r = ((glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC)glewGetProcAddress((const GLubyte*)"glCreateVertexArrays")) == NULL) || r; r = ((glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexArrayAttrib")) == NULL) || r; r = ((glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexArrayAttrib")) == NULL) || r; r = ((glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedNamedBufferRange")) == NULL) || r; r = ((glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC)glewGetProcAddress((const GLubyte*)"glGenerateTextureMipmap")) == NULL) || r; r = ((glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTextureImage")) == NULL) || r; r = ((glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameteri64v")) == NULL) || r; r = ((glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameteriv")) == NULL) || r; r = ((glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferPointerv")) == NULL) || r; r = ((glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferSubData")) == NULL) || r; r = ((glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferAttachmentParameteriv")) == NULL) || r; r = ((glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameteriv")) == NULL) || r; r = ((glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedRenderbufferParameteriv")) == NULL) || r; r = ((glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjecti64v")) == NULL) || r; r = ((glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjectiv")) == NULL) || r; r = ((glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjectui64v")) == NULL) || r; r = ((glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryBufferObjectuiv")) == NULL) || r; r = ((glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetTextureImage")) == NULL) || r; r = ((glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameterfv")) == NULL) || r; r = ((glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameteriv")) == NULL) || r; r = ((glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIiv")) == NULL) || r; r = ((glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIuiv")) == NULL) || r; r = ((glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterfv")) == NULL) || r; r = ((glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameteriv")) == NULL) || r; r = ((glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbacki64_v")) == NULL) || r; r = ((glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbacki_v")) == NULL) || r; r = ((glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackiv")) == NULL) || r; r = ((glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIndexed64iv")) == NULL) || r; r = ((glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIndexediv")) == NULL) || r; r = ((glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayiv")) == NULL) || r; r = ((glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateNamedFramebufferData")) == NULL) || r; r = ((glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateNamedFramebufferSubData")) == NULL) || r; r = ((glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBuffer")) == NULL) || r; r = ((glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBufferRange")) == NULL) || r; r = ((glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferData")) == NULL) || r; r = ((glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorage")) == NULL) || r; r = ((glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferSubData")) == NULL) || r; r = ((glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferDrawBuffer")) == NULL) || r; r = ((glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferDrawBuffers")) == NULL) || r; r = ((glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferParameteri")) == NULL) || r; r = ((glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferReadBuffer")) == NULL) || r; r = ((glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferRenderbuffer")) == NULL) || r; r = ((glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture")) == NULL) || r; r = ((glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureLayer")) == NULL) || r; r = ((glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorage")) == NULL) || r; r = ((glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisample")) == NULL) || r; r = ((glTextureBuffer = (PFNGLTEXTUREBUFFERPROC)glewGetProcAddress((const GLubyte*)"glTextureBuffer")) == NULL) || r; r = ((glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glTextureBufferRange")) == NULL) || r; r = ((glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIiv")) == NULL) || r; r = ((glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIuiv")) == NULL) || r; r = ((glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterf")) == NULL) || r; r = ((glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterfv")) == NULL) || r; r = ((glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glTextureParameteri")) == NULL) || r; r = ((glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glTextureParameteriv")) == NULL) || r; r = ((glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1D")) == NULL) || r; r = ((glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2D")) == NULL) || r; r = ((glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DMultisample")) == NULL) || r; r = ((glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3D")) == NULL) || r; r = ((glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DMultisample")) == NULL) || r; r = ((glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage1D")) == NULL) || r; r = ((glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage2D")) == NULL) || r; r = ((glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage3D")) == NULL) || r; r = ((glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackBufferBase")) == NULL) || r; r = ((glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackBufferRange")) == NULL) || r; r = ((glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC)glewGetProcAddress((const GLubyte*)"glUnmapNamedBuffer")) == NULL) || r; r = ((glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribBinding")) == NULL) || r; r = ((glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribFormat")) == NULL) || r; r = ((glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribIFormat")) == NULL) || r; r = ((glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayAttribLFormat")) == NULL) || r; r = ((glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayBindingDivisor")) == NULL) || r; r = ((glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayElementBuffer")) == NULL) || r; r = ((glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexBuffer")) == NULL) || r; r = ((glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexBuffers")) == NULL) || r; return r; } #endif /* GL_ARB_direct_state_access */ #ifdef GL_ARB_draw_buffers static GLboolean _glewInit_GL_ARB_draw_buffers () { GLboolean r = GL_FALSE; r = ((glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersARB")) == NULL) || r; return r; } #endif /* GL_ARB_draw_buffers */ #ifdef GL_ARB_draw_buffers_blend static GLboolean _glewInit_GL_ARB_draw_buffers_blend () { GLboolean r = GL_FALSE; r = ((glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiARB")) == NULL) || r; r = ((glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiARB")) == NULL) || r; r = ((glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiARB")) == NULL) || r; r = ((glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciARB")) == NULL) || r; return r; } #endif /* GL_ARB_draw_buffers_blend */ #ifdef GL_ARB_draw_elements_base_vertex static GLboolean _glewInit_GL_ARB_draw_elements_base_vertex () { GLboolean r = GL_FALSE; r = ((glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsBaseVertex")) == NULL) || r; r = ((glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertex")) == NULL) || r; r = ((glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsBaseVertex")) == NULL) || r; r = ((glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsBaseVertex")) == NULL) || r; return r; } #endif /* GL_ARB_draw_elements_base_vertex */ #ifdef GL_ARB_draw_indirect static GLboolean _glewInit_GL_ARB_draw_indirect () { GLboolean r = GL_FALSE; r = ((glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysIndirect")) == NULL) || r; r = ((glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsIndirect")) == NULL) || r; return r; } #endif /* GL_ARB_draw_indirect */ #ifdef GL_ARB_framebuffer_no_attachments static GLboolean _glewInit_GL_ARB_framebuffer_no_attachments () { GLboolean r = GL_FALSE; r = ((glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glFramebufferParameteri")) == NULL) || r; r = ((glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameteriv")) == NULL) || r; r = ((glGetNamedFramebufferParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferParameterivEXT")) == NULL) || r; r = ((glNamedFramebufferParameteriEXT = (PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferParameteriEXT")) == NULL) || r; return r; } #endif /* GL_ARB_framebuffer_no_attachments */ #ifdef GL_ARB_framebuffer_object static GLboolean _glewInit_GL_ARB_framebuffer_object () { GLboolean r = GL_FALSE; r = ((glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindFramebuffer")) == NULL) || r; r = ((glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbuffer")) == NULL) || r; r = ((glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebuffer")) == NULL) || r; r = ((glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatus")) == NULL) || r; r = ((glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffers")) == NULL) || r; r = ((glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffers")) == NULL) || r; r = ((glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbuffer")) == NULL) || r; r = ((glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture1D")) == NULL) || r; r = ((glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2D")) == NULL) || r; r = ((glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3D")) == NULL) || r; r = ((glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayer")) == NULL) || r; r = ((glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffers")) == NULL) || r; r = ((glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffers")) == NULL) || r; r = ((glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmap")) == NULL) || r; r = ((glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameteriv")) == NULL) || r; r = ((glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameteriv")) == NULL) || r; r = ((glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glIsFramebuffer")) == NULL) || r; r = ((glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbuffer")) == NULL) || r; r = ((glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorage")) == NULL) || r; r = ((glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisample")) == NULL) || r; return r; } #endif /* GL_ARB_framebuffer_object */ #ifdef GL_ARB_geometry_shader4 static GLboolean _glewInit_GL_ARB_geometry_shader4 () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureARB")) == NULL) || r; r = ((glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureFaceARB")) == NULL) || r; r = ((glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerARB")) == NULL) || r; r = ((glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC)glewGetProcAddress((const GLubyte*)"glProgramParameteriARB")) == NULL) || r; return r; } #endif /* GL_ARB_geometry_shader4 */ #ifdef GL_ARB_get_program_binary static GLboolean _glewInit_GL_ARB_get_program_binary () { GLboolean r = GL_FALSE; r = ((glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)glewGetProcAddress((const GLubyte*)"glGetProgramBinary")) == NULL) || r; r = ((glProgramBinary = (PFNGLPROGRAMBINARYPROC)glewGetProcAddress((const GLubyte*)"glProgramBinary")) == NULL) || r; r = ((glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glProgramParameteri")) == NULL) || r; return r; } #endif /* GL_ARB_get_program_binary */ #ifdef GL_ARB_get_texture_sub_image static GLboolean _glewInit_GL_ARB_get_texture_sub_image () { GLboolean r = GL_FALSE; r = ((glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTextureSubImage")) == NULL) || r; r = ((glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSubImage")) == NULL) || r; return r; } #endif /* GL_ARB_get_texture_sub_image */ #ifdef GL_ARB_gl_spirv static GLboolean _glewInit_GL_ARB_gl_spirv () { GLboolean r = GL_FALSE; r = ((glSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC)glewGetProcAddress((const GLubyte*)"glSpecializeShaderARB")) == NULL) || r; return r; } #endif /* GL_ARB_gl_spirv */ #ifdef GL_ARB_gpu_shader_fp64 static GLboolean _glewInit_GL_ARB_gpu_shader_fp64 () { GLboolean r = GL_FALSE; r = ((glGetUniformdv = (PFNGLGETUNIFORMDVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformdv")) == NULL) || r; r = ((glUniform1d = (PFNGLUNIFORM1DPROC)glewGetProcAddress((const GLubyte*)"glUniform1d")) == NULL) || r; r = ((glUniform1dv = (PFNGLUNIFORM1DVPROC)glewGetProcAddress((const GLubyte*)"glUniform1dv")) == NULL) || r; r = ((glUniform2d = (PFNGLUNIFORM2DPROC)glewGetProcAddress((const GLubyte*)"glUniform2d")) == NULL) || r; r = ((glUniform2dv = (PFNGLUNIFORM2DVPROC)glewGetProcAddress((const GLubyte*)"glUniform2dv")) == NULL) || r; r = ((glUniform3d = (PFNGLUNIFORM3DPROC)glewGetProcAddress((const GLubyte*)"glUniform3d")) == NULL) || r; r = ((glUniform3dv = (PFNGLUNIFORM3DVPROC)glewGetProcAddress((const GLubyte*)"glUniform3dv")) == NULL) || r; r = ((glUniform4d = (PFNGLUNIFORM4DPROC)glewGetProcAddress((const GLubyte*)"glUniform4d")) == NULL) || r; r = ((glUniform4dv = (PFNGLUNIFORM4DVPROC)glewGetProcAddress((const GLubyte*)"glUniform4dv")) == NULL) || r; r = ((glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2dv")) == NULL) || r; r = ((glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3dv")) == NULL) || r; r = ((glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4dv")) == NULL) || r; r = ((glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3dv")) == NULL) || r; r = ((glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2dv")) == NULL) || r; r = ((glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4dv")) == NULL) || r; r = ((glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4dv")) == NULL) || r; r = ((glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2dv")) == NULL) || r; r = ((glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3dv")) == NULL) || r; return r; } #endif /* GL_ARB_gpu_shader_fp64 */ #ifdef GL_ARB_gpu_shader_int64 static GLboolean _glewInit_GL_ARB_gpu_shader_int64 () { GLboolean r = GL_FALSE; r = ((glGetUniformi64vARB = (PFNGLGETUNIFORMI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformi64vARB")) == NULL) || r; r = ((glGetUniformui64vARB = (PFNGLGETUNIFORMUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformui64vARB")) == NULL) || r; r = ((glGetnUniformi64vARB = (PFNGLGETNUNIFORMI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformi64vARB")) == NULL) || r; r = ((glGetnUniformui64vARB = (PFNGLGETNUNIFORMUI64VARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformui64vARB")) == NULL) || r; r = ((glProgramUniform1i64ARB = (PFNGLPROGRAMUNIFORM1I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64ARB")) == NULL) || r; r = ((glProgramUniform1i64vARB = (PFNGLPROGRAMUNIFORM1I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64vARB")) == NULL) || r; r = ((glProgramUniform1ui64ARB = (PFNGLPROGRAMUNIFORM1UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64ARB")) == NULL) || r; r = ((glProgramUniform1ui64vARB = (PFNGLPROGRAMUNIFORM1UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64vARB")) == NULL) || r; r = ((glProgramUniform2i64ARB = (PFNGLPROGRAMUNIFORM2I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64ARB")) == NULL) || r; r = ((glProgramUniform2i64vARB = (PFNGLPROGRAMUNIFORM2I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64vARB")) == NULL) || r; r = ((glProgramUniform2ui64ARB = (PFNGLPROGRAMUNIFORM2UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64ARB")) == NULL) || r; r = ((glProgramUniform2ui64vARB = (PFNGLPROGRAMUNIFORM2UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64vARB")) == NULL) || r; r = ((glProgramUniform3i64ARB = (PFNGLPROGRAMUNIFORM3I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64ARB")) == NULL) || r; r = ((glProgramUniform3i64vARB = (PFNGLPROGRAMUNIFORM3I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64vARB")) == NULL) || r; r = ((glProgramUniform3ui64ARB = (PFNGLPROGRAMUNIFORM3UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64ARB")) == NULL) || r; r = ((glProgramUniform3ui64vARB = (PFNGLPROGRAMUNIFORM3UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64vARB")) == NULL) || r; r = ((glProgramUniform4i64ARB = (PFNGLPROGRAMUNIFORM4I64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64ARB")) == NULL) || r; r = ((glProgramUniform4i64vARB = (PFNGLPROGRAMUNIFORM4I64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64vARB")) == NULL) || r; r = ((glProgramUniform4ui64ARB = (PFNGLPROGRAMUNIFORM4UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64ARB")) == NULL) || r; r = ((glProgramUniform4ui64vARB = (PFNGLPROGRAMUNIFORM4UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64vARB")) == NULL) || r; r = ((glUniform1i64ARB = (PFNGLUNIFORM1I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64ARB")) == NULL) || r; r = ((glUniform1i64vARB = (PFNGLUNIFORM1I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64vARB")) == NULL) || r; r = ((glUniform1ui64ARB = (PFNGLUNIFORM1UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64ARB")) == NULL) || r; r = ((glUniform1ui64vARB = (PFNGLUNIFORM1UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64vARB")) == NULL) || r; r = ((glUniform2i64ARB = (PFNGLUNIFORM2I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64ARB")) == NULL) || r; r = ((glUniform2i64vARB = (PFNGLUNIFORM2I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64vARB")) == NULL) || r; r = ((glUniform2ui64ARB = (PFNGLUNIFORM2UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64ARB")) == NULL) || r; r = ((glUniform2ui64vARB = (PFNGLUNIFORM2UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64vARB")) == NULL) || r; r = ((glUniform3i64ARB = (PFNGLUNIFORM3I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64ARB")) == NULL) || r; r = ((glUniform3i64vARB = (PFNGLUNIFORM3I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64vARB")) == NULL) || r; r = ((glUniform3ui64ARB = (PFNGLUNIFORM3UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64ARB")) == NULL) || r; r = ((glUniform3ui64vARB = (PFNGLUNIFORM3UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64vARB")) == NULL) || r; r = ((glUniform4i64ARB = (PFNGLUNIFORM4I64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64ARB")) == NULL) || r; r = ((glUniform4i64vARB = (PFNGLUNIFORM4I64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64vARB")) == NULL) || r; r = ((glUniform4ui64ARB = (PFNGLUNIFORM4UI64ARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64ARB")) == NULL) || r; r = ((glUniform4ui64vARB = (PFNGLUNIFORM4UI64VARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64vARB")) == NULL) || r; return r; } #endif /* GL_ARB_gpu_shader_int64 */ #ifdef GL_ARB_imaging static GLboolean _glewInit_GL_ARB_imaging () { GLboolean r = GL_FALSE; r = ((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)"glBlendEquation")) == NULL) || r; r = ((glColorSubTable = (PFNGLCOLORSUBTABLEPROC)glewGetProcAddress((const GLubyte*)"glColorSubTable")) == NULL) || r; r = ((glColorTable = (PFNGLCOLORTABLEPROC)glewGetProcAddress((const GLubyte*)"glColorTable")) == NULL) || r; r = ((glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameterfv")) == NULL) || r; r = ((glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameteriv")) == NULL) || r; r = ((glConvolutionFilter1D = (PFNGLCONVOLUTIONFILTER1DPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter1D")) == NULL) || r; r = ((glConvolutionFilter2D = (PFNGLCONVOLUTIONFILTER2DPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter2D")) == NULL) || r; r = ((glConvolutionParameterf = (PFNGLCONVOLUTIONPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterf")) == NULL) || r; r = ((glConvolutionParameterfv = (PFNGLCONVOLUTIONPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterfv")) == NULL) || r; r = ((glConvolutionParameteri = (PFNGLCONVOLUTIONPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameteri")) == NULL) || r; r = ((glConvolutionParameteriv = (PFNGLCONVOLUTIONPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameteriv")) == NULL) || r; r = ((glCopyColorSubTable = (PFNGLCOPYCOLORSUBTABLEPROC)glewGetProcAddress((const GLubyte*)"glCopyColorSubTable")) == NULL) || r; r = ((glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC)glewGetProcAddress((const GLubyte*)"glCopyColorTable")) == NULL) || r; r = ((glCopyConvolutionFilter1D = (PFNGLCOPYCONVOLUTIONFILTER1DPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter1D")) == NULL) || r; r = ((glCopyConvolutionFilter2D = (PFNGLCOPYCONVOLUTIONFILTER2DPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter2D")) == NULL) || r; r = ((glGetColorTable = (PFNGLGETCOLORTABLEPROC)glewGetProcAddress((const GLubyte*)"glGetColorTable")) == NULL) || r; r = ((glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterfv")) == NULL) || r; r = ((glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameteriv")) == NULL) || r; r = ((glGetConvolutionFilter = (PFNGLGETCONVOLUTIONFILTERPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionFilter")) == NULL) || r; r = ((glGetConvolutionParameterfv = (PFNGLGETCONVOLUTIONPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameterfv")) == NULL) || r; r = ((glGetConvolutionParameteriv = (PFNGLGETCONVOLUTIONPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameteriv")) == NULL) || r; r = ((glGetHistogram = (PFNGLGETHISTOGRAMPROC)glewGetProcAddress((const GLubyte*)"glGetHistogram")) == NULL) || r; r = ((glGetHistogramParameterfv = (PFNGLGETHISTOGRAMPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameterfv")) == NULL) || r; r = ((glGetHistogramParameteriv = (PFNGLGETHISTOGRAMPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameteriv")) == NULL) || r; r = ((glGetMinmax = (PFNGLGETMINMAXPROC)glewGetProcAddress((const GLubyte*)"glGetMinmax")) == NULL) || r; r = ((glGetMinmaxParameterfv = (PFNGLGETMINMAXPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameterfv")) == NULL) || r; r = ((glGetMinmaxParameteriv = (PFNGLGETMINMAXPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameteriv")) == NULL) || r; r = ((glGetSeparableFilter = (PFNGLGETSEPARABLEFILTERPROC)glewGetProcAddress((const GLubyte*)"glGetSeparableFilter")) == NULL) || r; r = ((glHistogram = (PFNGLHISTOGRAMPROC)glewGetProcAddress((const GLubyte*)"glHistogram")) == NULL) || r; r = ((glMinmax = (PFNGLMINMAXPROC)glewGetProcAddress((const GLubyte*)"glMinmax")) == NULL) || r; r = ((glResetHistogram = (PFNGLRESETHISTOGRAMPROC)glewGetProcAddress((const GLubyte*)"glResetHistogram")) == NULL) || r; r = ((glResetMinmax = (PFNGLRESETMINMAXPROC)glewGetProcAddress((const GLubyte*)"glResetMinmax")) == NULL) || r; r = ((glSeparableFilter2D = (PFNGLSEPARABLEFILTER2DPROC)glewGetProcAddress((const GLubyte*)"glSeparableFilter2D")) == NULL) || r; return r; } #endif /* GL_ARB_imaging */ #ifdef GL_ARB_indirect_parameters static GLboolean _glewInit_GL_ARB_indirect_parameters () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirectCountARB = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectCountARB")) == NULL) || r; r = ((glMultiDrawElementsIndirectCountARB = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectCountARB")) == NULL) || r; return r; } #endif /* GL_ARB_indirect_parameters */ #ifdef GL_ARB_instanced_arrays static GLboolean _glewInit_GL_ARB_instanced_arrays () { GLboolean r = GL_FALSE; r = ((glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedARB")) == NULL) || r; r = ((glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedARB")) == NULL) || r; r = ((glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorARB")) == NULL) || r; return r; } #endif /* GL_ARB_instanced_arrays */ #ifdef GL_ARB_internalformat_query static GLboolean _glewInit_GL_ARB_internalformat_query () { GLboolean r = GL_FALSE; r = ((glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)glewGetProcAddress((const GLubyte*)"glGetInternalformativ")) == NULL) || r; return r; } #endif /* GL_ARB_internalformat_query */ #ifdef GL_ARB_internalformat_query2 static GLboolean _glewInit_GL_ARB_internalformat_query2 () { GLboolean r = GL_FALSE; r = ((glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)glewGetProcAddress((const GLubyte*)"glGetInternalformati64v")) == NULL) || r; return r; } #endif /* GL_ARB_internalformat_query2 */ #ifdef GL_ARB_invalidate_subdata static GLboolean _glewInit_GL_ARB_invalidate_subdata () { GLboolean r = GL_FALSE; r = ((glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateBufferData")) == NULL) || r; r = ((glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC)glewGetProcAddress((const GLubyte*)"glInvalidateBufferSubData")) == NULL) || r; r = ((glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glInvalidateFramebuffer")) == NULL) || r; r = ((glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)glewGetProcAddress((const GLubyte*)"glInvalidateSubFramebuffer")) == NULL) || r; r = ((glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"glInvalidateTexImage")) == NULL) || r; r = ((glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC)glewGetProcAddress((const GLubyte*)"glInvalidateTexSubImage")) == NULL) || r; return r; } #endif /* GL_ARB_invalidate_subdata */ #ifdef GL_ARB_map_buffer_range static GLboolean _glewInit_GL_ARB_map_buffer_range () { GLboolean r = GL_FALSE; r = ((glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRange")) == NULL) || r; r = ((glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glMapBufferRange")) == NULL) || r; return r; } #endif /* GL_ARB_map_buffer_range */ #ifdef GL_ARB_matrix_palette static GLboolean _glewInit_GL_ARB_matrix_palette () { GLboolean r = GL_FALSE; r = ((glCurrentPaletteMatrixARB = (PFNGLCURRENTPALETTEMATRIXARBPROC)glewGetProcAddress((const GLubyte*)"glCurrentPaletteMatrixARB")) == NULL) || r; r = ((glMatrixIndexPointerARB = (PFNGLMATRIXINDEXPOINTERARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexPointerARB")) == NULL) || r; r = ((glMatrixIndexubvARB = (PFNGLMATRIXINDEXUBVARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexubvARB")) == NULL) || r; r = ((glMatrixIndexuivARB = (PFNGLMATRIXINDEXUIVARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexuivARB")) == NULL) || r; r = ((glMatrixIndexusvARB = (PFNGLMATRIXINDEXUSVARBPROC)glewGetProcAddress((const GLubyte*)"glMatrixIndexusvARB")) == NULL) || r; return r; } #endif /* GL_ARB_matrix_palette */ #ifdef GL_ARB_multi_bind static GLboolean _glewInit_GL_ARB_multi_bind () { GLboolean r = GL_FALSE; r = ((glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC)glewGetProcAddress((const GLubyte*)"glBindBuffersBase")) == NULL) || r; r = ((glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC)glewGetProcAddress((const GLubyte*)"glBindBuffersRange")) == NULL) || r; r = ((glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC)glewGetProcAddress((const GLubyte*)"glBindImageTextures")) == NULL) || r; r = ((glBindSamplers = (PFNGLBINDSAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glBindSamplers")) == NULL) || r; r = ((glBindTextures = (PFNGLBINDTEXTURESPROC)glewGetProcAddress((const GLubyte*)"glBindTextures")) == NULL) || r; r = ((glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC)glewGetProcAddress((const GLubyte*)"glBindVertexBuffers")) == NULL) || r; return r; } #endif /* GL_ARB_multi_bind */ #ifdef GL_ARB_multi_draw_indirect static GLboolean _glewInit_GL_ARB_multi_draw_indirect () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirect")) == NULL) || r; r = ((glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirect")) == NULL) || r; return r; } #endif /* GL_ARB_multi_draw_indirect */ #ifdef GL_ARB_multisample static GLboolean _glewInit_GL_ARB_multisample () { GLboolean r = GL_FALSE; r = ((glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)glewGetProcAddress((const GLubyte*)"glSampleCoverageARB")) == NULL) || r; return r; } #endif /* GL_ARB_multisample */ #ifdef GL_ARB_multitexture static GLboolean _glewInit_GL_ARB_multitexture () { GLboolean r = GL_FALSE; r = ((glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)glewGetProcAddress((const GLubyte*)"glActiveTextureARB")) == NULL) || r; r = ((glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC)glewGetProcAddress((const GLubyte*)"glClientActiveTextureARB")) == NULL) || r; r = ((glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1dARB")) == NULL) || r; r = ((glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1dvARB")) == NULL) || r; r = ((glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1fARB")) == NULL) || r; r = ((glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1fvARB")) == NULL) || r; r = ((glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1iARB")) == NULL) || r; r = ((glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1ivARB")) == NULL) || r; r = ((glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1sARB")) == NULL) || r; r = ((glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1svARB")) == NULL) || r; r = ((glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2dARB")) == NULL) || r; r = ((glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2dvARB")) == NULL) || r; r = ((glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2fARB")) == NULL) || r; r = ((glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2fvARB")) == NULL) || r; r = ((glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2iARB")) == NULL) || r; r = ((glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2ivARB")) == NULL) || r; r = ((glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2sARB")) == NULL) || r; r = ((glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2svARB")) == NULL) || r; r = ((glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3dARB")) == NULL) || r; r = ((glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3dvARB")) == NULL) || r; r = ((glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3fARB")) == NULL) || r; r = ((glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3fvARB")) == NULL) || r; r = ((glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3iARB")) == NULL) || r; r = ((glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3ivARB")) == NULL) || r; r = ((glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3sARB")) == NULL) || r; r = ((glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3svARB")) == NULL) || r; r = ((glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4dARB")) == NULL) || r; r = ((glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4dvARB")) == NULL) || r; r = ((glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4fARB")) == NULL) || r; r = ((glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4fvARB")) == NULL) || r; r = ((glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4iARB")) == NULL) || r; r = ((glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4ivARB")) == NULL) || r; r = ((glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4sARB")) == NULL) || r; r = ((glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4svARB")) == NULL) || r; return r; } #endif /* GL_ARB_multitexture */ #ifdef GL_ARB_occlusion_query static GLboolean _glewInit_GL_ARB_occlusion_query () { GLboolean r = GL_FALSE; r = ((glBeginQueryARB = (PFNGLBEGINQUERYARBPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryARB")) == NULL) || r; r = ((glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteQueriesARB")) == NULL) || r; r = ((glEndQueryARB = (PFNGLENDQUERYARBPROC)glewGetProcAddress((const GLubyte*)"glEndQueryARB")) == NULL) || r; r = ((glGenQueriesARB = (PFNGLGENQUERIESARBPROC)glewGetProcAddress((const GLubyte*)"glGenQueriesARB")) == NULL) || r; r = ((glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectivARB")) == NULL) || r; r = ((glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectuivARB")) == NULL) || r; r = ((glGetQueryivARB = (PFNGLGETQUERYIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetQueryivARB")) == NULL) || r; r = ((glIsQueryARB = (PFNGLISQUERYARBPROC)glewGetProcAddress((const GLubyte*)"glIsQueryARB")) == NULL) || r; return r; } #endif /* GL_ARB_occlusion_query */ #ifdef GL_ARB_parallel_shader_compile static GLboolean _glewInit_GL_ARB_parallel_shader_compile () { GLboolean r = GL_FALSE; r = ((glMaxShaderCompilerThreadsARB = (PFNGLMAXSHADERCOMPILERTHREADSARBPROC)glewGetProcAddress((const GLubyte*)"glMaxShaderCompilerThreadsARB")) == NULL) || r; return r; } #endif /* GL_ARB_parallel_shader_compile */ #ifdef GL_ARB_point_parameters static GLboolean _glewInit_GL_ARB_point_parameters () { GLboolean r = GL_FALSE; r = ((glPointParameterfARB = (PFNGLPOINTPARAMETERFARBPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfARB")) == NULL) || r; r = ((glPointParameterfvARB = (PFNGLPOINTPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfvARB")) == NULL) || r; return r; } #endif /* GL_ARB_point_parameters */ #ifdef GL_ARB_polygon_offset_clamp static GLboolean _glewInit_GL_ARB_polygon_offset_clamp () { GLboolean r = GL_FALSE; r = ((glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetClamp")) == NULL) || r; return r; } #endif /* GL_ARB_polygon_offset_clamp */ #ifdef GL_ARB_program_interface_query static GLboolean _glewInit_GL_ARB_program_interface_query () { GLboolean r = GL_FALSE; r = ((glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramInterfaceiv")) == NULL) || r; r = ((glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceIndex")) == NULL) || r; r = ((glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocation")) == NULL) || r; r = ((glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocationIndex")) == NULL) || r; r = ((glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceName")) == NULL) || r; r = ((glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceiv")) == NULL) || r; return r; } #endif /* GL_ARB_program_interface_query */ #ifdef GL_ARB_provoking_vertex static GLboolean _glewInit_GL_ARB_provoking_vertex () { GLboolean r = GL_FALSE; r = ((glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)glewGetProcAddress((const GLubyte*)"glProvokingVertex")) == NULL) || r; return r; } #endif /* GL_ARB_provoking_vertex */ #ifdef GL_ARB_robustness static GLboolean _glewInit_GL_ARB_robustness () { GLboolean r = GL_FALSE; r = ((glGetGraphicsResetStatusARB = (PFNGLGETGRAPHICSRESETSTATUSARBPROC)glewGetProcAddress((const GLubyte*)"glGetGraphicsResetStatusARB")) == NULL) || r; r = ((glGetnColorTableARB = (PFNGLGETNCOLORTABLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnColorTableARB")) == NULL) || r; r = ((glGetnCompressedTexImageARB = (PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnCompressedTexImageARB")) == NULL) || r; r = ((glGetnConvolutionFilterARB = (PFNGLGETNCONVOLUTIONFILTERARBPROC)glewGetProcAddress((const GLubyte*)"glGetnConvolutionFilterARB")) == NULL) || r; r = ((glGetnHistogramARB = (PFNGLGETNHISTOGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glGetnHistogramARB")) == NULL) || r; r = ((glGetnMapdvARB = (PFNGLGETNMAPDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMapdvARB")) == NULL) || r; r = ((glGetnMapfvARB = (PFNGLGETNMAPFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMapfvARB")) == NULL) || r; r = ((glGetnMapivARB = (PFNGLGETNMAPIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMapivARB")) == NULL) || r; r = ((glGetnMinmaxARB = (PFNGLGETNMINMAXARBPROC)glewGetProcAddress((const GLubyte*)"glGetnMinmaxARB")) == NULL) || r; r = ((glGetnPixelMapfvARB = (PFNGLGETNPIXELMAPFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPixelMapfvARB")) == NULL) || r; r = ((glGetnPixelMapuivARB = (PFNGLGETNPIXELMAPUIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPixelMapuivARB")) == NULL) || r; r = ((glGetnPixelMapusvARB = (PFNGLGETNPIXELMAPUSVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPixelMapusvARB")) == NULL) || r; r = ((glGetnPolygonStippleARB = (PFNGLGETNPOLYGONSTIPPLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnPolygonStippleARB")) == NULL) || r; r = ((glGetnSeparableFilterARB = (PFNGLGETNSEPARABLEFILTERARBPROC)glewGetProcAddress((const GLubyte*)"glGetnSeparableFilterARB")) == NULL) || r; r = ((glGetnTexImageARB = (PFNGLGETNTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"glGetnTexImageARB")) == NULL) || r; r = ((glGetnUniformdvARB = (PFNGLGETNUNIFORMDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformdvARB")) == NULL) || r; r = ((glGetnUniformfvARB = (PFNGLGETNUNIFORMFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfvARB")) == NULL) || r; r = ((glGetnUniformivARB = (PFNGLGETNUNIFORMIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformivARB")) == NULL) || r; r = ((glGetnUniformuivARB = (PFNGLGETNUNIFORMUIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformuivARB")) == NULL) || r; r = ((glReadnPixelsARB = (PFNGLREADNPIXELSARBPROC)glewGetProcAddress((const GLubyte*)"glReadnPixelsARB")) == NULL) || r; return r; } #endif /* GL_ARB_robustness */ #ifdef GL_ARB_sample_locations static GLboolean _glewInit_GL_ARB_sample_locations () { GLboolean r = GL_FALSE; r = ((glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSampleLocationsfvARB")) == NULL) || r; r = ((glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSampleLocationsfvARB")) == NULL) || r; return r; } #endif /* GL_ARB_sample_locations */ #ifdef GL_ARB_sample_shading static GLboolean _glewInit_GL_ARB_sample_shading () { GLboolean r = GL_FALSE; r = ((glMinSampleShadingARB = (PFNGLMINSAMPLESHADINGARBPROC)glewGetProcAddress((const GLubyte*)"glMinSampleShadingARB")) == NULL) || r; return r; } #endif /* GL_ARB_sample_shading */ #ifdef GL_ARB_sampler_objects static GLboolean _glewInit_GL_ARB_sampler_objects () { GLboolean r = GL_FALSE; r = ((glBindSampler = (PFNGLBINDSAMPLERPROC)glewGetProcAddress((const GLubyte*)"glBindSampler")) == NULL) || r; r = ((glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glDeleteSamplers")) == NULL) || r; r = ((glGenSamplers = (PFNGLGENSAMPLERSPROC)glewGetProcAddress((const GLubyte*)"glGenSamplers")) == NULL) || r; r = ((glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIiv")) == NULL) || r; r = ((glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterIuiv")) == NULL) || r; r = ((glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameterfv")) == NULL) || r; r = ((glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glGetSamplerParameteriv")) == NULL) || r; r = ((glIsSampler = (PFNGLISSAMPLERPROC)glewGetProcAddress((const GLubyte*)"glIsSampler")) == NULL) || r; r = ((glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIiv")) == NULL) || r; r = ((glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterIuiv")) == NULL) || r; r = ((glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterf")) == NULL) || r; r = ((glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameterfv")) == NULL) || r; r = ((glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameteri")) == NULL) || r; r = ((glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)glewGetProcAddress((const GLubyte*)"glSamplerParameteriv")) == NULL) || r; return r; } #endif /* GL_ARB_sampler_objects */ #ifdef GL_ARB_separate_shader_objects static GLboolean _glewInit_GL_ARB_separate_shader_objects () { GLboolean r = GL_FALSE; r = ((glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)glewGetProcAddress((const GLubyte*)"glActiveShaderProgram")) == NULL) || r; r = ((glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)glewGetProcAddress((const GLubyte*)"glBindProgramPipeline")) == NULL) || r; r = ((glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)glewGetProcAddress((const GLubyte*)"glCreateShaderProgramv")) == NULL) || r; r = ((glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgramPipelines")) == NULL) || r; r = ((glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)glewGetProcAddress((const GLubyte*)"glGenProgramPipelines")) == NULL) || r; r = ((glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)glewGetProcAddress((const GLubyte*)"glGetProgramPipelineInfoLog")) == NULL) || r; r = ((glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramPipelineiv")) == NULL) || r; r = ((glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)glewGetProcAddress((const GLubyte*)"glIsProgramPipeline")) == NULL) || r; r = ((glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1d")) == NULL) || r; r = ((glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1dv")) == NULL) || r; r = ((glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1f")) == NULL) || r; r = ((glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1fv")) == NULL) || r; r = ((glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i")) == NULL) || r; r = ((glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1iv")) == NULL) || r; r = ((glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui")) == NULL) || r; r = ((glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1uiv")) == NULL) || r; r = ((glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2d")) == NULL) || r; r = ((glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2dv")) == NULL) || r; r = ((glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2f")) == NULL) || r; r = ((glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2fv")) == NULL) || r; r = ((glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i")) == NULL) || r; r = ((glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2iv")) == NULL) || r; r = ((glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui")) == NULL) || r; r = ((glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2uiv")) == NULL) || r; r = ((glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3d")) == NULL) || r; r = ((glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3dv")) == NULL) || r; r = ((glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3f")) == NULL) || r; r = ((glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3fv")) == NULL) || r; r = ((glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i")) == NULL) || r; r = ((glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3iv")) == NULL) || r; r = ((glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui")) == NULL) || r; r = ((glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3uiv")) == NULL) || r; r = ((glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4d")) == NULL) || r; r = ((glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4dv")) == NULL) || r; r = ((glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4f")) == NULL) || r; r = ((glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4fv")) == NULL) || r; r = ((glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i")) == NULL) || r; r = ((glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4iv")) == NULL) || r; r = ((glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui")) == NULL) || r; r = ((glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4uiv")) == NULL) || r; r = ((glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2dv")) == NULL) || r; r = ((glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2fv")) == NULL) || r; r = ((glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x3dv")) == NULL) || r; r = ((glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x3fv")) == NULL) || r; r = ((glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x4dv")) == NULL) || r; r = ((glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x4fv")) == NULL) || r; r = ((glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3dv")) == NULL) || r; r = ((glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3fv")) == NULL) || r; r = ((glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x2dv")) == NULL) || r; r = ((glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x2fv")) == NULL) || r; r = ((glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x4dv")) == NULL) || r; r = ((glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x4fv")) == NULL) || r; r = ((glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4dv")) == NULL) || r; r = ((glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4fv")) == NULL) || r; r = ((glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x2dv")) == NULL) || r; r = ((glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x2fv")) == NULL) || r; r = ((glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x3dv")) == NULL) || r; r = ((glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x3fv")) == NULL) || r; r = ((glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)glewGetProcAddress((const GLubyte*)"glUseProgramStages")) == NULL) || r; r = ((glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)glewGetProcAddress((const GLubyte*)"glValidateProgramPipeline")) == NULL) || r; return r; } #endif /* GL_ARB_separate_shader_objects */ #ifdef GL_ARB_shader_atomic_counters static GLboolean _glewInit_GL_ARB_shader_atomic_counters () { GLboolean r = GL_FALSE; r = ((glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveAtomicCounterBufferiv")) == NULL) || r; return r; } #endif /* GL_ARB_shader_atomic_counters */ #ifdef GL_ARB_shader_image_load_store static GLboolean _glewInit_GL_ARB_shader_image_load_store () { GLboolean r = GL_FALSE; r = ((glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)glewGetProcAddress((const GLubyte*)"glBindImageTexture")) == NULL) || r; r = ((glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)glewGetProcAddress((const GLubyte*)"glMemoryBarrier")) == NULL) || r; return r; } #endif /* GL_ARB_shader_image_load_store */ #ifdef GL_ARB_shader_objects static GLboolean _glewInit_GL_ARB_shader_objects () { GLboolean r = GL_FALSE; r = ((glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glAttachObjectARB")) == NULL) || r; r = ((glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC)glewGetProcAddress((const GLubyte*)"glCompileShaderARB")) == NULL) || r; r = ((glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glCreateProgramObjectARB")) == NULL) || r; r = ((glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glCreateShaderObjectARB")) == NULL) || r; r = ((glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteObjectARB")) == NULL) || r; r = ((glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glDetachObjectARB")) == NULL) || r; r = ((glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformARB")) == NULL) || r; r = ((glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC)glewGetProcAddress((const GLubyte*)"glGetAttachedObjectsARB")) == NULL) || r; r = ((glGetHandleARB = (PFNGLGETHANDLEARBPROC)glewGetProcAddress((const GLubyte*)"glGetHandleARB")) == NULL) || r; r = ((glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC)glewGetProcAddress((const GLubyte*)"glGetInfoLogARB")) == NULL) || r; r = ((glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetObjectParameterfvARB")) == NULL) || r; r = ((glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetObjectParameterivARB")) == NULL) || r; r = ((glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC)glewGetProcAddress((const GLubyte*)"glGetShaderSourceARB")) == NULL) || r; r = ((glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformLocationARB")) == NULL) || r; r = ((glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformfvARB")) == NULL) || r; r = ((glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetUniformivARB")) == NULL) || r; r = ((glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glLinkProgramARB")) == NULL) || r; r = ((glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC)glewGetProcAddress((const GLubyte*)"glShaderSourceARB")) == NULL) || r; r = ((glUniform1fARB = (PFNGLUNIFORM1FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1fARB")) == NULL) || r; r = ((glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1fvARB")) == NULL) || r; r = ((glUniform1iARB = (PFNGLUNIFORM1IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1iARB")) == NULL) || r; r = ((glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform1ivARB")) == NULL) || r; r = ((glUniform2fARB = (PFNGLUNIFORM2FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2fARB")) == NULL) || r; r = ((glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2fvARB")) == NULL) || r; r = ((glUniform2iARB = (PFNGLUNIFORM2IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2iARB")) == NULL) || r; r = ((glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform2ivARB")) == NULL) || r; r = ((glUniform3fARB = (PFNGLUNIFORM3FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3fARB")) == NULL) || r; r = ((glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3fvARB")) == NULL) || r; r = ((glUniform3iARB = (PFNGLUNIFORM3IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3iARB")) == NULL) || r; r = ((glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform3ivARB")) == NULL) || r; r = ((glUniform4fARB = (PFNGLUNIFORM4FARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4fARB")) == NULL) || r; r = ((glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4fvARB")) == NULL) || r; r = ((glUniform4iARB = (PFNGLUNIFORM4IARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4iARB")) == NULL) || r; r = ((glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC)glewGetProcAddress((const GLubyte*)"glUniform4ivARB")) == NULL) || r; r = ((glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2fvARB")) == NULL) || r; r = ((glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3fvARB")) == NULL) || r; r = ((glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4fvARB")) == NULL) || r; r = ((glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC)glewGetProcAddress((const GLubyte*)"glUseProgramObjectARB")) == NULL) || r; r = ((glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glValidateProgramARB")) == NULL) || r; return r; } #endif /* GL_ARB_shader_objects */ #ifdef GL_ARB_shader_storage_buffer_object static GLboolean _glewInit_GL_ARB_shader_storage_buffer_object () { GLboolean r = GL_FALSE; r = ((glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC)glewGetProcAddress((const GLubyte*)"glShaderStorageBlockBinding")) == NULL) || r; return r; } #endif /* GL_ARB_shader_storage_buffer_object */ #ifdef GL_ARB_shader_subroutine static GLboolean _glewInit_GL_ARB_shader_subroutine () { GLboolean r = GL_FALSE; r = ((glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveSubroutineName")) == NULL) || r; r = ((glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveSubroutineUniformName")) == NULL) || r; r = ((glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveSubroutineUniformiv")) == NULL) || r; r = ((glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramStageiv")) == NULL) || r; r = ((glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetSubroutineIndex")) == NULL) || r; r = ((glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)glewGetProcAddress((const GLubyte*)"glGetSubroutineUniformLocation")) == NULL) || r; r = ((glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformSubroutineuiv")) == NULL) || r; r = ((glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)glewGetProcAddress((const GLubyte*)"glUniformSubroutinesuiv")) == NULL) || r; return r; } #endif /* GL_ARB_shader_subroutine */ #ifdef GL_ARB_shading_language_include static GLboolean _glewInit_GL_ARB_shading_language_include () { GLboolean r = GL_FALSE; r = ((glCompileShaderIncludeARB = (PFNGLCOMPILESHADERINCLUDEARBPROC)glewGetProcAddress((const GLubyte*)"glCompileShaderIncludeARB")) == NULL) || r; r = ((glDeleteNamedStringARB = (PFNGLDELETENAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteNamedStringARB")) == NULL) || r; r = ((glGetNamedStringARB = (PFNGLGETNAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glGetNamedStringARB")) == NULL) || r; r = ((glGetNamedStringivARB = (PFNGLGETNAMEDSTRINGIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetNamedStringivARB")) == NULL) || r; r = ((glIsNamedStringARB = (PFNGLISNAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glIsNamedStringARB")) == NULL) || r; r = ((glNamedStringARB = (PFNGLNAMEDSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glNamedStringARB")) == NULL) || r; return r; } #endif /* GL_ARB_shading_language_include */ #ifdef GL_ARB_sparse_buffer static GLboolean _glewInit_GL_ARB_sparse_buffer () { GLboolean r = GL_FALSE; r = ((glBufferPageCommitmentARB = (PFNGLBUFFERPAGECOMMITMENTARBPROC)glewGetProcAddress((const GLubyte*)"glBufferPageCommitmentARB")) == NULL) || r; return r; } #endif /* GL_ARB_sparse_buffer */ #ifdef GL_ARB_sparse_texture static GLboolean _glewInit_GL_ARB_sparse_texture () { GLboolean r = GL_FALSE; r = ((glTexPageCommitmentARB = (PFNGLTEXPAGECOMMITMENTARBPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentARB")) == NULL) || r; return r; } #endif /* GL_ARB_sparse_texture */ #ifdef GL_ARB_sync static GLboolean _glewInit_GL_ARB_sync () { GLboolean r = GL_FALSE; r = ((glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"glClientWaitSync")) == NULL) || r; r = ((glDeleteSync = (PFNGLDELETESYNCPROC)glewGetProcAddress((const GLubyte*)"glDeleteSync")) == NULL) || r; r = ((glFenceSync = (PFNGLFENCESYNCPROC)glewGetProcAddress((const GLubyte*)"glFenceSync")) == NULL) || r; r = ((glGetInteger64v = (PFNGLGETINTEGER64VPROC)glewGetProcAddress((const GLubyte*)"glGetInteger64v")) == NULL) || r; r = ((glGetSynciv = (PFNGLGETSYNCIVPROC)glewGetProcAddress((const GLubyte*)"glGetSynciv")) == NULL) || r; r = ((glIsSync = (PFNGLISSYNCPROC)glewGetProcAddress((const GLubyte*)"glIsSync")) == NULL) || r; r = ((glWaitSync = (PFNGLWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"glWaitSync")) == NULL) || r; return r; } #endif /* GL_ARB_sync */ #ifdef GL_ARB_tessellation_shader static GLboolean _glewInit_GL_ARB_tessellation_shader () { GLboolean r = GL_FALSE; r = ((glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)glewGetProcAddress((const GLubyte*)"glPatchParameterfv")) == NULL) || r; r = ((glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)glewGetProcAddress((const GLubyte*)"glPatchParameteri")) == NULL) || r; return r; } #endif /* GL_ARB_tessellation_shader */ #ifdef GL_ARB_texture_barrier static GLboolean _glewInit_GL_ARB_texture_barrier () { GLboolean r = GL_FALSE; r = ((glTextureBarrier = (PFNGLTEXTUREBARRIERPROC)glewGetProcAddress((const GLubyte*)"glTextureBarrier")) == NULL) || r; return r; } #endif /* GL_ARB_texture_barrier */ #ifdef GL_ARB_texture_buffer_object static GLboolean _glewInit_GL_ARB_texture_buffer_object () { GLboolean r = GL_FALSE; r = ((glTexBufferARB = (PFNGLTEXBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glTexBufferARB")) == NULL) || r; return r; } #endif /* GL_ARB_texture_buffer_object */ #ifdef GL_ARB_texture_buffer_range static GLboolean _glewInit_GL_ARB_texture_buffer_range () { GLboolean r = GL_FALSE; r = ((glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glTexBufferRange")) == NULL) || r; r = ((glTextureBufferRangeEXT = (PFNGLTEXTUREBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureBufferRangeEXT")) == NULL) || r; return r; } #endif /* GL_ARB_texture_buffer_range */ #ifdef GL_ARB_texture_compression static GLboolean _glewInit_GL_ARB_texture_compression () { GLboolean r = GL_FALSE; r = ((glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage1DARB")) == NULL) || r; r = ((glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage2DARB")) == NULL) || r; r = ((glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DARB")) == NULL) || r; r = ((glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage1DARB")) == NULL) || r; r = ((glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage2DARB")) == NULL) || r; r = ((glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DARB")) == NULL) || r; r = ((glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTexImageARB")) == NULL) || r; return r; } #endif /* GL_ARB_texture_compression */ #ifdef GL_ARB_texture_multisample static GLboolean _glewInit_GL_ARB_texture_multisample () { GLboolean r = GL_FALSE; r = ((glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)glewGetProcAddress((const GLubyte*)"glGetMultisamplefv")) == NULL) || r; r = ((glSampleMaski = (PFNGLSAMPLEMASKIPROC)glewGetProcAddress((const GLubyte*)"glSampleMaski")) == NULL) || r; r = ((glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexImage2DMultisample")) == NULL) || r; r = ((glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DMultisample")) == NULL) || r; return r; } #endif /* GL_ARB_texture_multisample */ #ifdef GL_ARB_texture_storage static GLboolean _glewInit_GL_ARB_texture_storage () { GLboolean r = GL_FALSE; r = ((glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1D")) == NULL) || r; r = ((glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2D")) == NULL) || r; r = ((glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3D")) == NULL) || r; return r; } #endif /* GL_ARB_texture_storage */ #ifdef GL_ARB_texture_storage_multisample static GLboolean _glewInit_GL_ARB_texture_storage_multisample () { GLboolean r = GL_FALSE; r = ((glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2DMultisample")) == NULL) || r; r = ((glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DMultisample")) == NULL) || r; r = ((glTextureStorage2DMultisampleEXT = (PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DMultisampleEXT")) == NULL) || r; r = ((glTextureStorage3DMultisampleEXT = (PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DMultisampleEXT")) == NULL) || r; return r; } #endif /* GL_ARB_texture_storage_multisample */ #ifdef GL_ARB_texture_view static GLboolean _glewInit_GL_ARB_texture_view () { GLboolean r = GL_FALSE; r = ((glTextureView = (PFNGLTEXTUREVIEWPROC)glewGetProcAddress((const GLubyte*)"glTextureView")) == NULL) || r; return r; } #endif /* GL_ARB_texture_view */ #ifdef GL_ARB_timer_query static GLboolean _glewInit_GL_ARB_timer_query () { GLboolean r = GL_FALSE; r = ((glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjecti64v")) == NULL) || r; r = ((glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectui64v")) == NULL) || r; r = ((glQueryCounter = (PFNGLQUERYCOUNTERPROC)glewGetProcAddress((const GLubyte*)"glQueryCounter")) == NULL) || r; return r; } #endif /* GL_ARB_timer_query */ #ifdef GL_ARB_transform_feedback2 static GLboolean _glewInit_GL_ARB_transform_feedback2 () { GLboolean r = GL_FALSE; r = ((glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glBindTransformFeedback")) == NULL) || r; r = ((glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)glewGetProcAddress((const GLubyte*)"glDeleteTransformFeedbacks")) == NULL) || r; r = ((glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedback")) == NULL) || r; r = ((glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)glewGetProcAddress((const GLubyte*)"glGenTransformFeedbacks")) == NULL) || r; r = ((glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glIsTransformFeedback")) == NULL) || r; r = ((glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glPauseTransformFeedback")) == NULL) || r; r = ((glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)glewGetProcAddress((const GLubyte*)"glResumeTransformFeedback")) == NULL) || r; return r; } #endif /* GL_ARB_transform_feedback2 */ #ifdef GL_ARB_transform_feedback3 static GLboolean _glewInit_GL_ARB_transform_feedback3 () { GLboolean r = GL_FALSE; r = ((glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glBeginQueryIndexed")) == NULL) || r; r = ((glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackStream")) == NULL) || r; r = ((glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glEndQueryIndexed")) == NULL) || r; r = ((glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)glewGetProcAddress((const GLubyte*)"glGetQueryIndexediv")) == NULL) || r; return r; } #endif /* GL_ARB_transform_feedback3 */ #ifdef GL_ARB_transform_feedback_instanced static GLboolean _glewInit_GL_ARB_transform_feedback_instanced () { GLboolean r = GL_FALSE; r = ((glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackInstanced")) == NULL) || r; r = ((glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackStreamInstanced")) == NULL) || r; return r; } #endif /* GL_ARB_transform_feedback_instanced */ #ifdef GL_ARB_transpose_matrix static GLboolean _glewInit_GL_ARB_transpose_matrix () { GLboolean r = GL_FALSE; r = ((glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixdARB")) == NULL) || r; r = ((glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)glewGetProcAddress((const GLubyte*)"glLoadTransposeMatrixfARB")) == NULL) || r; r = ((glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixdARB")) == NULL) || r; r = ((glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)glewGetProcAddress((const GLubyte*)"glMultTransposeMatrixfARB")) == NULL) || r; return r; } #endif /* GL_ARB_transpose_matrix */ #ifdef GL_ARB_uniform_buffer_object static GLboolean _glewInit_GL_ARB_uniform_buffer_object () { GLboolean r = GL_FALSE; r = ((glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)glewGetProcAddress((const GLubyte*)"glBindBufferBase")) == NULL) || r; r = ((glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)glewGetProcAddress((const GLubyte*)"glBindBufferRange")) == NULL) || r; r = ((glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformBlockName")) == NULL) || r; r = ((glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformBlockiv")) == NULL) || r; r = ((glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformName")) == NULL) || r; r = ((glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveUniformsiv")) == NULL) || r; r = ((glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)glewGetProcAddress((const GLubyte*)"glGetIntegeri_v")) == NULL) || r; r = ((glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)glewGetProcAddress((const GLubyte*)"glGetUniformBlockIndex")) == NULL) || r; r = ((glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)glewGetProcAddress((const GLubyte*)"glGetUniformIndices")) == NULL) || r; r = ((glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)glewGetProcAddress((const GLubyte*)"glUniformBlockBinding")) == NULL) || r; return r; } #endif /* GL_ARB_uniform_buffer_object */ #ifdef GL_ARB_vertex_array_object static GLboolean _glewInit_GL_ARB_vertex_array_object () { GLboolean r = GL_FALSE; r = ((glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArray")) == NULL) || r; r = ((glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArrays")) == NULL) || r; r = ((glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArrays")) == NULL) || r; r = ((glIsVertexArray = (PFNGLISVERTEXARRAYPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArray")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_array_object */ #ifdef GL_ARB_vertex_attrib_64bit static GLboolean _glewInit_GL_ARB_vertex_attrib_64bit () { GLboolean r = GL_FALSE; r = ((glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLdv")) == NULL) || r; r = ((glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1d")) == NULL) || r; r = ((glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1dv")) == NULL) || r; r = ((glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2d")) == NULL) || r; r = ((glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2dv")) == NULL) || r; r = ((glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3d")) == NULL) || r; r = ((glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3dv")) == NULL) || r; r = ((glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4d")) == NULL) || r; r = ((glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4dv")) == NULL) || r; r = ((glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLPointer")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_attrib_64bit */ #ifdef GL_ARB_vertex_attrib_binding static GLboolean _glewInit_GL_ARB_vertex_attrib_binding () { GLboolean r = GL_FALSE; r = ((glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)glewGetProcAddress((const GLubyte*)"glBindVertexBuffer")) == NULL) || r; r = ((glVertexArrayBindVertexBufferEXT = (PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayBindVertexBufferEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribBindingEXT = (PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribBindingEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribFormatEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribIFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribIFormatEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribLFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribLFormatEXT")) == NULL) || r; r = ((glVertexArrayVertexBindingDivisorEXT = (PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexBindingDivisorEXT")) == NULL) || r; r = ((glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribBinding")) == NULL) || r; r = ((glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribFormat")) == NULL) || r; r = ((glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIFormat")) == NULL) || r; r = ((glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLFormat")) == NULL) || r; r = ((glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)glewGetProcAddress((const GLubyte*)"glVertexBindingDivisor")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_attrib_binding */ #ifdef GL_ARB_vertex_blend static GLboolean _glewInit_GL_ARB_vertex_blend () { GLboolean r = GL_FALSE; r = ((glVertexBlendARB = (PFNGLVERTEXBLENDARBPROC)glewGetProcAddress((const GLubyte*)"glVertexBlendARB")) == NULL) || r; r = ((glWeightPointerARB = (PFNGLWEIGHTPOINTERARBPROC)glewGetProcAddress((const GLubyte*)"glWeightPointerARB")) == NULL) || r; r = ((glWeightbvARB = (PFNGLWEIGHTBVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightbvARB")) == NULL) || r; r = ((glWeightdvARB = (PFNGLWEIGHTDVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightdvARB")) == NULL) || r; r = ((glWeightfvARB = (PFNGLWEIGHTFVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightfvARB")) == NULL) || r; r = ((glWeightivARB = (PFNGLWEIGHTIVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightivARB")) == NULL) || r; r = ((glWeightsvARB = (PFNGLWEIGHTSVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightsvARB")) == NULL) || r; r = ((glWeightubvARB = (PFNGLWEIGHTUBVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightubvARB")) == NULL) || r; r = ((glWeightuivARB = (PFNGLWEIGHTUIVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightuivARB")) == NULL) || r; r = ((glWeightusvARB = (PFNGLWEIGHTUSVARBPROC)glewGetProcAddress((const GLubyte*)"glWeightusvARB")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_blend */ #ifdef GL_ARB_vertex_buffer_object static GLboolean _glewInit_GL_ARB_vertex_buffer_object () { GLboolean r = GL_FALSE; r = ((glBindBufferARB = (PFNGLBINDBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glBindBufferARB")) == NULL) || r; r = ((glBufferDataARB = (PFNGLBUFFERDATAARBPROC)glewGetProcAddress((const GLubyte*)"glBufferDataARB")) == NULL) || r; r = ((glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)glewGetProcAddress((const GLubyte*)"glBufferSubDataARB")) == NULL) || r; r = ((glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteBuffersARB")) == NULL) || r; r = ((glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)glewGetProcAddress((const GLubyte*)"glGenBuffersARB")) == NULL) || r; r = ((glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameterivARB")) == NULL) || r; r = ((glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)glewGetProcAddress((const GLubyte*)"glGetBufferPointervARB")) == NULL) || r; r = ((glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)glewGetProcAddress((const GLubyte*)"glGetBufferSubDataARB")) == NULL) || r; r = ((glIsBufferARB = (PFNGLISBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glIsBufferARB")) == NULL) || r; r = ((glMapBufferARB = (PFNGLMAPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glMapBufferARB")) == NULL) || r; r = ((glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"glUnmapBufferARB")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_buffer_object */ #ifdef GL_ARB_vertex_program static GLboolean _glewInit_GL_ARB_vertex_program () { GLboolean r = GL_FALSE; r = ((glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glBindProgramARB")) == NULL) || r; r = ((glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgramsARB")) == NULL) || r; r = ((glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexAttribArrayARB")) == NULL) || r; r = ((glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexAttribArrayARB")) == NULL) || r; r = ((glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)glewGetProcAddress((const GLubyte*)"glGenProgramsARB")) == NULL) || r; r = ((glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramEnvParameterdvARB")) == NULL) || r; r = ((glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramEnvParameterfvARB")) == NULL) || r; r = ((glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramLocalParameterdvARB")) == NULL) || r; r = ((glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramLocalParameterfvARB")) == NULL) || r; r = ((glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramStringARB")) == NULL) || r; r = ((glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetProgramivARB")) == NULL) || r; r = ((glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribPointervARB")) == NULL) || r; r = ((glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribdvARB")) == NULL) || r; r = ((glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribfvARB")) == NULL) || r; r = ((glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribivARB")) == NULL) || r; r = ((glIsProgramARB = (PFNGLISPROGRAMARBPROC)glewGetProcAddress((const GLubyte*)"glIsProgramARB")) == NULL) || r; r = ((glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4dARB")) == NULL) || r; r = ((glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4dvARB")) == NULL) || r; r = ((glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4fARB")) == NULL) || r; r = ((glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameter4fvARB")) == NULL) || r; r = ((glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4dARB")) == NULL) || r; r = ((glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4dvARB")) == NULL) || r; r = ((glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4fARB")) == NULL) || r; r = ((glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameter4fvARB")) == NULL) || r; r = ((glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"glProgramStringARB")) == NULL) || r; r = ((glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dARB")) == NULL) || r; r = ((glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dvARB")) == NULL) || r; r = ((glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fARB")) == NULL) || r; r = ((glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fvARB")) == NULL) || r; r = ((glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1sARB")) == NULL) || r; r = ((glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1svARB")) == NULL) || r; r = ((glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dARB")) == NULL) || r; r = ((glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dvARB")) == NULL) || r; r = ((glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fARB")) == NULL) || r; r = ((glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fvARB")) == NULL) || r; r = ((glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2sARB")) == NULL) || r; r = ((glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2svARB")) == NULL) || r; r = ((glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dARB")) == NULL) || r; r = ((glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dvARB")) == NULL) || r; r = ((glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fARB")) == NULL) || r; r = ((glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fvARB")) == NULL) || r; r = ((glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3sARB")) == NULL) || r; r = ((glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3svARB")) == NULL) || r; r = ((glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NbvARB")) == NULL) || r; r = ((glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NivARB")) == NULL) || r; r = ((glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NsvARB")) == NULL) || r; r = ((glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NubARB")) == NULL) || r; r = ((glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NubvARB")) == NULL) || r; r = ((glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NuivARB")) == NULL) || r; r = ((glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4NusvARB")) == NULL) || r; r = ((glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4bvARB")) == NULL) || r; r = ((glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dARB")) == NULL) || r; r = ((glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dvARB")) == NULL) || r; r = ((glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fARB")) == NULL) || r; r = ((glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fvARB")) == NULL) || r; r = ((glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ivARB")) == NULL) || r; r = ((glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4sARB")) == NULL) || r; r = ((glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4svARB")) == NULL) || r; r = ((glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubvARB")) == NULL) || r; r = ((glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4uivARB")) == NULL) || r; r = ((glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4usvARB")) == NULL) || r; r = ((glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointerARB")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_program */ #ifdef GL_ARB_vertex_shader static GLboolean _glewInit_GL_ARB_vertex_shader () { GLboolean r = GL_FALSE; r = ((glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC)glewGetProcAddress((const GLubyte*)"glBindAttribLocationARB")) == NULL) || r; r = ((glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC)glewGetProcAddress((const GLubyte*)"glGetActiveAttribARB")) == NULL) || r; r = ((glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)glewGetProcAddress((const GLubyte*)"glGetAttribLocationARB")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_shader */ #ifdef GL_ARB_vertex_type_2_10_10_10_rev static GLboolean _glewInit_GL_ARB_vertex_type_2_10_10_10_rev () { GLboolean r = GL_FALSE; r = ((glColorP3ui = (PFNGLCOLORP3UIPROC)glewGetProcAddress((const GLubyte*)"glColorP3ui")) == NULL) || r; r = ((glColorP3uiv = (PFNGLCOLORP3UIVPROC)glewGetProcAddress((const GLubyte*)"glColorP3uiv")) == NULL) || r; r = ((glColorP4ui = (PFNGLCOLORP4UIPROC)glewGetProcAddress((const GLubyte*)"glColorP4ui")) == NULL) || r; r = ((glColorP4uiv = (PFNGLCOLORP4UIVPROC)glewGetProcAddress((const GLubyte*)"glColorP4uiv")) == NULL) || r; r = ((glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP1ui")) == NULL) || r; r = ((glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP1uiv")) == NULL) || r; r = ((glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP2ui")) == NULL) || r; r = ((glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP2uiv")) == NULL) || r; r = ((glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP3ui")) == NULL) || r; r = ((glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP3uiv")) == NULL) || r; r = ((glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP4ui")) == NULL) || r; r = ((glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordP4uiv")) == NULL) || r; r = ((glNormalP3ui = (PFNGLNORMALP3UIPROC)glewGetProcAddress((const GLubyte*)"glNormalP3ui")) == NULL) || r; r = ((glNormalP3uiv = (PFNGLNORMALP3UIVPROC)glewGetProcAddress((const GLubyte*)"glNormalP3uiv")) == NULL) || r; r = ((glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorP3ui")) == NULL) || r; r = ((glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorP3uiv")) == NULL) || r; r = ((glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP1ui")) == NULL) || r; r = ((glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP1uiv")) == NULL) || r; r = ((glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP2ui")) == NULL) || r; r = ((glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP2uiv")) == NULL) || r; r = ((glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP3ui")) == NULL) || r; r = ((glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP3uiv")) == NULL) || r; r = ((glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP4ui")) == NULL) || r; r = ((glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordP4uiv")) == NULL) || r; r = ((glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP1ui")) == NULL) || r; r = ((glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP1uiv")) == NULL) || r; r = ((glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP2ui")) == NULL) || r; r = ((glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP2uiv")) == NULL) || r; r = ((glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP3ui")) == NULL) || r; r = ((glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP3uiv")) == NULL) || r; r = ((glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP4ui")) == NULL) || r; r = ((glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribP4uiv")) == NULL) || r; r = ((glVertexP2ui = (PFNGLVERTEXP2UIPROC)glewGetProcAddress((const GLubyte*)"glVertexP2ui")) == NULL) || r; r = ((glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexP2uiv")) == NULL) || r; r = ((glVertexP3ui = (PFNGLVERTEXP3UIPROC)glewGetProcAddress((const GLubyte*)"glVertexP3ui")) == NULL) || r; r = ((glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexP3uiv")) == NULL) || r; r = ((glVertexP4ui = (PFNGLVERTEXP4UIPROC)glewGetProcAddress((const GLubyte*)"glVertexP4ui")) == NULL) || r; r = ((glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)glewGetProcAddress((const GLubyte*)"glVertexP4uiv")) == NULL) || r; return r; } #endif /* GL_ARB_vertex_type_2_10_10_10_rev */ #ifdef GL_ARB_viewport_array static GLboolean _glewInit_GL_ARB_viewport_array () { GLboolean r = GL_FALSE; r = ((glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeArrayv")) == NULL) || r; r = ((glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeIndexed")) == NULL) || r; r = ((glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)glewGetProcAddress((const GLubyte*)"glGetDoublei_v")) == NULL) || r; r = ((glGetFloati_v = (PFNGLGETFLOATI_VPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_v")) == NULL) || r; r = ((glScissorArrayv = (PFNGLSCISSORARRAYVPROC)glewGetProcAddress((const GLubyte*)"glScissorArrayv")) == NULL) || r; r = ((glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexed")) == NULL) || r; r = ((glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedv")) == NULL) || r; r = ((glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)glewGetProcAddress((const GLubyte*)"glViewportArrayv")) == NULL) || r; r = ((glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedf")) == NULL) || r; r = ((glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfv")) == NULL) || r; return r; } #endif /* GL_ARB_viewport_array */ #ifdef GL_ARB_window_pos static GLboolean _glewInit_GL_ARB_window_pos () { GLboolean r = GL_FALSE; r = ((glWindowPos2dARB = (PFNGLWINDOWPOS2DARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dARB")) == NULL) || r; r = ((glWindowPos2dvARB = (PFNGLWINDOWPOS2DVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dvARB")) == NULL) || r; r = ((glWindowPos2fARB = (PFNGLWINDOWPOS2FARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fARB")) == NULL) || r; r = ((glWindowPos2fvARB = (PFNGLWINDOWPOS2FVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fvARB")) == NULL) || r; r = ((glWindowPos2iARB = (PFNGLWINDOWPOS2IARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2iARB")) == NULL) || r; r = ((glWindowPos2ivARB = (PFNGLWINDOWPOS2IVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2ivARB")) == NULL) || r; r = ((glWindowPos2sARB = (PFNGLWINDOWPOS2SARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2sARB")) == NULL) || r; r = ((glWindowPos2svARB = (PFNGLWINDOWPOS2SVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2svARB")) == NULL) || r; r = ((glWindowPos3dARB = (PFNGLWINDOWPOS3DARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dARB")) == NULL) || r; r = ((glWindowPos3dvARB = (PFNGLWINDOWPOS3DVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dvARB")) == NULL) || r; r = ((glWindowPos3fARB = (PFNGLWINDOWPOS3FARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fARB")) == NULL) || r; r = ((glWindowPos3fvARB = (PFNGLWINDOWPOS3FVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fvARB")) == NULL) || r; r = ((glWindowPos3iARB = (PFNGLWINDOWPOS3IARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3iARB")) == NULL) || r; r = ((glWindowPos3ivARB = (PFNGLWINDOWPOS3IVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3ivARB")) == NULL) || r; r = ((glWindowPos3sARB = (PFNGLWINDOWPOS3SARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3sARB")) == NULL) || r; r = ((glWindowPos3svARB = (PFNGLWINDOWPOS3SVARBPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3svARB")) == NULL) || r; return r; } #endif /* GL_ARB_window_pos */ #ifdef GL_ATI_draw_buffers static GLboolean _glewInit_GL_ATI_draw_buffers () { GLboolean r = GL_FALSE; r = ((glDrawBuffersATI = (PFNGLDRAWBUFFERSATIPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersATI")) == NULL) || r; return r; } #endif /* GL_ATI_draw_buffers */ #ifdef GL_ATI_element_array static GLboolean _glewInit_GL_ATI_element_array () { GLboolean r = GL_FALSE; r = ((glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC)glewGetProcAddress((const GLubyte*)"glDrawElementArrayATI")) == NULL) || r; r = ((glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementArrayATI")) == NULL) || r; r = ((glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC)glewGetProcAddress((const GLubyte*)"glElementPointerATI")) == NULL) || r; return r; } #endif /* GL_ATI_element_array */ #ifdef GL_ATI_envmap_bumpmap static GLboolean _glewInit_GL_ATI_envmap_bumpmap () { GLboolean r = GL_FALSE; r = ((glGetTexBumpParameterfvATI = (PFNGLGETTEXBUMPPARAMETERFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetTexBumpParameterfvATI")) == NULL) || r; r = ((glGetTexBumpParameterivATI = (PFNGLGETTEXBUMPPARAMETERIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetTexBumpParameterivATI")) == NULL) || r; r = ((glTexBumpParameterfvATI = (PFNGLTEXBUMPPARAMETERFVATIPROC)glewGetProcAddress((const GLubyte*)"glTexBumpParameterfvATI")) == NULL) || r; r = ((glTexBumpParameterivATI = (PFNGLTEXBUMPPARAMETERIVATIPROC)glewGetProcAddress((const GLubyte*)"glTexBumpParameterivATI")) == NULL) || r; return r; } #endif /* GL_ATI_envmap_bumpmap */ #ifdef GL_ATI_fragment_shader static GLboolean _glewInit_GL_ATI_fragment_shader () { GLboolean r = GL_FALSE; r = ((glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC)glewGetProcAddress((const GLubyte*)"glAlphaFragmentOp1ATI")) == NULL) || r; r = ((glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC)glewGetProcAddress((const GLubyte*)"glAlphaFragmentOp2ATI")) == NULL) || r; r = ((glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC)glewGetProcAddress((const GLubyte*)"glAlphaFragmentOp3ATI")) == NULL) || r; r = ((glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glBeginFragmentShaderATI")) == NULL) || r; r = ((glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glBindFragmentShaderATI")) == NULL) || r; r = ((glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC)glewGetProcAddress((const GLubyte*)"glColorFragmentOp1ATI")) == NULL) || r; r = ((glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC)glewGetProcAddress((const GLubyte*)"glColorFragmentOp2ATI")) == NULL) || r; r = ((glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC)glewGetProcAddress((const GLubyte*)"glColorFragmentOp3ATI")) == NULL) || r; r = ((glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glDeleteFragmentShaderATI")) == NULL) || r; r = ((glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC)glewGetProcAddress((const GLubyte*)"glEndFragmentShaderATI")) == NULL) || r; r = ((glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)glewGetProcAddress((const GLubyte*)"glGenFragmentShadersATI")) == NULL) || r; r = ((glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC)glewGetProcAddress((const GLubyte*)"glPassTexCoordATI")) == NULL) || r; r = ((glSampleMapATI = (PFNGLSAMPLEMAPATIPROC)glewGetProcAddress((const GLubyte*)"glSampleMapATI")) == NULL) || r; r = ((glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)glewGetProcAddress((const GLubyte*)"glSetFragmentShaderConstantATI")) == NULL) || r; return r; } #endif /* GL_ATI_fragment_shader */ #ifdef GL_ATI_map_object_buffer static GLboolean _glewInit_GL_ATI_map_object_buffer () { GLboolean r = GL_FALSE; r = ((glMapObjectBufferATI = (PFNGLMAPOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glMapObjectBufferATI")) == NULL) || r; r = ((glUnmapObjectBufferATI = (PFNGLUNMAPOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glUnmapObjectBufferATI")) == NULL) || r; return r; } #endif /* GL_ATI_map_object_buffer */ #ifdef GL_ATI_pn_triangles static GLboolean _glewInit_GL_ATI_pn_triangles () { GLboolean r = GL_FALSE; r = ((glPNTrianglesfATI = (PFNGLPNTRIANGLESFATIPROC)glewGetProcAddress((const GLubyte*)"glPNTrianglesfATI")) == NULL) || r; r = ((glPNTrianglesiATI = (PFNGLPNTRIANGLESIATIPROC)glewGetProcAddress((const GLubyte*)"glPNTrianglesiATI")) == NULL) || r; return r; } #endif /* GL_ATI_pn_triangles */ #ifdef GL_ATI_separate_stencil static GLboolean _glewInit_GL_ATI_separate_stencil () { GLboolean r = GL_FALSE; r = ((glStencilFuncSeparateATI = (PFNGLSTENCILFUNCSEPARATEATIPROC)glewGetProcAddress((const GLubyte*)"glStencilFuncSeparateATI")) == NULL) || r; r = ((glStencilOpSeparateATI = (PFNGLSTENCILOPSEPARATEATIPROC)glewGetProcAddress((const GLubyte*)"glStencilOpSeparateATI")) == NULL) || r; return r; } #endif /* GL_ATI_separate_stencil */ #ifdef GL_ATI_vertex_array_object static GLboolean _glewInit_GL_ATI_vertex_array_object () { GLboolean r = GL_FALSE; r = ((glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC)glewGetProcAddress((const GLubyte*)"glArrayObjectATI")) == NULL) || r; r = ((glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glFreeObjectBufferATI")) == NULL) || r; r = ((glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetArrayObjectfvATI")) == NULL) || r; r = ((glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetArrayObjectivATI")) == NULL) || r; r = ((glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetObjectBufferfvATI")) == NULL) || r; r = ((glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetObjectBufferivATI")) == NULL) || r; r = ((glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVariantArrayObjectfvATI")) == NULL) || r; r = ((glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVariantArrayObjectivATI")) == NULL) || r; r = ((glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glIsObjectBufferATI")) == NULL) || r; r = ((glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glNewObjectBufferATI")) == NULL) || r; r = ((glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC)glewGetProcAddress((const GLubyte*)"glUpdateObjectBufferATI")) == NULL) || r; r = ((glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC)glewGetProcAddress((const GLubyte*)"glVariantArrayObjectATI")) == NULL) || r; return r; } #endif /* GL_ATI_vertex_array_object */ #ifdef GL_ATI_vertex_attrib_array_object static GLboolean _glewInit_GL_ATI_vertex_attrib_array_object () { GLboolean r = GL_FALSE; r = ((glGetVertexAttribArrayObjectfvATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribArrayObjectfvATI")) == NULL) || r; r = ((glGetVertexAttribArrayObjectivATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribArrayObjectivATI")) == NULL) || r; r = ((glVertexAttribArrayObjectATI = (PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribArrayObjectATI")) == NULL) || r; return r; } #endif /* GL_ATI_vertex_attrib_array_object */ #ifdef GL_ATI_vertex_streams static GLboolean _glewInit_GL_ATI_vertex_streams () { GLboolean r = GL_FALSE; r = ((glClientActiveVertexStreamATI = (PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)glewGetProcAddress((const GLubyte*)"glClientActiveVertexStreamATI")) == NULL) || r; r = ((glNormalStream3bATI = (PFNGLNORMALSTREAM3BATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3bATI")) == NULL) || r; r = ((glNormalStream3bvATI = (PFNGLNORMALSTREAM3BVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3bvATI")) == NULL) || r; r = ((glNormalStream3dATI = (PFNGLNORMALSTREAM3DATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3dATI")) == NULL) || r; r = ((glNormalStream3dvATI = (PFNGLNORMALSTREAM3DVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3dvATI")) == NULL) || r; r = ((glNormalStream3fATI = (PFNGLNORMALSTREAM3FATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3fATI")) == NULL) || r; r = ((glNormalStream3fvATI = (PFNGLNORMALSTREAM3FVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3fvATI")) == NULL) || r; r = ((glNormalStream3iATI = (PFNGLNORMALSTREAM3IATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3iATI")) == NULL) || r; r = ((glNormalStream3ivATI = (PFNGLNORMALSTREAM3IVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3ivATI")) == NULL) || r; r = ((glNormalStream3sATI = (PFNGLNORMALSTREAM3SATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3sATI")) == NULL) || r; r = ((glNormalStream3svATI = (PFNGLNORMALSTREAM3SVATIPROC)glewGetProcAddress((const GLubyte*)"glNormalStream3svATI")) == NULL) || r; r = ((glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)glewGetProcAddress((const GLubyte*)"glVertexBlendEnvfATI")) == NULL) || r; r = ((glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)glewGetProcAddress((const GLubyte*)"glVertexBlendEnviATI")) == NULL) || r; r = ((glVertexStream1dATI = (PFNGLVERTEXSTREAM1DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1dATI")) == NULL) || r; r = ((glVertexStream1dvATI = (PFNGLVERTEXSTREAM1DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1dvATI")) == NULL) || r; r = ((glVertexStream1fATI = (PFNGLVERTEXSTREAM1FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1fATI")) == NULL) || r; r = ((glVertexStream1fvATI = (PFNGLVERTEXSTREAM1FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1fvATI")) == NULL) || r; r = ((glVertexStream1iATI = (PFNGLVERTEXSTREAM1IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1iATI")) == NULL) || r; r = ((glVertexStream1ivATI = (PFNGLVERTEXSTREAM1IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1ivATI")) == NULL) || r; r = ((glVertexStream1sATI = (PFNGLVERTEXSTREAM1SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1sATI")) == NULL) || r; r = ((glVertexStream1svATI = (PFNGLVERTEXSTREAM1SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream1svATI")) == NULL) || r; r = ((glVertexStream2dATI = (PFNGLVERTEXSTREAM2DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2dATI")) == NULL) || r; r = ((glVertexStream2dvATI = (PFNGLVERTEXSTREAM2DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2dvATI")) == NULL) || r; r = ((glVertexStream2fATI = (PFNGLVERTEXSTREAM2FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2fATI")) == NULL) || r; r = ((glVertexStream2fvATI = (PFNGLVERTEXSTREAM2FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2fvATI")) == NULL) || r; r = ((glVertexStream2iATI = (PFNGLVERTEXSTREAM2IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2iATI")) == NULL) || r; r = ((glVertexStream2ivATI = (PFNGLVERTEXSTREAM2IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2ivATI")) == NULL) || r; r = ((glVertexStream2sATI = (PFNGLVERTEXSTREAM2SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2sATI")) == NULL) || r; r = ((glVertexStream2svATI = (PFNGLVERTEXSTREAM2SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream2svATI")) == NULL) || r; r = ((glVertexStream3dATI = (PFNGLVERTEXSTREAM3DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3dATI")) == NULL) || r; r = ((glVertexStream3dvATI = (PFNGLVERTEXSTREAM3DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3dvATI")) == NULL) || r; r = ((glVertexStream3fATI = (PFNGLVERTEXSTREAM3FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3fATI")) == NULL) || r; r = ((glVertexStream3fvATI = (PFNGLVERTEXSTREAM3FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3fvATI")) == NULL) || r; r = ((glVertexStream3iATI = (PFNGLVERTEXSTREAM3IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3iATI")) == NULL) || r; r = ((glVertexStream3ivATI = (PFNGLVERTEXSTREAM3IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3ivATI")) == NULL) || r; r = ((glVertexStream3sATI = (PFNGLVERTEXSTREAM3SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3sATI")) == NULL) || r; r = ((glVertexStream3svATI = (PFNGLVERTEXSTREAM3SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream3svATI")) == NULL) || r; r = ((glVertexStream4dATI = (PFNGLVERTEXSTREAM4DATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4dATI")) == NULL) || r; r = ((glVertexStream4dvATI = (PFNGLVERTEXSTREAM4DVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4dvATI")) == NULL) || r; r = ((glVertexStream4fATI = (PFNGLVERTEXSTREAM4FATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4fATI")) == NULL) || r; r = ((glVertexStream4fvATI = (PFNGLVERTEXSTREAM4FVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4fvATI")) == NULL) || r; r = ((glVertexStream4iATI = (PFNGLVERTEXSTREAM4IATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4iATI")) == NULL) || r; r = ((glVertexStream4ivATI = (PFNGLVERTEXSTREAM4IVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4ivATI")) == NULL) || r; r = ((glVertexStream4sATI = (PFNGLVERTEXSTREAM4SATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4sATI")) == NULL) || r; r = ((glVertexStream4svATI = (PFNGLVERTEXSTREAM4SVATIPROC)glewGetProcAddress((const GLubyte*)"glVertexStream4svATI")) == NULL) || r; return r; } #endif /* GL_ATI_vertex_streams */ #ifdef GL_EXT_base_instance static GLboolean _glewInit_GL_EXT_base_instance () { GLboolean r = GL_FALSE; r = ((glDrawArraysInstancedBaseInstanceEXT = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedBaseInstanceEXT")) == NULL) || r; r = ((glDrawElementsInstancedBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseInstanceEXT")) == NULL) || r; r = ((glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexBaseInstanceEXT")) == NULL) || r; return r; } #endif /* GL_EXT_base_instance */ #ifdef GL_EXT_bindable_uniform static GLboolean _glewInit_GL_EXT_bindable_uniform () { GLboolean r = GL_FALSE; r = ((glGetUniformBufferSizeEXT = (PFNGLGETUNIFORMBUFFERSIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUniformBufferSizeEXT")) == NULL) || r; r = ((glGetUniformOffsetEXT = (PFNGLGETUNIFORMOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUniformOffsetEXT")) == NULL) || r; r = ((glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glUniformBufferEXT")) == NULL) || r; return r; } #endif /* GL_EXT_bindable_uniform */ #ifdef GL_EXT_blend_color static GLboolean _glewInit_GL_EXT_blend_color () { GLboolean r = GL_FALSE; r = ((glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)glewGetProcAddress((const GLubyte*)"glBlendColorEXT")) == NULL) || r; return r; } #endif /* GL_EXT_blend_color */ #ifdef GL_EXT_blend_equation_separate static GLboolean _glewInit_GL_EXT_blend_equation_separate () { GLboolean r = GL_FALSE; r = ((glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateEXT")) == NULL) || r; return r; } #endif /* GL_EXT_blend_equation_separate */ #ifdef GL_EXT_blend_func_extended static GLboolean _glewInit_GL_EXT_blend_func_extended () { GLboolean r = GL_FALSE; r = ((glBindFragDataLocationIndexedEXT = (PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationIndexedEXT")) == NULL) || r; r = ((glGetFragDataIndexEXT = (PFNGLGETFRAGDATAINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataIndexEXT")) == NULL) || r; r = ((glGetProgramResourceLocationIndexEXT = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourceLocationIndexEXT")) == NULL) || r; return r; } #endif /* GL_EXT_blend_func_extended */ #ifdef GL_EXT_blend_func_separate static GLboolean _glewInit_GL_EXT_blend_func_separate () { GLboolean r = GL_FALSE; r = ((glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateEXT")) == NULL) || r; return r; } #endif /* GL_EXT_blend_func_separate */ #ifdef GL_EXT_blend_minmax static GLboolean _glewInit_GL_EXT_blend_minmax () { GLboolean r = GL_FALSE; r = ((glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationEXT")) == NULL) || r; return r; } #endif /* GL_EXT_blend_minmax */ #ifdef GL_EXT_buffer_storage static GLboolean _glewInit_GL_EXT_buffer_storage () { GLboolean r = GL_FALSE; r = ((glBufferStorageEXT = (PFNGLBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageEXT")) == NULL) || r; r = ((glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageEXT")) == NULL) || r; return r; } #endif /* GL_EXT_buffer_storage */ #ifdef GL_EXT_clear_texture static GLboolean _glewInit_GL_EXT_clear_texture () { GLboolean r = GL_FALSE; r = ((glClearTexImageEXT = (PFNGLCLEARTEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexImageEXT")) == NULL) || r; r = ((glClearTexSubImageEXT = (PFNGLCLEARTEXSUBIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glClearTexSubImageEXT")) == NULL) || r; return r; } #endif /* GL_EXT_clear_texture */ #ifdef GL_EXT_color_subtable static GLboolean _glewInit_GL_EXT_color_subtable () { GLboolean r = GL_FALSE; r = ((glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glColorSubTableEXT")) == NULL) || r; r = ((glCopyColorSubTableEXT = (PFNGLCOPYCOLORSUBTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyColorSubTableEXT")) == NULL) || r; return r; } #endif /* GL_EXT_color_subtable */ #ifdef GL_EXT_compiled_vertex_array static GLboolean _glewInit_GL_EXT_compiled_vertex_array () { GLboolean r = GL_FALSE; r = ((glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glLockArraysEXT")) == NULL) || r; r = ((glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glUnlockArraysEXT")) == NULL) || r; return r; } #endif /* GL_EXT_compiled_vertex_array */ #ifdef GL_EXT_convolution static GLboolean _glewInit_GL_EXT_convolution () { GLboolean r = GL_FALSE; r = ((glConvolutionFilter1DEXT = (PFNGLCONVOLUTIONFILTER1DEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter1DEXT")) == NULL) || r; r = ((glConvolutionFilter2DEXT = (PFNGLCONVOLUTIONFILTER2DEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionFilter2DEXT")) == NULL) || r; r = ((glConvolutionParameterfEXT = (PFNGLCONVOLUTIONPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterfEXT")) == NULL) || r; r = ((glConvolutionParameterfvEXT = (PFNGLCONVOLUTIONPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterfvEXT")) == NULL) || r; r = ((glConvolutionParameteriEXT = (PFNGLCONVOLUTIONPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameteriEXT")) == NULL) || r; r = ((glConvolutionParameterivEXT = (PFNGLCONVOLUTIONPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glConvolutionParameterivEXT")) == NULL) || r; r = ((glCopyConvolutionFilter1DEXT = (PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter1DEXT")) == NULL) || r; r = ((glCopyConvolutionFilter2DEXT = (PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyConvolutionFilter2DEXT")) == NULL) || r; r = ((glGetConvolutionFilterEXT = (PFNGLGETCONVOLUTIONFILTEREXTPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionFilterEXT")) == NULL) || r; r = ((glGetConvolutionParameterfvEXT = (PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameterfvEXT")) == NULL) || r; r = ((glGetConvolutionParameterivEXT = (PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetConvolutionParameterivEXT")) == NULL) || r; r = ((glGetSeparableFilterEXT = (PFNGLGETSEPARABLEFILTEREXTPROC)glewGetProcAddress((const GLubyte*)"glGetSeparableFilterEXT")) == NULL) || r; r = ((glSeparableFilter2DEXT = (PFNGLSEPARABLEFILTER2DEXTPROC)glewGetProcAddress((const GLubyte*)"glSeparableFilter2DEXT")) == NULL) || r; return r; } #endif /* GL_EXT_convolution */ #ifdef GL_EXT_coordinate_frame static GLboolean _glewInit_GL_EXT_coordinate_frame () { GLboolean r = GL_FALSE; r = ((glBinormalPointerEXT = (PFNGLBINORMALPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glBinormalPointerEXT")) == NULL) || r; r = ((glTangentPointerEXT = (PFNGLTANGENTPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glTangentPointerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_coordinate_frame */ #ifdef GL_EXT_copy_image static GLboolean _glewInit_GL_EXT_copy_image () { GLboolean r = GL_FALSE; r = ((glCopyImageSubDataEXT = (PFNGLCOPYIMAGESUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataEXT")) == NULL) || r; return r; } #endif /* GL_EXT_copy_image */ #ifdef GL_EXT_copy_texture static GLboolean _glewInit_GL_EXT_copy_texture () { GLboolean r = GL_FALSE; r = ((glCopyTexImage1DEXT = (PFNGLCOPYTEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexImage1DEXT")) == NULL) || r; r = ((glCopyTexImage2DEXT = (PFNGLCOPYTEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexImage2DEXT")) == NULL) || r; r = ((glCopyTexSubImage1DEXT = (PFNGLCOPYTEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage1DEXT")) == NULL) || r; r = ((glCopyTexSubImage2DEXT = (PFNGLCOPYTEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage2DEXT")) == NULL) || r; r = ((glCopyTexSubImage3DEXT = (PFNGLCOPYTEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DEXT")) == NULL) || r; return r; } #endif /* GL_EXT_copy_texture */ #ifdef GL_EXT_cull_vertex static GLboolean _glewInit_GL_EXT_cull_vertex () { GLboolean r = GL_FALSE; r = ((glCullParameterdvEXT = (PFNGLCULLPARAMETERDVEXTPROC)glewGetProcAddress((const GLubyte*)"glCullParameterdvEXT")) == NULL) || r; r = ((glCullParameterfvEXT = (PFNGLCULLPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glCullParameterfvEXT")) == NULL) || r; return r; } #endif /* GL_EXT_cull_vertex */ #ifdef GL_EXT_debug_label static GLboolean _glewInit_GL_EXT_debug_label () { GLboolean r = GL_FALSE; r = ((glGetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)glewGetProcAddress((const GLubyte*)"glGetObjectLabelEXT")) == NULL) || r; r = ((glLabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)glewGetProcAddress((const GLubyte*)"glLabelObjectEXT")) == NULL) || r; return r; } #endif /* GL_EXT_debug_label */ #ifdef GL_EXT_debug_marker static GLboolean _glewInit_GL_EXT_debug_marker () { GLboolean r = GL_FALSE; r = ((glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)glewGetProcAddress((const GLubyte*)"glInsertEventMarkerEXT")) == NULL) || r; r = ((glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)glewGetProcAddress((const GLubyte*)"glPopGroupMarkerEXT")) == NULL) || r; r = ((glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)glewGetProcAddress((const GLubyte*)"glPushGroupMarkerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_debug_marker */ #ifdef GL_EXT_depth_bounds_test static GLboolean _glewInit_GL_EXT_depth_bounds_test () { GLboolean r = GL_FALSE; r = ((glDepthBoundsEXT = (PFNGLDEPTHBOUNDSEXTPROC)glewGetProcAddress((const GLubyte*)"glDepthBoundsEXT")) == NULL) || r; return r; } #endif /* GL_EXT_depth_bounds_test */ #ifdef GL_EXT_direct_state_access static GLboolean _glewInit_GL_EXT_direct_state_access () { GLboolean r = GL_FALSE; r = ((glBindMultiTextureEXT = (PFNGLBINDMULTITEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glBindMultiTextureEXT")) == NULL) || r; r = ((glCheckNamedFramebufferStatusEXT = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)glewGetProcAddress((const GLubyte*)"glCheckNamedFramebufferStatusEXT")) == NULL) || r; r = ((glClientAttribDefaultEXT = (PFNGLCLIENTATTRIBDEFAULTEXTPROC)glewGetProcAddress((const GLubyte*)"glClientAttribDefaultEXT")) == NULL) || r; r = ((glCompressedMultiTexImage1DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexImage1DEXT")) == NULL) || r; r = ((glCompressedMultiTexImage2DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexImage2DEXT")) == NULL) || r; r = ((glCompressedMultiTexImage3DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexImage3DEXT")) == NULL) || r; r = ((glCompressedMultiTexSubImage1DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexSubImage1DEXT")) == NULL) || r; r = ((glCompressedMultiTexSubImage2DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexSubImage2DEXT")) == NULL) || r; r = ((glCompressedMultiTexSubImage3DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedMultiTexSubImage3DEXT")) == NULL) || r; r = ((glCompressedTextureImage1DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureImage1DEXT")) == NULL) || r; r = ((glCompressedTextureImage2DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureImage2DEXT")) == NULL) || r; r = ((glCompressedTextureImage3DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureImage3DEXT")) == NULL) || r; r = ((glCompressedTextureSubImage1DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage1DEXT")) == NULL) || r; r = ((glCompressedTextureSubImage2DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage2DEXT")) == NULL) || r; r = ((glCompressedTextureSubImage3DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCompressedTextureSubImage3DEXT")) == NULL) || r; r = ((glCopyMultiTexImage1DEXT = (PFNGLCOPYMULTITEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexImage1DEXT")) == NULL) || r; r = ((glCopyMultiTexImage2DEXT = (PFNGLCOPYMULTITEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexImage2DEXT")) == NULL) || r; r = ((glCopyMultiTexSubImage1DEXT = (PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexSubImage1DEXT")) == NULL) || r; r = ((glCopyMultiTexSubImage2DEXT = (PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexSubImage2DEXT")) == NULL) || r; r = ((glCopyMultiTexSubImage3DEXT = (PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyMultiTexSubImage3DEXT")) == NULL) || r; r = ((glCopyTextureImage1DEXT = (PFNGLCOPYTEXTUREIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureImage1DEXT")) == NULL) || r; r = ((glCopyTextureImage2DEXT = (PFNGLCOPYTEXTUREIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureImage2DEXT")) == NULL) || r; r = ((glCopyTextureSubImage1DEXT = (PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage1DEXT")) == NULL) || r; r = ((glCopyTextureSubImage2DEXT = (PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage2DEXT")) == NULL) || r; r = ((glCopyTextureSubImage3DEXT = (PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glCopyTextureSubImage3DEXT")) == NULL) || r; r = ((glDisableClientStateIndexedEXT = (PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableClientStateIndexedEXT")) == NULL) || r; r = ((glDisableClientStateiEXT = (PFNGLDISABLECLIENTSTATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableClientStateiEXT")) == NULL) || r; r = ((glDisableVertexArrayAttribEXT = (PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexArrayAttribEXT")) == NULL) || r; r = ((glDisableVertexArrayEXT = (PFNGLDISABLEVERTEXARRAYEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableVertexArrayEXT")) == NULL) || r; r = ((glEnableClientStateIndexedEXT = (PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableClientStateIndexedEXT")) == NULL) || r; r = ((glEnableClientStateiEXT = (PFNGLENABLECLIENTSTATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableClientStateiEXT")) == NULL) || r; r = ((glEnableVertexArrayAttribEXT = (PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexArrayAttribEXT")) == NULL) || r; r = ((glEnableVertexArrayEXT = (PFNGLENABLEVERTEXARRAYEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableVertexArrayEXT")) == NULL) || r; r = ((glFlushMappedNamedBufferRangeEXT = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedNamedBufferRangeEXT")) == NULL) || r; r = ((glFramebufferDrawBufferEXT = (PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferDrawBufferEXT")) == NULL) || r; r = ((glFramebufferDrawBuffersEXT = (PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferDrawBuffersEXT")) == NULL) || r; r = ((glFramebufferReadBufferEXT = (PFNGLFRAMEBUFFERREADBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferReadBufferEXT")) == NULL) || r; r = ((glGenerateMultiTexMipmapEXT = (PFNGLGENERATEMULTITEXMIPMAPEXTPROC)glewGetProcAddress((const GLubyte*)"glGenerateMultiTexMipmapEXT")) == NULL) || r; r = ((glGenerateTextureMipmapEXT = (PFNGLGENERATETEXTUREMIPMAPEXTPROC)glewGetProcAddress((const GLubyte*)"glGenerateTextureMipmapEXT")) == NULL) || r; r = ((glGetCompressedMultiTexImageEXT = (PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedMultiTexImageEXT")) == NULL) || r; r = ((glGetCompressedTextureImageEXT = (PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetCompressedTextureImageEXT")) == NULL) || r; r = ((glGetDoubleIndexedvEXT = (PFNGLGETDOUBLEINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetDoubleIndexedvEXT")) == NULL) || r; r = ((glGetDoublei_vEXT = (PFNGLGETDOUBLEI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetDoublei_vEXT")) == NULL) || r; r = ((glGetFloatIndexedvEXT = (PFNGLGETFLOATINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFloatIndexedvEXT")) == NULL) || r; r = ((glGetFloati_vEXT = (PFNGLGETFLOATI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_vEXT")) == NULL) || r; r = ((glGetFramebufferParameterivEXT = (PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferParameterivEXT")) == NULL) || r; r = ((glGetMultiTexEnvfvEXT = (PFNGLGETMULTITEXENVFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexEnvfvEXT")) == NULL) || r; r = ((glGetMultiTexEnvivEXT = (PFNGLGETMULTITEXENVIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexEnvivEXT")) == NULL) || r; r = ((glGetMultiTexGendvEXT = (PFNGLGETMULTITEXGENDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexGendvEXT")) == NULL) || r; r = ((glGetMultiTexGenfvEXT = (PFNGLGETMULTITEXGENFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexGenfvEXT")) == NULL) || r; r = ((glGetMultiTexGenivEXT = (PFNGLGETMULTITEXGENIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexGenivEXT")) == NULL) || r; r = ((glGetMultiTexImageEXT = (PFNGLGETMULTITEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexImageEXT")) == NULL) || r; r = ((glGetMultiTexLevelParameterfvEXT = (PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexLevelParameterfvEXT")) == NULL) || r; r = ((glGetMultiTexLevelParameterivEXT = (PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexLevelParameterivEXT")) == NULL) || r; r = ((glGetMultiTexParameterIivEXT = (PFNGLGETMULTITEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterIivEXT")) == NULL) || r; r = ((glGetMultiTexParameterIuivEXT = (PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterIuivEXT")) == NULL) || r; r = ((glGetMultiTexParameterfvEXT = (PFNGLGETMULTITEXPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterfvEXT")) == NULL) || r; r = ((glGetMultiTexParameterivEXT = (PFNGLGETMULTITEXPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMultiTexParameterivEXT")) == NULL) || r; r = ((glGetNamedBufferParameterivEXT = (PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameterivEXT")) == NULL) || r; r = ((glGetNamedBufferPointervEXT = (PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferPointervEXT")) == NULL) || r; r = ((glGetNamedBufferSubDataEXT = (PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferSubDataEXT")) == NULL) || r; r = ((glGetNamedFramebufferAttachmentParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedFramebufferAttachmentParameterivEXT")) == NULL) || r; r = ((glGetNamedProgramLocalParameterIivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterIivEXT")) == NULL) || r; r = ((glGetNamedProgramLocalParameterIuivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterIuivEXT")) == NULL) || r; r = ((glGetNamedProgramLocalParameterdvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterdvEXT")) == NULL) || r; r = ((glGetNamedProgramLocalParameterfvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramLocalParameterfvEXT")) == NULL) || r; r = ((glGetNamedProgramStringEXT = (PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramStringEXT")) == NULL) || r; r = ((glGetNamedProgramivEXT = (PFNGLGETNAMEDPROGRAMIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedProgramivEXT")) == NULL) || r; r = ((glGetNamedRenderbufferParameterivEXT = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetNamedRenderbufferParameterivEXT")) == NULL) || r; r = ((glGetPointerIndexedvEXT = (PFNGLGETPOINTERINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPointerIndexedvEXT")) == NULL) || r; r = ((glGetPointeri_vEXT = (PFNGLGETPOINTERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPointeri_vEXT")) == NULL) || r; r = ((glGetTextureImageEXT = (PFNGLGETTEXTUREIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureImageEXT")) == NULL) || r; r = ((glGetTextureLevelParameterfvEXT = (PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameterfvEXT")) == NULL) || r; r = ((glGetTextureLevelParameterivEXT = (PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureLevelParameterivEXT")) == NULL) || r; r = ((glGetTextureParameterIivEXT = (PFNGLGETTEXTUREPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIivEXT")) == NULL) || r; r = ((glGetTextureParameterIuivEXT = (PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterIuivEXT")) == NULL) || r; r = ((glGetTextureParameterfvEXT = (PFNGLGETTEXTUREPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterfvEXT")) == NULL) || r; r = ((glGetTextureParameterivEXT = (PFNGLGETTEXTUREPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTextureParameterivEXT")) == NULL) || r; r = ((glGetVertexArrayIntegeri_vEXT = (PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIntegeri_vEXT")) == NULL) || r; r = ((glGetVertexArrayIntegervEXT = (PFNGLGETVERTEXARRAYINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayIntegervEXT")) == NULL) || r; r = ((glGetVertexArrayPointeri_vEXT = (PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayPointeri_vEXT")) == NULL) || r; r = ((glGetVertexArrayPointervEXT = (PFNGLGETVERTEXARRAYPOINTERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexArrayPointervEXT")) == NULL) || r; r = ((glMapNamedBufferEXT = (PFNGLMAPNAMEDBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBufferEXT")) == NULL) || r; r = ((glMapNamedBufferRangeEXT = (PFNGLMAPNAMEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glMapNamedBufferRangeEXT")) == NULL) || r; r = ((glMatrixFrustumEXT = (PFNGLMATRIXFRUSTUMEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixFrustumEXT")) == NULL) || r; r = ((glMatrixLoadIdentityEXT = (PFNGLMATRIXLOADIDENTITYEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadIdentityEXT")) == NULL) || r; r = ((glMatrixLoadTransposedEXT = (PFNGLMATRIXLOADTRANSPOSEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadTransposedEXT")) == NULL) || r; r = ((glMatrixLoadTransposefEXT = (PFNGLMATRIXLOADTRANSPOSEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadTransposefEXT")) == NULL) || r; r = ((glMatrixLoaddEXT = (PFNGLMATRIXLOADDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoaddEXT")) == NULL) || r; r = ((glMatrixLoadfEXT = (PFNGLMATRIXLOADFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadfEXT")) == NULL) || r; r = ((glMatrixMultTransposedEXT = (PFNGLMATRIXMULTTRANSPOSEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultTransposedEXT")) == NULL) || r; r = ((glMatrixMultTransposefEXT = (PFNGLMATRIXMULTTRANSPOSEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultTransposefEXT")) == NULL) || r; r = ((glMatrixMultdEXT = (PFNGLMATRIXMULTDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultdEXT")) == NULL) || r; r = ((glMatrixMultfEXT = (PFNGLMATRIXMULTFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultfEXT")) == NULL) || r; r = ((glMatrixOrthoEXT = (PFNGLMATRIXORTHOEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixOrthoEXT")) == NULL) || r; r = ((glMatrixPopEXT = (PFNGLMATRIXPOPEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixPopEXT")) == NULL) || r; r = ((glMatrixPushEXT = (PFNGLMATRIXPUSHEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixPushEXT")) == NULL) || r; r = ((glMatrixRotatedEXT = (PFNGLMATRIXROTATEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixRotatedEXT")) == NULL) || r; r = ((glMatrixRotatefEXT = (PFNGLMATRIXROTATEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixRotatefEXT")) == NULL) || r; r = ((glMatrixScaledEXT = (PFNGLMATRIXSCALEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixScaledEXT")) == NULL) || r; r = ((glMatrixScalefEXT = (PFNGLMATRIXSCALEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixScalefEXT")) == NULL) || r; r = ((glMatrixTranslatedEXT = (PFNGLMATRIXTRANSLATEDEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixTranslatedEXT")) == NULL) || r; r = ((glMatrixTranslatefEXT = (PFNGLMATRIXTRANSLATEFEXTPROC)glewGetProcAddress((const GLubyte*)"glMatrixTranslatefEXT")) == NULL) || r; r = ((glMultiTexBufferEXT = (PFNGLMULTITEXBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexBufferEXT")) == NULL) || r; r = ((glMultiTexCoordPointerEXT = (PFNGLMULTITEXCOORDPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoordPointerEXT")) == NULL) || r; r = ((glMultiTexEnvfEXT = (PFNGLMULTITEXENVFEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnvfEXT")) == NULL) || r; r = ((glMultiTexEnvfvEXT = (PFNGLMULTITEXENVFVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnvfvEXT")) == NULL) || r; r = ((glMultiTexEnviEXT = (PFNGLMULTITEXENVIEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnviEXT")) == NULL) || r; r = ((glMultiTexEnvivEXT = (PFNGLMULTITEXENVIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexEnvivEXT")) == NULL) || r; r = ((glMultiTexGendEXT = (PFNGLMULTITEXGENDEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGendEXT")) == NULL) || r; r = ((glMultiTexGendvEXT = (PFNGLMULTITEXGENDVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGendvEXT")) == NULL) || r; r = ((glMultiTexGenfEXT = (PFNGLMULTITEXGENFEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGenfEXT")) == NULL) || r; r = ((glMultiTexGenfvEXT = (PFNGLMULTITEXGENFVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGenfvEXT")) == NULL) || r; r = ((glMultiTexGeniEXT = (PFNGLMULTITEXGENIEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGeniEXT")) == NULL) || r; r = ((glMultiTexGenivEXT = (PFNGLMULTITEXGENIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexGenivEXT")) == NULL) || r; r = ((glMultiTexImage1DEXT = (PFNGLMULTITEXIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexImage1DEXT")) == NULL) || r; r = ((glMultiTexImage2DEXT = (PFNGLMULTITEXIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexImage2DEXT")) == NULL) || r; r = ((glMultiTexImage3DEXT = (PFNGLMULTITEXIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexImage3DEXT")) == NULL) || r; r = ((glMultiTexParameterIivEXT = (PFNGLMULTITEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterIivEXT")) == NULL) || r; r = ((glMultiTexParameterIuivEXT = (PFNGLMULTITEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterIuivEXT")) == NULL) || r; r = ((glMultiTexParameterfEXT = (PFNGLMULTITEXPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterfEXT")) == NULL) || r; r = ((glMultiTexParameterfvEXT = (PFNGLMULTITEXPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterfvEXT")) == NULL) || r; r = ((glMultiTexParameteriEXT = (PFNGLMULTITEXPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameteriEXT")) == NULL) || r; r = ((glMultiTexParameterivEXT = (PFNGLMULTITEXPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexParameterivEXT")) == NULL) || r; r = ((glMultiTexRenderbufferEXT = (PFNGLMULTITEXRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexRenderbufferEXT")) == NULL) || r; r = ((glMultiTexSubImage1DEXT = (PFNGLMULTITEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage1DEXT")) == NULL) || r; r = ((glMultiTexSubImage2DEXT = (PFNGLMULTITEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage2DEXT")) == NULL) || r; r = ((glMultiTexSubImage3DEXT = (PFNGLMULTITEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiTexSubImage3DEXT")) == NULL) || r; r = ((glNamedBufferDataEXT = (PFNGLNAMEDBUFFERDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferDataEXT")) == NULL) || r; r = ((glNamedBufferSubDataEXT = (PFNGLNAMEDBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferSubDataEXT")) == NULL) || r; r = ((glNamedCopyBufferSubDataEXT = (PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedCopyBufferSubDataEXT")) == NULL) || r; r = ((glNamedFramebufferRenderbufferEXT = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferRenderbufferEXT")) == NULL) || r; r = ((glNamedFramebufferTexture1DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture1DEXT")) == NULL) || r; r = ((glNamedFramebufferTexture2DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture2DEXT")) == NULL) || r; r = ((glNamedFramebufferTexture3DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTexture3DEXT")) == NULL) || r; r = ((glNamedFramebufferTextureEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureEXT")) == NULL) || r; r = ((glNamedFramebufferTextureFaceEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureFaceEXT")) == NULL) || r; r = ((glNamedFramebufferTextureLayerEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferTextureLayerEXT")) == NULL) || r; r = ((glNamedProgramLocalParameter4dEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4dEXT")) == NULL) || r; r = ((glNamedProgramLocalParameter4dvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4dvEXT")) == NULL) || r; r = ((glNamedProgramLocalParameter4fEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4fEXT")) == NULL) || r; r = ((glNamedProgramLocalParameter4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameter4fvEXT")) == NULL) || r; r = ((glNamedProgramLocalParameterI4iEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4iEXT")) == NULL) || r; r = ((glNamedProgramLocalParameterI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4ivEXT")) == NULL) || r; r = ((glNamedProgramLocalParameterI4uiEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4uiEXT")) == NULL) || r; r = ((glNamedProgramLocalParameterI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameterI4uivEXT")) == NULL) || r; r = ((glNamedProgramLocalParameters4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParameters4fvEXT")) == NULL) || r; r = ((glNamedProgramLocalParametersI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParametersI4ivEXT")) == NULL) || r; r = ((glNamedProgramLocalParametersI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramLocalParametersI4uivEXT")) == NULL) || r; r = ((glNamedProgramStringEXT = (PFNGLNAMEDPROGRAMSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedProgramStringEXT")) == NULL) || r; r = ((glNamedRenderbufferStorageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageEXT")) == NULL) || r; r = ((glNamedRenderbufferStorageMultisampleCoverageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleCoverageEXT")) == NULL) || r; r = ((glNamedRenderbufferStorageMultisampleEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedRenderbufferStorageMultisampleEXT")) == NULL) || r; r = ((glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1fEXT")) == NULL) || r; r = ((glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1fvEXT")) == NULL) || r; r = ((glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1iEXT")) == NULL) || r; r = ((glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ivEXT")) == NULL) || r; r = ((glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1uiEXT")) == NULL) || r; r = ((glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1uivEXT")) == NULL) || r; r = ((glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2fEXT")) == NULL) || r; r = ((glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2fvEXT")) == NULL) || r; r = ((glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2iEXT")) == NULL) || r; r = ((glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ivEXT")) == NULL) || r; r = ((glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2uiEXT")) == NULL) || r; r = ((glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2uivEXT")) == NULL) || r; r = ((glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3fEXT")) == NULL) || r; r = ((glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3fvEXT")) == NULL) || r; r = ((glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3iEXT")) == NULL) || r; r = ((glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ivEXT")) == NULL) || r; r = ((glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3uiEXT")) == NULL) || r; r = ((glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3uivEXT")) == NULL) || r; r = ((glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4fEXT")) == NULL) || r; r = ((glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4fvEXT")) == NULL) || r; r = ((glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4iEXT")) == NULL) || r; r = ((glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ivEXT")) == NULL) || r; r = ((glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4uiEXT")) == NULL) || r; r = ((glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4uivEXT")) == NULL) || r; r = ((glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x3fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix2x4fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x2fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix3x4fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x2fvEXT")) == NULL) || r; r = ((glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformMatrix4x3fvEXT")) == NULL) || r; r = ((glPushClientAttribDefaultEXT = (PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)glewGetProcAddress((const GLubyte*)"glPushClientAttribDefaultEXT")) == NULL) || r; r = ((glTextureBufferEXT = (PFNGLTEXTUREBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glTextureBufferEXT")) == NULL) || r; r = ((glTextureImage1DEXT = (PFNGLTEXTUREIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureImage1DEXT")) == NULL) || r; r = ((glTextureImage2DEXT = (PFNGLTEXTUREIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureImage2DEXT")) == NULL) || r; r = ((glTextureImage3DEXT = (PFNGLTEXTUREIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureImage3DEXT")) == NULL) || r; r = ((glTextureParameterIivEXT = (PFNGLTEXTUREPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIivEXT")) == NULL) || r; r = ((glTextureParameterIuivEXT = (PFNGLTEXTUREPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterIuivEXT")) == NULL) || r; r = ((glTextureParameterfEXT = (PFNGLTEXTUREPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterfEXT")) == NULL) || r; r = ((glTextureParameterfvEXT = (PFNGLTEXTUREPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterfvEXT")) == NULL) || r; r = ((glTextureParameteriEXT = (PFNGLTEXTUREPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameteriEXT")) == NULL) || r; r = ((glTextureParameterivEXT = (PFNGLTEXTUREPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureParameterivEXT")) == NULL) || r; r = ((glTextureRenderbufferEXT = (PFNGLTEXTURERENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glTextureRenderbufferEXT")) == NULL) || r; r = ((glTextureSubImage1DEXT = (PFNGLTEXTURESUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage1DEXT")) == NULL) || r; r = ((glTextureSubImage2DEXT = (PFNGLTEXTURESUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage2DEXT")) == NULL) || r; r = ((glTextureSubImage3DEXT = (PFNGLTEXTURESUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureSubImage3DEXT")) == NULL) || r; r = ((glUnmapNamedBufferEXT = (PFNGLUNMAPNAMEDBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glUnmapNamedBufferEXT")) == NULL) || r; r = ((glVertexArrayColorOffsetEXT = (PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayColorOffsetEXT")) == NULL) || r; r = ((glVertexArrayEdgeFlagOffsetEXT = (PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayEdgeFlagOffsetEXT")) == NULL) || r; r = ((glVertexArrayFogCoordOffsetEXT = (PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayFogCoordOffsetEXT")) == NULL) || r; r = ((glVertexArrayIndexOffsetEXT = (PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayIndexOffsetEXT")) == NULL) || r; r = ((glVertexArrayMultiTexCoordOffsetEXT = (PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayMultiTexCoordOffsetEXT")) == NULL) || r; r = ((glVertexArrayNormalOffsetEXT = (PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayNormalOffsetEXT")) == NULL) || r; r = ((glVertexArraySecondaryColorOffsetEXT = (PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArraySecondaryColorOffsetEXT")) == NULL) || r; r = ((glVertexArrayTexCoordOffsetEXT = (PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayTexCoordOffsetEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribDivisorEXT = (PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribDivisorEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribIOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribIOffsetEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribOffsetEXT")) == NULL) || r; r = ((glVertexArrayVertexOffsetEXT = (PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexOffsetEXT")) == NULL) || r; return r; } #endif /* GL_EXT_direct_state_access */ #ifdef GL_EXT_discard_framebuffer static GLboolean _glewInit_GL_EXT_discard_framebuffer () { GLboolean r = GL_FALSE; r = ((glDiscardFramebufferEXT = (PFNGLDISCARDFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glDiscardFramebufferEXT")) == NULL) || r; return r; } #endif /* GL_EXT_discard_framebuffer */ #ifdef GL_EXT_draw_buffers static GLboolean _glewInit_GL_EXT_draw_buffers () { GLboolean r = GL_FALSE; r = ((glDrawBuffersEXT = (PFNGLDRAWBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersEXT")) == NULL) || r; return r; } #endif /* GL_EXT_draw_buffers */ #ifdef GL_EXT_draw_buffers2 static GLboolean _glewInit_GL_EXT_draw_buffers2 () { GLboolean r = GL_FALSE; r = ((glColorMaskIndexedEXT = (PFNGLCOLORMASKINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glColorMaskIndexedEXT")) == NULL) || r; r = ((glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableIndexedEXT")) == NULL) || r; r = ((glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableIndexedEXT")) == NULL) || r; r = ((glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetBooleanIndexedvEXT")) == NULL) || r; r = ((glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetIntegerIndexedvEXT")) == NULL) || r; r = ((glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glIsEnabledIndexedEXT")) == NULL) || r; return r; } #endif /* GL_EXT_draw_buffers2 */ #ifdef GL_EXT_draw_buffers_indexed static GLboolean _glewInit_GL_EXT_draw_buffers_indexed () { GLboolean r = GL_FALSE; r = ((glBlendEquationSeparateiEXT = (PFNGLBLENDEQUATIONSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationSeparateiEXT")) == NULL) || r; r = ((glBlendEquationiEXT = (PFNGLBLENDEQUATIONIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendEquationiEXT")) == NULL) || r; r = ((glBlendFuncSeparateiEXT = (PFNGLBLENDFUNCSEPARATEIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFuncSeparateiEXT")) == NULL) || r; r = ((glBlendFunciEXT = (PFNGLBLENDFUNCIEXTPROC)glewGetProcAddress((const GLubyte*)"glBlendFunciEXT")) == NULL) || r; r = ((glColorMaskiEXT = (PFNGLCOLORMASKIEXTPROC)glewGetProcAddress((const GLubyte*)"glColorMaskiEXT")) == NULL) || r; r = ((glDisableiEXT = (PFNGLDISABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableiEXT")) == NULL) || r; r = ((glEnableiEXT = (PFNGLENABLEIEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableiEXT")) == NULL) || r; r = ((glIsEnablediEXT = (PFNGLISENABLEDIEXTPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediEXT")) == NULL) || r; return r; } #endif /* GL_EXT_draw_buffers_indexed */ #ifdef GL_EXT_draw_elements_base_vertex static GLboolean _glewInit_GL_EXT_draw_elements_base_vertex () { GLboolean r = GL_FALSE; r = ((glDrawElementsBaseVertexEXT = (PFNGLDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsBaseVertexEXT")) == NULL) || r; r = ((glDrawElementsInstancedBaseVertexEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedBaseVertexEXT")) == NULL) || r; r = ((glDrawRangeElementsBaseVertexEXT = (PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsBaseVertexEXT")) == NULL) || r; r = ((glMultiDrawElementsBaseVertexEXT = (PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsBaseVertexEXT")) == NULL) || r; return r; } #endif /* GL_EXT_draw_elements_base_vertex */ #ifdef GL_EXT_draw_instanced static GLboolean _glewInit_GL_EXT_draw_instanced () { GLboolean r = GL_FALSE; r = ((glDrawArraysInstancedEXT = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedEXT")) == NULL) || r; r = ((glDrawElementsInstancedEXT = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedEXT")) == NULL) || r; return r; } #endif /* GL_EXT_draw_instanced */ #ifdef GL_EXT_draw_range_elements static GLboolean _glewInit_GL_EXT_draw_range_elements () { GLboolean r = GL_FALSE; r = ((glDrawRangeElementsEXT = (PFNGLDRAWRANGEELEMENTSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawRangeElementsEXT")) == NULL) || r; return r; } #endif /* GL_EXT_draw_range_elements */ #ifdef GL_EXT_external_buffer static GLboolean _glewInit_GL_EXT_external_buffer () { GLboolean r = GL_FALSE; r = ((glBufferStorageExternalEXT = (PFNGLBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageExternalEXT")) == NULL) || r; r = ((glNamedBufferStorageExternalEXT = (PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageExternalEXT")) == NULL) || r; return r; } #endif /* GL_EXT_external_buffer */ #ifdef GL_EXT_fog_coord static GLboolean _glewInit_GL_EXT_fog_coord () { GLboolean r = GL_FALSE; r = ((glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoordPointerEXT")) == NULL) || r; r = ((glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoorddEXT")) == NULL) || r; r = ((glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoorddvEXT")) == NULL) || r; r = ((glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoordfEXT")) == NULL) || r; r = ((glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFogCoordfvEXT")) == NULL) || r; return r; } #endif /* GL_EXT_fog_coord */ #ifdef GL_EXT_fragment_lighting static GLboolean _glewInit_GL_EXT_fragment_lighting () { GLboolean r = GL_FALSE; r = ((glFragmentColorMaterialEXT = (PFNGLFRAGMENTCOLORMATERIALEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentColorMaterialEXT")) == NULL) || r; r = ((glFragmentLightModelfEXT = (PFNGLFRAGMENTLIGHTMODELFEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfEXT")) == NULL) || r; r = ((glFragmentLightModelfvEXT = (PFNGLFRAGMENTLIGHTMODELFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfvEXT")) == NULL) || r; r = ((glFragmentLightModeliEXT = (PFNGLFRAGMENTLIGHTMODELIEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModeliEXT")) == NULL) || r; r = ((glFragmentLightModelivEXT = (PFNGLFRAGMENTLIGHTMODELIVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelivEXT")) == NULL) || r; r = ((glFragmentLightfEXT = (PFNGLFRAGMENTLIGHTFEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfEXT")) == NULL) || r; r = ((glFragmentLightfvEXT = (PFNGLFRAGMENTLIGHTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfvEXT")) == NULL) || r; r = ((glFragmentLightiEXT = (PFNGLFRAGMENTLIGHTIEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightiEXT")) == NULL) || r; r = ((glFragmentLightivEXT = (PFNGLFRAGMENTLIGHTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightivEXT")) == NULL) || r; r = ((glFragmentMaterialfEXT = (PFNGLFRAGMENTMATERIALFEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfEXT")) == NULL) || r; r = ((glFragmentMaterialfvEXT = (PFNGLFRAGMENTMATERIALFVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfvEXT")) == NULL) || r; r = ((glFragmentMaterialiEXT = (PFNGLFRAGMENTMATERIALIEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialiEXT")) == NULL) || r; r = ((glFragmentMaterialivEXT = (PFNGLFRAGMENTMATERIALIVEXTPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialivEXT")) == NULL) || r; r = ((glGetFragmentLightfvEXT = (PFNGLGETFRAGMENTLIGHTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightfvEXT")) == NULL) || r; r = ((glGetFragmentLightivEXT = (PFNGLGETFRAGMENTLIGHTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightivEXT")) == NULL) || r; r = ((glGetFragmentMaterialfvEXT = (PFNGLGETFRAGMENTMATERIALFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialfvEXT")) == NULL) || r; r = ((glGetFragmentMaterialivEXT = (PFNGLGETFRAGMENTMATERIALIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialivEXT")) == NULL) || r; r = ((glLightEnviEXT = (PFNGLLIGHTENVIEXTPROC)glewGetProcAddress((const GLubyte*)"glLightEnviEXT")) == NULL) || r; return r; } #endif /* GL_EXT_fragment_lighting */ #ifdef GL_EXT_framebuffer_blit static GLboolean _glewInit_GL_EXT_framebuffer_blit () { GLboolean r = GL_FALSE; r = ((glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferEXT")) == NULL) || r; return r; } #endif /* GL_EXT_framebuffer_blit */ #ifdef GL_EXT_framebuffer_multisample static GLboolean _glewInit_GL_EXT_framebuffer_multisample () { GLboolean r = GL_FALSE; r = ((glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleEXT")) == NULL) || r; return r; } #endif /* GL_EXT_framebuffer_multisample */ #ifdef GL_EXT_framebuffer_object static GLboolean _glewInit_GL_EXT_framebuffer_object () { GLboolean r = GL_FALSE; r = ((glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindFramebufferEXT")) == NULL) || r; r = ((glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindRenderbufferEXT")) == NULL) || r; r = ((glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)glewGetProcAddress((const GLubyte*)"glCheckFramebufferStatusEXT")) == NULL) || r; r = ((glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteFramebuffersEXT")) == NULL) || r; r = ((glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteRenderbuffersEXT")) == NULL) || r; r = ((glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferRenderbufferEXT")) == NULL) || r; r = ((glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture1DEXT")) == NULL) || r; r = ((glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DEXT")) == NULL) || r; r = ((glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture3DEXT")) == NULL) || r; r = ((glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenFramebuffersEXT")) == NULL) || r; r = ((glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenRenderbuffersEXT")) == NULL) || r; r = ((glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)glewGetProcAddress((const GLubyte*)"glGenerateMipmapEXT")) == NULL) || r; r = ((glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferAttachmentParameterivEXT")) == NULL) || r; r = ((glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetRenderbufferParameterivEXT")) == NULL) || r; r = ((glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glIsFramebufferEXT")) == NULL) || r; r = ((glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glIsRenderbufferEXT")) == NULL) || r; r = ((glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageEXT")) == NULL) || r; return r; } #endif /* GL_EXT_framebuffer_object */ #ifdef GL_EXT_geometry_shader4 static GLboolean _glewInit_GL_EXT_geometry_shader4 () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureEXT")) == NULL) || r; r = ((glFramebufferTextureFaceEXT = (PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureFaceEXT")) == NULL) || r; r = ((glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramParameteriEXT")) == NULL) || r; return r; } #endif /* GL_EXT_geometry_shader4 */ #ifdef GL_EXT_gpu_program_parameters static GLboolean _glewInit_GL_EXT_gpu_program_parameters () { GLboolean r = GL_FALSE; r = ((glProgramEnvParameters4fvEXT = (PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameters4fvEXT")) == NULL) || r; r = ((glProgramLocalParameters4fvEXT = (PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameters4fvEXT")) == NULL) || r; return r; } #endif /* GL_EXT_gpu_program_parameters */ #ifdef GL_EXT_gpu_shader4 static GLboolean _glewInit_GL_EXT_gpu_shader4 () { GLboolean r = GL_FALSE; r = ((glBindFragDataLocationEXT = (PFNGLBINDFRAGDATALOCATIONEXTPROC)glewGetProcAddress((const GLubyte*)"glBindFragDataLocationEXT")) == NULL) || r; r = ((glGetFragDataLocationEXT = (PFNGLGETFRAGDATALOCATIONEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFragDataLocationEXT")) == NULL) || r; r = ((glGetUniformuivEXT = (PFNGLGETUNIFORMUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUniformuivEXT")) == NULL) || r; r = ((glGetVertexAttribIivEXT = (PFNGLGETVERTEXATTRIBIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIivEXT")) == NULL) || r; r = ((glGetVertexAttribIuivEXT = (PFNGLGETVERTEXATTRIBIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribIuivEXT")) == NULL) || r; r = ((glUniform1uiEXT = (PFNGLUNIFORM1UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform1uiEXT")) == NULL) || r; r = ((glUniform1uivEXT = (PFNGLUNIFORM1UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform1uivEXT")) == NULL) || r; r = ((glUniform2uiEXT = (PFNGLUNIFORM2UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform2uiEXT")) == NULL) || r; r = ((glUniform2uivEXT = (PFNGLUNIFORM2UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform2uivEXT")) == NULL) || r; r = ((glUniform3uiEXT = (PFNGLUNIFORM3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform3uiEXT")) == NULL) || r; r = ((glUniform3uivEXT = (PFNGLUNIFORM3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform3uivEXT")) == NULL) || r; r = ((glUniform4uiEXT = (PFNGLUNIFORM4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform4uiEXT")) == NULL) || r; r = ((glUniform4uivEXT = (PFNGLUNIFORM4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glUniform4uivEXT")) == NULL) || r; r = ((glVertexAttribI1iEXT = (PFNGLVERTEXATTRIBI1IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1iEXT")) == NULL) || r; r = ((glVertexAttribI1ivEXT = (PFNGLVERTEXATTRIBI1IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1ivEXT")) == NULL) || r; r = ((glVertexAttribI1uiEXT = (PFNGLVERTEXATTRIBI1UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1uiEXT")) == NULL) || r; r = ((glVertexAttribI1uivEXT = (PFNGLVERTEXATTRIBI1UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI1uivEXT")) == NULL) || r; r = ((glVertexAttribI2iEXT = (PFNGLVERTEXATTRIBI2IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2iEXT")) == NULL) || r; r = ((glVertexAttribI2ivEXT = (PFNGLVERTEXATTRIBI2IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2ivEXT")) == NULL) || r; r = ((glVertexAttribI2uiEXT = (PFNGLVERTEXATTRIBI2UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2uiEXT")) == NULL) || r; r = ((glVertexAttribI2uivEXT = (PFNGLVERTEXATTRIBI2UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI2uivEXT")) == NULL) || r; r = ((glVertexAttribI3iEXT = (PFNGLVERTEXATTRIBI3IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3iEXT")) == NULL) || r; r = ((glVertexAttribI3ivEXT = (PFNGLVERTEXATTRIBI3IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3ivEXT")) == NULL) || r; r = ((glVertexAttribI3uiEXT = (PFNGLVERTEXATTRIBI3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3uiEXT")) == NULL) || r; r = ((glVertexAttribI3uivEXT = (PFNGLVERTEXATTRIBI3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI3uivEXT")) == NULL) || r; r = ((glVertexAttribI4bvEXT = (PFNGLVERTEXATTRIBI4BVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4bvEXT")) == NULL) || r; r = ((glVertexAttribI4iEXT = (PFNGLVERTEXATTRIBI4IEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4iEXT")) == NULL) || r; r = ((glVertexAttribI4ivEXT = (PFNGLVERTEXATTRIBI4IVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ivEXT")) == NULL) || r; r = ((glVertexAttribI4svEXT = (PFNGLVERTEXATTRIBI4SVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4svEXT")) == NULL) || r; r = ((glVertexAttribI4ubvEXT = (PFNGLVERTEXATTRIBI4UBVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4ubvEXT")) == NULL) || r; r = ((glVertexAttribI4uiEXT = (PFNGLVERTEXATTRIBI4UIEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4uiEXT")) == NULL) || r; r = ((glVertexAttribI4uivEXT = (PFNGLVERTEXATTRIBI4UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4uivEXT")) == NULL) || r; r = ((glVertexAttribI4usvEXT = (PFNGLVERTEXATTRIBI4USVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribI4usvEXT")) == NULL) || r; r = ((glVertexAttribIPointerEXT = (PFNGLVERTEXATTRIBIPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIPointerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_gpu_shader4 */ #ifdef GL_EXT_histogram static GLboolean _glewInit_GL_EXT_histogram () { GLboolean r = GL_FALSE; r = ((glGetHistogramEXT = (PFNGLGETHISTOGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramEXT")) == NULL) || r; r = ((glGetHistogramParameterfvEXT = (PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameterfvEXT")) == NULL) || r; r = ((glGetHistogramParameterivEXT = (PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetHistogramParameterivEXT")) == NULL) || r; r = ((glGetMinmaxEXT = (PFNGLGETMINMAXEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxEXT")) == NULL) || r; r = ((glGetMinmaxParameterfvEXT = (PFNGLGETMINMAXPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameterfvEXT")) == NULL) || r; r = ((glGetMinmaxParameterivEXT = (PFNGLGETMINMAXPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMinmaxParameterivEXT")) == NULL) || r; r = ((glHistogramEXT = (PFNGLHISTOGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glHistogramEXT")) == NULL) || r; r = ((glMinmaxEXT = (PFNGLMINMAXEXTPROC)glewGetProcAddress((const GLubyte*)"glMinmaxEXT")) == NULL) || r; r = ((glResetHistogramEXT = (PFNGLRESETHISTOGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glResetHistogramEXT")) == NULL) || r; r = ((glResetMinmaxEXT = (PFNGLRESETMINMAXEXTPROC)glewGetProcAddress((const GLubyte*)"glResetMinmaxEXT")) == NULL) || r; return r; } #endif /* GL_EXT_histogram */ #ifdef GL_EXT_index_func static GLboolean _glewInit_GL_EXT_index_func () { GLboolean r = GL_FALSE; r = ((glIndexFuncEXT = (PFNGLINDEXFUNCEXTPROC)glewGetProcAddress((const GLubyte*)"glIndexFuncEXT")) == NULL) || r; return r; } #endif /* GL_EXT_index_func */ #ifdef GL_EXT_index_material static GLboolean _glewInit_GL_EXT_index_material () { GLboolean r = GL_FALSE; r = ((glIndexMaterialEXT = (PFNGLINDEXMATERIALEXTPROC)glewGetProcAddress((const GLubyte*)"glIndexMaterialEXT")) == NULL) || r; return r; } #endif /* GL_EXT_index_material */ #ifdef GL_EXT_instanced_arrays static GLboolean _glewInit_GL_EXT_instanced_arrays () { GLboolean r = GL_FALSE; r = ((glVertexAttribDivisorEXT = (PFNGLVERTEXATTRIBDIVISOREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorEXT")) == NULL) || r; return r; } #endif /* GL_EXT_instanced_arrays */ #ifdef GL_EXT_light_texture static GLboolean _glewInit_GL_EXT_light_texture () { GLboolean r = GL_FALSE; r = ((glApplyTextureEXT = (PFNGLAPPLYTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glApplyTextureEXT")) == NULL) || r; r = ((glTextureLightEXT = (PFNGLTEXTURELIGHTEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureLightEXT")) == NULL) || r; r = ((glTextureMaterialEXT = (PFNGLTEXTUREMATERIALEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureMaterialEXT")) == NULL) || r; return r; } #endif /* GL_EXT_light_texture */ #ifdef GL_EXT_map_buffer_range static GLboolean _glewInit_GL_EXT_map_buffer_range () { GLboolean r = GL_FALSE; r = ((glFlushMappedBufferRangeEXT = (PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glFlushMappedBufferRangeEXT")) == NULL) || r; r = ((glMapBufferRangeEXT = (PFNGLMAPBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glMapBufferRangeEXT")) == NULL) || r; return r; } #endif /* GL_EXT_map_buffer_range */ #ifdef GL_EXT_memory_object static GLboolean _glewInit_GL_EXT_memory_object () { GLboolean r = GL_FALSE; r = ((glBufferStorageMemEXT = (PFNGLBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glBufferStorageMemEXT")) == NULL) || r; r = ((glCreateMemoryObjectsEXT = (PFNGLCREATEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateMemoryObjectsEXT")) == NULL) || r; r = ((glDeleteMemoryObjectsEXT = (PFNGLDELETEMEMORYOBJECTSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteMemoryObjectsEXT")) == NULL) || r; r = ((glGetMemoryObjectParameterivEXT = (PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetMemoryObjectParameterivEXT")) == NULL) || r; r = ((glGetUnsignedBytei_vEXT = (PFNGLGETUNSIGNEDBYTEI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytei_vEXT")) == NULL) || r; r = ((glGetUnsignedBytevEXT = (PFNGLGETUNSIGNEDBYTEVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetUnsignedBytevEXT")) == NULL) || r; r = ((glIsMemoryObjectEXT = (PFNGLISMEMORYOBJECTEXTPROC)glewGetProcAddress((const GLubyte*)"glIsMemoryObjectEXT")) == NULL) || r; r = ((glMemoryObjectParameterivEXT = (PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glMemoryObjectParameterivEXT")) == NULL) || r; r = ((glNamedBufferStorageMemEXT = (PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)glewGetProcAddress((const GLubyte*)"glNamedBufferStorageMemEXT")) == NULL) || r; r = ((glTexStorageMem1DEXT = (PFNGLTEXSTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem1DEXT")) == NULL) || r; r = ((glTexStorageMem2DEXT = (PFNGLTEXSTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DEXT")) == NULL) || r; r = ((glTexStorageMem2DMultisampleEXT = (PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem2DMultisampleEXT")) == NULL) || r; r = ((glTexStorageMem3DEXT = (PFNGLTEXSTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DEXT")) == NULL) || r; r = ((glTexStorageMem3DMultisampleEXT = (PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorageMem3DMultisampleEXT")) == NULL) || r; r = ((glTextureStorageMem1DEXT = (PFNGLTEXTURESTORAGEMEM1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem1DEXT")) == NULL) || r; r = ((glTextureStorageMem2DEXT = (PFNGLTEXTURESTORAGEMEM2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DEXT")) == NULL) || r; r = ((glTextureStorageMem2DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem2DMultisampleEXT")) == NULL) || r; r = ((glTextureStorageMem3DEXT = (PFNGLTEXTURESTORAGEMEM3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DEXT")) == NULL) || r; r = ((glTextureStorageMem3DMultisampleEXT = (PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorageMem3DMultisampleEXT")) == NULL) || r; return r; } #endif /* GL_EXT_memory_object */ #ifdef GL_EXT_memory_object_fd static GLboolean _glewInit_GL_EXT_memory_object_fd () { GLboolean r = GL_FALSE; r = ((glImportMemoryFdEXT = (PFNGLIMPORTMEMORYFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryFdEXT")) == NULL) || r; return r; } #endif /* GL_EXT_memory_object_fd */ #ifdef GL_EXT_memory_object_win32 static GLboolean _glewInit_GL_EXT_memory_object_win32 () { GLboolean r = GL_FALSE; r = ((glImportMemoryWin32HandleEXT = (PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32HandleEXT")) == NULL) || r; r = ((glImportMemoryWin32NameEXT = (PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportMemoryWin32NameEXT")) == NULL) || r; return r; } #endif /* GL_EXT_memory_object_win32 */ #ifdef GL_EXT_multi_draw_arrays static GLboolean _glewInit_GL_EXT_multi_draw_arrays () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysEXT")) == NULL) || r; r = ((glMultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsEXT")) == NULL) || r; return r; } #endif /* GL_EXT_multi_draw_arrays */ #ifdef GL_EXT_multi_draw_indirect static GLboolean _glewInit_GL_EXT_multi_draw_indirect () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirectEXT = (PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectEXT")) == NULL) || r; r = ((glMultiDrawElementsIndirectEXT = (PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectEXT")) == NULL) || r; return r; } #endif /* GL_EXT_multi_draw_indirect */ #ifdef GL_EXT_multisample static GLboolean _glewInit_GL_EXT_multisample () { GLboolean r = GL_FALSE; r = ((glSampleMaskEXT = (PFNGLSAMPLEMASKEXTPROC)glewGetProcAddress((const GLubyte*)"glSampleMaskEXT")) == NULL) || r; r = ((glSamplePatternEXT = (PFNGLSAMPLEPATTERNEXTPROC)glewGetProcAddress((const GLubyte*)"glSamplePatternEXT")) == NULL) || r; return r; } #endif /* GL_EXT_multisample */ #ifdef GL_EXT_multisampled_render_to_texture static GLboolean _glewInit_GL_EXT_multisampled_render_to_texture () { GLboolean r = GL_FALSE; r = ((glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTexture2DMultisampleEXT")) == NULL) || r; return r; } #endif /* GL_EXT_multisampled_render_to_texture */ #ifdef GL_EXT_multiview_draw_buffers static GLboolean _glewInit_GL_EXT_multiview_draw_buffers () { GLboolean r = GL_FALSE; r = ((glDrawBuffersIndexedEXT = (PFNGLDRAWBUFFERSINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersIndexedEXT")) == NULL) || r; r = ((glGetIntegeri_vEXT = (PFNGLGETINTEGERI_VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetIntegeri_vEXT")) == NULL) || r; r = ((glReadBufferIndexedEXT = (PFNGLREADBUFFERINDEXEDEXTPROC)glewGetProcAddress((const GLubyte*)"glReadBufferIndexedEXT")) == NULL) || r; return r; } #endif /* GL_EXT_multiview_draw_buffers */ #ifdef GL_EXT_paletted_texture static GLboolean _glewInit_GL_EXT_paletted_texture () { GLboolean r = GL_FALSE; r = ((glColorTableEXT = (PFNGLCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glColorTableEXT")) == NULL) || r; r = ((glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableEXT")) == NULL) || r; r = ((glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterfvEXT")) == NULL) || r; r = ((glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterivEXT")) == NULL) || r; return r; } #endif /* GL_EXT_paletted_texture */ #ifdef GL_EXT_pixel_transform static GLboolean _glewInit_GL_EXT_pixel_transform () { GLboolean r = GL_FALSE; r = ((glGetPixelTransformParameterfvEXT = (PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterfvEXT")) == NULL) || r; r = ((glGetPixelTransformParameterivEXT = (PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterivEXT")) == NULL) || r; r = ((glPixelTransformParameterfEXT = (PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfEXT")) == NULL) || r; r = ((glPixelTransformParameterfvEXT = (PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfvEXT")) == NULL) || r; r = ((glPixelTransformParameteriEXT = (PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameteriEXT")) == NULL) || r; r = ((glPixelTransformParameterivEXT = (PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterivEXT")) == NULL) || r; return r; } #endif /* GL_EXT_pixel_transform */ #ifdef GL_EXT_point_parameters static GLboolean _glewInit_GL_EXT_point_parameters () { GLboolean r = GL_FALSE; r = ((glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfEXT")) == NULL) || r; r = ((glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)glewGetProcAddress((const GLubyte*)"glPointParameterfvEXT")) == NULL) || r; return r; } #endif /* GL_EXT_point_parameters */ #ifdef GL_EXT_polygon_offset static GLboolean _glewInit_GL_EXT_polygon_offset () { GLboolean r = GL_FALSE; r = ((glPolygonOffsetEXT = (PFNGLPOLYGONOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetEXT")) == NULL) || r; return r; } #endif /* GL_EXT_polygon_offset */ #ifdef GL_EXT_polygon_offset_clamp static GLboolean _glewInit_GL_EXT_polygon_offset_clamp () { GLboolean r = GL_FALSE; r = ((glPolygonOffsetClampEXT = (PFNGLPOLYGONOFFSETCLAMPEXTPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetClampEXT")) == NULL) || r; return r; } #endif /* GL_EXT_polygon_offset_clamp */ #ifdef GL_EXT_provoking_vertex static GLboolean _glewInit_GL_EXT_provoking_vertex () { GLboolean r = GL_FALSE; r = ((glProvokingVertexEXT = (PFNGLPROVOKINGVERTEXEXTPROC)glewGetProcAddress((const GLubyte*)"glProvokingVertexEXT")) == NULL) || r; return r; } #endif /* GL_EXT_provoking_vertex */ #ifdef GL_EXT_raster_multisample static GLboolean _glewInit_GL_EXT_raster_multisample () { GLboolean r = GL_FALSE; r = ((glCoverageModulationNV = (PFNGLCOVERAGEMODULATIONNVPROC)glewGetProcAddress((const GLubyte*)"glCoverageModulationNV")) == NULL) || r; r = ((glCoverageModulationTableNV = (PFNGLCOVERAGEMODULATIONTABLENVPROC)glewGetProcAddress((const GLubyte*)"glCoverageModulationTableNV")) == NULL) || r; r = ((glGetCoverageModulationTableNV = (PFNGLGETCOVERAGEMODULATIONTABLENVPROC)glewGetProcAddress((const GLubyte*)"glGetCoverageModulationTableNV")) == NULL) || r; r = ((glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)glewGetProcAddress((const GLubyte*)"glRasterSamplesEXT")) == NULL) || r; return r; } #endif /* GL_EXT_raster_multisample */ #ifdef GL_EXT_scene_marker static GLboolean _glewInit_GL_EXT_scene_marker () { GLboolean r = GL_FALSE; r = ((glBeginSceneEXT = (PFNGLBEGINSCENEEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginSceneEXT")) == NULL) || r; r = ((glEndSceneEXT = (PFNGLENDSCENEEXTPROC)glewGetProcAddress((const GLubyte*)"glEndSceneEXT")) == NULL) || r; return r; } #endif /* GL_EXT_scene_marker */ #ifdef GL_EXT_secondary_color static GLboolean _glewInit_GL_EXT_secondary_color () { GLboolean r = GL_FALSE; r = ((glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3bEXT")) == NULL) || r; r = ((glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3bvEXT")) == NULL) || r; r = ((glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3dEXT")) == NULL) || r; r = ((glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3dvEXT")) == NULL) || r; r = ((glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3fEXT")) == NULL) || r; r = ((glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3fvEXT")) == NULL) || r; r = ((glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3iEXT")) == NULL) || r; r = ((glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ivEXT")) == NULL) || r; r = ((glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3sEXT")) == NULL) || r; r = ((glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3svEXT")) == NULL) || r; r = ((glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ubEXT")) == NULL) || r; r = ((glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3ubvEXT")) == NULL) || r; r = ((glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3uiEXT")) == NULL) || r; r = ((glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3uivEXT")) == NULL) || r; r = ((glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3usEXT")) == NULL) || r; r = ((glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3usvEXT")) == NULL) || r; r = ((glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorPointerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_secondary_color */ #ifdef GL_EXT_semaphore static GLboolean _glewInit_GL_EXT_semaphore () { GLboolean r = GL_FALSE; r = ((glDeleteSemaphoresEXT = (PFNGLDELETESEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteSemaphoresEXT")) == NULL) || r; r = ((glGenSemaphoresEXT = (PFNGLGENSEMAPHORESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenSemaphoresEXT")) == NULL) || r; r = ((glGetSemaphoreParameterui64vEXT = (PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetSemaphoreParameterui64vEXT")) == NULL) || r; r = ((glIsSemaphoreEXT = (PFNGLISSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glIsSemaphoreEXT")) == NULL) || r; r = ((glSemaphoreParameterui64vEXT = (PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glSemaphoreParameterui64vEXT")) == NULL) || r; r = ((glSignalSemaphoreEXT = (PFNGLSIGNALSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glSignalSemaphoreEXT")) == NULL) || r; r = ((glWaitSemaphoreEXT = (PFNGLWAITSEMAPHOREEXTPROC)glewGetProcAddress((const GLubyte*)"glWaitSemaphoreEXT")) == NULL) || r; return r; } #endif /* GL_EXT_semaphore */ #ifdef GL_EXT_semaphore_fd static GLboolean _glewInit_GL_EXT_semaphore_fd () { GLboolean r = GL_FALSE; r = ((glImportSemaphoreFdEXT = (PFNGLIMPORTSEMAPHOREFDEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreFdEXT")) == NULL) || r; return r; } #endif /* GL_EXT_semaphore_fd */ #ifdef GL_EXT_semaphore_win32 static GLboolean _glewInit_GL_EXT_semaphore_win32 () { GLboolean r = GL_FALSE; r = ((glImportSemaphoreWin32HandleEXT = (PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32HandleEXT")) == NULL) || r; r = ((glImportSemaphoreWin32NameEXT = (PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSemaphoreWin32NameEXT")) == NULL) || r; return r; } #endif /* GL_EXT_semaphore_win32 */ #ifdef GL_EXT_separate_shader_objects static GLboolean _glewInit_GL_EXT_separate_shader_objects () { GLboolean r = GL_FALSE; r = ((glActiveProgramEXT = (PFNGLACTIVEPROGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glActiveProgramEXT")) == NULL) || r; r = ((glCreateShaderProgramEXT = (PFNGLCREATESHADERPROGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateShaderProgramEXT")) == NULL) || r; r = ((glUseShaderProgramEXT = (PFNGLUSESHADERPROGRAMEXTPROC)glewGetProcAddress((const GLubyte*)"glUseShaderProgramEXT")) == NULL) || r; return r; } #endif /* GL_EXT_separate_shader_objects */ #ifdef GL_EXT_shader_image_load_store static GLboolean _glewInit_GL_EXT_shader_image_load_store () { GLboolean r = GL_FALSE; r = ((glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glBindImageTextureEXT")) == NULL) || r; r = ((glMemoryBarrierEXT = (PFNGLMEMORYBARRIEREXTPROC)glewGetProcAddress((const GLubyte*)"glMemoryBarrierEXT")) == NULL) || r; return r; } #endif /* GL_EXT_shader_image_load_store */ #ifdef GL_EXT_shader_pixel_local_storage2 static GLboolean _glewInit_GL_EXT_shader_pixel_local_storage2 () { GLboolean r = GL_FALSE; r = ((glClearPixelLocalStorageuiEXT = (PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearPixelLocalStorageuiEXT")) == NULL) || r; r = ((glFramebufferPixelLocalStorageSizeEXT = (PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferPixelLocalStorageSizeEXT")) == NULL) || r; r = ((glGetFramebufferPixelLocalStorageSizeEXT = (PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)glewGetProcAddress((const GLubyte*)"glGetFramebufferPixelLocalStorageSizeEXT")) == NULL) || r; return r; } #endif /* GL_EXT_shader_pixel_local_storage2 */ #ifdef GL_EXT_sparse_texture static GLboolean _glewInit_GL_EXT_sparse_texture () { GLboolean r = GL_FALSE; r = ((glTexPageCommitmentEXT = (PFNGLTEXPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexPageCommitmentEXT")) == NULL) || r; r = ((glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glTexturePageCommitmentEXT")) == NULL) || r; return r; } #endif /* GL_EXT_sparse_texture */ #ifdef GL_EXT_stencil_two_side static GLboolean _glewInit_GL_EXT_stencil_two_side () { GLboolean r = GL_FALSE; r = ((glActiveStencilFaceEXT = (PFNGLACTIVESTENCILFACEEXTPROC)glewGetProcAddress((const GLubyte*)"glActiveStencilFaceEXT")) == NULL) || r; return r; } #endif /* GL_EXT_stencil_two_side */ #ifdef GL_EXT_subtexture static GLboolean _glewInit_GL_EXT_subtexture () { GLboolean r = GL_FALSE; r = ((glTexSubImage1DEXT = (PFNGLTEXSUBIMAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage1DEXT")) == NULL) || r; r = ((glTexSubImage2DEXT = (PFNGLTEXSUBIMAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage2DEXT")) == NULL) || r; r = ((glTexSubImage3DEXT = (PFNGLTEXSUBIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DEXT")) == NULL) || r; return r; } #endif /* GL_EXT_subtexture */ #ifdef GL_EXT_texture3D static GLboolean _glewInit_GL_EXT_texture3D () { GLboolean r = GL_FALSE; r = ((glTexImage3DEXT = (PFNGLTEXIMAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture3D */ #ifdef GL_EXT_texture_array static GLboolean _glewInit_GL_EXT_texture_array () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_array */ #ifdef GL_EXT_texture_buffer_object static GLboolean _glewInit_GL_EXT_texture_buffer_object () { GLboolean r = GL_FALSE; r = ((glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"glTexBufferEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_buffer_object */ #ifdef GL_EXT_texture_integer static GLboolean _glewInit_GL_EXT_texture_integer () { GLboolean r = GL_FALSE; r = ((glClearColorIiEXT = (PFNGLCLEARCOLORIIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearColorIiEXT")) == NULL) || r; r = ((glClearColorIuiEXT = (PFNGLCLEARCOLORIUIEXTPROC)glewGetProcAddress((const GLubyte*)"glClearColorIuiEXT")) == NULL) || r; r = ((glGetTexParameterIivEXT = (PFNGLGETTEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIivEXT")) == NULL) || r; r = ((glGetTexParameterIuivEXT = (PFNGLGETTEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterIuivEXT")) == NULL) || r; r = ((glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIivEXT")) == NULL) || r; r = ((glTexParameterIuivEXT = (PFNGLTEXPARAMETERIUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glTexParameterIuivEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_integer */ #ifdef GL_EXT_texture_object static GLboolean _glewInit_GL_EXT_texture_object () { GLboolean r = GL_FALSE; r = ((glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC)glewGetProcAddress((const GLubyte*)"glAreTexturesResidentEXT")) == NULL) || r; r = ((glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glBindTextureEXT")) == NULL) || r; r = ((glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteTexturesEXT")) == NULL) || r; r = ((glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC)glewGetProcAddress((const GLubyte*)"glGenTexturesEXT")) == NULL) || r; r = ((glIsTextureEXT = (PFNGLISTEXTUREEXTPROC)glewGetProcAddress((const GLubyte*)"glIsTextureEXT")) == NULL) || r; r = ((glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC)glewGetProcAddress((const GLubyte*)"glPrioritizeTexturesEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_object */ #ifdef GL_EXT_texture_perturb_normal static GLboolean _glewInit_GL_EXT_texture_perturb_normal () { GLboolean r = GL_FALSE; r = ((glTextureNormalEXT = (PFNGLTEXTURENORMALEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureNormalEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_perturb_normal */ #ifdef GL_EXT_texture_storage static GLboolean _glewInit_GL_EXT_texture_storage () { GLboolean r = GL_FALSE; r = ((glTexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage1DEXT")) == NULL) || r; r = ((glTexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage2DEXT")) == NULL) || r; r = ((glTexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTexStorage3DEXT")) == NULL) || r; r = ((glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage1DEXT")) == NULL) || r; r = ((glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage2DEXT")) == NULL) || r; r = ((glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureStorage3DEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_storage */ #ifdef GL_EXT_texture_view static GLboolean _glewInit_GL_EXT_texture_view () { GLboolean r = GL_FALSE; r = ((glTextureViewEXT = (PFNGLTEXTUREVIEWEXTPROC)glewGetProcAddress((const GLubyte*)"glTextureViewEXT")) == NULL) || r; return r; } #endif /* GL_EXT_texture_view */ #ifdef GL_EXT_timer_query static GLboolean _glewInit_GL_EXT_timer_query () { GLboolean r = GL_FALSE; r = ((glGetQueryObjecti64vEXT = (PFNGLGETQUERYOBJECTI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjecti64vEXT")) == NULL) || r; r = ((glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC)glewGetProcAddress((const GLubyte*)"glGetQueryObjectui64vEXT")) == NULL) || r; return r; } #endif /* GL_EXT_timer_query */ #ifdef GL_EXT_transform_feedback static GLboolean _glewInit_GL_EXT_transform_feedback () { GLboolean r = GL_FALSE; r = ((glBeginTransformFeedbackEXT = (PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedbackEXT")) == NULL) || r; r = ((glBindBufferBaseEXT = (PFNGLBINDBUFFERBASEEXTPROC)glewGetProcAddress((const GLubyte*)"glBindBufferBaseEXT")) == NULL) || r; r = ((glBindBufferOffsetEXT = (PFNGLBINDBUFFEROFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glBindBufferOffsetEXT")) == NULL) || r; r = ((glBindBufferRangeEXT = (PFNGLBINDBUFFERRANGEEXTPROC)glewGetProcAddress((const GLubyte*)"glBindBufferRangeEXT")) == NULL) || r; r = ((glEndTransformFeedbackEXT = (PFNGLENDTRANSFORMFEEDBACKEXTPROC)glewGetProcAddress((const GLubyte*)"glEndTransformFeedbackEXT")) == NULL) || r; r = ((glGetTransformFeedbackVaryingEXT = (PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackVaryingEXT")) == NULL) || r; r = ((glTransformFeedbackVaryingsEXT = (PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackVaryingsEXT")) == NULL) || r; return r; } #endif /* GL_EXT_transform_feedback */ #ifdef GL_EXT_vertex_array static GLboolean _glewInit_GL_EXT_vertex_array () { GLboolean r = GL_FALSE; r = ((glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)glewGetProcAddress((const GLubyte*)"glArrayElementEXT")) == NULL) || r; r = ((glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glColorPointerEXT")) == NULL) || r; r = ((glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysEXT")) == NULL) || r; r = ((glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glEdgeFlagPointerEXT")) == NULL) || r; r = ((glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glIndexPointerEXT")) == NULL) || r; r = ((glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glNormalPointerEXT")) == NULL) || r; r = ((glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glTexCoordPointerEXT")) == NULL) || r; r = ((glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexPointerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_vertex_array */ #ifdef GL_EXT_vertex_array_setXXX static GLboolean _glewInit_GL_EXT_vertex_array_setXXX () { GLboolean r = GL_FALSE; r = ((glBindArraySetEXT = (PFNGLBINDARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glBindArraySetEXT")) == NULL) || r; r = ((glCreateArraySetExt = (PFNGLCREATEARRAYSETEXTPROC)glewGetProcAddress((const GLubyte*)"glCreateArraySetExt")) == NULL) || r; r = ((glDeleteArraySetsEXT = (PFNGLDELETEARRAYSETSEXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteArraySetsEXT")) == NULL) || r; return r; } #endif /* GL_EXT_vertex_array_setXXX */ #ifdef GL_EXT_vertex_attrib_64bit static GLboolean _glewInit_GL_EXT_vertex_attrib_64bit () { GLboolean r = GL_FALSE; r = ((glGetVertexAttribLdvEXT = (PFNGLGETVERTEXATTRIBLDVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLdvEXT")) == NULL) || r; r = ((glVertexArrayVertexAttribLOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayVertexAttribLOffsetEXT")) == NULL) || r; r = ((glVertexAttribL1dEXT = (PFNGLVERTEXATTRIBL1DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1dEXT")) == NULL) || r; r = ((glVertexAttribL1dvEXT = (PFNGLVERTEXATTRIBL1DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1dvEXT")) == NULL) || r; r = ((glVertexAttribL2dEXT = (PFNGLVERTEXATTRIBL2DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2dEXT")) == NULL) || r; r = ((glVertexAttribL2dvEXT = (PFNGLVERTEXATTRIBL2DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2dvEXT")) == NULL) || r; r = ((glVertexAttribL3dEXT = (PFNGLVERTEXATTRIBL3DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3dEXT")) == NULL) || r; r = ((glVertexAttribL3dvEXT = (PFNGLVERTEXATTRIBL3DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3dvEXT")) == NULL) || r; r = ((glVertexAttribL4dEXT = (PFNGLVERTEXATTRIBL4DEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4dEXT")) == NULL) || r; r = ((glVertexAttribL4dvEXT = (PFNGLVERTEXATTRIBL4DVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4dvEXT")) == NULL) || r; r = ((glVertexAttribLPointerEXT = (PFNGLVERTEXATTRIBLPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLPointerEXT")) == NULL) || r; return r; } #endif /* GL_EXT_vertex_attrib_64bit */ #ifdef GL_EXT_vertex_shader static GLboolean _glewInit_GL_EXT_vertex_shader () { GLboolean r = GL_FALSE; r = ((glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glBeginVertexShaderEXT")) == NULL) || r; r = ((glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindLightParameterEXT")) == NULL) || r; r = ((glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindMaterialParameterEXT")) == NULL) || r; r = ((glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindParameterEXT")) == NULL) || r; r = ((glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindTexGenParameterEXT")) == NULL) || r; r = ((glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindTextureUnitParameterEXT")) == NULL) || r; r = ((glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glBindVertexShaderEXT")) == NULL) || r; r = ((glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexShaderEXT")) == NULL) || r; r = ((glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)glewGetProcAddress((const GLubyte*)"glDisableVariantClientStateEXT")) == NULL) || r; r = ((glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)glewGetProcAddress((const GLubyte*)"glEnableVariantClientStateEXT")) == NULL) || r; r = ((glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC)glewGetProcAddress((const GLubyte*)"glEndVertexShaderEXT")) == NULL) || r; r = ((glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC)glewGetProcAddress((const GLubyte*)"glExtractComponentEXT")) == NULL) || r; r = ((glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenSymbolsEXT")) == NULL) || r; r = ((glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC)glewGetProcAddress((const GLubyte*)"glGenVertexShadersEXT")) == NULL) || r; r = ((glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInvariantBooleanvEXT")) == NULL) || r; r = ((glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInvariantFloatvEXT")) == NULL) || r; r = ((glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetInvariantIntegervEXT")) == NULL) || r; r = ((glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetLocalConstantBooleanvEXT")) == NULL) || r; r = ((glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetLocalConstantFloatvEXT")) == NULL) || r; r = ((glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetLocalConstantIntegervEXT")) == NULL) || r; r = ((glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantBooleanvEXT")) == NULL) || r; r = ((glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantFloatvEXT")) == NULL) || r; r = ((glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantIntegervEXT")) == NULL) || r; r = ((glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC)glewGetProcAddress((const GLubyte*)"glGetVariantPointervEXT")) == NULL) || r; r = ((glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC)glewGetProcAddress((const GLubyte*)"glInsertComponentEXT")) == NULL) || r; r = ((glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC)glewGetProcAddress((const GLubyte*)"glIsVariantEnabledEXT")) == NULL) || r; r = ((glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC)glewGetProcAddress((const GLubyte*)"glSetInvariantEXT")) == NULL) || r; r = ((glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC)glewGetProcAddress((const GLubyte*)"glSetLocalConstantEXT")) == NULL) || r; r = ((glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC)glewGetProcAddress((const GLubyte*)"glShaderOp1EXT")) == NULL) || r; r = ((glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC)glewGetProcAddress((const GLubyte*)"glShaderOp2EXT")) == NULL) || r; r = ((glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC)glewGetProcAddress((const GLubyte*)"glShaderOp3EXT")) == NULL) || r; r = ((glSwizzleEXT = (PFNGLSWIZZLEEXTPROC)glewGetProcAddress((const GLubyte*)"glSwizzleEXT")) == NULL) || r; r = ((glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVariantPointerEXT")) == NULL) || r; r = ((glVariantbvEXT = (PFNGLVARIANTBVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantbvEXT")) == NULL) || r; r = ((glVariantdvEXT = (PFNGLVARIANTDVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantdvEXT")) == NULL) || r; r = ((glVariantfvEXT = (PFNGLVARIANTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantfvEXT")) == NULL) || r; r = ((glVariantivEXT = (PFNGLVARIANTIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantivEXT")) == NULL) || r; r = ((glVariantsvEXT = (PFNGLVARIANTSVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantsvEXT")) == NULL) || r; r = ((glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantubvEXT")) == NULL) || r; r = ((glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantuivEXT")) == NULL) || r; r = ((glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC)glewGetProcAddress((const GLubyte*)"glVariantusvEXT")) == NULL) || r; r = ((glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC)glewGetProcAddress((const GLubyte*)"glWriteMaskEXT")) == NULL) || r; return r; } #endif /* GL_EXT_vertex_shader */ #ifdef GL_EXT_vertex_weighting static GLboolean _glewInit_GL_EXT_vertex_weighting () { GLboolean r = GL_FALSE; r = ((glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)glewGetProcAddress((const GLubyte*)"glVertexWeightPointerEXT")) == NULL) || r; r = ((glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexWeightfEXT")) == NULL) || r; r = ((glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC)glewGetProcAddress((const GLubyte*)"glVertexWeightfvEXT")) == NULL) || r; return r; } #endif /* GL_EXT_vertex_weighting */ #ifdef GL_EXT_win32_keyed_mutex static GLboolean _glewInit_GL_EXT_win32_keyed_mutex () { GLboolean r = GL_FALSE; r = ((glAcquireKeyedMutexWin32EXT = (PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glAcquireKeyedMutexWin32EXT")) == NULL) || r; r = ((glReleaseKeyedMutexWin32EXT = (PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)glewGetProcAddress((const GLubyte*)"glReleaseKeyedMutexWin32EXT")) == NULL) || r; return r; } #endif /* GL_EXT_win32_keyed_mutex */ #ifdef GL_EXT_window_rectangles static GLboolean _glewInit_GL_EXT_window_rectangles () { GLboolean r = GL_FALSE; r = ((glWindowRectanglesEXT = (PFNGLWINDOWRECTANGLESEXTPROC)glewGetProcAddress((const GLubyte*)"glWindowRectanglesEXT")) == NULL) || r; return r; } #endif /* GL_EXT_window_rectangles */ #ifdef GL_EXT_x11_sync_object static GLboolean _glewInit_GL_EXT_x11_sync_object () { GLboolean r = GL_FALSE; r = ((glImportSyncEXT = (PFNGLIMPORTSYNCEXTPROC)glewGetProcAddress((const GLubyte*)"glImportSyncEXT")) == NULL) || r; return r; } #endif /* GL_EXT_x11_sync_object */ #ifdef GL_GREMEDY_frame_terminator static GLboolean _glewInit_GL_GREMEDY_frame_terminator () { GLboolean r = GL_FALSE; r = ((glFrameTerminatorGREMEDY = (PFNGLFRAMETERMINATORGREMEDYPROC)glewGetProcAddress((const GLubyte*)"glFrameTerminatorGREMEDY")) == NULL) || r; return r; } #endif /* GL_GREMEDY_frame_terminator */ #ifdef GL_GREMEDY_string_marker static GLboolean _glewInit_GL_GREMEDY_string_marker () { GLboolean r = GL_FALSE; r = ((glStringMarkerGREMEDY = (PFNGLSTRINGMARKERGREMEDYPROC)glewGetProcAddress((const GLubyte*)"glStringMarkerGREMEDY")) == NULL) || r; return r; } #endif /* GL_GREMEDY_string_marker */ #ifdef GL_HP_image_transform static GLboolean _glewInit_GL_HP_image_transform () { GLboolean r = GL_FALSE; r = ((glGetImageTransformParameterfvHP = (PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)glewGetProcAddress((const GLubyte*)"glGetImageTransformParameterfvHP")) == NULL) || r; r = ((glGetImageTransformParameterivHP = (PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)glewGetProcAddress((const GLubyte*)"glGetImageTransformParameterivHP")) == NULL) || r; r = ((glImageTransformParameterfHP = (PFNGLIMAGETRANSFORMPARAMETERFHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameterfHP")) == NULL) || r; r = ((glImageTransformParameterfvHP = (PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameterfvHP")) == NULL) || r; r = ((glImageTransformParameteriHP = (PFNGLIMAGETRANSFORMPARAMETERIHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameteriHP")) == NULL) || r; r = ((glImageTransformParameterivHP = (PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)glewGetProcAddress((const GLubyte*)"glImageTransformParameterivHP")) == NULL) || r; return r; } #endif /* GL_HP_image_transform */ #ifdef GL_IBM_multimode_draw_arrays static GLboolean _glewInit_GL_IBM_multimode_draw_arrays () { GLboolean r = GL_FALSE; r = ((glMultiModeDrawArraysIBM = (PFNGLMULTIMODEDRAWARRAYSIBMPROC)glewGetProcAddress((const GLubyte*)"glMultiModeDrawArraysIBM")) == NULL) || r; r = ((glMultiModeDrawElementsIBM = (PFNGLMULTIMODEDRAWELEMENTSIBMPROC)glewGetProcAddress((const GLubyte*)"glMultiModeDrawElementsIBM")) == NULL) || r; return r; } #endif /* GL_IBM_multimode_draw_arrays */ #ifdef GL_IBM_vertex_array_lists static GLboolean _glewInit_GL_IBM_vertex_array_lists () { GLboolean r = GL_FALSE; r = ((glColorPointerListIBM = (PFNGLCOLORPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glColorPointerListIBM")) == NULL) || r; r = ((glEdgeFlagPointerListIBM = (PFNGLEDGEFLAGPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glEdgeFlagPointerListIBM")) == NULL) || r; r = ((glFogCoordPointerListIBM = (PFNGLFOGCOORDPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glFogCoordPointerListIBM")) == NULL) || r; r = ((glIndexPointerListIBM = (PFNGLINDEXPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glIndexPointerListIBM")) == NULL) || r; r = ((glNormalPointerListIBM = (PFNGLNORMALPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glNormalPointerListIBM")) == NULL) || r; r = ((glSecondaryColorPointerListIBM = (PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorPointerListIBM")) == NULL) || r; r = ((glTexCoordPointerListIBM = (PFNGLTEXCOORDPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glTexCoordPointerListIBM")) == NULL) || r; r = ((glVertexPointerListIBM = (PFNGLVERTEXPOINTERLISTIBMPROC)glewGetProcAddress((const GLubyte*)"glVertexPointerListIBM")) == NULL) || r; return r; } #endif /* GL_IBM_vertex_array_lists */ #ifdef GL_INTEL_map_texture static GLboolean _glewInit_GL_INTEL_map_texture () { GLboolean r = GL_FALSE; r = ((glMapTexture2DINTEL = (PFNGLMAPTEXTURE2DINTELPROC)glewGetProcAddress((const GLubyte*)"glMapTexture2DINTEL")) == NULL) || r; r = ((glSyncTextureINTEL = (PFNGLSYNCTEXTUREINTELPROC)glewGetProcAddress((const GLubyte*)"glSyncTextureINTEL")) == NULL) || r; r = ((glUnmapTexture2DINTEL = (PFNGLUNMAPTEXTURE2DINTELPROC)glewGetProcAddress((const GLubyte*)"glUnmapTexture2DINTEL")) == NULL) || r; return r; } #endif /* GL_INTEL_map_texture */ #ifdef GL_INTEL_parallel_arrays static GLboolean _glewInit_GL_INTEL_parallel_arrays () { GLboolean r = GL_FALSE; r = ((glColorPointervINTEL = (PFNGLCOLORPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glColorPointervINTEL")) == NULL) || r; r = ((glNormalPointervINTEL = (PFNGLNORMALPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glNormalPointervINTEL")) == NULL) || r; r = ((glTexCoordPointervINTEL = (PFNGLTEXCOORDPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glTexCoordPointervINTEL")) == NULL) || r; r = ((glVertexPointervINTEL = (PFNGLVERTEXPOINTERVINTELPROC)glewGetProcAddress((const GLubyte*)"glVertexPointervINTEL")) == NULL) || r; return r; } #endif /* GL_INTEL_parallel_arrays */ #ifdef GL_INTEL_performance_query static GLboolean _glewInit_GL_INTEL_performance_query () { GLboolean r = GL_FALSE; r = ((glBeginPerfQueryINTEL = (PFNGLBEGINPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glBeginPerfQueryINTEL")) == NULL) || r; r = ((glCreatePerfQueryINTEL = (PFNGLCREATEPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glCreatePerfQueryINTEL")) == NULL) || r; r = ((glDeletePerfQueryINTEL = (PFNGLDELETEPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glDeletePerfQueryINTEL")) == NULL) || r; r = ((glEndPerfQueryINTEL = (PFNGLENDPERFQUERYINTELPROC)glewGetProcAddress((const GLubyte*)"glEndPerfQueryINTEL")) == NULL) || r; r = ((glGetFirstPerfQueryIdINTEL = (PFNGLGETFIRSTPERFQUERYIDINTELPROC)glewGetProcAddress((const GLubyte*)"glGetFirstPerfQueryIdINTEL")) == NULL) || r; r = ((glGetNextPerfQueryIdINTEL = (PFNGLGETNEXTPERFQUERYIDINTELPROC)glewGetProcAddress((const GLubyte*)"glGetNextPerfQueryIdINTEL")) == NULL) || r; r = ((glGetPerfCounterInfoINTEL = (PFNGLGETPERFCOUNTERINFOINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfCounterInfoINTEL")) == NULL) || r; r = ((glGetPerfQueryDataINTEL = (PFNGLGETPERFQUERYDATAINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfQueryDataINTEL")) == NULL) || r; r = ((glGetPerfQueryIdByNameINTEL = (PFNGLGETPERFQUERYIDBYNAMEINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfQueryIdByNameINTEL")) == NULL) || r; r = ((glGetPerfQueryInfoINTEL = (PFNGLGETPERFQUERYINFOINTELPROC)glewGetProcAddress((const GLubyte*)"glGetPerfQueryInfoINTEL")) == NULL) || r; return r; } #endif /* GL_INTEL_performance_query */ #ifdef GL_INTEL_texture_scissor static GLboolean _glewInit_GL_INTEL_texture_scissor () { GLboolean r = GL_FALSE; r = ((glTexScissorFuncINTEL = (PFNGLTEXSCISSORFUNCINTELPROC)glewGetProcAddress((const GLubyte*)"glTexScissorFuncINTEL")) == NULL) || r; r = ((glTexScissorINTEL = (PFNGLTEXSCISSORINTELPROC)glewGetProcAddress((const GLubyte*)"glTexScissorINTEL")) == NULL) || r; return r; } #endif /* GL_INTEL_texture_scissor */ #ifdef GL_KHR_blend_equation_advanced static GLboolean _glewInit_GL_KHR_blend_equation_advanced () { GLboolean r = GL_FALSE; r = ((glBlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC)glewGetProcAddress((const GLubyte*)"glBlendBarrierKHR")) == NULL) || r; return r; } #endif /* GL_KHR_blend_equation_advanced */ #ifdef GL_KHR_debug static GLboolean _glewInit_GL_KHR_debug () { GLboolean r = GL_FALSE; r = ((glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageCallback")) == NULL) || r; r = ((glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageControl")) == NULL) || r; r = ((glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)glewGetProcAddress((const GLubyte*)"glDebugMessageInsert")) == NULL) || r; r = ((glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)glewGetProcAddress((const GLubyte*)"glGetDebugMessageLog")) == NULL) || r; r = ((glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)glewGetProcAddress((const GLubyte*)"glGetObjectLabel")) == NULL) || r; r = ((glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)glewGetProcAddress((const GLubyte*)"glGetObjectPtrLabel")) == NULL) || r; r = ((glObjectLabel = (PFNGLOBJECTLABELPROC)glewGetProcAddress((const GLubyte*)"glObjectLabel")) == NULL) || r; r = ((glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)glewGetProcAddress((const GLubyte*)"glObjectPtrLabel")) == NULL) || r; r = ((glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)glewGetProcAddress((const GLubyte*)"glPopDebugGroup")) == NULL) || r; r = ((glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)glewGetProcAddress((const GLubyte*)"glPushDebugGroup")) == NULL) || r; return r; } #endif /* GL_KHR_debug */ #ifdef GL_KHR_parallel_shader_compile static GLboolean _glewInit_GL_KHR_parallel_shader_compile () { GLboolean r = GL_FALSE; r = ((glMaxShaderCompilerThreadsKHR = (PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)glewGetProcAddress((const GLubyte*)"glMaxShaderCompilerThreadsKHR")) == NULL) || r; return r; } #endif /* GL_KHR_parallel_shader_compile */ #ifdef GL_KHR_robustness static GLboolean _glewInit_GL_KHR_robustness () { GLboolean r = GL_FALSE; r = ((glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformfv")) == NULL) || r; r = ((glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformiv")) == NULL) || r; r = ((glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)glewGetProcAddress((const GLubyte*)"glGetnUniformuiv")) == NULL) || r; r = ((glReadnPixels = (PFNGLREADNPIXELSPROC)glewGetProcAddress((const GLubyte*)"glReadnPixels")) == NULL) || r; return r; } #endif /* GL_KHR_robustness */ #ifdef GL_KTX_buffer_region static GLboolean _glewInit_GL_KTX_buffer_region () { GLboolean r = GL_FALSE; r = ((glBufferRegionEnabled = (PFNGLBUFFERREGIONENABLEDPROC)glewGetProcAddress((const GLubyte*)"glBufferRegionEnabled")) == NULL) || r; r = ((glDeleteBufferRegion = (PFNGLDELETEBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glDeleteBufferRegion")) == NULL) || r; r = ((glDrawBufferRegion = (PFNGLDRAWBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glDrawBufferRegion")) == NULL) || r; r = ((glNewBufferRegion = (PFNGLNEWBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glNewBufferRegion")) == NULL) || r; r = ((glReadBufferRegion = (PFNGLREADBUFFERREGIONPROC)glewGetProcAddress((const GLubyte*)"glReadBufferRegion")) == NULL) || r; return r; } #endif /* GL_KTX_buffer_region */ #ifdef GL_MESA_resize_buffers static GLboolean _glewInit_GL_MESA_resize_buffers () { GLboolean r = GL_FALSE; r = ((glResizeBuffersMESA = (PFNGLRESIZEBUFFERSMESAPROC)glewGetProcAddress((const GLubyte*)"glResizeBuffersMESA")) == NULL) || r; return r; } #endif /* GL_MESA_resize_buffers */ #ifdef GL_MESA_window_pos static GLboolean _glewInit_GL_MESA_window_pos () { GLboolean r = GL_FALSE; r = ((glWindowPos2dMESA = (PFNGLWINDOWPOS2DMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dMESA")) == NULL) || r; r = ((glWindowPos2dvMESA = (PFNGLWINDOWPOS2DVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2dvMESA")) == NULL) || r; r = ((glWindowPos2fMESA = (PFNGLWINDOWPOS2FMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fMESA")) == NULL) || r; r = ((glWindowPos2fvMESA = (PFNGLWINDOWPOS2FVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2fvMESA")) == NULL) || r; r = ((glWindowPos2iMESA = (PFNGLWINDOWPOS2IMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2iMESA")) == NULL) || r; r = ((glWindowPos2ivMESA = (PFNGLWINDOWPOS2IVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2ivMESA")) == NULL) || r; r = ((glWindowPos2sMESA = (PFNGLWINDOWPOS2SMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2sMESA")) == NULL) || r; r = ((glWindowPos2svMESA = (PFNGLWINDOWPOS2SVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos2svMESA")) == NULL) || r; r = ((glWindowPos3dMESA = (PFNGLWINDOWPOS3DMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dMESA")) == NULL) || r; r = ((glWindowPos3dvMESA = (PFNGLWINDOWPOS3DVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3dvMESA")) == NULL) || r; r = ((glWindowPos3fMESA = (PFNGLWINDOWPOS3FMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fMESA")) == NULL) || r; r = ((glWindowPos3fvMESA = (PFNGLWINDOWPOS3FVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3fvMESA")) == NULL) || r; r = ((glWindowPos3iMESA = (PFNGLWINDOWPOS3IMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3iMESA")) == NULL) || r; r = ((glWindowPos3ivMESA = (PFNGLWINDOWPOS3IVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3ivMESA")) == NULL) || r; r = ((glWindowPos3sMESA = (PFNGLWINDOWPOS3SMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3sMESA")) == NULL) || r; r = ((glWindowPos3svMESA = (PFNGLWINDOWPOS3SVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos3svMESA")) == NULL) || r; r = ((glWindowPos4dMESA = (PFNGLWINDOWPOS4DMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4dMESA")) == NULL) || r; r = ((glWindowPos4dvMESA = (PFNGLWINDOWPOS4DVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4dvMESA")) == NULL) || r; r = ((glWindowPos4fMESA = (PFNGLWINDOWPOS4FMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4fMESA")) == NULL) || r; r = ((glWindowPos4fvMESA = (PFNGLWINDOWPOS4FVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4fvMESA")) == NULL) || r; r = ((glWindowPos4iMESA = (PFNGLWINDOWPOS4IMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4iMESA")) == NULL) || r; r = ((glWindowPos4ivMESA = (PFNGLWINDOWPOS4IVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4ivMESA")) == NULL) || r; r = ((glWindowPos4sMESA = (PFNGLWINDOWPOS4SMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4sMESA")) == NULL) || r; r = ((glWindowPos4svMESA = (PFNGLWINDOWPOS4SVMESAPROC)glewGetProcAddress((const GLubyte*)"glWindowPos4svMESA")) == NULL) || r; return r; } #endif /* GL_MESA_window_pos */ #ifdef GL_NVX_conditional_render static GLboolean _glewInit_GL_NVX_conditional_render () { GLboolean r = GL_FALSE; r = ((glBeginConditionalRenderNVX = (PFNGLBEGINCONDITIONALRENDERNVXPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRenderNVX")) == NULL) || r; r = ((glEndConditionalRenderNVX = (PFNGLENDCONDITIONALRENDERNVXPROC)glewGetProcAddress((const GLubyte*)"glEndConditionalRenderNVX")) == NULL) || r; return r; } #endif /* GL_NVX_conditional_render */ #ifdef GL_NVX_linked_gpu_multicast static GLboolean _glewInit_GL_NVX_linked_gpu_multicast () { GLboolean r = GL_FALSE; r = ((glLGPUCopyImageSubDataNVX = (PFNGLLGPUCOPYIMAGESUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUCopyImageSubDataNVX")) == NULL) || r; r = ((glLGPUInterlockNVX = (PFNGLLGPUINTERLOCKNVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUInterlockNVX")) == NULL) || r; r = ((glLGPUNamedBufferSubDataNVX = (PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)glewGetProcAddress((const GLubyte*)"glLGPUNamedBufferSubDataNVX")) == NULL) || r; return r; } #endif /* GL_NVX_linked_gpu_multicast */ #ifdef GL_NV_3dvision_settings static GLboolean _glewInit_GL_NV_3dvision_settings () { GLboolean r = GL_FALSE; r = ((glStereoParameterfNV = (PFNGLSTEREOPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameterfNV")) == NULL) || r; r = ((glStereoParameteriNV = (PFNGLSTEREOPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glStereoParameteriNV")) == NULL) || r; return r; } #endif /* GL_NV_3dvision_settings */ #ifdef GL_NV_bindless_multi_draw_indirect static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirectBindlessNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectBindlessNV")) == NULL) || r; r = ((glMultiDrawElementsIndirectBindlessNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectBindlessNV")) == NULL) || r; return r; } #endif /* GL_NV_bindless_multi_draw_indirect */ #ifdef GL_NV_bindless_multi_draw_indirect_count static GLboolean _glewInit_GL_NV_bindless_multi_draw_indirect_count () { GLboolean r = GL_FALSE; r = ((glMultiDrawArraysIndirectBindlessCountNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawArraysIndirectBindlessCountNV")) == NULL) || r; r = ((glMultiDrawElementsIndirectBindlessCountNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glMultiDrawElementsIndirectBindlessCountNV")) == NULL) || r; return r; } #endif /* GL_NV_bindless_multi_draw_indirect_count */ #ifdef GL_NV_bindless_texture static GLboolean _glewInit_GL_NV_bindless_texture () { GLboolean r = GL_FALSE; r = ((glGetImageHandleNV = (PFNGLGETIMAGEHANDLENVPROC)glewGetProcAddress((const GLubyte*)"glGetImageHandleNV")) == NULL) || r; r = ((glGetTextureHandleNV = (PFNGLGETTEXTUREHANDLENVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureHandleNV")) == NULL) || r; r = ((glGetTextureSamplerHandleNV = (PFNGLGETTEXTURESAMPLERHANDLENVPROC)glewGetProcAddress((const GLubyte*)"glGetTextureSamplerHandleNV")) == NULL) || r; r = ((glIsImageHandleResidentNV = (PFNGLISIMAGEHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsImageHandleResidentNV")) == NULL) || r; r = ((glIsTextureHandleResidentNV = (PFNGLISTEXTUREHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsTextureHandleResidentNV")) == NULL) || r; r = ((glMakeImageHandleNonResidentNV = (PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleNonResidentNV")) == NULL) || r; r = ((glMakeImageHandleResidentNV = (PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeImageHandleResidentNV")) == NULL) || r; r = ((glMakeTextureHandleNonResidentNV = (PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleNonResidentNV")) == NULL) || r; r = ((glMakeTextureHandleResidentNV = (PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeTextureHandleResidentNV")) == NULL) || r; r = ((glProgramUniformHandleui64NV = (PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64NV")) == NULL) || r; r = ((glProgramUniformHandleui64vNV = (PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformHandleui64vNV")) == NULL) || r; r = ((glUniformHandleui64NV = (PFNGLUNIFORMHANDLEUI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64NV")) == NULL) || r; r = ((glUniformHandleui64vNV = (PFNGLUNIFORMHANDLEUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniformHandleui64vNV")) == NULL) || r; return r; } #endif /* GL_NV_bindless_texture */ #ifdef GL_NV_blend_equation_advanced static GLboolean _glewInit_GL_NV_blend_equation_advanced () { GLboolean r = GL_FALSE; r = ((glBlendBarrierNV = (PFNGLBLENDBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glBlendBarrierNV")) == NULL) || r; r = ((glBlendParameteriNV = (PFNGLBLENDPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glBlendParameteriNV")) == NULL) || r; return r; } #endif /* GL_NV_blend_equation_advanced */ #ifdef GL_NV_clip_space_w_scaling static GLboolean _glewInit_GL_NV_clip_space_w_scaling () { GLboolean r = GL_FALSE; r = ((glViewportPositionWScaleNV = (PFNGLVIEWPORTPOSITIONWSCALENVPROC)glewGetProcAddress((const GLubyte*)"glViewportPositionWScaleNV")) == NULL) || r; return r; } #endif /* GL_NV_clip_space_w_scaling */ #ifdef GL_NV_command_list static GLboolean _glewInit_GL_NV_command_list () { GLboolean r = GL_FALSE; r = ((glCallCommandListNV = (PFNGLCALLCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCallCommandListNV")) == NULL) || r; r = ((glCommandListSegmentsNV = (PFNGLCOMMANDLISTSEGMENTSNVPROC)glewGetProcAddress((const GLubyte*)"glCommandListSegmentsNV")) == NULL) || r; r = ((glCompileCommandListNV = (PFNGLCOMPILECOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glCompileCommandListNV")) == NULL) || r; r = ((glCreateCommandListsNV = (PFNGLCREATECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glCreateCommandListsNV")) == NULL) || r; r = ((glCreateStatesNV = (PFNGLCREATESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glCreateStatesNV")) == NULL) || r; r = ((glDeleteCommandListsNV = (PFNGLDELETECOMMANDLISTSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteCommandListsNV")) == NULL) || r; r = ((glDeleteStatesNV = (PFNGLDELETESTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteStatesNV")) == NULL) || r; r = ((glDrawCommandsAddressNV = (PFNGLDRAWCOMMANDSADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsAddressNV")) == NULL) || r; r = ((glDrawCommandsNV = (PFNGLDRAWCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsNV")) == NULL) || r; r = ((glDrawCommandsStatesAddressNV = (PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesAddressNV")) == NULL) || r; r = ((glDrawCommandsStatesNV = (PFNGLDRAWCOMMANDSSTATESNVPROC)glewGetProcAddress((const GLubyte*)"glDrawCommandsStatesNV")) == NULL) || r; r = ((glGetCommandHeaderNV = (PFNGLGETCOMMANDHEADERNVPROC)glewGetProcAddress((const GLubyte*)"glGetCommandHeaderNV")) == NULL) || r; r = ((glGetStageIndexNV = (PFNGLGETSTAGEINDEXNVPROC)glewGetProcAddress((const GLubyte*)"glGetStageIndexNV")) == NULL) || r; r = ((glIsCommandListNV = (PFNGLISCOMMANDLISTNVPROC)glewGetProcAddress((const GLubyte*)"glIsCommandListNV")) == NULL) || r; r = ((glIsStateNV = (PFNGLISSTATENVPROC)glewGetProcAddress((const GLubyte*)"glIsStateNV")) == NULL) || r; r = ((glListDrawCommandsStatesClientNV = (PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)glewGetProcAddress((const GLubyte*)"glListDrawCommandsStatesClientNV")) == NULL) || r; r = ((glStateCaptureNV = (PFNGLSTATECAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glStateCaptureNV")) == NULL) || r; return r; } #endif /* GL_NV_command_list */ #ifdef GL_NV_conditional_render static GLboolean _glewInit_GL_NV_conditional_render () { GLboolean r = GL_FALSE; r = ((glBeginConditionalRenderNV = (PFNGLBEGINCONDITIONALRENDERNVPROC)glewGetProcAddress((const GLubyte*)"glBeginConditionalRenderNV")) == NULL) || r; r = ((glEndConditionalRenderNV = (PFNGLENDCONDITIONALRENDERNVPROC)glewGetProcAddress((const GLubyte*)"glEndConditionalRenderNV")) == NULL) || r; return r; } #endif /* GL_NV_conditional_render */ #ifdef GL_NV_conservative_raster static GLboolean _glewInit_GL_NV_conservative_raster () { GLboolean r = GL_FALSE; r = ((glSubpixelPrecisionBiasNV = (PFNGLSUBPIXELPRECISIONBIASNVPROC)glewGetProcAddress((const GLubyte*)"glSubpixelPrecisionBiasNV")) == NULL) || r; return r; } #endif /* GL_NV_conservative_raster */ #ifdef GL_NV_conservative_raster_dilate static GLboolean _glewInit_GL_NV_conservative_raster_dilate () { GLboolean r = GL_FALSE; r = ((glConservativeRasterParameterfNV = (PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glConservativeRasterParameterfNV")) == NULL) || r; return r; } #endif /* GL_NV_conservative_raster_dilate */ #ifdef GL_NV_conservative_raster_pre_snap_triangles static GLboolean _glewInit_GL_NV_conservative_raster_pre_snap_triangles () { GLboolean r = GL_FALSE; r = ((glConservativeRasterParameteriNV = (PFNGLCONSERVATIVERASTERPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glConservativeRasterParameteriNV")) == NULL) || r; return r; } #endif /* GL_NV_conservative_raster_pre_snap_triangles */ #ifdef GL_NV_copy_buffer static GLboolean _glewInit_GL_NV_copy_buffer () { GLboolean r = GL_FALSE; r = ((glCopyBufferSubDataNV = (PFNGLCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glCopyBufferSubDataNV")) == NULL) || r; return r; } #endif /* GL_NV_copy_buffer */ #ifdef GL_NV_copy_image static GLboolean _glewInit_GL_NV_copy_image () { GLboolean r = GL_FALSE; r = ((glCopyImageSubDataNV = (PFNGLCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glCopyImageSubDataNV")) == NULL) || r; return r; } #endif /* GL_NV_copy_image */ #ifdef GL_NV_depth_buffer_float static GLboolean _glewInit_GL_NV_depth_buffer_float () { GLboolean r = GL_FALSE; r = ((glClearDepthdNV = (PFNGLCLEARDEPTHDNVPROC)glewGetProcAddress((const GLubyte*)"glClearDepthdNV")) == NULL) || r; r = ((glDepthBoundsdNV = (PFNGLDEPTHBOUNDSDNVPROC)glewGetProcAddress((const GLubyte*)"glDepthBoundsdNV")) == NULL) || r; r = ((glDepthRangedNV = (PFNGLDEPTHRANGEDNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangedNV")) == NULL) || r; return r; } #endif /* GL_NV_depth_buffer_float */ #ifdef GL_NV_draw_buffers static GLboolean _glewInit_GL_NV_draw_buffers () { GLboolean r = GL_FALSE; r = ((glDrawBuffersNV = (PFNGLDRAWBUFFERSNVPROC)glewGetProcAddress((const GLubyte*)"glDrawBuffersNV")) == NULL) || r; return r; } #endif /* GL_NV_draw_buffers */ #ifdef GL_NV_draw_instanced static GLboolean _glewInit_GL_NV_draw_instanced () { GLboolean r = GL_FALSE; r = ((glDrawArraysInstancedNV = (PFNGLDRAWARRAYSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawArraysInstancedNV")) == NULL) || r; r = ((glDrawElementsInstancedNV = (PFNGLDRAWELEMENTSINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glDrawElementsInstancedNV")) == NULL) || r; return r; } #endif /* GL_NV_draw_instanced */ #ifdef GL_NV_draw_texture static GLboolean _glewInit_GL_NV_draw_texture () { GLboolean r = GL_FALSE; r = ((glDrawTextureNV = (PFNGLDRAWTEXTURENVPROC)glewGetProcAddress((const GLubyte*)"glDrawTextureNV")) == NULL) || r; return r; } #endif /* GL_NV_draw_texture */ #ifdef GL_NV_draw_vulkan_image static GLboolean _glewInit_GL_NV_draw_vulkan_image () { GLboolean r = GL_FALSE; r = ((glDrawVkImageNV = (PFNGLDRAWVKIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glDrawVkImageNV")) == NULL) || r; r = ((glGetVkProcAddrNV = (PFNGLGETVKPROCADDRNVPROC)glewGetProcAddress((const GLubyte*)"glGetVkProcAddrNV")) == NULL) || r; r = ((glSignalVkFenceNV = (PFNGLSIGNALVKFENCENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkFenceNV")) == NULL) || r; r = ((glSignalVkSemaphoreNV = (PFNGLSIGNALVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glSignalVkSemaphoreNV")) == NULL) || r; r = ((glWaitVkSemaphoreNV = (PFNGLWAITVKSEMAPHORENVPROC)glewGetProcAddress((const GLubyte*)"glWaitVkSemaphoreNV")) == NULL) || r; return r; } #endif /* GL_NV_draw_vulkan_image */ #ifdef GL_NV_evaluators static GLboolean _glewInit_GL_NV_evaluators () { GLboolean r = GL_FALSE; r = ((glEvalMapsNV = (PFNGLEVALMAPSNVPROC)glewGetProcAddress((const GLubyte*)"glEvalMapsNV")) == NULL) || r; r = ((glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapAttribParameterfvNV")) == NULL) || r; r = ((glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapAttribParameterivNV")) == NULL) || r; r = ((glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapControlPointsNV")) == NULL) || r; r = ((glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapParameterfvNV")) == NULL) || r; r = ((glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMapParameterivNV")) == NULL) || r; r = ((glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC)glewGetProcAddress((const GLubyte*)"glMapControlPointsNV")) == NULL) || r; r = ((glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glMapParameterfvNV")) == NULL) || r; r = ((glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glMapParameterivNV")) == NULL) || r; return r; } #endif /* GL_NV_evaluators */ #ifdef GL_NV_explicit_multisample static GLboolean _glewInit_GL_NV_explicit_multisample () { GLboolean r = GL_FALSE; r = ((glGetMultisamplefvNV = (PFNGLGETMULTISAMPLEFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetMultisamplefvNV")) == NULL) || r; r = ((glSampleMaskIndexedNV = (PFNGLSAMPLEMASKINDEXEDNVPROC)glewGetProcAddress((const GLubyte*)"glSampleMaskIndexedNV")) == NULL) || r; r = ((glTexRenderbufferNV = (PFNGLTEXRENDERBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glTexRenderbufferNV")) == NULL) || r; return r; } #endif /* GL_NV_explicit_multisample */ #ifdef GL_NV_fence static GLboolean _glewInit_GL_NV_fence () { GLboolean r = GL_FALSE; r = ((glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteFencesNV")) == NULL) || r; r = ((glFinishFenceNV = (PFNGLFINISHFENCENVPROC)glewGetProcAddress((const GLubyte*)"glFinishFenceNV")) == NULL) || r; r = ((glGenFencesNV = (PFNGLGENFENCESNVPROC)glewGetProcAddress((const GLubyte*)"glGenFencesNV")) == NULL) || r; r = ((glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetFenceivNV")) == NULL) || r; r = ((glIsFenceNV = (PFNGLISFENCENVPROC)glewGetProcAddress((const GLubyte*)"glIsFenceNV")) == NULL) || r; r = ((glSetFenceNV = (PFNGLSETFENCENVPROC)glewGetProcAddress((const GLubyte*)"glSetFenceNV")) == NULL) || r; r = ((glTestFenceNV = (PFNGLTESTFENCENVPROC)glewGetProcAddress((const GLubyte*)"glTestFenceNV")) == NULL) || r; return r; } #endif /* GL_NV_fence */ #ifdef GL_NV_fragment_coverage_to_color static GLboolean _glewInit_GL_NV_fragment_coverage_to_color () { GLboolean r = GL_FALSE; r = ((glFragmentCoverageColorNV = (PFNGLFRAGMENTCOVERAGECOLORNVPROC)glewGetProcAddress((const GLubyte*)"glFragmentCoverageColorNV")) == NULL) || r; return r; } #endif /* GL_NV_fragment_coverage_to_color */ #ifdef GL_NV_fragment_program static GLboolean _glewInit_GL_NV_fragment_program () { GLboolean r = GL_FALSE; r = ((glGetProgramNamedParameterdvNV = (PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramNamedParameterdvNV")) == NULL) || r; r = ((glGetProgramNamedParameterfvNV = (PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramNamedParameterfvNV")) == NULL) || r; r = ((glProgramNamedParameter4dNV = (PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4dNV")) == NULL) || r; r = ((glProgramNamedParameter4dvNV = (PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4dvNV")) == NULL) || r; r = ((glProgramNamedParameter4fNV = (PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4fNV")) == NULL) || r; r = ((glProgramNamedParameter4fvNV = (PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramNamedParameter4fvNV")) == NULL) || r; return r; } #endif /* GL_NV_fragment_program */ #ifdef GL_NV_framebuffer_blit static GLboolean _glewInit_GL_NV_framebuffer_blit () { GLboolean r = GL_FALSE; r = ((glBlitFramebufferNV = (PFNGLBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glBlitFramebufferNV")) == NULL) || r; return r; } #endif /* GL_NV_framebuffer_blit */ #ifdef GL_NV_framebuffer_multisample static GLboolean _glewInit_GL_NV_framebuffer_multisample () { GLboolean r = GL_FALSE; r = ((glRenderbufferStorageMultisampleNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleNV")) == NULL) || r; return r; } #endif /* GL_NV_framebuffer_multisample */ #ifdef GL_NV_framebuffer_multisample_coverage static GLboolean _glewInit_GL_NV_framebuffer_multisample_coverage () { GLboolean r = GL_FALSE; r = ((glRenderbufferStorageMultisampleCoverageNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glRenderbufferStorageMultisampleCoverageNV")) == NULL) || r; return r; } #endif /* GL_NV_framebuffer_multisample_coverage */ #ifdef GL_NV_geometry_program4 static GLboolean _glewInit_GL_NV_geometry_program4 () { GLboolean r = GL_FALSE; r = ((glProgramVertexLimitNV = (PFNGLPROGRAMVERTEXLIMITNVPROC)glewGetProcAddress((const GLubyte*)"glProgramVertexLimitNV")) == NULL) || r; return r; } #endif /* GL_NV_geometry_program4 */ #ifdef GL_NV_gpu_multicast static GLboolean _glewInit_GL_NV_gpu_multicast () { GLboolean r = GL_FALSE; r = ((glMulticastBarrierNV = (PFNGLMULTICASTBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBarrierNV")) == NULL) || r; r = ((glMulticastBlitFramebufferNV = (PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBlitFramebufferNV")) == NULL) || r; r = ((glMulticastBufferSubDataNV = (PFNGLMULTICASTBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastBufferSubDataNV")) == NULL) || r; r = ((glMulticastCopyBufferSubDataNV = (PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyBufferSubDataNV")) == NULL) || r; r = ((glMulticastCopyImageSubDataNV = (PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glMulticastCopyImageSubDataNV")) == NULL) || r; r = ((glMulticastFramebufferSampleLocationsfvNV = (PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastFramebufferSampleLocationsfvNV")) == NULL) || r; r = ((glMulticastGetQueryObjecti64vNV = (PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjecti64vNV")) == NULL) || r; r = ((glMulticastGetQueryObjectivNV = (PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectivNV")) == NULL) || r; r = ((glMulticastGetQueryObjectui64vNV = (PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectui64vNV")) == NULL) || r; r = ((glMulticastGetQueryObjectuivNV = (PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastGetQueryObjectuivNV")) == NULL) || r; r = ((glMulticastWaitSyncNV = (PFNGLMULTICASTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"glMulticastWaitSyncNV")) == NULL) || r; r = ((glRenderGpuMaskNV = (PFNGLRENDERGPUMASKNVPROC)glewGetProcAddress((const GLubyte*)"glRenderGpuMaskNV")) == NULL) || r; return r; } #endif /* GL_NV_gpu_multicast */ #ifdef GL_NV_gpu_program4 static GLboolean _glewInit_GL_NV_gpu_program4 () { GLboolean r = GL_FALSE; r = ((glProgramEnvParameterI4iNV = (PFNGLPROGRAMENVPARAMETERI4INVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4iNV")) == NULL) || r; r = ((glProgramEnvParameterI4ivNV = (PFNGLPROGRAMENVPARAMETERI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4ivNV")) == NULL) || r; r = ((glProgramEnvParameterI4uiNV = (PFNGLPROGRAMENVPARAMETERI4UINVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4uiNV")) == NULL) || r; r = ((glProgramEnvParameterI4uivNV = (PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParameterI4uivNV")) == NULL) || r; r = ((glProgramEnvParametersI4ivNV = (PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParametersI4ivNV")) == NULL) || r; r = ((glProgramEnvParametersI4uivNV = (PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramEnvParametersI4uivNV")) == NULL) || r; r = ((glProgramLocalParameterI4iNV = (PFNGLPROGRAMLOCALPARAMETERI4INVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4iNV")) == NULL) || r; r = ((glProgramLocalParameterI4ivNV = (PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4ivNV")) == NULL) || r; r = ((glProgramLocalParameterI4uiNV = (PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4uiNV")) == NULL) || r; r = ((glProgramLocalParameterI4uivNV = (PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParameterI4uivNV")) == NULL) || r; r = ((glProgramLocalParametersI4ivNV = (PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParametersI4ivNV")) == NULL) || r; r = ((glProgramLocalParametersI4uivNV = (PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramLocalParametersI4uivNV")) == NULL) || r; return r; } #endif /* GL_NV_gpu_program4 */ #ifdef GL_NV_gpu_shader5 static GLboolean _glewInit_GL_NV_gpu_shader5 () { GLboolean r = GL_FALSE; r = ((glGetUniformi64vNV = (PFNGLGETUNIFORMI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformi64vNV")) == NULL) || r; r = ((glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetUniformui64vNV")) == NULL) || r; r = ((glProgramUniform1i64NV = (PFNGLPROGRAMUNIFORM1I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64NV")) == NULL) || r; r = ((glProgramUniform1i64vNV = (PFNGLPROGRAMUNIFORM1I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1i64vNV")) == NULL) || r; r = ((glProgramUniform1ui64NV = (PFNGLPROGRAMUNIFORM1UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64NV")) == NULL) || r; r = ((glProgramUniform1ui64vNV = (PFNGLPROGRAMUNIFORM1UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform1ui64vNV")) == NULL) || r; r = ((glProgramUniform2i64NV = (PFNGLPROGRAMUNIFORM2I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64NV")) == NULL) || r; r = ((glProgramUniform2i64vNV = (PFNGLPROGRAMUNIFORM2I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2i64vNV")) == NULL) || r; r = ((glProgramUniform2ui64NV = (PFNGLPROGRAMUNIFORM2UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64NV")) == NULL) || r; r = ((glProgramUniform2ui64vNV = (PFNGLPROGRAMUNIFORM2UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform2ui64vNV")) == NULL) || r; r = ((glProgramUniform3i64NV = (PFNGLPROGRAMUNIFORM3I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64NV")) == NULL) || r; r = ((glProgramUniform3i64vNV = (PFNGLPROGRAMUNIFORM3I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3i64vNV")) == NULL) || r; r = ((glProgramUniform3ui64NV = (PFNGLPROGRAMUNIFORM3UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64NV")) == NULL) || r; r = ((glProgramUniform3ui64vNV = (PFNGLPROGRAMUNIFORM3UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform3ui64vNV")) == NULL) || r; r = ((glProgramUniform4i64NV = (PFNGLPROGRAMUNIFORM4I64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64NV")) == NULL) || r; r = ((glProgramUniform4i64vNV = (PFNGLPROGRAMUNIFORM4I64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4i64vNV")) == NULL) || r; r = ((glProgramUniform4ui64NV = (PFNGLPROGRAMUNIFORM4UI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64NV")) == NULL) || r; r = ((glProgramUniform4ui64vNV = (PFNGLPROGRAMUNIFORM4UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniform4ui64vNV")) == NULL) || r; r = ((glUniform1i64NV = (PFNGLUNIFORM1I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64NV")) == NULL) || r; r = ((glUniform1i64vNV = (PFNGLUNIFORM1I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform1i64vNV")) == NULL) || r; r = ((glUniform1ui64NV = (PFNGLUNIFORM1UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64NV")) == NULL) || r; r = ((glUniform1ui64vNV = (PFNGLUNIFORM1UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform1ui64vNV")) == NULL) || r; r = ((glUniform2i64NV = (PFNGLUNIFORM2I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64NV")) == NULL) || r; r = ((glUniform2i64vNV = (PFNGLUNIFORM2I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform2i64vNV")) == NULL) || r; r = ((glUniform2ui64NV = (PFNGLUNIFORM2UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64NV")) == NULL) || r; r = ((glUniform2ui64vNV = (PFNGLUNIFORM2UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform2ui64vNV")) == NULL) || r; r = ((glUniform3i64NV = (PFNGLUNIFORM3I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64NV")) == NULL) || r; r = ((glUniform3i64vNV = (PFNGLUNIFORM3I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform3i64vNV")) == NULL) || r; r = ((glUniform3ui64NV = (PFNGLUNIFORM3UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64NV")) == NULL) || r; r = ((glUniform3ui64vNV = (PFNGLUNIFORM3UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform3ui64vNV")) == NULL) || r; r = ((glUniform4i64NV = (PFNGLUNIFORM4I64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64NV")) == NULL) || r; r = ((glUniform4i64vNV = (PFNGLUNIFORM4I64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform4i64vNV")) == NULL) || r; r = ((glUniform4ui64NV = (PFNGLUNIFORM4UI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64NV")) == NULL) || r; r = ((glUniform4ui64vNV = (PFNGLUNIFORM4UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniform4ui64vNV")) == NULL) || r; return r; } #endif /* GL_NV_gpu_shader5 */ #ifdef GL_NV_half_float static GLboolean _glewInit_GL_NV_half_float () { GLboolean r = GL_FALSE; r = ((glColor3hNV = (PFNGLCOLOR3HNVPROC)glewGetProcAddress((const GLubyte*)"glColor3hNV")) == NULL) || r; r = ((glColor3hvNV = (PFNGLCOLOR3HVNVPROC)glewGetProcAddress((const GLubyte*)"glColor3hvNV")) == NULL) || r; r = ((glColor4hNV = (PFNGLCOLOR4HNVPROC)glewGetProcAddress((const GLubyte*)"glColor4hNV")) == NULL) || r; r = ((glColor4hvNV = (PFNGLCOLOR4HVNVPROC)glewGetProcAddress((const GLubyte*)"glColor4hvNV")) == NULL) || r; r = ((glFogCoordhNV = (PFNGLFOGCOORDHNVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordhNV")) == NULL) || r; r = ((glFogCoordhvNV = (PFNGLFOGCOORDHVNVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordhvNV")) == NULL) || r; r = ((glMultiTexCoord1hNV = (PFNGLMULTITEXCOORD1HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1hNV")) == NULL) || r; r = ((glMultiTexCoord1hvNV = (PFNGLMULTITEXCOORD1HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord1hvNV")) == NULL) || r; r = ((glMultiTexCoord2hNV = (PFNGLMULTITEXCOORD2HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2hNV")) == NULL) || r; r = ((glMultiTexCoord2hvNV = (PFNGLMULTITEXCOORD2HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord2hvNV")) == NULL) || r; r = ((glMultiTexCoord3hNV = (PFNGLMULTITEXCOORD3HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3hNV")) == NULL) || r; r = ((glMultiTexCoord3hvNV = (PFNGLMULTITEXCOORD3HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord3hvNV")) == NULL) || r; r = ((glMultiTexCoord4hNV = (PFNGLMULTITEXCOORD4HNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4hNV")) == NULL) || r; r = ((glMultiTexCoord4hvNV = (PFNGLMULTITEXCOORD4HVNVPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4hvNV")) == NULL) || r; r = ((glNormal3hNV = (PFNGLNORMAL3HNVPROC)glewGetProcAddress((const GLubyte*)"glNormal3hNV")) == NULL) || r; r = ((glNormal3hvNV = (PFNGLNORMAL3HVNVPROC)glewGetProcAddress((const GLubyte*)"glNormal3hvNV")) == NULL) || r; r = ((glSecondaryColor3hNV = (PFNGLSECONDARYCOLOR3HNVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3hNV")) == NULL) || r; r = ((glSecondaryColor3hvNV = (PFNGLSECONDARYCOLOR3HVNVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColor3hvNV")) == NULL) || r; r = ((glTexCoord1hNV = (PFNGLTEXCOORD1HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord1hNV")) == NULL) || r; r = ((glTexCoord1hvNV = (PFNGLTEXCOORD1HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord1hvNV")) == NULL) || r; r = ((glTexCoord2hNV = (PFNGLTEXCOORD2HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2hNV")) == NULL) || r; r = ((glTexCoord2hvNV = (PFNGLTEXCOORD2HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2hvNV")) == NULL) || r; r = ((glTexCoord3hNV = (PFNGLTEXCOORD3HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord3hNV")) == NULL) || r; r = ((glTexCoord3hvNV = (PFNGLTEXCOORD3HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord3hvNV")) == NULL) || r; r = ((glTexCoord4hNV = (PFNGLTEXCOORD4HNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4hNV")) == NULL) || r; r = ((glTexCoord4hvNV = (PFNGLTEXCOORD4HVNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4hvNV")) == NULL) || r; r = ((glVertex2hNV = (PFNGLVERTEX2HNVPROC)glewGetProcAddress((const GLubyte*)"glVertex2hNV")) == NULL) || r; r = ((glVertex2hvNV = (PFNGLVERTEX2HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertex2hvNV")) == NULL) || r; r = ((glVertex3hNV = (PFNGLVERTEX3HNVPROC)glewGetProcAddress((const GLubyte*)"glVertex3hNV")) == NULL) || r; r = ((glVertex3hvNV = (PFNGLVERTEX3HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertex3hvNV")) == NULL) || r; r = ((glVertex4hNV = (PFNGLVERTEX4HNVPROC)glewGetProcAddress((const GLubyte*)"glVertex4hNV")) == NULL) || r; r = ((glVertex4hvNV = (PFNGLVERTEX4HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertex4hvNV")) == NULL) || r; r = ((glVertexAttrib1hNV = (PFNGLVERTEXATTRIB1HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1hNV")) == NULL) || r; r = ((glVertexAttrib1hvNV = (PFNGLVERTEXATTRIB1HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1hvNV")) == NULL) || r; r = ((glVertexAttrib2hNV = (PFNGLVERTEXATTRIB2HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2hNV")) == NULL) || r; r = ((glVertexAttrib2hvNV = (PFNGLVERTEXATTRIB2HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2hvNV")) == NULL) || r; r = ((glVertexAttrib3hNV = (PFNGLVERTEXATTRIB3HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3hNV")) == NULL) || r; r = ((glVertexAttrib3hvNV = (PFNGLVERTEXATTRIB3HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3hvNV")) == NULL) || r; r = ((glVertexAttrib4hNV = (PFNGLVERTEXATTRIB4HNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4hNV")) == NULL) || r; r = ((glVertexAttrib4hvNV = (PFNGLVERTEXATTRIB4HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4hvNV")) == NULL) || r; r = ((glVertexAttribs1hvNV = (PFNGLVERTEXATTRIBS1HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1hvNV")) == NULL) || r; r = ((glVertexAttribs2hvNV = (PFNGLVERTEXATTRIBS2HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2hvNV")) == NULL) || r; r = ((glVertexAttribs3hvNV = (PFNGLVERTEXATTRIBS3HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3hvNV")) == NULL) || r; r = ((glVertexAttribs4hvNV = (PFNGLVERTEXATTRIBS4HVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4hvNV")) == NULL) || r; r = ((glVertexWeighthNV = (PFNGLVERTEXWEIGHTHNVPROC)glewGetProcAddress((const GLubyte*)"glVertexWeighthNV")) == NULL) || r; r = ((glVertexWeighthvNV = (PFNGLVERTEXWEIGHTHVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexWeighthvNV")) == NULL) || r; return r; } #endif /* GL_NV_half_float */ #ifdef GL_NV_instanced_arrays static GLboolean _glewInit_GL_NV_instanced_arrays () { GLboolean r = GL_FALSE; r = ((glVertexAttribDivisorNV = (PFNGLVERTEXATTRIBDIVISORNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribDivisorNV")) == NULL) || r; return r; } #endif /* GL_NV_instanced_arrays */ #ifdef GL_NV_internalformat_sample_query static GLboolean _glewInit_GL_NV_internalformat_sample_query () { GLboolean r = GL_FALSE; r = ((glGetInternalformatSampleivNV = (PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetInternalformatSampleivNV")) == NULL) || r; return r; } #endif /* GL_NV_internalformat_sample_query */ #ifdef GL_NV_non_square_matrices static GLboolean _glewInit_GL_NV_non_square_matrices () { GLboolean r = GL_FALSE; r = ((glUniformMatrix2x3fvNV = (PFNGLUNIFORMMATRIX2X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x3fvNV")) == NULL) || r; r = ((glUniformMatrix2x4fvNV = (PFNGLUNIFORMMATRIX2X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix2x4fvNV")) == NULL) || r; r = ((glUniformMatrix3x2fvNV = (PFNGLUNIFORMMATRIX3X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x2fvNV")) == NULL) || r; r = ((glUniformMatrix3x4fvNV = (PFNGLUNIFORMMATRIX3X4FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix3x4fvNV")) == NULL) || r; r = ((glUniformMatrix4x2fvNV = (PFNGLUNIFORMMATRIX4X2FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x2fvNV")) == NULL) || r; r = ((glUniformMatrix4x3fvNV = (PFNGLUNIFORMMATRIX4X3FVNVPROC)glewGetProcAddress((const GLubyte*)"glUniformMatrix4x3fvNV")) == NULL) || r; return r; } #endif /* GL_NV_non_square_matrices */ #ifdef GL_NV_occlusion_query static GLboolean _glewInit_GL_NV_occlusion_query () { GLboolean r = GL_FALSE; r = ((glBeginOcclusionQueryNV = (PFNGLBEGINOCCLUSIONQUERYNVPROC)glewGetProcAddress((const GLubyte*)"glBeginOcclusionQueryNV")) == NULL) || r; r = ((glDeleteOcclusionQueriesNV = (PFNGLDELETEOCCLUSIONQUERIESNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteOcclusionQueriesNV")) == NULL) || r; r = ((glEndOcclusionQueryNV = (PFNGLENDOCCLUSIONQUERYNVPROC)glewGetProcAddress((const GLubyte*)"glEndOcclusionQueryNV")) == NULL) || r; r = ((glGenOcclusionQueriesNV = (PFNGLGENOCCLUSIONQUERIESNVPROC)glewGetProcAddress((const GLubyte*)"glGenOcclusionQueriesNV")) == NULL) || r; r = ((glGetOcclusionQueryivNV = (PFNGLGETOCCLUSIONQUERYIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetOcclusionQueryivNV")) == NULL) || r; r = ((glGetOcclusionQueryuivNV = (PFNGLGETOCCLUSIONQUERYUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetOcclusionQueryuivNV")) == NULL) || r; r = ((glIsOcclusionQueryNV = (PFNGLISOCCLUSIONQUERYNVPROC)glewGetProcAddress((const GLubyte*)"glIsOcclusionQueryNV")) == NULL) || r; return r; } #endif /* GL_NV_occlusion_query */ #ifdef GL_NV_parameter_buffer_object static GLboolean _glewInit_GL_NV_parameter_buffer_object () { GLboolean r = GL_FALSE; r = ((glProgramBufferParametersIivNV = (PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramBufferParametersIivNV")) == NULL) || r; r = ((glProgramBufferParametersIuivNV = (PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramBufferParametersIuivNV")) == NULL) || r; r = ((glProgramBufferParametersfvNV = (PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramBufferParametersfvNV")) == NULL) || r; return r; } #endif /* GL_NV_parameter_buffer_object */ #ifdef GL_NV_path_rendering static GLboolean _glewInit_GL_NV_path_rendering () { GLboolean r = GL_FALSE; r = ((glCopyPathNV = (PFNGLCOPYPATHNVPROC)glewGetProcAddress((const GLubyte*)"glCopyPathNV")) == NULL) || r; r = ((glCoverFillPathInstancedNV = (PFNGLCOVERFILLPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glCoverFillPathInstancedNV")) == NULL) || r; r = ((glCoverFillPathNV = (PFNGLCOVERFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glCoverFillPathNV")) == NULL) || r; r = ((glCoverStrokePathInstancedNV = (PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glCoverStrokePathInstancedNV")) == NULL) || r; r = ((glCoverStrokePathNV = (PFNGLCOVERSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glCoverStrokePathNV")) == NULL) || r; r = ((glDeletePathsNV = (PFNGLDELETEPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glDeletePathsNV")) == NULL) || r; r = ((glGenPathsNV = (PFNGLGENPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glGenPathsNV")) == NULL) || r; r = ((glGetPathColorGenfvNV = (PFNGLGETPATHCOLORGENFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathColorGenfvNV")) == NULL) || r; r = ((glGetPathColorGenivNV = (PFNGLGETPATHCOLORGENIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathColorGenivNV")) == NULL) || r; r = ((glGetPathCommandsNV = (PFNGLGETPATHCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathCommandsNV")) == NULL) || r; r = ((glGetPathCoordsNV = (PFNGLGETPATHCOORDSNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathCoordsNV")) == NULL) || r; r = ((glGetPathDashArrayNV = (PFNGLGETPATHDASHARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathDashArrayNV")) == NULL) || r; r = ((glGetPathLengthNV = (PFNGLGETPATHLENGTHNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathLengthNV")) == NULL) || r; r = ((glGetPathMetricRangeNV = (PFNGLGETPATHMETRICRANGENVPROC)glewGetProcAddress((const GLubyte*)"glGetPathMetricRangeNV")) == NULL) || r; r = ((glGetPathMetricsNV = (PFNGLGETPATHMETRICSNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathMetricsNV")) == NULL) || r; r = ((glGetPathParameterfvNV = (PFNGLGETPATHPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathParameterfvNV")) == NULL) || r; r = ((glGetPathParameterivNV = (PFNGLGETPATHPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathParameterivNV")) == NULL) || r; r = ((glGetPathSpacingNV = (PFNGLGETPATHSPACINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathSpacingNV")) == NULL) || r; r = ((glGetPathTexGenfvNV = (PFNGLGETPATHTEXGENFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathTexGenfvNV")) == NULL) || r; r = ((glGetPathTexGenivNV = (PFNGLGETPATHTEXGENIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetPathTexGenivNV")) == NULL) || r; r = ((glGetProgramResourcefvNV = (PFNGLGETPROGRAMRESOURCEFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramResourcefvNV")) == NULL) || r; r = ((glInterpolatePathsNV = (PFNGLINTERPOLATEPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glInterpolatePathsNV")) == NULL) || r; r = ((glIsPathNV = (PFNGLISPATHNVPROC)glewGetProcAddress((const GLubyte*)"glIsPathNV")) == NULL) || r; r = ((glIsPointInFillPathNV = (PFNGLISPOINTINFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glIsPointInFillPathNV")) == NULL) || r; r = ((glIsPointInStrokePathNV = (PFNGLISPOINTINSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glIsPointInStrokePathNV")) == NULL) || r; r = ((glMatrixLoad3x2fNV = (PFNGLMATRIXLOAD3X2FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoad3x2fNV")) == NULL) || r; r = ((glMatrixLoad3x3fNV = (PFNGLMATRIXLOAD3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoad3x3fNV")) == NULL) || r; r = ((glMatrixLoadTranspose3x3fNV = (PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixLoadTranspose3x3fNV")) == NULL) || r; r = ((glMatrixMult3x2fNV = (PFNGLMATRIXMULT3X2FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixMult3x2fNV")) == NULL) || r; r = ((glMatrixMult3x3fNV = (PFNGLMATRIXMULT3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixMult3x3fNV")) == NULL) || r; r = ((glMatrixMultTranspose3x3fNV = (PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)glewGetProcAddress((const GLubyte*)"glMatrixMultTranspose3x3fNV")) == NULL) || r; r = ((glPathColorGenNV = (PFNGLPATHCOLORGENNVPROC)glewGetProcAddress((const GLubyte*)"glPathColorGenNV")) == NULL) || r; r = ((glPathCommandsNV = (PFNGLPATHCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathCommandsNV")) == NULL) || r; r = ((glPathCoordsNV = (PFNGLPATHCOORDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathCoordsNV")) == NULL) || r; r = ((glPathCoverDepthFuncNV = (PFNGLPATHCOVERDEPTHFUNCNVPROC)glewGetProcAddress((const GLubyte*)"glPathCoverDepthFuncNV")) == NULL) || r; r = ((glPathDashArrayNV = (PFNGLPATHDASHARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glPathDashArrayNV")) == NULL) || r; r = ((glPathFogGenNV = (PFNGLPATHFOGGENNVPROC)glewGetProcAddress((const GLubyte*)"glPathFogGenNV")) == NULL) || r; r = ((glPathGlyphIndexArrayNV = (PFNGLPATHGLYPHINDEXARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphIndexArrayNV")) == NULL) || r; r = ((glPathGlyphIndexRangeNV = (PFNGLPATHGLYPHINDEXRANGENVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphIndexRangeNV")) == NULL) || r; r = ((glPathGlyphRangeNV = (PFNGLPATHGLYPHRANGENVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphRangeNV")) == NULL) || r; r = ((glPathGlyphsNV = (PFNGLPATHGLYPHSNVPROC)glewGetProcAddress((const GLubyte*)"glPathGlyphsNV")) == NULL) || r; r = ((glPathMemoryGlyphIndexArrayNV = (PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)glewGetProcAddress((const GLubyte*)"glPathMemoryGlyphIndexArrayNV")) == NULL) || r; r = ((glPathParameterfNV = (PFNGLPATHPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glPathParameterfNV")) == NULL) || r; r = ((glPathParameterfvNV = (PFNGLPATHPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glPathParameterfvNV")) == NULL) || r; r = ((glPathParameteriNV = (PFNGLPATHPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glPathParameteriNV")) == NULL) || r; r = ((glPathParameterivNV = (PFNGLPATHPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glPathParameterivNV")) == NULL) || r; r = ((glPathStencilDepthOffsetNV = (PFNGLPATHSTENCILDEPTHOFFSETNVPROC)glewGetProcAddress((const GLubyte*)"glPathStencilDepthOffsetNV")) == NULL) || r; r = ((glPathStencilFuncNV = (PFNGLPATHSTENCILFUNCNVPROC)glewGetProcAddress((const GLubyte*)"glPathStencilFuncNV")) == NULL) || r; r = ((glPathStringNV = (PFNGLPATHSTRINGNVPROC)glewGetProcAddress((const GLubyte*)"glPathStringNV")) == NULL) || r; r = ((glPathSubCommandsNV = (PFNGLPATHSUBCOMMANDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathSubCommandsNV")) == NULL) || r; r = ((glPathSubCoordsNV = (PFNGLPATHSUBCOORDSNVPROC)glewGetProcAddress((const GLubyte*)"glPathSubCoordsNV")) == NULL) || r; r = ((glPathTexGenNV = (PFNGLPATHTEXGENNVPROC)glewGetProcAddress((const GLubyte*)"glPathTexGenNV")) == NULL) || r; r = ((glPointAlongPathNV = (PFNGLPOINTALONGPATHNVPROC)glewGetProcAddress((const GLubyte*)"glPointAlongPathNV")) == NULL) || r; r = ((glProgramPathFragmentInputGenNV = (PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)glewGetProcAddress((const GLubyte*)"glProgramPathFragmentInputGenNV")) == NULL) || r; r = ((glStencilFillPathInstancedNV = (PFNGLSTENCILFILLPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilFillPathInstancedNV")) == NULL) || r; r = ((glStencilFillPathNV = (PFNGLSTENCILFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilFillPathNV")) == NULL) || r; r = ((glStencilStrokePathInstancedNV = (PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilStrokePathInstancedNV")) == NULL) || r; r = ((glStencilStrokePathNV = (PFNGLSTENCILSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilStrokePathNV")) == NULL) || r; r = ((glStencilThenCoverFillPathInstancedNV = (PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverFillPathInstancedNV")) == NULL) || r; r = ((glStencilThenCoverFillPathNV = (PFNGLSTENCILTHENCOVERFILLPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverFillPathNV")) == NULL) || r; r = ((glStencilThenCoverStrokePathInstancedNV = (PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverStrokePathInstancedNV")) == NULL) || r; r = ((glStencilThenCoverStrokePathNV = (PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)glewGetProcAddress((const GLubyte*)"glStencilThenCoverStrokePathNV")) == NULL) || r; r = ((glTransformPathNV = (PFNGLTRANSFORMPATHNVPROC)glewGetProcAddress((const GLubyte*)"glTransformPathNV")) == NULL) || r; r = ((glWeightPathsNV = (PFNGLWEIGHTPATHSNVPROC)glewGetProcAddress((const GLubyte*)"glWeightPathsNV")) == NULL) || r; return r; } #endif /* GL_NV_path_rendering */ #ifdef GL_NV_pixel_data_range static GLboolean _glewInit_GL_NV_pixel_data_range () { GLboolean r = GL_FALSE; r = ((glFlushPixelDataRangeNV = (PFNGLFLUSHPIXELDATARANGENVPROC)glewGetProcAddress((const GLubyte*)"glFlushPixelDataRangeNV")) == NULL) || r; r = ((glPixelDataRangeNV = (PFNGLPIXELDATARANGENVPROC)glewGetProcAddress((const GLubyte*)"glPixelDataRangeNV")) == NULL) || r; return r; } #endif /* GL_NV_pixel_data_range */ #ifdef GL_NV_point_sprite static GLboolean _glewInit_GL_NV_point_sprite () { GLboolean r = GL_FALSE; r = ((glPointParameteriNV = (PFNGLPOINTPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glPointParameteriNV")) == NULL) || r; r = ((glPointParameterivNV = (PFNGLPOINTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glPointParameterivNV")) == NULL) || r; return r; } #endif /* GL_NV_point_sprite */ #ifdef GL_NV_polygon_mode static GLboolean _glewInit_GL_NV_polygon_mode () { GLboolean r = GL_FALSE; r = ((glPolygonModeNV = (PFNGLPOLYGONMODENVPROC)glewGetProcAddress((const GLubyte*)"glPolygonModeNV")) == NULL) || r; return r; } #endif /* GL_NV_polygon_mode */ #ifdef GL_NV_present_video static GLboolean _glewInit_GL_NV_present_video () { GLboolean r = GL_FALSE; r = ((glGetVideoi64vNV = (PFNGLGETVIDEOI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoi64vNV")) == NULL) || r; r = ((glGetVideoivNV = (PFNGLGETVIDEOIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoivNV")) == NULL) || r; r = ((glGetVideoui64vNV = (PFNGLGETVIDEOUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoui64vNV")) == NULL) || r; r = ((glGetVideouivNV = (PFNGLGETVIDEOUIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideouivNV")) == NULL) || r; r = ((glPresentFrameDualFillNV = (PFNGLPRESENTFRAMEDUALFILLNVPROC)glewGetProcAddress((const GLubyte*)"glPresentFrameDualFillNV")) == NULL) || r; r = ((glPresentFrameKeyedNV = (PFNGLPRESENTFRAMEKEYEDNVPROC)glewGetProcAddress((const GLubyte*)"glPresentFrameKeyedNV")) == NULL) || r; return r; } #endif /* GL_NV_present_video */ #ifdef GL_NV_primitive_restart static GLboolean _glewInit_GL_NV_primitive_restart () { GLboolean r = GL_FALSE; r = ((glPrimitiveRestartIndexNV = (PFNGLPRIMITIVERESTARTINDEXNVPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartIndexNV")) == NULL) || r; r = ((glPrimitiveRestartNV = (PFNGLPRIMITIVERESTARTNVPROC)glewGetProcAddress((const GLubyte*)"glPrimitiveRestartNV")) == NULL) || r; return r; } #endif /* GL_NV_primitive_restart */ #ifdef GL_NV_register_combiners static GLboolean _glewInit_GL_NV_register_combiners () { GLboolean r = GL_FALSE; r = ((glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerInputNV")) == NULL) || r; r = ((glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerOutputNV")) == NULL) || r; r = ((glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameterfNV")) == NULL) || r; r = ((glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameterfvNV")) == NULL) || r; r = ((glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameteriNV")) == NULL) || r; r = ((glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerParameterivNV")) == NULL) || r; r = ((glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)glewGetProcAddress((const GLubyte*)"glFinalCombinerInputNV")) == NULL) || r; r = ((glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerInputParameterfvNV")) == NULL) || r; r = ((glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerInputParameterivNV")) == NULL) || r; r = ((glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerOutputParameterfvNV")) == NULL) || r; r = ((glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerOutputParameterivNV")) == NULL) || r; r = ((glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetFinalCombinerInputParameterfvNV")) == NULL) || r; r = ((glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetFinalCombinerInputParameterivNV")) == NULL) || r; return r; } #endif /* GL_NV_register_combiners */ #ifdef GL_NV_register_combiners2 static GLboolean _glewInit_GL_NV_register_combiners2 () { GLboolean r = GL_FALSE; r = ((glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glCombinerStageParameterfvNV")) == NULL) || r; r = ((glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetCombinerStageParameterfvNV")) == NULL) || r; return r; } #endif /* GL_NV_register_combiners2 */ #ifdef GL_NV_sample_locations static GLboolean _glewInit_GL_NV_sample_locations () { GLboolean r = GL_FALSE; r = ((glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferSampleLocationsfvNV")) == NULL) || r; r = ((glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)glewGetProcAddress((const GLubyte*)"glNamedFramebufferSampleLocationsfvNV")) == NULL) || r; return r; } #endif /* GL_NV_sample_locations */ #ifdef GL_NV_shader_buffer_load static GLboolean _glewInit_GL_NV_shader_buffer_load () { GLboolean r = GL_FALSE; r = ((glGetBufferParameterui64vNV = (PFNGLGETBUFFERPARAMETERUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetBufferParameterui64vNV")) == NULL) || r; r = ((glGetIntegerui64vNV = (PFNGLGETINTEGERUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetIntegerui64vNV")) == NULL) || r; r = ((glGetNamedBufferParameterui64vNV = (PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetNamedBufferParameterui64vNV")) == NULL) || r; r = ((glIsBufferResidentNV = (PFNGLISBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsBufferResidentNV")) == NULL) || r; r = ((glIsNamedBufferResidentNV = (PFNGLISNAMEDBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glIsNamedBufferResidentNV")) == NULL) || r; r = ((glMakeBufferNonResidentNV = (PFNGLMAKEBUFFERNONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeBufferNonResidentNV")) == NULL) || r; r = ((glMakeBufferResidentNV = (PFNGLMAKEBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeBufferResidentNV")) == NULL) || r; r = ((glMakeNamedBufferNonResidentNV = (PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeNamedBufferNonResidentNV")) == NULL) || r; r = ((glMakeNamedBufferResidentNV = (PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glMakeNamedBufferResidentNV")) == NULL) || r; r = ((glProgramUniformui64NV = (PFNGLPROGRAMUNIFORMUI64NVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformui64NV")) == NULL) || r; r = ((glProgramUniformui64vNV = (PFNGLPROGRAMUNIFORMUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glProgramUniformui64vNV")) == NULL) || r; r = ((glUniformui64NV = (PFNGLUNIFORMUI64NVPROC)glewGetProcAddress((const GLubyte*)"glUniformui64NV")) == NULL) || r; r = ((glUniformui64vNV = (PFNGLUNIFORMUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glUniformui64vNV")) == NULL) || r; return r; } #endif /* GL_NV_shader_buffer_load */ #ifdef GL_NV_texture_array static GLboolean _glewInit_GL_NV_texture_array () { GLboolean r = GL_FALSE; r = ((glCompressedTexImage3DNV = (PFNGLCOMPRESSEDTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexImage3DNV")) == NULL) || r; r = ((glCompressedTexSubImage3DNV = (PFNGLCOMPRESSEDTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCompressedTexSubImage3DNV")) == NULL) || r; r = ((glCopyTexSubImage3DNV = (PFNGLCOPYTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glCopyTexSubImage3DNV")) == NULL) || r; r = ((glFramebufferTextureLayerNV = (PFNGLFRAMEBUFFERTEXTURELAYERNVPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureLayerNV")) == NULL) || r; r = ((glTexImage3DNV = (PFNGLTEXIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DNV")) == NULL) || r; r = ((glTexSubImage3DNV = (PFNGLTEXSUBIMAGE3DNVPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage3DNV")) == NULL) || r; return r; } #endif /* GL_NV_texture_array */ #ifdef GL_NV_texture_barrier static GLboolean _glewInit_GL_NV_texture_barrier () { GLboolean r = GL_FALSE; r = ((glTextureBarrierNV = (PFNGLTEXTUREBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glTextureBarrierNV")) == NULL) || r; return r; } #endif /* GL_NV_texture_barrier */ #ifdef GL_NV_texture_multisample static GLboolean _glewInit_GL_NV_texture_multisample () { GLboolean r = GL_FALSE; r = ((glTexImage2DMultisampleCoverageNV = (PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTexImage2DMultisampleCoverageNV")) == NULL) || r; r = ((glTexImage3DMultisampleCoverageNV = (PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTexImage3DMultisampleCoverageNV")) == NULL) || r; r = ((glTextureImage2DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage2DMultisampleCoverageNV")) == NULL) || r; r = ((glTextureImage2DMultisampleNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage2DMultisampleNV")) == NULL) || r; r = ((glTextureImage3DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage3DMultisampleCoverageNV")) == NULL) || r; r = ((glTextureImage3DMultisampleNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)glewGetProcAddress((const GLubyte*)"glTextureImage3DMultisampleNV")) == NULL) || r; return r; } #endif /* GL_NV_texture_multisample */ #ifdef GL_NV_transform_feedback static GLboolean _glewInit_GL_NV_transform_feedback () { GLboolean r = GL_FALSE; r = ((glActiveVaryingNV = (PFNGLACTIVEVARYINGNVPROC)glewGetProcAddress((const GLubyte*)"glActiveVaryingNV")) == NULL) || r; r = ((glBeginTransformFeedbackNV = (PFNGLBEGINTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glBeginTransformFeedbackNV")) == NULL) || r; r = ((glBindBufferBaseNV = (PFNGLBINDBUFFERBASENVPROC)glewGetProcAddress((const GLubyte*)"glBindBufferBaseNV")) == NULL) || r; r = ((glBindBufferOffsetNV = (PFNGLBINDBUFFEROFFSETNVPROC)glewGetProcAddress((const GLubyte*)"glBindBufferOffsetNV")) == NULL) || r; r = ((glBindBufferRangeNV = (PFNGLBINDBUFFERRANGENVPROC)glewGetProcAddress((const GLubyte*)"glBindBufferRangeNV")) == NULL) || r; r = ((glEndTransformFeedbackNV = (PFNGLENDTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glEndTransformFeedbackNV")) == NULL) || r; r = ((glGetActiveVaryingNV = (PFNGLGETACTIVEVARYINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetActiveVaryingNV")) == NULL) || r; r = ((glGetTransformFeedbackVaryingNV = (PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetTransformFeedbackVaryingNV")) == NULL) || r; r = ((glGetVaryingLocationNV = (PFNGLGETVARYINGLOCATIONNVPROC)glewGetProcAddress((const GLubyte*)"glGetVaryingLocationNV")) == NULL) || r; r = ((glTransformFeedbackAttribsNV = (PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackAttribsNV")) == NULL) || r; r = ((glTransformFeedbackVaryingsNV = (PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)glewGetProcAddress((const GLubyte*)"glTransformFeedbackVaryingsNV")) == NULL) || r; return r; } #endif /* GL_NV_transform_feedback */ #ifdef GL_NV_transform_feedback2 static GLboolean _glewInit_GL_NV_transform_feedback2 () { GLboolean r = GL_FALSE; r = ((glBindTransformFeedbackNV = (PFNGLBINDTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glBindTransformFeedbackNV")) == NULL) || r; r = ((glDeleteTransformFeedbacksNV = (PFNGLDELETETRANSFORMFEEDBACKSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteTransformFeedbacksNV")) == NULL) || r; r = ((glDrawTransformFeedbackNV = (PFNGLDRAWTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glDrawTransformFeedbackNV")) == NULL) || r; r = ((glGenTransformFeedbacksNV = (PFNGLGENTRANSFORMFEEDBACKSNVPROC)glewGetProcAddress((const GLubyte*)"glGenTransformFeedbacksNV")) == NULL) || r; r = ((glIsTransformFeedbackNV = (PFNGLISTRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glIsTransformFeedbackNV")) == NULL) || r; r = ((glPauseTransformFeedbackNV = (PFNGLPAUSETRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glPauseTransformFeedbackNV")) == NULL) || r; r = ((glResumeTransformFeedbackNV = (PFNGLRESUMETRANSFORMFEEDBACKNVPROC)glewGetProcAddress((const GLubyte*)"glResumeTransformFeedbackNV")) == NULL) || r; return r; } #endif /* GL_NV_transform_feedback2 */ #ifdef GL_NV_vdpau_interop static GLboolean _glewInit_GL_NV_vdpau_interop () { GLboolean r = GL_FALSE; r = ((glVDPAUFiniNV = (PFNGLVDPAUFININVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUFiniNV")) == NULL) || r; r = ((glVDPAUGetSurfaceivNV = (PFNGLVDPAUGETSURFACEIVNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUGetSurfaceivNV")) == NULL) || r; r = ((glVDPAUInitNV = (PFNGLVDPAUINITNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUInitNV")) == NULL) || r; r = ((glVDPAUIsSurfaceNV = (PFNGLVDPAUISSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUIsSurfaceNV")) == NULL) || r; r = ((glVDPAUMapSurfacesNV = (PFNGLVDPAUMAPSURFACESNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUMapSurfacesNV")) == NULL) || r; r = ((glVDPAURegisterOutputSurfaceNV = (PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterOutputSurfaceNV")) == NULL) || r; r = ((glVDPAURegisterVideoSurfaceNV = (PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAURegisterVideoSurfaceNV")) == NULL) || r; r = ((glVDPAUSurfaceAccessNV = (PFNGLVDPAUSURFACEACCESSNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUSurfaceAccessNV")) == NULL) || r; r = ((glVDPAUUnmapSurfacesNV = (PFNGLVDPAUUNMAPSURFACESNVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUUnmapSurfacesNV")) == NULL) || r; r = ((glVDPAUUnregisterSurfaceNV = (PFNGLVDPAUUNREGISTERSURFACENVPROC)glewGetProcAddress((const GLubyte*)"glVDPAUUnregisterSurfaceNV")) == NULL) || r; return r; } #endif /* GL_NV_vdpau_interop */ #ifdef GL_NV_vertex_array_range static GLboolean _glewInit_GL_NV_vertex_array_range () { GLboolean r = GL_FALSE; r = ((glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)glewGetProcAddress((const GLubyte*)"glFlushVertexArrayRangeNV")) == NULL) || r; r = ((glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC)glewGetProcAddress((const GLubyte*)"glVertexArrayRangeNV")) == NULL) || r; return r; } #endif /* GL_NV_vertex_array_range */ #ifdef GL_NV_vertex_attrib_integer_64bit static GLboolean _glewInit_GL_NV_vertex_attrib_integer_64bit () { GLboolean r = GL_FALSE; r = ((glGetVertexAttribLi64vNV = (PFNGLGETVERTEXATTRIBLI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLi64vNV")) == NULL) || r; r = ((glGetVertexAttribLui64vNV = (PFNGLGETVERTEXATTRIBLUI64VNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribLui64vNV")) == NULL) || r; r = ((glVertexAttribL1i64NV = (PFNGLVERTEXATTRIBL1I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1i64NV")) == NULL) || r; r = ((glVertexAttribL1i64vNV = (PFNGLVERTEXATTRIBL1I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1i64vNV")) == NULL) || r; r = ((glVertexAttribL1ui64NV = (PFNGLVERTEXATTRIBL1UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64NV")) == NULL) || r; r = ((glVertexAttribL1ui64vNV = (PFNGLVERTEXATTRIBL1UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL1ui64vNV")) == NULL) || r; r = ((glVertexAttribL2i64NV = (PFNGLVERTEXATTRIBL2I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2i64NV")) == NULL) || r; r = ((glVertexAttribL2i64vNV = (PFNGLVERTEXATTRIBL2I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2i64vNV")) == NULL) || r; r = ((glVertexAttribL2ui64NV = (PFNGLVERTEXATTRIBL2UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2ui64NV")) == NULL) || r; r = ((glVertexAttribL2ui64vNV = (PFNGLVERTEXATTRIBL2UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL2ui64vNV")) == NULL) || r; r = ((glVertexAttribL3i64NV = (PFNGLVERTEXATTRIBL3I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3i64NV")) == NULL) || r; r = ((glVertexAttribL3i64vNV = (PFNGLVERTEXATTRIBL3I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3i64vNV")) == NULL) || r; r = ((glVertexAttribL3ui64NV = (PFNGLVERTEXATTRIBL3UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3ui64NV")) == NULL) || r; r = ((glVertexAttribL3ui64vNV = (PFNGLVERTEXATTRIBL3UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL3ui64vNV")) == NULL) || r; r = ((glVertexAttribL4i64NV = (PFNGLVERTEXATTRIBL4I64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4i64NV")) == NULL) || r; r = ((glVertexAttribL4i64vNV = (PFNGLVERTEXATTRIBL4I64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4i64vNV")) == NULL) || r; r = ((glVertexAttribL4ui64NV = (PFNGLVERTEXATTRIBL4UI64NVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4ui64NV")) == NULL) || r; r = ((glVertexAttribL4ui64vNV = (PFNGLVERTEXATTRIBL4UI64VNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribL4ui64vNV")) == NULL) || r; r = ((glVertexAttribLFormatNV = (PFNGLVERTEXATTRIBLFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribLFormatNV")) == NULL) || r; return r; } #endif /* GL_NV_vertex_attrib_integer_64bit */ #ifdef GL_NV_vertex_buffer_unified_memory static GLboolean _glewInit_GL_NV_vertex_buffer_unified_memory () { GLboolean r = GL_FALSE; r = ((glBufferAddressRangeNV = (PFNGLBUFFERADDRESSRANGENVPROC)glewGetProcAddress((const GLubyte*)"glBufferAddressRangeNV")) == NULL) || r; r = ((glColorFormatNV = (PFNGLCOLORFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glColorFormatNV")) == NULL) || r; r = ((glEdgeFlagFormatNV = (PFNGLEDGEFLAGFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glEdgeFlagFormatNV")) == NULL) || r; r = ((glFogCoordFormatNV = (PFNGLFOGCOORDFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glFogCoordFormatNV")) == NULL) || r; r = ((glGetIntegerui64i_vNV = (PFNGLGETINTEGERUI64I_VNVPROC)glewGetProcAddress((const GLubyte*)"glGetIntegerui64i_vNV")) == NULL) || r; r = ((glIndexFormatNV = (PFNGLINDEXFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glIndexFormatNV")) == NULL) || r; r = ((glNormalFormatNV = (PFNGLNORMALFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glNormalFormatNV")) == NULL) || r; r = ((glSecondaryColorFormatNV = (PFNGLSECONDARYCOLORFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glSecondaryColorFormatNV")) == NULL) || r; r = ((glTexCoordFormatNV = (PFNGLTEXCOORDFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glTexCoordFormatNV")) == NULL) || r; r = ((glVertexAttribFormatNV = (PFNGLVERTEXATTRIBFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribFormatNV")) == NULL) || r; r = ((glVertexAttribIFormatNV = (PFNGLVERTEXATTRIBIFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribIFormatNV")) == NULL) || r; r = ((glVertexFormatNV = (PFNGLVERTEXFORMATNVPROC)glewGetProcAddress((const GLubyte*)"glVertexFormatNV")) == NULL) || r; return r; } #endif /* GL_NV_vertex_buffer_unified_memory */ #ifdef GL_NV_vertex_program static GLboolean _glewInit_GL_NV_vertex_program () { GLboolean r = GL_FALSE; r = ((glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC)glewGetProcAddress((const GLubyte*)"glAreProgramsResidentNV")) == NULL) || r; r = ((glBindProgramNV = (PFNGLBINDPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glBindProgramNV")) == NULL) || r; r = ((glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC)glewGetProcAddress((const GLubyte*)"glDeleteProgramsNV")) == NULL) || r; r = ((glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glExecuteProgramNV")) == NULL) || r; r = ((glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC)glewGetProcAddress((const GLubyte*)"glGenProgramsNV")) == NULL) || r; r = ((glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramParameterdvNV")) == NULL) || r; r = ((glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramParameterfvNV")) == NULL) || r; r = ((glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramStringNV")) == NULL) || r; r = ((glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetProgramivNV")) == NULL) || r; r = ((glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetTrackMatrixivNV")) == NULL) || r; r = ((glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribPointervNV")) == NULL) || r; r = ((glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribdvNV")) == NULL) || r; r = ((glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribfvNV")) == NULL) || r; r = ((glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVertexAttribivNV")) == NULL) || r; r = ((glIsProgramNV = (PFNGLISPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glIsProgramNV")) == NULL) || r; r = ((glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC)glewGetProcAddress((const GLubyte*)"glLoadProgramNV")) == NULL) || r; r = ((glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4dNV")) == NULL) || r; r = ((glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4dvNV")) == NULL) || r; r = ((glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4fNV")) == NULL) || r; r = ((glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameter4fvNV")) == NULL) || r; r = ((glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameters4dvNV")) == NULL) || r; r = ((glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC)glewGetProcAddress((const GLubyte*)"glProgramParameters4fvNV")) == NULL) || r; r = ((glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)glewGetProcAddress((const GLubyte*)"glRequestResidentProgramsNV")) == NULL) || r; r = ((glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC)glewGetProcAddress((const GLubyte*)"glTrackMatrixNV")) == NULL) || r; r = ((glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dNV")) == NULL) || r; r = ((glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1dvNV")) == NULL) || r; r = ((glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fNV")) == NULL) || r; r = ((glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1fvNV")) == NULL) || r; r = ((glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1sNV")) == NULL) || r; r = ((glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib1svNV")) == NULL) || r; r = ((glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dNV")) == NULL) || r; r = ((glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2dvNV")) == NULL) || r; r = ((glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fNV")) == NULL) || r; r = ((glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2fvNV")) == NULL) || r; r = ((glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2sNV")) == NULL) || r; r = ((glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib2svNV")) == NULL) || r; r = ((glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dNV")) == NULL) || r; r = ((glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3dvNV")) == NULL) || r; r = ((glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fNV")) == NULL) || r; r = ((glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3fvNV")) == NULL) || r; r = ((glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3sNV")) == NULL) || r; r = ((glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib3svNV")) == NULL) || r; r = ((glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dNV")) == NULL) || r; r = ((glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4dvNV")) == NULL) || r; r = ((glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fNV")) == NULL) || r; r = ((glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4fvNV")) == NULL) || r; r = ((glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4sNV")) == NULL) || r; r = ((glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4svNV")) == NULL) || r; r = ((glVertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubNV")) == NULL) || r; r = ((glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttrib4ubvNV")) == NULL) || r; r = ((glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribPointerNV")) == NULL) || r; r = ((glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1dvNV")) == NULL) || r; r = ((glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1fvNV")) == NULL) || r; r = ((glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs1svNV")) == NULL) || r; r = ((glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2dvNV")) == NULL) || r; r = ((glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2fvNV")) == NULL) || r; r = ((glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs2svNV")) == NULL) || r; r = ((glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3dvNV")) == NULL) || r; r = ((glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3fvNV")) == NULL) || r; r = ((glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs3svNV")) == NULL) || r; r = ((glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4dvNV")) == NULL) || r; r = ((glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4fvNV")) == NULL) || r; r = ((glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4svNV")) == NULL) || r; r = ((glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC)glewGetProcAddress((const GLubyte*)"glVertexAttribs4ubvNV")) == NULL) || r; return r; } #endif /* GL_NV_vertex_program */ #ifdef GL_NV_video_capture static GLboolean _glewInit_GL_NV_video_capture () { GLboolean r = GL_FALSE; r = ((glBeginVideoCaptureNV = (PFNGLBEGINVIDEOCAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glBeginVideoCaptureNV")) == NULL) || r; r = ((glBindVideoCaptureStreamBufferNV = (PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"glBindVideoCaptureStreamBufferNV")) == NULL) || r; r = ((glBindVideoCaptureStreamTextureNV = (PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)glewGetProcAddress((const GLubyte*)"glBindVideoCaptureStreamTextureNV")) == NULL) || r; r = ((glEndVideoCaptureNV = (PFNGLENDVIDEOCAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glEndVideoCaptureNV")) == NULL) || r; r = ((glGetVideoCaptureStreamdvNV = (PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureStreamdvNV")) == NULL) || r; r = ((glGetVideoCaptureStreamfvNV = (PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureStreamfvNV")) == NULL) || r; r = ((glGetVideoCaptureStreamivNV = (PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureStreamivNV")) == NULL) || r; r = ((glGetVideoCaptureivNV = (PFNGLGETVIDEOCAPTUREIVNVPROC)glewGetProcAddress((const GLubyte*)"glGetVideoCaptureivNV")) == NULL) || r; r = ((glVideoCaptureNV = (PFNGLVIDEOCAPTURENVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureNV")) == NULL) || r; r = ((glVideoCaptureStreamParameterdvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureStreamParameterdvNV")) == NULL) || r; r = ((glVideoCaptureStreamParameterfvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureStreamParameterfvNV")) == NULL) || r; r = ((glVideoCaptureStreamParameterivNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)glewGetProcAddress((const GLubyte*)"glVideoCaptureStreamParameterivNV")) == NULL) || r; return r; } #endif /* GL_NV_video_capture */ #ifdef GL_NV_viewport_array static GLboolean _glewInit_GL_NV_viewport_array () { GLboolean r = GL_FALSE; r = ((glDepthRangeArrayfvNV = (PFNGLDEPTHRANGEARRAYFVNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeArrayfvNV")) == NULL) || r; r = ((glDepthRangeIndexedfNV = (PFNGLDEPTHRANGEINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glDepthRangeIndexedfNV")) == NULL) || r; r = ((glDisableiNV = (PFNGLDISABLEINVPROC)glewGetProcAddress((const GLubyte*)"glDisableiNV")) == NULL) || r; r = ((glEnableiNV = (PFNGLENABLEINVPROC)glewGetProcAddress((const GLubyte*)"glEnableiNV")) == NULL) || r; r = ((glGetFloati_vNV = (PFNGLGETFLOATI_VNVPROC)glewGetProcAddress((const GLubyte*)"glGetFloati_vNV")) == NULL) || r; r = ((glIsEnablediNV = (PFNGLISENABLEDINVPROC)glewGetProcAddress((const GLubyte*)"glIsEnablediNV")) == NULL) || r; r = ((glScissorArrayvNV = (PFNGLSCISSORARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorArrayvNV")) == NULL) || r; r = ((glScissorIndexedNV = (PFNGLSCISSORINDEXEDNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedNV")) == NULL) || r; r = ((glScissorIndexedvNV = (PFNGLSCISSORINDEXEDVNVPROC)glewGetProcAddress((const GLubyte*)"glScissorIndexedvNV")) == NULL) || r; r = ((glViewportArrayvNV = (PFNGLVIEWPORTARRAYVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportArrayvNV")) == NULL) || r; r = ((glViewportIndexedfNV = (PFNGLVIEWPORTINDEXEDFNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfNV")) == NULL) || r; r = ((glViewportIndexedfvNV = (PFNGLVIEWPORTINDEXEDFVNVPROC)glewGetProcAddress((const GLubyte*)"glViewportIndexedfvNV")) == NULL) || r; return r; } #endif /* GL_NV_viewport_array */ #ifdef GL_NV_viewport_swizzle static GLboolean _glewInit_GL_NV_viewport_swizzle () { GLboolean r = GL_FALSE; r = ((glViewportSwizzleNV = (PFNGLVIEWPORTSWIZZLENVPROC)glewGetProcAddress((const GLubyte*)"glViewportSwizzleNV")) == NULL) || r; return r; } #endif /* GL_NV_viewport_swizzle */ #ifdef GL_OVR_multiview static GLboolean _glewInit_GL_OVR_multiview () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultiviewOVR")) == NULL) || r; return r; } #endif /* GL_OVR_multiview */ #ifdef GL_OVR_multiview_multisampled_render_to_texture static GLboolean _glewInit_GL_OVR_multiview_multisampled_render_to_texture () { GLboolean r = GL_FALSE; r = ((glFramebufferTextureMultisampleMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC)glewGetProcAddress((const GLubyte*)"glFramebufferTextureMultisampleMultiviewOVR")) == NULL) || r; return r; } #endif /* GL_OVR_multiview_multisampled_render_to_texture */ #ifdef GL_QCOM_alpha_test static GLboolean _glewInit_GL_QCOM_alpha_test () { GLboolean r = GL_FALSE; r = ((glAlphaFuncQCOM = (PFNGLALPHAFUNCQCOMPROC)glewGetProcAddress((const GLubyte*)"glAlphaFuncQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_alpha_test */ #ifdef GL_QCOM_driver_control static GLboolean _glewInit_GL_QCOM_driver_control () { GLboolean r = GL_FALSE; r = ((glDisableDriverControlQCOM = (PFNGLDISABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glDisableDriverControlQCOM")) == NULL) || r; r = ((glEnableDriverControlQCOM = (PFNGLENABLEDRIVERCONTROLQCOMPROC)glewGetProcAddress((const GLubyte*)"glEnableDriverControlQCOM")) == NULL) || r; r = ((glGetDriverControlStringQCOM = (PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlStringQCOM")) == NULL) || r; r = ((glGetDriverControlsQCOM = (PFNGLGETDRIVERCONTROLSQCOMPROC)glewGetProcAddress((const GLubyte*)"glGetDriverControlsQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_driver_control */ #ifdef GL_QCOM_extended_get static GLboolean _glewInit_GL_QCOM_extended_get () { GLboolean r = GL_FALSE; r = ((glExtGetBufferPointervQCOM = (PFNGLEXTGETBUFFERPOINTERVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBufferPointervQCOM")) == NULL) || r; r = ((glExtGetBuffersQCOM = (PFNGLEXTGETBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetBuffersQCOM")) == NULL) || r; r = ((glExtGetFramebuffersQCOM = (PFNGLEXTGETFRAMEBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetFramebuffersQCOM")) == NULL) || r; r = ((glExtGetRenderbuffersQCOM = (PFNGLEXTGETRENDERBUFFERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetRenderbuffersQCOM")) == NULL) || r; r = ((glExtGetTexLevelParameterivQCOM = (PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexLevelParameterivQCOM")) == NULL) || r; r = ((glExtGetTexSubImageQCOM = (PFNGLEXTGETTEXSUBIMAGEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexSubImageQCOM")) == NULL) || r; r = ((glExtGetTexturesQCOM = (PFNGLEXTGETTEXTURESQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetTexturesQCOM")) == NULL) || r; r = ((glExtTexObjectStateOverrideiQCOM = (PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtTexObjectStateOverrideiQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_extended_get */ #ifdef GL_QCOM_extended_get2 static GLboolean _glewInit_GL_QCOM_extended_get2 () { GLboolean r = GL_FALSE; r = ((glExtGetProgramBinarySourceQCOM = (PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramBinarySourceQCOM")) == NULL) || r; r = ((glExtGetProgramsQCOM = (PFNGLEXTGETPROGRAMSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetProgramsQCOM")) == NULL) || r; r = ((glExtGetShadersQCOM = (PFNGLEXTGETSHADERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtGetShadersQCOM")) == NULL) || r; r = ((glExtIsProgramBinaryQCOM = (PFNGLEXTISPROGRAMBINARYQCOMPROC)glewGetProcAddress((const GLubyte*)"glExtIsProgramBinaryQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_extended_get2 */ #ifdef GL_QCOM_framebuffer_foveated static GLboolean _glewInit_GL_QCOM_framebuffer_foveated () { GLboolean r = GL_FALSE; r = ((glFramebufferFoveationConfigQCOM = (PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationConfigQCOM")) == NULL) || r; r = ((glFramebufferFoveationParametersQCOM = (PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFoveationParametersQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_framebuffer_foveated */ #ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent static GLboolean _glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent () { GLboolean r = GL_FALSE; r = ((glFramebufferFetchBarrierQCOM = (PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC)glewGetProcAddress((const GLubyte*)"glFramebufferFetchBarrierQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ #ifdef GL_QCOM_tiled_rendering static GLboolean _glewInit_GL_QCOM_tiled_rendering () { GLboolean r = GL_FALSE; r = ((glEndTilingQCOM = (PFNGLENDTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glEndTilingQCOM")) == NULL) || r; r = ((glStartTilingQCOM = (PFNGLSTARTTILINGQCOMPROC)glewGetProcAddress((const GLubyte*)"glStartTilingQCOM")) == NULL) || r; return r; } #endif /* GL_QCOM_tiled_rendering */ #ifdef GL_REGAL_ES1_0_compatibility static GLboolean _glewInit_GL_REGAL_ES1_0_compatibility () { GLboolean r = GL_FALSE; r = ((glAlphaFuncx = (PFNGLALPHAFUNCXPROC)glewGetProcAddress((const GLubyte*)"glAlphaFuncx")) == NULL) || r; r = ((glClearColorx = (PFNGLCLEARCOLORXPROC)glewGetProcAddress((const GLubyte*)"glClearColorx")) == NULL) || r; r = ((glClearDepthx = (PFNGLCLEARDEPTHXPROC)glewGetProcAddress((const GLubyte*)"glClearDepthx")) == NULL) || r; r = ((glColor4x = (PFNGLCOLOR4XPROC)glewGetProcAddress((const GLubyte*)"glColor4x")) == NULL) || r; r = ((glDepthRangex = (PFNGLDEPTHRANGEXPROC)glewGetProcAddress((const GLubyte*)"glDepthRangex")) == NULL) || r; r = ((glFogx = (PFNGLFOGXPROC)glewGetProcAddress((const GLubyte*)"glFogx")) == NULL) || r; r = ((glFogxv = (PFNGLFOGXVPROC)glewGetProcAddress((const GLubyte*)"glFogxv")) == NULL) || r; r = ((glFrustumf = (PFNGLFRUSTUMFPROC)glewGetProcAddress((const GLubyte*)"glFrustumf")) == NULL) || r; r = ((glFrustumx = (PFNGLFRUSTUMXPROC)glewGetProcAddress((const GLubyte*)"glFrustumx")) == NULL) || r; r = ((glLightModelx = (PFNGLLIGHTMODELXPROC)glewGetProcAddress((const GLubyte*)"glLightModelx")) == NULL) || r; r = ((glLightModelxv = (PFNGLLIGHTMODELXVPROC)glewGetProcAddress((const GLubyte*)"glLightModelxv")) == NULL) || r; r = ((glLightx = (PFNGLLIGHTXPROC)glewGetProcAddress((const GLubyte*)"glLightx")) == NULL) || r; r = ((glLightxv = (PFNGLLIGHTXVPROC)glewGetProcAddress((const GLubyte*)"glLightxv")) == NULL) || r; r = ((glLineWidthx = (PFNGLLINEWIDTHXPROC)glewGetProcAddress((const GLubyte*)"glLineWidthx")) == NULL) || r; r = ((glLoadMatrixx = (PFNGLLOADMATRIXXPROC)glewGetProcAddress((const GLubyte*)"glLoadMatrixx")) == NULL) || r; r = ((glMaterialx = (PFNGLMATERIALXPROC)glewGetProcAddress((const GLubyte*)"glMaterialx")) == NULL) || r; r = ((glMaterialxv = (PFNGLMATERIALXVPROC)glewGetProcAddress((const GLubyte*)"glMaterialxv")) == NULL) || r; r = ((glMultMatrixx = (PFNGLMULTMATRIXXPROC)glewGetProcAddress((const GLubyte*)"glMultMatrixx")) == NULL) || r; r = ((glMultiTexCoord4x = (PFNGLMULTITEXCOORD4XPROC)glewGetProcAddress((const GLubyte*)"glMultiTexCoord4x")) == NULL) || r; r = ((glNormal3x = (PFNGLNORMAL3XPROC)glewGetProcAddress((const GLubyte*)"glNormal3x")) == NULL) || r; r = ((glOrthof = (PFNGLORTHOFPROC)glewGetProcAddress((const GLubyte*)"glOrthof")) == NULL) || r; r = ((glOrthox = (PFNGLORTHOXPROC)glewGetProcAddress((const GLubyte*)"glOrthox")) == NULL) || r; r = ((glPointSizex = (PFNGLPOINTSIZEXPROC)glewGetProcAddress((const GLubyte*)"glPointSizex")) == NULL) || r; r = ((glPolygonOffsetx = (PFNGLPOLYGONOFFSETXPROC)glewGetProcAddress((const GLubyte*)"glPolygonOffsetx")) == NULL) || r; r = ((glRotatex = (PFNGLROTATEXPROC)glewGetProcAddress((const GLubyte*)"glRotatex")) == NULL) || r; r = ((glSampleCoveragex = (PFNGLSAMPLECOVERAGEXPROC)glewGetProcAddress((const GLubyte*)"glSampleCoveragex")) == NULL) || r; r = ((glScalex = (PFNGLSCALEXPROC)glewGetProcAddress((const GLubyte*)"glScalex")) == NULL) || r; r = ((glTexEnvx = (PFNGLTEXENVXPROC)glewGetProcAddress((const GLubyte*)"glTexEnvx")) == NULL) || r; r = ((glTexEnvxv = (PFNGLTEXENVXVPROC)glewGetProcAddress((const GLubyte*)"glTexEnvxv")) == NULL) || r; r = ((glTexParameterx = (PFNGLTEXPARAMETERXPROC)glewGetProcAddress((const GLubyte*)"glTexParameterx")) == NULL) || r; r = ((glTranslatex = (PFNGLTRANSLATEXPROC)glewGetProcAddress((const GLubyte*)"glTranslatex")) == NULL) || r; return r; } #endif /* GL_REGAL_ES1_0_compatibility */ #ifdef GL_REGAL_ES1_1_compatibility static GLboolean _glewInit_GL_REGAL_ES1_1_compatibility () { GLboolean r = GL_FALSE; r = ((glClipPlanef = (PFNGLCLIPPLANEFPROC)glewGetProcAddress((const GLubyte*)"glClipPlanef")) == NULL) || r; r = ((glClipPlanex = (PFNGLCLIPPLANEXPROC)glewGetProcAddress((const GLubyte*)"glClipPlanex")) == NULL) || r; r = ((glGetClipPlanef = (PFNGLGETCLIPPLANEFPROC)glewGetProcAddress((const GLubyte*)"glGetClipPlanef")) == NULL) || r; r = ((glGetClipPlanex = (PFNGLGETCLIPPLANEXPROC)glewGetProcAddress((const GLubyte*)"glGetClipPlanex")) == NULL) || r; r = ((glGetFixedv = (PFNGLGETFIXEDVPROC)glewGetProcAddress((const GLubyte*)"glGetFixedv")) == NULL) || r; r = ((glGetLightxv = (PFNGLGETLIGHTXVPROC)glewGetProcAddress((const GLubyte*)"glGetLightxv")) == NULL) || r; r = ((glGetMaterialxv = (PFNGLGETMATERIALXVPROC)glewGetProcAddress((const GLubyte*)"glGetMaterialxv")) == NULL) || r; r = ((glGetTexEnvxv = (PFNGLGETTEXENVXVPROC)glewGetProcAddress((const GLubyte*)"glGetTexEnvxv")) == NULL) || r; r = ((glGetTexParameterxv = (PFNGLGETTEXPARAMETERXVPROC)glewGetProcAddress((const GLubyte*)"glGetTexParameterxv")) == NULL) || r; r = ((glPointParameterx = (PFNGLPOINTPARAMETERXPROC)glewGetProcAddress((const GLubyte*)"glPointParameterx")) == NULL) || r; r = ((glPointParameterxv = (PFNGLPOINTPARAMETERXVPROC)glewGetProcAddress((const GLubyte*)"glPointParameterxv")) == NULL) || r; r = ((glPointSizePointerOES = (PFNGLPOINTSIZEPOINTEROESPROC)glewGetProcAddress((const GLubyte*)"glPointSizePointerOES")) == NULL) || r; r = ((glTexParameterxv = (PFNGLTEXPARAMETERXVPROC)glewGetProcAddress((const GLubyte*)"glTexParameterxv")) == NULL) || r; return r; } #endif /* GL_REGAL_ES1_1_compatibility */ #ifdef GL_REGAL_error_string static GLboolean _glewInit_GL_REGAL_error_string () { GLboolean r = GL_FALSE; r = ((glErrorStringREGAL = (PFNGLERRORSTRINGREGALPROC)glewGetProcAddress((const GLubyte*)"glErrorStringREGAL")) == NULL) || r; return r; } #endif /* GL_REGAL_error_string */ #ifdef GL_REGAL_extension_query static GLboolean _glewInit_GL_REGAL_extension_query () { GLboolean r = GL_FALSE; r = ((glGetExtensionREGAL = (PFNGLGETEXTENSIONREGALPROC)glewGetProcAddress((const GLubyte*)"glGetExtensionREGAL")) == NULL) || r; r = ((glIsSupportedREGAL = (PFNGLISSUPPORTEDREGALPROC)glewGetProcAddress((const GLubyte*)"glIsSupportedREGAL")) == NULL) || r; return r; } #endif /* GL_REGAL_extension_query */ #ifdef GL_REGAL_log static GLboolean _glewInit_GL_REGAL_log () { GLboolean r = GL_FALSE; r = ((glLogMessageCallbackREGAL = (PFNGLLOGMESSAGECALLBACKREGALPROC)glewGetProcAddress((const GLubyte*)"glLogMessageCallbackREGAL")) == NULL) || r; return r; } #endif /* GL_REGAL_log */ #ifdef GL_REGAL_proc_address static GLboolean _glewInit_GL_REGAL_proc_address () { GLboolean r = GL_FALSE; r = ((glGetProcAddressREGAL = (PFNGLGETPROCADDRESSREGALPROC)glewGetProcAddress((const GLubyte*)"glGetProcAddressREGAL")) == NULL) || r; return r; } #endif /* GL_REGAL_proc_address */ #ifdef GL_SGIS_detail_texture static GLboolean _glewInit_GL_SGIS_detail_texture () { GLboolean r = GL_FALSE; r = ((glDetailTexFuncSGIS = (PFNGLDETAILTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glDetailTexFuncSGIS")) == NULL) || r; r = ((glGetDetailTexFuncSGIS = (PFNGLGETDETAILTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetDetailTexFuncSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_detail_texture */ #ifdef GL_SGIS_fog_function static GLboolean _glewInit_GL_SGIS_fog_function () { GLboolean r = GL_FALSE; r = ((glFogFuncSGIS = (PFNGLFOGFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glFogFuncSGIS")) == NULL) || r; r = ((glGetFogFuncSGIS = (PFNGLGETFOGFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetFogFuncSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_fog_function */ #ifdef GL_SGIS_multisample static GLboolean _glewInit_GL_SGIS_multisample () { GLboolean r = GL_FALSE; r = ((glSampleMaskSGIS = (PFNGLSAMPLEMASKSGISPROC)glewGetProcAddress((const GLubyte*)"glSampleMaskSGIS")) == NULL) || r; r = ((glSamplePatternSGIS = (PFNGLSAMPLEPATTERNSGISPROC)glewGetProcAddress((const GLubyte*)"glSamplePatternSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_multisample */ #ifdef GL_SGIS_multitexture static GLboolean _glewInit_GL_SGIS_multitexture () { GLboolean r = GL_FALSE; r = ((glInterleavedTextureCoordSetsSGIS = (PFNGLINTERLEAVEDTEXTURECOORDSETSSGISPROC)glewGetProcAddress((const GLubyte*)"glInterleavedTextureCoordSetsSGIS")) == NULL) || r; r = ((glSelectTextureCoordSetSGIS = (PFNGLSELECTTEXTURECOORDSETSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureCoordSetSGIS")) == NULL) || r; r = ((glSelectTextureSGIS = (PFNGLSELECTTEXTURESGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureSGIS")) == NULL) || r; r = ((glSelectTextureTransformSGIS = (PFNGLSELECTTEXTURETRANSFORMSGISPROC)glewGetProcAddress((const GLubyte*)"glSelectTextureTransformSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_multitexture */ #ifdef GL_SGIS_shared_multisample static GLboolean _glewInit_GL_SGIS_shared_multisample () { GLboolean r = GL_FALSE; r = ((glMultisampleSubRectPosSGIS = (PFNGLMULTISAMPLESUBRECTPOSSGISPROC)glewGetProcAddress((const GLubyte*)"glMultisampleSubRectPosSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_shared_multisample */ #ifdef GL_SGIS_sharpen_texture static GLboolean _glewInit_GL_SGIS_sharpen_texture () { GLboolean r = GL_FALSE; r = ((glGetSharpenTexFuncSGIS = (PFNGLGETSHARPENTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetSharpenTexFuncSGIS")) == NULL) || r; r = ((glSharpenTexFuncSGIS = (PFNGLSHARPENTEXFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glSharpenTexFuncSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_sharpen_texture */ #ifdef GL_SGIS_texture4D static GLboolean _glewInit_GL_SGIS_texture4D () { GLboolean r = GL_FALSE; r = ((glTexImage4DSGIS = (PFNGLTEXIMAGE4DSGISPROC)glewGetProcAddress((const GLubyte*)"glTexImage4DSGIS")) == NULL) || r; r = ((glTexSubImage4DSGIS = (PFNGLTEXSUBIMAGE4DSGISPROC)glewGetProcAddress((const GLubyte*)"glTexSubImage4DSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_texture4D */ #ifdef GL_SGIS_texture_filter4 static GLboolean _glewInit_GL_SGIS_texture_filter4 () { GLboolean r = GL_FALSE; r = ((glGetTexFilterFuncSGIS = (PFNGLGETTEXFILTERFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glGetTexFilterFuncSGIS")) == NULL) || r; r = ((glTexFilterFuncSGIS = (PFNGLTEXFILTERFUNCSGISPROC)glewGetProcAddress((const GLubyte*)"glTexFilterFuncSGIS")) == NULL) || r; return r; } #endif /* GL_SGIS_texture_filter4 */ #ifdef GL_SGIX_async static GLboolean _glewInit_GL_SGIX_async () { GLboolean r = GL_FALSE; r = ((glAsyncMarkerSGIX = (PFNGLASYNCMARKERSGIXPROC)glewGetProcAddress((const GLubyte*)"glAsyncMarkerSGIX")) == NULL) || r; r = ((glDeleteAsyncMarkersSGIX = (PFNGLDELETEASYNCMARKERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteAsyncMarkersSGIX")) == NULL) || r; r = ((glFinishAsyncSGIX = (PFNGLFINISHASYNCSGIXPROC)glewGetProcAddress((const GLubyte*)"glFinishAsyncSGIX")) == NULL) || r; r = ((glGenAsyncMarkersSGIX = (PFNGLGENASYNCMARKERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenAsyncMarkersSGIX")) == NULL) || r; r = ((glIsAsyncMarkerSGIX = (PFNGLISASYNCMARKERSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsAsyncMarkerSGIX")) == NULL) || r; r = ((glPollAsyncSGIX = (PFNGLPOLLASYNCSGIXPROC)glewGetProcAddress((const GLubyte*)"glPollAsyncSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_async */ #ifdef GL_SGIX_datapipe static GLboolean _glewInit_GL_SGIX_datapipe () { GLboolean r = GL_FALSE; r = ((glAddressSpace = (PFNGLADDRESSSPACEPROC)glewGetProcAddress((const GLubyte*)"glAddressSpace")) == NULL) || r; r = ((glDataPipe = (PFNGLDATAPIPEPROC)glewGetProcAddress((const GLubyte*)"glDataPipe")) == NULL) || r; return r; } #endif /* GL_SGIX_datapipe */ #ifdef GL_SGIX_flush_raster static GLboolean _glewInit_GL_SGIX_flush_raster () { GLboolean r = GL_FALSE; r = ((glFlushRasterSGIX = (PFNGLFLUSHRASTERSGIXPROC)glewGetProcAddress((const GLubyte*)"glFlushRasterSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_flush_raster */ #ifdef GL_SGIX_fog_layers static GLboolean _glewInit_GL_SGIX_fog_layers () { GLboolean r = GL_FALSE; r = ((glFogLayersSGIX = (PFNGLFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glFogLayersSGIX")) == NULL) || r; r = ((glGetFogLayersSGIX = (PFNGLGETFOGLAYERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFogLayersSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_fog_layers */ #ifdef GL_SGIX_fog_texture static GLboolean _glewInit_GL_SGIX_fog_texture () { GLboolean r = GL_FALSE; r = ((glTextureFogSGIX = (PFNGLTEXTUREFOGSGIXPROC)glewGetProcAddress((const GLubyte*)"glTextureFogSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_fog_texture */ #ifdef GL_SGIX_fragment_specular_lighting static GLboolean _glewInit_GL_SGIX_fragment_specular_lighting () { GLboolean r = GL_FALSE; r = ((glFragmentColorMaterialSGIX = (PFNGLFRAGMENTCOLORMATERIALSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentColorMaterialSGIX")) == NULL) || r; r = ((glFragmentLightModelfSGIX = (PFNGLFRAGMENTLIGHTMODELFSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfSGIX")) == NULL) || r; r = ((glFragmentLightModelfvSGIX = (PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelfvSGIX")) == NULL) || r; r = ((glFragmentLightModeliSGIX = (PFNGLFRAGMENTLIGHTMODELISGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModeliSGIX")) == NULL) || r; r = ((glFragmentLightModelivSGIX = (PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightModelivSGIX")) == NULL) || r; r = ((glFragmentLightfSGIX = (PFNGLFRAGMENTLIGHTFSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfSGIX")) == NULL) || r; r = ((glFragmentLightfvSGIX = (PFNGLFRAGMENTLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightfvSGIX")) == NULL) || r; r = ((glFragmentLightiSGIX = (PFNGLFRAGMENTLIGHTISGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightiSGIX")) == NULL) || r; r = ((glFragmentLightivSGIX = (PFNGLFRAGMENTLIGHTIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentLightivSGIX")) == NULL) || r; r = ((glFragmentMaterialfSGIX = (PFNGLFRAGMENTMATERIALFSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfSGIX")) == NULL) || r; r = ((glFragmentMaterialfvSGIX = (PFNGLFRAGMENTMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialfvSGIX")) == NULL) || r; r = ((glFragmentMaterialiSGIX = (PFNGLFRAGMENTMATERIALISGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialiSGIX")) == NULL) || r; r = ((glFragmentMaterialivSGIX = (PFNGLFRAGMENTMATERIALIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glFragmentMaterialivSGIX")) == NULL) || r; r = ((glGetFragmentLightfvSGIX = (PFNGLGETFRAGMENTLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightfvSGIX")) == NULL) || r; r = ((glGetFragmentLightivSGIX = (PFNGLGETFRAGMENTLIGHTIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentLightivSGIX")) == NULL) || r; r = ((glGetFragmentMaterialfvSGIX = (PFNGLGETFRAGMENTMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialfvSGIX")) == NULL) || r; r = ((glGetFragmentMaterialivSGIX = (PFNGLGETFRAGMENTMATERIALIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetFragmentMaterialivSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_fragment_specular_lighting */ #ifdef GL_SGIX_framezoom static GLboolean _glewInit_GL_SGIX_framezoom () { GLboolean r = GL_FALSE; r = ((glFrameZoomSGIX = (PFNGLFRAMEZOOMSGIXPROC)glewGetProcAddress((const GLubyte*)"glFrameZoomSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_framezoom */ #ifdef GL_SGIX_igloo_interface static GLboolean _glewInit_GL_SGIX_igloo_interface () { GLboolean r = GL_FALSE; r = ((glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC)glewGetProcAddress((const GLubyte*)"glIglooInterfaceSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_igloo_interface */ #ifdef GL_SGIX_mpeg1 static GLboolean _glewInit_GL_SGIX_mpeg1 () { GLboolean r = GL_FALSE; r = ((glAllocMPEGPredictorsSGIX = (PFNGLALLOCMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glAllocMPEGPredictorsSGIX")) == NULL) || r; r = ((glDeleteMPEGPredictorsSGIX = (PFNGLDELETEMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteMPEGPredictorsSGIX")) == NULL) || r; r = ((glGenMPEGPredictorsSGIX = (PFNGLGENMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenMPEGPredictorsSGIX")) == NULL) || r; r = ((glGetMPEGParameterfvSGIX = (PFNGLGETMPEGPARAMETERFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterfvSGIX")) == NULL) || r; r = ((glGetMPEGParameterivSGIX = (PFNGLGETMPEGPARAMETERIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGParameterivSGIX")) == NULL) || r; r = ((glGetMPEGPredictorSGIX = (PFNGLGETMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGPredictorSGIX")) == NULL) || r; r = ((glGetMPEGQuantTableubv = (PFNGLGETMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glGetMPEGQuantTableubv")) == NULL) || r; r = ((glIsMPEGPredictorSGIX = (PFNGLISMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsMPEGPredictorSGIX")) == NULL) || r; r = ((glMPEGPredictorSGIX = (PFNGLMPEGPREDICTORSGIXPROC)glewGetProcAddress((const GLubyte*)"glMPEGPredictorSGIX")) == NULL) || r; r = ((glMPEGQuantTableubv = (PFNGLMPEGQUANTTABLEUBVPROC)glewGetProcAddress((const GLubyte*)"glMPEGQuantTableubv")) == NULL) || r; r = ((glSwapMPEGPredictorsSGIX = (PFNGLSWAPMPEGPREDICTORSSGIXPROC)glewGetProcAddress((const GLubyte*)"glSwapMPEGPredictorsSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_mpeg1 */ #ifdef GL_SGIX_nonlinear_lighting_pervertex static GLboolean _glewInit_GL_SGIX_nonlinear_lighting_pervertex () { GLboolean r = GL_FALSE; r = ((glGetNonlinLightfvSGIX = (PFNGLGETNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinLightfvSGIX")) == NULL) || r; r = ((glGetNonlinMaterialfvSGIX = (PFNGLGETNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetNonlinMaterialfvSGIX")) == NULL) || r; r = ((glNonlinLightfvSGIX = (PFNGLNONLINLIGHTFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinLightfvSGIX")) == NULL) || r; r = ((glNonlinMaterialfvSGIX = (PFNGLNONLINMATERIALFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glNonlinMaterialfvSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_nonlinear_lighting_pervertex */ #ifdef GL_SGIX_pixel_texture static GLboolean _glewInit_GL_SGIX_pixel_texture () { GLboolean r = GL_FALSE; r = ((glPixelTexGenSGIX = (PFNGLPIXELTEXGENSGIXPROC)glewGetProcAddress((const GLubyte*)"glPixelTexGenSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_pixel_texture */ #ifdef GL_SGIX_polynomial_ffd static GLboolean _glewInit_GL_SGIX_polynomial_ffd () { GLboolean r = GL_FALSE; r = ((glDeformSGIX = (PFNGLDEFORMSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeformSGIX")) == NULL) || r; r = ((glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)glewGetProcAddress((const GLubyte*)"glLoadIdentityDeformationMapSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_polynomial_ffd */ #ifdef GL_SGIX_quad_mesh static GLboolean _glewInit_GL_SGIX_quad_mesh () { GLboolean r = GL_FALSE; r = ((glMeshBreadthSGIX = (PFNGLMESHBREADTHSGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshBreadthSGIX")) == NULL) || r; r = ((glMeshStrideSGIX = (PFNGLMESHSTRIDESGIXPROC)glewGetProcAddress((const GLubyte*)"glMeshStrideSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_quad_mesh */ #ifdef GL_SGIX_reference_plane static GLboolean _glewInit_GL_SGIX_reference_plane () { GLboolean r = GL_FALSE; r = ((glReferencePlaneSGIX = (PFNGLREFERENCEPLANESGIXPROC)glewGetProcAddress((const GLubyte*)"glReferencePlaneSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_reference_plane */ #ifdef GL_SGIX_sprite static GLboolean _glewInit_GL_SGIX_sprite () { GLboolean r = GL_FALSE; r = ((glSpriteParameterfSGIX = (PFNGLSPRITEPARAMETERFSGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameterfSGIX")) == NULL) || r; r = ((glSpriteParameterfvSGIX = (PFNGLSPRITEPARAMETERFVSGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameterfvSGIX")) == NULL) || r; r = ((glSpriteParameteriSGIX = (PFNGLSPRITEPARAMETERISGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameteriSGIX")) == NULL) || r; r = ((glSpriteParameterivSGIX = (PFNGLSPRITEPARAMETERIVSGIXPROC)glewGetProcAddress((const GLubyte*)"glSpriteParameterivSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_sprite */ #ifdef GL_SGIX_tag_sample_buffer static GLboolean _glewInit_GL_SGIX_tag_sample_buffer () { GLboolean r = GL_FALSE; r = ((glTagSampleBufferSGIX = (PFNGLTAGSAMPLEBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glTagSampleBufferSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_tag_sample_buffer */ #ifdef GL_SGIX_vector_ops static GLboolean _glewInit_GL_SGIX_vector_ops () { GLboolean r = GL_FALSE; r = ((glGetVectorOperationSGIX = (PFNGLGETVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glGetVectorOperationSGIX")) == NULL) || r; r = ((glVectorOperationSGIX = (PFNGLVECTOROPERATIONSGIXPROC)glewGetProcAddress((const GLubyte*)"glVectorOperationSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_vector_ops */ #ifdef GL_SGIX_vertex_array_object static GLboolean _glewInit_GL_SGIX_vertex_array_object () { GLboolean r = GL_FALSE; r = ((glAreVertexArraysResidentSGIX = (PFNGLAREVERTEXARRAYSRESIDENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glAreVertexArraysResidentSGIX")) == NULL) || r; r = ((glBindVertexArraySGIX = (PFNGLBINDVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glBindVertexArraySGIX")) == NULL) || r; r = ((glDeleteVertexArraysSGIX = (PFNGLDELETEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glDeleteVertexArraysSGIX")) == NULL) || r; r = ((glGenVertexArraysSGIX = (PFNGLGENVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glGenVertexArraysSGIX")) == NULL) || r; r = ((glIsVertexArraySGIX = (PFNGLISVERTEXARRAYSGIXPROC)glewGetProcAddress((const GLubyte*)"glIsVertexArraySGIX")) == NULL) || r; r = ((glPrioritizeVertexArraysSGIX = (PFNGLPRIORITIZEVERTEXARRAYSSGIXPROC)glewGetProcAddress((const GLubyte*)"glPrioritizeVertexArraysSGIX")) == NULL) || r; return r; } #endif /* GL_SGIX_vertex_array_object */ #ifdef GL_SGI_color_table static GLboolean _glewInit_GL_SGI_color_table () { GLboolean r = GL_FALSE; r = ((glColorTableParameterfvSGI = (PFNGLCOLORTABLEPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameterfvSGI")) == NULL) || r; r = ((glColorTableParameterivSGI = (PFNGLCOLORTABLEPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glColorTableParameterivSGI")) == NULL) || r; r = ((glColorTableSGI = (PFNGLCOLORTABLESGIPROC)glewGetProcAddress((const GLubyte*)"glColorTableSGI")) == NULL) || r; r = ((glCopyColorTableSGI = (PFNGLCOPYCOLORTABLESGIPROC)glewGetProcAddress((const GLubyte*)"glCopyColorTableSGI")) == NULL) || r; r = ((glGetColorTableParameterfvSGI = (PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterfvSGI")) == NULL) || r; r = ((glGetColorTableParameterivSGI = (PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableParameterivSGI")) == NULL) || r; r = ((glGetColorTableSGI = (PFNGLGETCOLORTABLESGIPROC)glewGetProcAddress((const GLubyte*)"glGetColorTableSGI")) == NULL) || r; return r; } #endif /* GL_SGI_color_table */ #ifdef GL_SGI_fft static GLboolean _glewInit_GL_SGI_fft () { GLboolean r = GL_FALSE; r = ((glGetPixelTransformParameterfvSGI = (PFNGLGETPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterfvSGI")) == NULL) || r; r = ((glGetPixelTransformParameterivSGI = (PFNGLGETPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glGetPixelTransformParameterivSGI")) == NULL) || r; r = ((glPixelTransformParameterfSGI = (PFNGLPIXELTRANSFORMPARAMETERFSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfSGI")) == NULL) || r; r = ((glPixelTransformParameterfvSGI = (PFNGLPIXELTRANSFORMPARAMETERFVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterfvSGI")) == NULL) || r; r = ((glPixelTransformParameteriSGI = (PFNGLPIXELTRANSFORMPARAMETERISGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameteriSGI")) == NULL) || r; r = ((glPixelTransformParameterivSGI = (PFNGLPIXELTRANSFORMPARAMETERIVSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformParameterivSGI")) == NULL) || r; r = ((glPixelTransformSGI = (PFNGLPIXELTRANSFORMSGIPROC)glewGetProcAddress((const GLubyte*)"glPixelTransformSGI")) == NULL) || r; return r; } #endif /* GL_SGI_fft */ #ifdef GL_SUNX_constant_data static GLboolean _glewInit_GL_SUNX_constant_data () { GLboolean r = GL_FALSE; r = ((glFinishTextureSUNX = (PFNGLFINISHTEXTURESUNXPROC)glewGetProcAddress((const GLubyte*)"glFinishTextureSUNX")) == NULL) || r; return r; } #endif /* GL_SUNX_constant_data */ #ifdef GL_SUN_global_alpha static GLboolean _glewInit_GL_SUN_global_alpha () { GLboolean r = GL_FALSE; r = ((glGlobalAlphaFactorbSUN = (PFNGLGLOBALALPHAFACTORBSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorbSUN")) == NULL) || r; r = ((glGlobalAlphaFactordSUN = (PFNGLGLOBALALPHAFACTORDSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactordSUN")) == NULL) || r; r = ((glGlobalAlphaFactorfSUN = (PFNGLGLOBALALPHAFACTORFSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorfSUN")) == NULL) || r; r = ((glGlobalAlphaFactoriSUN = (PFNGLGLOBALALPHAFACTORISUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactoriSUN")) == NULL) || r; r = ((glGlobalAlphaFactorsSUN = (PFNGLGLOBALALPHAFACTORSSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorsSUN")) == NULL) || r; r = ((glGlobalAlphaFactorubSUN = (PFNGLGLOBALALPHAFACTORUBSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorubSUN")) == NULL) || r; r = ((glGlobalAlphaFactoruiSUN = (PFNGLGLOBALALPHAFACTORUISUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactoruiSUN")) == NULL) || r; r = ((glGlobalAlphaFactorusSUN = (PFNGLGLOBALALPHAFACTORUSSUNPROC)glewGetProcAddress((const GLubyte*)"glGlobalAlphaFactorusSUN")) == NULL) || r; return r; } #endif /* GL_SUN_global_alpha */ #ifdef GL_SUN_read_video_pixels static GLboolean _glewInit_GL_SUN_read_video_pixels () { GLboolean r = GL_FALSE; r = ((glReadVideoPixelsSUN = (PFNGLREADVIDEOPIXELSSUNPROC)glewGetProcAddress((const GLubyte*)"glReadVideoPixelsSUN")) == NULL) || r; return r; } #endif /* GL_SUN_read_video_pixels */ #ifdef GL_SUN_triangle_list static GLboolean _glewInit_GL_SUN_triangle_list () { GLboolean r = GL_FALSE; r = ((glReplacementCodePointerSUN = (PFNGLREPLACEMENTCODEPOINTERSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodePointerSUN")) == NULL) || r; r = ((glReplacementCodeubSUN = (PFNGLREPLACEMENTCODEUBSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeubSUN")) == NULL) || r; r = ((glReplacementCodeubvSUN = (PFNGLREPLACEMENTCODEUBVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeubvSUN")) == NULL) || r; r = ((glReplacementCodeuiSUN = (PFNGLREPLACEMENTCODEUISUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiSUN")) == NULL) || r; r = ((glReplacementCodeuivSUN = (PFNGLREPLACEMENTCODEUIVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuivSUN")) == NULL) || r; r = ((glReplacementCodeusSUN = (PFNGLREPLACEMENTCODEUSSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeusSUN")) == NULL) || r; r = ((glReplacementCodeusvSUN = (PFNGLREPLACEMENTCODEUSVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeusvSUN")) == NULL) || r; return r; } #endif /* GL_SUN_triangle_list */ #ifdef GL_SUN_vertex static GLboolean _glewInit_GL_SUN_vertex () { GLboolean r = GL_FALSE; r = ((glColor3fVertex3fSUN = (PFNGLCOLOR3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor3fVertex3fSUN")) == NULL) || r; r = ((glColor3fVertex3fvSUN = (PFNGLCOLOR3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor3fVertex3fvSUN")) == NULL) || r; r = ((glColor4fNormal3fVertex3fSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4fNormal3fVertex3fSUN")) == NULL) || r; r = ((glColor4fNormal3fVertex3fvSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4fNormal3fVertex3fvSUN")) == NULL) || r; r = ((glColor4ubVertex2fSUN = (PFNGLCOLOR4UBVERTEX2FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex2fSUN")) == NULL) || r; r = ((glColor4ubVertex2fvSUN = (PFNGLCOLOR4UBVERTEX2FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex2fvSUN")) == NULL) || r; r = ((glColor4ubVertex3fSUN = (PFNGLCOLOR4UBVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex3fSUN")) == NULL) || r; r = ((glColor4ubVertex3fvSUN = (PFNGLCOLOR4UBVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glColor4ubVertex3fvSUN")) == NULL) || r; r = ((glNormal3fVertex3fSUN = (PFNGLNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glNormal3fVertex3fSUN")) == NULL) || r; r = ((glNormal3fVertex3fvSUN = (PFNGLNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glNormal3fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiColor3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor3fVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiColor3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor3fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4fNormal3fVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4fNormal3fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiColor4ubVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4ubVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiColor4ubVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiColor4ubVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiNormal3fVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiNormal3fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiTexCoord2fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiTexCoord2fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiTexCoord2fVertex3fvSUN")) == NULL) || r; r = ((glReplacementCodeuiVertex3fSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiVertex3fSUN")) == NULL) || r; r = ((glReplacementCodeuiVertex3fvSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glReplacementCodeuiVertex3fvSUN")) == NULL) || r; r = ((glTexCoord2fColor3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor3fVertex3fSUN")) == NULL) || r; r = ((glTexCoord2fColor3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor3fVertex3fvSUN")) == NULL) || r; r = ((glTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4fNormal3fVertex3fSUN")) == NULL) || r; r = ((glTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4fNormal3fVertex3fvSUN")) == NULL) || r; r = ((glTexCoord2fColor4ubVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4ubVertex3fSUN")) == NULL) || r; r = ((glTexCoord2fColor4ubVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fColor4ubVertex3fvSUN")) == NULL) || r; r = ((glTexCoord2fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fNormal3fVertex3fSUN")) == NULL) || r; r = ((glTexCoord2fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fNormal3fVertex3fvSUN")) == NULL) || r; r = ((glTexCoord2fVertex3fSUN = (PFNGLTEXCOORD2FVERTEX3FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fVertex3fSUN")) == NULL) || r; r = ((glTexCoord2fVertex3fvSUN = (PFNGLTEXCOORD2FVERTEX3FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord2fVertex3fvSUN")) == NULL) || r; r = ((glTexCoord4fColor4fNormal3fVertex4fSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fColor4fNormal3fVertex4fSUN")) == NULL) || r; r = ((glTexCoord4fColor4fNormal3fVertex4fvSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fColor4fNormal3fVertex4fvSUN")) == NULL) || r; r = ((glTexCoord4fVertex4fSUN = (PFNGLTEXCOORD4FVERTEX4FSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fVertex4fSUN")) == NULL) || r; r = ((glTexCoord4fVertex4fvSUN = (PFNGLTEXCOORD4FVERTEX4FVSUNPROC)glewGetProcAddress((const GLubyte*)"glTexCoord4fVertex4fvSUN")) == NULL) || r; return r; } #endif /* GL_SUN_vertex */ #ifdef GL_WIN_swap_hint static GLboolean _glewInit_GL_WIN_swap_hint () { GLboolean r = GL_FALSE; r = ((glAddSwapHintRectWIN = (PFNGLADDSWAPHINTRECTWINPROC)glewGetProcAddress((const GLubyte*)"glAddSwapHintRectWIN")) == NULL) || r; return r; } #endif /* GL_WIN_swap_hint */ /* ------------------------------------------------------------------------- */ static int _glewExtensionCompare(const char *s1, const char *s2) { /* http://www.chanduthedev.com/2012/07/strcmp-implementation-in-c.html */ while (*s1 || *s2) { if (*s1 > *s2) return 1; if (*s1 < *s2) return -1; s1++; s2++; } return 0; } static ptrdiff_t _glewBsearchExtension(const char* name) { ptrdiff_t lo = 0, hi = sizeof(_glewExtensionLookup) / sizeof(char*) - 2; while (lo <= hi) { ptrdiff_t mid = (lo + hi) / 2; const int cmp = _glewExtensionCompare(name, _glewExtensionLookup[mid]); if (cmp < 0) hi = mid - 1; else if (cmp > 0) lo = mid + 1; else return mid; } return -1; } static GLboolean *_glewGetExtensionString(const char *name) { ptrdiff_t n = _glewBsearchExtension(name); if (n >= 0) return &_glewExtensionString[n]; return NULL; } static GLboolean *_glewGetExtensionEnable(const char *name) { ptrdiff_t n = _glewBsearchExtension(name); if (n >= 0) return _glewExtensionEnabled[n]; return NULL; } static const char *_glewNextSpace(const char *i) { const char *j = i; if (j) while (*j!=' ' && *j) ++j; return j; } static const char *_glewNextNonSpace(const char *i) { const char *j = i; if (j) while (*j==' ') ++j; return j; } GLboolean GLEWAPIENTRY glewGetExtension (const char* name) { GLboolean *enable = _glewGetExtensionString(name); if (enable) return *enable; return GL_FALSE; } /* ------------------------------------------------------------------------- */ typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGPROC) (GLenum name); typedef void (GLAPIENTRY * PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); static GLenum GLEWAPIENTRY glewContextInit () { PFNGLGETSTRINGPROC getString; const GLubyte* s; GLuint dot; GLint major, minor; size_t n; #ifdef _WIN32 getString = glGetString; #else getString = (PFNGLGETSTRINGPROC) glewGetProcAddress((const GLubyte*)"glGetString"); if (!getString) return GLEW_ERROR_NO_GL_VERSION; #endif /* query opengl version */ s = getString(GL_VERSION); dot = _glewStrCLen(s, '.'); if (dot == 0) return GLEW_ERROR_NO_GL_VERSION; major = s[dot-1]-'0'; minor = s[dot+1]-'0'; if (minor < 0 || minor > 9) minor = 0; if (major<0 || major>9) return GLEW_ERROR_NO_GL_VERSION; if (major == 1 && minor == 0) { return GLEW_ERROR_GL_VERSION_10_ONLY; } else { GLEW_VERSION_4_6 = ( major > 4 ) || ( major == 4 && minor >= 6 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_5 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 5 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_4 = GLEW_VERSION_4_5 == GL_TRUE || ( major == 4 && minor >= 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_3 = GLEW_VERSION_4_4 == GL_TRUE || ( major == 4 && minor >= 3 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_2 = GLEW_VERSION_4_3 == GL_TRUE || ( major == 4 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_1 = GLEW_VERSION_4_2 == GL_TRUE || ( major == 4 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_4_0 = GLEW_VERSION_4_1 == GL_TRUE || ( major == 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_3 = GLEW_VERSION_4_0 == GL_TRUE || ( major == 3 && minor >= 3 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_2 = GLEW_VERSION_3_3 == GL_TRUE || ( major == 3 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_1 = GLEW_VERSION_3_2 == GL_TRUE || ( major == 3 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_3_0 = GLEW_VERSION_3_1 == GL_TRUE || ( major == 3 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_2_1 = GLEW_VERSION_3_0 == GL_TRUE || ( major == 2 && minor >= 1 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_2_0 = GLEW_VERSION_2_1 == GL_TRUE || ( major == 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_5 = GLEW_VERSION_2_0 == GL_TRUE || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_4 = GLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_3 = GLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_2_1 = GLEW_VERSION_1_3 == GL_TRUE ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_2 = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; GLEW_VERSION_1_1 = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; } for (n = 0; n < sizeof(_glewExtensionString) / sizeof(_glewExtensionString[0]); ++n) _glewExtensionString[n] = GL_FALSE; if (GLEW_VERSION_3_0) { GLint n = 0; GLint i; PFNGLGETINTEGERVPROC getIntegerv; PFNGLGETSTRINGIPROC getStringi; const char *ext; GLboolean *enable; #ifdef _WIN32 getIntegerv = glGetIntegerv; #else getIntegerv = (PFNGLGETINTEGERVPROC) glewGetProcAddress((const GLubyte*)"glGetIntegerv"); #endif if (getIntegerv) getIntegerv(GL_NUM_EXTENSIONS, &n); /* glGetStringi is OpenGL 3.0 */ getStringi = (PFNGLGETSTRINGIPROC) glewGetProcAddress((const GLubyte*)"glGetStringi"); if (getStringi) for (i = 0; i= (ptrdiff_t) sizeof(ext)) continue; _glewStrCopy(ext, i, ' '); /* Based on extension string(s), glewGetExtension purposes */ enable = _glewGetExtensionString(ext); if (enable) *enable = GL_TRUE; /* Based on extension string(s), experimental mode, glewIsSupported purposes */ enable = _glewGetExtensionEnable(ext); if (enable) *enable = GL_TRUE; } } } #ifdef GL_VERSION_1_2 if (glewExperimental || GLEW_VERSION_1_2) GLEW_VERSION_1_2 = !_glewInit_GL_VERSION_1_2(); #endif /* GL_VERSION_1_2 */ #ifdef GL_VERSION_1_3 if (glewExperimental || GLEW_VERSION_1_3) GLEW_VERSION_1_3 = !_glewInit_GL_VERSION_1_3(); #endif /* GL_VERSION_1_3 */ #ifdef GL_VERSION_1_4 if (glewExperimental || GLEW_VERSION_1_4) GLEW_VERSION_1_4 = !_glewInit_GL_VERSION_1_4(); #endif /* GL_VERSION_1_4 */ #ifdef GL_VERSION_1_5 if (glewExperimental || GLEW_VERSION_1_5) GLEW_VERSION_1_5 = !_glewInit_GL_VERSION_1_5(); #endif /* GL_VERSION_1_5 */ #ifdef GL_VERSION_2_0 if (glewExperimental || GLEW_VERSION_2_0) GLEW_VERSION_2_0 = !_glewInit_GL_VERSION_2_0(); #endif /* GL_VERSION_2_0 */ #ifdef GL_VERSION_2_1 if (glewExperimental || GLEW_VERSION_2_1) GLEW_VERSION_2_1 = !_glewInit_GL_VERSION_2_1(); #endif /* GL_VERSION_2_1 */ #ifdef GL_VERSION_3_0 if (glewExperimental || GLEW_VERSION_3_0) GLEW_VERSION_3_0 = !_glewInit_GL_VERSION_3_0(); #endif /* GL_VERSION_3_0 */ #ifdef GL_VERSION_3_1 if (glewExperimental || GLEW_VERSION_3_1) GLEW_VERSION_3_1 = !_glewInit_GL_VERSION_3_1(); #endif /* GL_VERSION_3_1 */ #ifdef GL_VERSION_3_2 if (glewExperimental || GLEW_VERSION_3_2) GLEW_VERSION_3_2 = !_glewInit_GL_VERSION_3_2(); #endif /* GL_VERSION_3_2 */ #ifdef GL_VERSION_3_3 if (glewExperimental || GLEW_VERSION_3_3) GLEW_VERSION_3_3 = !_glewInit_GL_VERSION_3_3(); #endif /* GL_VERSION_3_3 */ #ifdef GL_VERSION_4_0 if (glewExperimental || GLEW_VERSION_4_0) GLEW_VERSION_4_0 = !_glewInit_GL_VERSION_4_0(); #endif /* GL_VERSION_4_0 */ #ifdef GL_VERSION_4_5 if (glewExperimental || GLEW_VERSION_4_5) GLEW_VERSION_4_5 = !_glewInit_GL_VERSION_4_5(); #endif /* GL_VERSION_4_5 */ #ifdef GL_VERSION_4_6 if (glewExperimental || GLEW_VERSION_4_6) GLEW_VERSION_4_6 = !_glewInit_GL_VERSION_4_6(); #endif /* GL_VERSION_4_6 */ #ifdef GL_3DFX_tbuffer if (glewExperimental || GLEW_3DFX_tbuffer) GLEW_3DFX_tbuffer = !_glewInit_GL_3DFX_tbuffer(); #endif /* GL_3DFX_tbuffer */ #ifdef GL_AMD_debug_output if (glewExperimental || GLEW_AMD_debug_output) GLEW_AMD_debug_output = !_glewInit_GL_AMD_debug_output(); #endif /* GL_AMD_debug_output */ #ifdef GL_AMD_draw_buffers_blend if (glewExperimental || GLEW_AMD_draw_buffers_blend) GLEW_AMD_draw_buffers_blend = !_glewInit_GL_AMD_draw_buffers_blend(); #endif /* GL_AMD_draw_buffers_blend */ #ifdef GL_AMD_framebuffer_sample_positions if (glewExperimental || GLEW_AMD_framebuffer_sample_positions) GLEW_AMD_framebuffer_sample_positions = !_glewInit_GL_AMD_framebuffer_sample_positions(); #endif /* GL_AMD_framebuffer_sample_positions */ #ifdef GL_AMD_interleaved_elements if (glewExperimental || GLEW_AMD_interleaved_elements) GLEW_AMD_interleaved_elements = !_glewInit_GL_AMD_interleaved_elements(); #endif /* GL_AMD_interleaved_elements */ #ifdef GL_AMD_multi_draw_indirect if (glewExperimental || GLEW_AMD_multi_draw_indirect) GLEW_AMD_multi_draw_indirect = !_glewInit_GL_AMD_multi_draw_indirect(); #endif /* GL_AMD_multi_draw_indirect */ #ifdef GL_AMD_name_gen_delete if (glewExperimental || GLEW_AMD_name_gen_delete) GLEW_AMD_name_gen_delete = !_glewInit_GL_AMD_name_gen_delete(); #endif /* GL_AMD_name_gen_delete */ #ifdef GL_AMD_occlusion_query_event if (glewExperimental || GLEW_AMD_occlusion_query_event) GLEW_AMD_occlusion_query_event = !_glewInit_GL_AMD_occlusion_query_event(); #endif /* GL_AMD_occlusion_query_event */ #ifdef GL_AMD_performance_monitor if (glewExperimental || GLEW_AMD_performance_monitor) GLEW_AMD_performance_monitor = !_glewInit_GL_AMD_performance_monitor(); #endif /* GL_AMD_performance_monitor */ #ifdef GL_AMD_sample_positions if (glewExperimental || GLEW_AMD_sample_positions) GLEW_AMD_sample_positions = !_glewInit_GL_AMD_sample_positions(); #endif /* GL_AMD_sample_positions */ #ifdef GL_AMD_sparse_texture if (glewExperimental || GLEW_AMD_sparse_texture) GLEW_AMD_sparse_texture = !_glewInit_GL_AMD_sparse_texture(); #endif /* GL_AMD_sparse_texture */ #ifdef GL_AMD_stencil_operation_extended if (glewExperimental || GLEW_AMD_stencil_operation_extended) GLEW_AMD_stencil_operation_extended = !_glewInit_GL_AMD_stencil_operation_extended(); #endif /* GL_AMD_stencil_operation_extended */ #ifdef GL_AMD_vertex_shader_tessellator if (glewExperimental || GLEW_AMD_vertex_shader_tessellator) GLEW_AMD_vertex_shader_tessellator = !_glewInit_GL_AMD_vertex_shader_tessellator(); #endif /* GL_AMD_vertex_shader_tessellator */ #ifdef GL_ANGLE_framebuffer_blit if (glewExperimental || GLEW_ANGLE_framebuffer_blit) GLEW_ANGLE_framebuffer_blit = !_glewInit_GL_ANGLE_framebuffer_blit(); #endif /* GL_ANGLE_framebuffer_blit */ #ifdef GL_ANGLE_framebuffer_multisample if (glewExperimental || GLEW_ANGLE_framebuffer_multisample) GLEW_ANGLE_framebuffer_multisample = !_glewInit_GL_ANGLE_framebuffer_multisample(); #endif /* GL_ANGLE_framebuffer_multisample */ #ifdef GL_ANGLE_instanced_arrays if (glewExperimental || GLEW_ANGLE_instanced_arrays) GLEW_ANGLE_instanced_arrays = !_glewInit_GL_ANGLE_instanced_arrays(); #endif /* GL_ANGLE_instanced_arrays */ #ifdef GL_ANGLE_timer_query if (glewExperimental || GLEW_ANGLE_timer_query) GLEW_ANGLE_timer_query = !_glewInit_GL_ANGLE_timer_query(); #endif /* GL_ANGLE_timer_query */ #ifdef GL_ANGLE_translated_shader_source if (glewExperimental || GLEW_ANGLE_translated_shader_source) GLEW_ANGLE_translated_shader_source = !_glewInit_GL_ANGLE_translated_shader_source(); #endif /* GL_ANGLE_translated_shader_source */ #ifdef GL_APPLE_copy_texture_levels if (glewExperimental || GLEW_APPLE_copy_texture_levels) GLEW_APPLE_copy_texture_levels = !_glewInit_GL_APPLE_copy_texture_levels(); #endif /* GL_APPLE_copy_texture_levels */ #ifdef GL_APPLE_element_array if (glewExperimental || GLEW_APPLE_element_array) GLEW_APPLE_element_array = !_glewInit_GL_APPLE_element_array(); #endif /* GL_APPLE_element_array */ #ifdef GL_APPLE_fence if (glewExperimental || GLEW_APPLE_fence) GLEW_APPLE_fence = !_glewInit_GL_APPLE_fence(); #endif /* GL_APPLE_fence */ #ifdef GL_APPLE_flush_buffer_range if (glewExperimental || GLEW_APPLE_flush_buffer_range) GLEW_APPLE_flush_buffer_range = !_glewInit_GL_APPLE_flush_buffer_range(); #endif /* GL_APPLE_flush_buffer_range */ #ifdef GL_APPLE_framebuffer_multisample if (glewExperimental || GLEW_APPLE_framebuffer_multisample) GLEW_APPLE_framebuffer_multisample = !_glewInit_GL_APPLE_framebuffer_multisample(); #endif /* GL_APPLE_framebuffer_multisample */ #ifdef GL_APPLE_object_purgeable if (glewExperimental || GLEW_APPLE_object_purgeable) GLEW_APPLE_object_purgeable = !_glewInit_GL_APPLE_object_purgeable(); #endif /* GL_APPLE_object_purgeable */ #ifdef GL_APPLE_sync if (glewExperimental || GLEW_APPLE_sync) GLEW_APPLE_sync = !_glewInit_GL_APPLE_sync(); #endif /* GL_APPLE_sync */ #ifdef GL_APPLE_texture_range if (glewExperimental || GLEW_APPLE_texture_range) GLEW_APPLE_texture_range = !_glewInit_GL_APPLE_texture_range(); #endif /* GL_APPLE_texture_range */ #ifdef GL_APPLE_vertex_array_object if (glewExperimental || GLEW_APPLE_vertex_array_object) GLEW_APPLE_vertex_array_object = !_glewInit_GL_APPLE_vertex_array_object(); #endif /* GL_APPLE_vertex_array_object */ #ifdef GL_APPLE_vertex_array_range if (glewExperimental || GLEW_APPLE_vertex_array_range) GLEW_APPLE_vertex_array_range = !_glewInit_GL_APPLE_vertex_array_range(); #endif /* GL_APPLE_vertex_array_range */ #ifdef GL_APPLE_vertex_program_evaluators if (glewExperimental || GLEW_APPLE_vertex_program_evaluators) GLEW_APPLE_vertex_program_evaluators = !_glewInit_GL_APPLE_vertex_program_evaluators(); #endif /* GL_APPLE_vertex_program_evaluators */ #ifdef GL_ARB_ES2_compatibility if (glewExperimental || GLEW_ARB_ES2_compatibility) GLEW_ARB_ES2_compatibility = !_glewInit_GL_ARB_ES2_compatibility(); #endif /* GL_ARB_ES2_compatibility */ #ifdef GL_ARB_ES3_1_compatibility if (glewExperimental || GLEW_ARB_ES3_1_compatibility) GLEW_ARB_ES3_1_compatibility = !_glewInit_GL_ARB_ES3_1_compatibility(); #endif /* GL_ARB_ES3_1_compatibility */ #ifdef GL_ARB_ES3_2_compatibility if (glewExperimental || GLEW_ARB_ES3_2_compatibility) GLEW_ARB_ES3_2_compatibility = !_glewInit_GL_ARB_ES3_2_compatibility(); #endif /* GL_ARB_ES3_2_compatibility */ #ifdef GL_ARB_base_instance if (glewExperimental || GLEW_ARB_base_instance) GLEW_ARB_base_instance = !_glewInit_GL_ARB_base_instance(); #endif /* GL_ARB_base_instance */ #ifdef GL_ARB_bindless_texture if (glewExperimental || GLEW_ARB_bindless_texture) GLEW_ARB_bindless_texture = !_glewInit_GL_ARB_bindless_texture(); #endif /* GL_ARB_bindless_texture */ #ifdef GL_ARB_blend_func_extended if (glewExperimental || GLEW_ARB_blend_func_extended) GLEW_ARB_blend_func_extended = !_glewInit_GL_ARB_blend_func_extended(); #endif /* GL_ARB_blend_func_extended */ #ifdef GL_ARB_buffer_storage if (glewExperimental || GLEW_ARB_buffer_storage) GLEW_ARB_buffer_storage = !_glewInit_GL_ARB_buffer_storage(); #endif /* GL_ARB_buffer_storage */ #ifdef GL_ARB_cl_event if (glewExperimental || GLEW_ARB_cl_event) GLEW_ARB_cl_event = !_glewInit_GL_ARB_cl_event(); #endif /* GL_ARB_cl_event */ #ifdef GL_ARB_clear_buffer_object if (glewExperimental || GLEW_ARB_clear_buffer_object) GLEW_ARB_clear_buffer_object = !_glewInit_GL_ARB_clear_buffer_object(); #endif /* GL_ARB_clear_buffer_object */ #ifdef GL_ARB_clear_texture if (glewExperimental || GLEW_ARB_clear_texture) GLEW_ARB_clear_texture = !_glewInit_GL_ARB_clear_texture(); #endif /* GL_ARB_clear_texture */ #ifdef GL_ARB_clip_control if (glewExperimental || GLEW_ARB_clip_control) GLEW_ARB_clip_control = !_glewInit_GL_ARB_clip_control(); #endif /* GL_ARB_clip_control */ #ifdef GL_ARB_color_buffer_float if (glewExperimental || GLEW_ARB_color_buffer_float) GLEW_ARB_color_buffer_float = !_glewInit_GL_ARB_color_buffer_float(); #endif /* GL_ARB_color_buffer_float */ #ifdef GL_ARB_compute_shader if (glewExperimental || GLEW_ARB_compute_shader) GLEW_ARB_compute_shader = !_glewInit_GL_ARB_compute_shader(); #endif /* GL_ARB_compute_shader */ #ifdef GL_ARB_compute_variable_group_size if (glewExperimental || GLEW_ARB_compute_variable_group_size) GLEW_ARB_compute_variable_group_size = !_glewInit_GL_ARB_compute_variable_group_size(); #endif /* GL_ARB_compute_variable_group_size */ #ifdef GL_ARB_copy_buffer if (glewExperimental || GLEW_ARB_copy_buffer) GLEW_ARB_copy_buffer = !_glewInit_GL_ARB_copy_buffer(); #endif /* GL_ARB_copy_buffer */ #ifdef GL_ARB_copy_image if (glewExperimental || GLEW_ARB_copy_image) GLEW_ARB_copy_image = !_glewInit_GL_ARB_copy_image(); #endif /* GL_ARB_copy_image */ #ifdef GL_ARB_debug_output if (glewExperimental || GLEW_ARB_debug_output) GLEW_ARB_debug_output = !_glewInit_GL_ARB_debug_output(); #endif /* GL_ARB_debug_output */ #ifdef GL_ARB_direct_state_access if (glewExperimental || GLEW_ARB_direct_state_access) GLEW_ARB_direct_state_access = !_glewInit_GL_ARB_direct_state_access(); #endif /* GL_ARB_direct_state_access */ #ifdef GL_ARB_draw_buffers if (glewExperimental || GLEW_ARB_draw_buffers) GLEW_ARB_draw_buffers = !_glewInit_GL_ARB_draw_buffers(); #endif /* GL_ARB_draw_buffers */ #ifdef GL_ARB_draw_buffers_blend if (glewExperimental || GLEW_ARB_draw_buffers_blend) GLEW_ARB_draw_buffers_blend = !_glewInit_GL_ARB_draw_buffers_blend(); #endif /* GL_ARB_draw_buffers_blend */ #ifdef GL_ARB_draw_elements_base_vertex if (glewExperimental || GLEW_ARB_draw_elements_base_vertex) GLEW_ARB_draw_elements_base_vertex = !_glewInit_GL_ARB_draw_elements_base_vertex(); #endif /* GL_ARB_draw_elements_base_vertex */ #ifdef GL_ARB_draw_indirect if (glewExperimental || GLEW_ARB_draw_indirect) GLEW_ARB_draw_indirect = !_glewInit_GL_ARB_draw_indirect(); #endif /* GL_ARB_draw_indirect */ #ifdef GL_ARB_framebuffer_no_attachments if (glewExperimental || GLEW_ARB_framebuffer_no_attachments) GLEW_ARB_framebuffer_no_attachments = !_glewInit_GL_ARB_framebuffer_no_attachments(); #endif /* GL_ARB_framebuffer_no_attachments */ #ifdef GL_ARB_framebuffer_object if (glewExperimental || GLEW_ARB_framebuffer_object) GLEW_ARB_framebuffer_object = !_glewInit_GL_ARB_framebuffer_object(); #endif /* GL_ARB_framebuffer_object */ #ifdef GL_ARB_geometry_shader4 if (glewExperimental || GLEW_ARB_geometry_shader4) GLEW_ARB_geometry_shader4 = !_glewInit_GL_ARB_geometry_shader4(); #endif /* GL_ARB_geometry_shader4 */ #ifdef GL_ARB_get_program_binary if (glewExperimental || GLEW_ARB_get_program_binary) GLEW_ARB_get_program_binary = !_glewInit_GL_ARB_get_program_binary(); #endif /* GL_ARB_get_program_binary */ #ifdef GL_ARB_get_texture_sub_image if (glewExperimental || GLEW_ARB_get_texture_sub_image) GLEW_ARB_get_texture_sub_image = !_glewInit_GL_ARB_get_texture_sub_image(); #endif /* GL_ARB_get_texture_sub_image */ #ifdef GL_ARB_gl_spirv if (glewExperimental || GLEW_ARB_gl_spirv) GLEW_ARB_gl_spirv = !_glewInit_GL_ARB_gl_spirv(); #endif /* GL_ARB_gl_spirv */ #ifdef GL_ARB_gpu_shader_fp64 if (glewExperimental || GLEW_ARB_gpu_shader_fp64) GLEW_ARB_gpu_shader_fp64 = !_glewInit_GL_ARB_gpu_shader_fp64(); #endif /* GL_ARB_gpu_shader_fp64 */ #ifdef GL_ARB_gpu_shader_int64 if (glewExperimental || GLEW_ARB_gpu_shader_int64) GLEW_ARB_gpu_shader_int64 = !_glewInit_GL_ARB_gpu_shader_int64(); #endif /* GL_ARB_gpu_shader_int64 */ #ifdef GL_ARB_imaging if (glewExperimental || GLEW_ARB_imaging) GLEW_ARB_imaging = !_glewInit_GL_ARB_imaging(); #endif /* GL_ARB_imaging */ #ifdef GL_ARB_indirect_parameters if (glewExperimental || GLEW_ARB_indirect_parameters) GLEW_ARB_indirect_parameters = !_glewInit_GL_ARB_indirect_parameters(); #endif /* GL_ARB_indirect_parameters */ #ifdef GL_ARB_instanced_arrays if (glewExperimental || GLEW_ARB_instanced_arrays) GLEW_ARB_instanced_arrays = !_glewInit_GL_ARB_instanced_arrays(); #endif /* GL_ARB_instanced_arrays */ #ifdef GL_ARB_internalformat_query if (glewExperimental || GLEW_ARB_internalformat_query) GLEW_ARB_internalformat_query = !_glewInit_GL_ARB_internalformat_query(); #endif /* GL_ARB_internalformat_query */ #ifdef GL_ARB_internalformat_query2 if (glewExperimental || GLEW_ARB_internalformat_query2) GLEW_ARB_internalformat_query2 = !_glewInit_GL_ARB_internalformat_query2(); #endif /* GL_ARB_internalformat_query2 */ #ifdef GL_ARB_invalidate_subdata if (glewExperimental || GLEW_ARB_invalidate_subdata) GLEW_ARB_invalidate_subdata = !_glewInit_GL_ARB_invalidate_subdata(); #endif /* GL_ARB_invalidate_subdata */ #ifdef GL_ARB_map_buffer_range if (glewExperimental || GLEW_ARB_map_buffer_range) GLEW_ARB_map_buffer_range = !_glewInit_GL_ARB_map_buffer_range(); #endif /* GL_ARB_map_buffer_range */ #ifdef GL_ARB_matrix_palette if (glewExperimental || GLEW_ARB_matrix_palette) GLEW_ARB_matrix_palette = !_glewInit_GL_ARB_matrix_palette(); #endif /* GL_ARB_matrix_palette */ #ifdef GL_ARB_multi_bind if (glewExperimental || GLEW_ARB_multi_bind) GLEW_ARB_multi_bind = !_glewInit_GL_ARB_multi_bind(); #endif /* GL_ARB_multi_bind */ #ifdef GL_ARB_multi_draw_indirect if (glewExperimental || GLEW_ARB_multi_draw_indirect) GLEW_ARB_multi_draw_indirect = !_glewInit_GL_ARB_multi_draw_indirect(); #endif /* GL_ARB_multi_draw_indirect */ #ifdef GL_ARB_multisample if (glewExperimental || GLEW_ARB_multisample) GLEW_ARB_multisample = !_glewInit_GL_ARB_multisample(); #endif /* GL_ARB_multisample */ #ifdef GL_ARB_multitexture if (glewExperimental || GLEW_ARB_multitexture) GLEW_ARB_multitexture = !_glewInit_GL_ARB_multitexture(); #endif /* GL_ARB_multitexture */ #ifdef GL_ARB_occlusion_query if (glewExperimental || GLEW_ARB_occlusion_query) GLEW_ARB_occlusion_query = !_glewInit_GL_ARB_occlusion_query(); #endif /* GL_ARB_occlusion_query */ #ifdef GL_ARB_parallel_shader_compile if (glewExperimental || GLEW_ARB_parallel_shader_compile) GLEW_ARB_parallel_shader_compile = !_glewInit_GL_ARB_parallel_shader_compile(); #endif /* GL_ARB_parallel_shader_compile */ #ifdef GL_ARB_point_parameters if (glewExperimental || GLEW_ARB_point_parameters) GLEW_ARB_point_parameters = !_glewInit_GL_ARB_point_parameters(); #endif /* GL_ARB_point_parameters */ #ifdef GL_ARB_polygon_offset_clamp if (glewExperimental || GLEW_ARB_polygon_offset_clamp) GLEW_ARB_polygon_offset_clamp = !_glewInit_GL_ARB_polygon_offset_clamp(); #endif /* GL_ARB_polygon_offset_clamp */ #ifdef GL_ARB_program_interface_query if (glewExperimental || GLEW_ARB_program_interface_query) GLEW_ARB_program_interface_query = !_glewInit_GL_ARB_program_interface_query(); #endif /* GL_ARB_program_interface_query */ #ifdef GL_ARB_provoking_vertex if (glewExperimental || GLEW_ARB_provoking_vertex) GLEW_ARB_provoking_vertex = !_glewInit_GL_ARB_provoking_vertex(); #endif /* GL_ARB_provoking_vertex */ #ifdef GL_ARB_robustness if (glewExperimental || GLEW_ARB_robustness) GLEW_ARB_robustness = !_glewInit_GL_ARB_robustness(); #endif /* GL_ARB_robustness */ #ifdef GL_ARB_sample_locations if (glewExperimental || GLEW_ARB_sample_locations) GLEW_ARB_sample_locations = !_glewInit_GL_ARB_sample_locations(); #endif /* GL_ARB_sample_locations */ #ifdef GL_ARB_sample_shading if (glewExperimental || GLEW_ARB_sample_shading) GLEW_ARB_sample_shading = !_glewInit_GL_ARB_sample_shading(); #endif /* GL_ARB_sample_shading */ #ifdef GL_ARB_sampler_objects if (glewExperimental || GLEW_ARB_sampler_objects) GLEW_ARB_sampler_objects = !_glewInit_GL_ARB_sampler_objects(); #endif /* GL_ARB_sampler_objects */ #ifdef GL_ARB_separate_shader_objects if (glewExperimental || GLEW_ARB_separate_shader_objects) GLEW_ARB_separate_shader_objects = !_glewInit_GL_ARB_separate_shader_objects(); #endif /* GL_ARB_separate_shader_objects */ #ifdef GL_ARB_shader_atomic_counters if (glewExperimental || GLEW_ARB_shader_atomic_counters) GLEW_ARB_shader_atomic_counters = !_glewInit_GL_ARB_shader_atomic_counters(); #endif /* GL_ARB_shader_atomic_counters */ #ifdef GL_ARB_shader_image_load_store if (glewExperimental || GLEW_ARB_shader_image_load_store) GLEW_ARB_shader_image_load_store = !_glewInit_GL_ARB_shader_image_load_store(); #endif /* GL_ARB_shader_image_load_store */ #ifdef GL_ARB_shader_objects if (glewExperimental || GLEW_ARB_shader_objects) GLEW_ARB_shader_objects = !_glewInit_GL_ARB_shader_objects(); #endif /* GL_ARB_shader_objects */ #ifdef GL_ARB_shader_storage_buffer_object if (glewExperimental || GLEW_ARB_shader_storage_buffer_object) GLEW_ARB_shader_storage_buffer_object = !_glewInit_GL_ARB_shader_storage_buffer_object(); #endif /* GL_ARB_shader_storage_buffer_object */ #ifdef GL_ARB_shader_subroutine if (glewExperimental || GLEW_ARB_shader_subroutine) GLEW_ARB_shader_subroutine = !_glewInit_GL_ARB_shader_subroutine(); #endif /* GL_ARB_shader_subroutine */ #ifdef GL_ARB_shading_language_include if (glewExperimental || GLEW_ARB_shading_language_include) GLEW_ARB_shading_language_include = !_glewInit_GL_ARB_shading_language_include(); #endif /* GL_ARB_shading_language_include */ #ifdef GL_ARB_sparse_buffer if (glewExperimental || GLEW_ARB_sparse_buffer) GLEW_ARB_sparse_buffer = !_glewInit_GL_ARB_sparse_buffer(); #endif /* GL_ARB_sparse_buffer */ #ifdef GL_ARB_sparse_texture if (glewExperimental || GLEW_ARB_sparse_texture) GLEW_ARB_sparse_texture = !_glewInit_GL_ARB_sparse_texture(); #endif /* GL_ARB_sparse_texture */ #ifdef GL_ARB_sync if (glewExperimental || GLEW_ARB_sync) GLEW_ARB_sync = !_glewInit_GL_ARB_sync(); #endif /* GL_ARB_sync */ #ifdef GL_ARB_tessellation_shader if (glewExperimental || GLEW_ARB_tessellation_shader) GLEW_ARB_tessellation_shader = !_glewInit_GL_ARB_tessellation_shader(); #endif /* GL_ARB_tessellation_shader */ #ifdef GL_ARB_texture_barrier if (glewExperimental || GLEW_ARB_texture_barrier) GLEW_ARB_texture_barrier = !_glewInit_GL_ARB_texture_barrier(); #endif /* GL_ARB_texture_barrier */ #ifdef GL_ARB_texture_buffer_object if (glewExperimental || GLEW_ARB_texture_buffer_object) GLEW_ARB_texture_buffer_object = !_glewInit_GL_ARB_texture_buffer_object(); #endif /* GL_ARB_texture_buffer_object */ #ifdef GL_ARB_texture_buffer_range if (glewExperimental || GLEW_ARB_texture_buffer_range) GLEW_ARB_texture_buffer_range = !_glewInit_GL_ARB_texture_buffer_range(); #endif /* GL_ARB_texture_buffer_range */ #ifdef GL_ARB_texture_compression if (glewExperimental || GLEW_ARB_texture_compression) GLEW_ARB_texture_compression = !_glewInit_GL_ARB_texture_compression(); #endif /* GL_ARB_texture_compression */ #ifdef GL_ARB_texture_multisample if (glewExperimental || GLEW_ARB_texture_multisample) GLEW_ARB_texture_multisample = !_glewInit_GL_ARB_texture_multisample(); #endif /* GL_ARB_texture_multisample */ #ifdef GL_ARB_texture_storage if (glewExperimental || GLEW_ARB_texture_storage) GLEW_ARB_texture_storage = !_glewInit_GL_ARB_texture_storage(); #endif /* GL_ARB_texture_storage */ #ifdef GL_ARB_texture_storage_multisample if (glewExperimental || GLEW_ARB_texture_storage_multisample) GLEW_ARB_texture_storage_multisample = !_glewInit_GL_ARB_texture_storage_multisample(); #endif /* GL_ARB_texture_storage_multisample */ #ifdef GL_ARB_texture_view if (glewExperimental || GLEW_ARB_texture_view) GLEW_ARB_texture_view = !_glewInit_GL_ARB_texture_view(); #endif /* GL_ARB_texture_view */ #ifdef GL_ARB_timer_query if (glewExperimental || GLEW_ARB_timer_query) GLEW_ARB_timer_query = !_glewInit_GL_ARB_timer_query(); #endif /* GL_ARB_timer_query */ #ifdef GL_ARB_transform_feedback2 if (glewExperimental || GLEW_ARB_transform_feedback2) GLEW_ARB_transform_feedback2 = !_glewInit_GL_ARB_transform_feedback2(); #endif /* GL_ARB_transform_feedback2 */ #ifdef GL_ARB_transform_feedback3 if (glewExperimental || GLEW_ARB_transform_feedback3) GLEW_ARB_transform_feedback3 = !_glewInit_GL_ARB_transform_feedback3(); #endif /* GL_ARB_transform_feedback3 */ #ifdef GL_ARB_transform_feedback_instanced if (glewExperimental || GLEW_ARB_transform_feedback_instanced) GLEW_ARB_transform_feedback_instanced = !_glewInit_GL_ARB_transform_feedback_instanced(); #endif /* GL_ARB_transform_feedback_instanced */ #ifdef GL_ARB_transpose_matrix if (glewExperimental || GLEW_ARB_transpose_matrix) GLEW_ARB_transpose_matrix = !_glewInit_GL_ARB_transpose_matrix(); #endif /* GL_ARB_transpose_matrix */ #ifdef GL_ARB_uniform_buffer_object if (glewExperimental || GLEW_ARB_uniform_buffer_object) GLEW_ARB_uniform_buffer_object = !_glewInit_GL_ARB_uniform_buffer_object(); #endif /* GL_ARB_uniform_buffer_object */ #ifdef GL_ARB_vertex_array_object if (glewExperimental || GLEW_ARB_vertex_array_object) GLEW_ARB_vertex_array_object = !_glewInit_GL_ARB_vertex_array_object(); #endif /* GL_ARB_vertex_array_object */ #ifdef GL_ARB_vertex_attrib_64bit if (glewExperimental || GLEW_ARB_vertex_attrib_64bit) GLEW_ARB_vertex_attrib_64bit = !_glewInit_GL_ARB_vertex_attrib_64bit(); #endif /* GL_ARB_vertex_attrib_64bit */ #ifdef GL_ARB_vertex_attrib_binding if (glewExperimental || GLEW_ARB_vertex_attrib_binding) GLEW_ARB_vertex_attrib_binding = !_glewInit_GL_ARB_vertex_attrib_binding(); #endif /* GL_ARB_vertex_attrib_binding */ #ifdef GL_ARB_vertex_blend if (glewExperimental || GLEW_ARB_vertex_blend) GLEW_ARB_vertex_blend = !_glewInit_GL_ARB_vertex_blend(); #endif /* GL_ARB_vertex_blend */ #ifdef GL_ARB_vertex_buffer_object if (glewExperimental || GLEW_ARB_vertex_buffer_object) GLEW_ARB_vertex_buffer_object = !_glewInit_GL_ARB_vertex_buffer_object(); #endif /* GL_ARB_vertex_buffer_object */ #ifdef GL_ARB_vertex_program if (glewExperimental || GLEW_ARB_vertex_program) GLEW_ARB_vertex_program = !_glewInit_GL_ARB_vertex_program(); #endif /* GL_ARB_vertex_program */ #ifdef GL_ARB_vertex_shader if (glewExperimental || GLEW_ARB_vertex_shader) { GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(); _glewInit_GL_ARB_vertex_program(); } #endif /* GL_ARB_vertex_shader */ #ifdef GL_ARB_vertex_type_2_10_10_10_rev if (glewExperimental || GLEW_ARB_vertex_type_2_10_10_10_rev) GLEW_ARB_vertex_type_2_10_10_10_rev = !_glewInit_GL_ARB_vertex_type_2_10_10_10_rev(); #endif /* GL_ARB_vertex_type_2_10_10_10_rev */ #ifdef GL_ARB_viewport_array if (glewExperimental || GLEW_ARB_viewport_array) GLEW_ARB_viewport_array = !_glewInit_GL_ARB_viewport_array(); #endif /* GL_ARB_viewport_array */ #ifdef GL_ARB_window_pos if (glewExperimental || GLEW_ARB_window_pos) GLEW_ARB_window_pos = !_glewInit_GL_ARB_window_pos(); #endif /* GL_ARB_window_pos */ #ifdef GL_ATI_draw_buffers if (glewExperimental || GLEW_ATI_draw_buffers) GLEW_ATI_draw_buffers = !_glewInit_GL_ATI_draw_buffers(); #endif /* GL_ATI_draw_buffers */ #ifdef GL_ATI_element_array if (glewExperimental || GLEW_ATI_element_array) GLEW_ATI_element_array = !_glewInit_GL_ATI_element_array(); #endif /* GL_ATI_element_array */ #ifdef GL_ATI_envmap_bumpmap if (glewExperimental || GLEW_ATI_envmap_bumpmap) GLEW_ATI_envmap_bumpmap = !_glewInit_GL_ATI_envmap_bumpmap(); #endif /* GL_ATI_envmap_bumpmap */ #ifdef GL_ATI_fragment_shader if (glewExperimental || GLEW_ATI_fragment_shader) GLEW_ATI_fragment_shader = !_glewInit_GL_ATI_fragment_shader(); #endif /* GL_ATI_fragment_shader */ #ifdef GL_ATI_map_object_buffer if (glewExperimental || GLEW_ATI_map_object_buffer) GLEW_ATI_map_object_buffer = !_glewInit_GL_ATI_map_object_buffer(); #endif /* GL_ATI_map_object_buffer */ #ifdef GL_ATI_pn_triangles if (glewExperimental || GLEW_ATI_pn_triangles) GLEW_ATI_pn_triangles = !_glewInit_GL_ATI_pn_triangles(); #endif /* GL_ATI_pn_triangles */ #ifdef GL_ATI_separate_stencil if (glewExperimental || GLEW_ATI_separate_stencil) GLEW_ATI_separate_stencil = !_glewInit_GL_ATI_separate_stencil(); #endif /* GL_ATI_separate_stencil */ #ifdef GL_ATI_vertex_array_object if (glewExperimental || GLEW_ATI_vertex_array_object) GLEW_ATI_vertex_array_object = !_glewInit_GL_ATI_vertex_array_object(); #endif /* GL_ATI_vertex_array_object */ #ifdef GL_ATI_vertex_attrib_array_object if (glewExperimental || GLEW_ATI_vertex_attrib_array_object) GLEW_ATI_vertex_attrib_array_object = !_glewInit_GL_ATI_vertex_attrib_array_object(); #endif /* GL_ATI_vertex_attrib_array_object */ #ifdef GL_ATI_vertex_streams if (glewExperimental || GLEW_ATI_vertex_streams) GLEW_ATI_vertex_streams = !_glewInit_GL_ATI_vertex_streams(); #endif /* GL_ATI_vertex_streams */ #ifdef GL_EXT_base_instance if (glewExperimental || GLEW_EXT_base_instance) GLEW_EXT_base_instance = !_glewInit_GL_EXT_base_instance(); #endif /* GL_EXT_base_instance */ #ifdef GL_EXT_bindable_uniform if (glewExperimental || GLEW_EXT_bindable_uniform) GLEW_EXT_bindable_uniform = !_glewInit_GL_EXT_bindable_uniform(); #endif /* GL_EXT_bindable_uniform */ #ifdef GL_EXT_blend_color if (glewExperimental || GLEW_EXT_blend_color) GLEW_EXT_blend_color = !_glewInit_GL_EXT_blend_color(); #endif /* GL_EXT_blend_color */ #ifdef GL_EXT_blend_equation_separate if (glewExperimental || GLEW_EXT_blend_equation_separate) GLEW_EXT_blend_equation_separate = !_glewInit_GL_EXT_blend_equation_separate(); #endif /* GL_EXT_blend_equation_separate */ #ifdef GL_EXT_blend_func_extended if (glewExperimental || GLEW_EXT_blend_func_extended) GLEW_EXT_blend_func_extended = !_glewInit_GL_EXT_blend_func_extended(); #endif /* GL_EXT_blend_func_extended */ #ifdef GL_EXT_blend_func_separate if (glewExperimental || GLEW_EXT_blend_func_separate) GLEW_EXT_blend_func_separate = !_glewInit_GL_EXT_blend_func_separate(); #endif /* GL_EXT_blend_func_separate */ #ifdef GL_EXT_blend_minmax if (glewExperimental || GLEW_EXT_blend_minmax) GLEW_EXT_blend_minmax = !_glewInit_GL_EXT_blend_minmax(); #endif /* GL_EXT_blend_minmax */ #ifdef GL_EXT_buffer_storage if (glewExperimental || GLEW_EXT_buffer_storage) GLEW_EXT_buffer_storage = !_glewInit_GL_EXT_buffer_storage(); #endif /* GL_EXT_buffer_storage */ #ifdef GL_EXT_clear_texture if (glewExperimental || GLEW_EXT_clear_texture) GLEW_EXT_clear_texture = !_glewInit_GL_EXT_clear_texture(); #endif /* GL_EXT_clear_texture */ #ifdef GL_EXT_color_subtable if (glewExperimental || GLEW_EXT_color_subtable) GLEW_EXT_color_subtable = !_glewInit_GL_EXT_color_subtable(); #endif /* GL_EXT_color_subtable */ #ifdef GL_EXT_compiled_vertex_array if (glewExperimental || GLEW_EXT_compiled_vertex_array) GLEW_EXT_compiled_vertex_array = !_glewInit_GL_EXT_compiled_vertex_array(); #endif /* GL_EXT_compiled_vertex_array */ #ifdef GL_EXT_convolution if (glewExperimental || GLEW_EXT_convolution) GLEW_EXT_convolution = !_glewInit_GL_EXT_convolution(); #endif /* GL_EXT_convolution */ #ifdef GL_EXT_coordinate_frame if (glewExperimental || GLEW_EXT_coordinate_frame) GLEW_EXT_coordinate_frame = !_glewInit_GL_EXT_coordinate_frame(); #endif /* GL_EXT_coordinate_frame */ #ifdef GL_EXT_copy_image if (glewExperimental || GLEW_EXT_copy_image) GLEW_EXT_copy_image = !_glewInit_GL_EXT_copy_image(); #endif /* GL_EXT_copy_image */ #ifdef GL_EXT_copy_texture if (glewExperimental || GLEW_EXT_copy_texture) GLEW_EXT_copy_texture = !_glewInit_GL_EXT_copy_texture(); #endif /* GL_EXT_copy_texture */ #ifdef GL_EXT_cull_vertex if (glewExperimental || GLEW_EXT_cull_vertex) GLEW_EXT_cull_vertex = !_glewInit_GL_EXT_cull_vertex(); #endif /* GL_EXT_cull_vertex */ #ifdef GL_EXT_debug_label if (glewExperimental || GLEW_EXT_debug_label) GLEW_EXT_debug_label = !_glewInit_GL_EXT_debug_label(); #endif /* GL_EXT_debug_label */ #ifdef GL_EXT_debug_marker if (glewExperimental || GLEW_EXT_debug_marker) GLEW_EXT_debug_marker = !_glewInit_GL_EXT_debug_marker(); #endif /* GL_EXT_debug_marker */ #ifdef GL_EXT_depth_bounds_test if (glewExperimental || GLEW_EXT_depth_bounds_test) GLEW_EXT_depth_bounds_test = !_glewInit_GL_EXT_depth_bounds_test(); #endif /* GL_EXT_depth_bounds_test */ #ifdef GL_EXT_direct_state_access if (glewExperimental || GLEW_EXT_direct_state_access) GLEW_EXT_direct_state_access = !_glewInit_GL_EXT_direct_state_access(); #endif /* GL_EXT_direct_state_access */ #ifdef GL_EXT_discard_framebuffer if (glewExperimental || GLEW_EXT_discard_framebuffer) GLEW_EXT_discard_framebuffer = !_glewInit_GL_EXT_discard_framebuffer(); #endif /* GL_EXT_discard_framebuffer */ #ifdef GL_EXT_draw_buffers if (glewExperimental || GLEW_EXT_draw_buffers) GLEW_EXT_draw_buffers = !_glewInit_GL_EXT_draw_buffers(); #endif /* GL_EXT_draw_buffers */ #ifdef GL_EXT_draw_buffers2 if (glewExperimental || GLEW_EXT_draw_buffers2) GLEW_EXT_draw_buffers2 = !_glewInit_GL_EXT_draw_buffers2(); #endif /* GL_EXT_draw_buffers2 */ #ifdef GL_EXT_draw_buffers_indexed if (glewExperimental || GLEW_EXT_draw_buffers_indexed) GLEW_EXT_draw_buffers_indexed = !_glewInit_GL_EXT_draw_buffers_indexed(); #endif /* GL_EXT_draw_buffers_indexed */ #ifdef GL_EXT_draw_elements_base_vertex if (glewExperimental || GLEW_EXT_draw_elements_base_vertex) GLEW_EXT_draw_elements_base_vertex = !_glewInit_GL_EXT_draw_elements_base_vertex(); #endif /* GL_EXT_draw_elements_base_vertex */ #ifdef GL_EXT_draw_instanced if (glewExperimental || GLEW_EXT_draw_instanced) GLEW_EXT_draw_instanced = !_glewInit_GL_EXT_draw_instanced(); #endif /* GL_EXT_draw_instanced */ #ifdef GL_EXT_draw_range_elements if (glewExperimental || GLEW_EXT_draw_range_elements) GLEW_EXT_draw_range_elements = !_glewInit_GL_EXT_draw_range_elements(); #endif /* GL_EXT_draw_range_elements */ #ifdef GL_EXT_external_buffer if (glewExperimental || GLEW_EXT_external_buffer) GLEW_EXT_external_buffer = !_glewInit_GL_EXT_external_buffer(); #endif /* GL_EXT_external_buffer */ #ifdef GL_EXT_fog_coord if (glewExperimental || GLEW_EXT_fog_coord) GLEW_EXT_fog_coord = !_glewInit_GL_EXT_fog_coord(); #endif /* GL_EXT_fog_coord */ #ifdef GL_EXT_fragment_lighting if (glewExperimental || GLEW_EXT_fragment_lighting) GLEW_EXT_fragment_lighting = !_glewInit_GL_EXT_fragment_lighting(); #endif /* GL_EXT_fragment_lighting */ #ifdef GL_EXT_framebuffer_blit if (glewExperimental || GLEW_EXT_framebuffer_blit) GLEW_EXT_framebuffer_blit = !_glewInit_GL_EXT_framebuffer_blit(); #endif /* GL_EXT_framebuffer_blit */ #ifdef GL_EXT_framebuffer_multisample if (glewExperimental || GLEW_EXT_framebuffer_multisample) GLEW_EXT_framebuffer_multisample = !_glewInit_GL_EXT_framebuffer_multisample(); #endif /* GL_EXT_framebuffer_multisample */ #ifdef GL_EXT_framebuffer_object if (glewExperimental || GLEW_EXT_framebuffer_object) GLEW_EXT_framebuffer_object = !_glewInit_GL_EXT_framebuffer_object(); #endif /* GL_EXT_framebuffer_object */ #ifdef GL_EXT_geometry_shader4 if (glewExperimental || GLEW_EXT_geometry_shader4) GLEW_EXT_geometry_shader4 = !_glewInit_GL_EXT_geometry_shader4(); #endif /* GL_EXT_geometry_shader4 */ #ifdef GL_EXT_gpu_program_parameters if (glewExperimental || GLEW_EXT_gpu_program_parameters) GLEW_EXT_gpu_program_parameters = !_glewInit_GL_EXT_gpu_program_parameters(); #endif /* GL_EXT_gpu_program_parameters */ #ifdef GL_EXT_gpu_shader4 if (glewExperimental || GLEW_EXT_gpu_shader4) GLEW_EXT_gpu_shader4 = !_glewInit_GL_EXT_gpu_shader4(); #endif /* GL_EXT_gpu_shader4 */ #ifdef GL_EXT_histogram if (glewExperimental || GLEW_EXT_histogram) GLEW_EXT_histogram = !_glewInit_GL_EXT_histogram(); #endif /* GL_EXT_histogram */ #ifdef GL_EXT_index_func if (glewExperimental || GLEW_EXT_index_func) GLEW_EXT_index_func = !_glewInit_GL_EXT_index_func(); #endif /* GL_EXT_index_func */ #ifdef GL_EXT_index_material if (glewExperimental || GLEW_EXT_index_material) GLEW_EXT_index_material = !_glewInit_GL_EXT_index_material(); #endif /* GL_EXT_index_material */ #ifdef GL_EXT_instanced_arrays if (glewExperimental || GLEW_EXT_instanced_arrays) GLEW_EXT_instanced_arrays = !_glewInit_GL_EXT_instanced_arrays(); #endif /* GL_EXT_instanced_arrays */ #ifdef GL_EXT_light_texture if (glewExperimental || GLEW_EXT_light_texture) GLEW_EXT_light_texture = !_glewInit_GL_EXT_light_texture(); #endif /* GL_EXT_light_texture */ #ifdef GL_EXT_map_buffer_range if (glewExperimental || GLEW_EXT_map_buffer_range) GLEW_EXT_map_buffer_range = !_glewInit_GL_EXT_map_buffer_range(); #endif /* GL_EXT_map_buffer_range */ #ifdef GL_EXT_memory_object if (glewExperimental || GLEW_EXT_memory_object) GLEW_EXT_memory_object = !_glewInit_GL_EXT_memory_object(); #endif /* GL_EXT_memory_object */ #ifdef GL_EXT_memory_object_fd if (glewExperimental || GLEW_EXT_memory_object_fd) GLEW_EXT_memory_object_fd = !_glewInit_GL_EXT_memory_object_fd(); #endif /* GL_EXT_memory_object_fd */ #ifdef GL_EXT_memory_object_win32 if (glewExperimental || GLEW_EXT_memory_object_win32) GLEW_EXT_memory_object_win32 = !_glewInit_GL_EXT_memory_object_win32(); #endif /* GL_EXT_memory_object_win32 */ #ifdef GL_EXT_multi_draw_arrays if (glewExperimental || GLEW_EXT_multi_draw_arrays) GLEW_EXT_multi_draw_arrays = !_glewInit_GL_EXT_multi_draw_arrays(); #endif /* GL_EXT_multi_draw_arrays */ #ifdef GL_EXT_multi_draw_indirect if (glewExperimental || GLEW_EXT_multi_draw_indirect) GLEW_EXT_multi_draw_indirect = !_glewInit_GL_EXT_multi_draw_indirect(); #endif /* GL_EXT_multi_draw_indirect */ #ifdef GL_EXT_multisample if (glewExperimental || GLEW_EXT_multisample) GLEW_EXT_multisample = !_glewInit_GL_EXT_multisample(); #endif /* GL_EXT_multisample */ #ifdef GL_EXT_multisampled_render_to_texture if (glewExperimental || GLEW_EXT_multisampled_render_to_texture) GLEW_EXT_multisampled_render_to_texture = !_glewInit_GL_EXT_multisampled_render_to_texture(); #endif /* GL_EXT_multisampled_render_to_texture */ #ifdef GL_EXT_multiview_draw_buffers if (glewExperimental || GLEW_EXT_multiview_draw_buffers) GLEW_EXT_multiview_draw_buffers = !_glewInit_GL_EXT_multiview_draw_buffers(); #endif /* GL_EXT_multiview_draw_buffers */ #ifdef GL_EXT_paletted_texture if (glewExperimental || GLEW_EXT_paletted_texture) GLEW_EXT_paletted_texture = !_glewInit_GL_EXT_paletted_texture(); #endif /* GL_EXT_paletted_texture */ #ifdef GL_EXT_pixel_transform if (glewExperimental || GLEW_EXT_pixel_transform) GLEW_EXT_pixel_transform = !_glewInit_GL_EXT_pixel_transform(); #endif /* GL_EXT_pixel_transform */ #ifdef GL_EXT_point_parameters if (glewExperimental || GLEW_EXT_point_parameters) GLEW_EXT_point_parameters = !_glewInit_GL_EXT_point_parameters(); #endif /* GL_EXT_point_parameters */ #ifdef GL_EXT_polygon_offset if (glewExperimental || GLEW_EXT_polygon_offset) GLEW_EXT_polygon_offset = !_glewInit_GL_EXT_polygon_offset(); #endif /* GL_EXT_polygon_offset */ #ifdef GL_EXT_polygon_offset_clamp if (glewExperimental || GLEW_EXT_polygon_offset_clamp) GLEW_EXT_polygon_offset_clamp = !_glewInit_GL_EXT_polygon_offset_clamp(); #endif /* GL_EXT_polygon_offset_clamp */ #ifdef GL_EXT_provoking_vertex if (glewExperimental || GLEW_EXT_provoking_vertex) GLEW_EXT_provoking_vertex = !_glewInit_GL_EXT_provoking_vertex(); #endif /* GL_EXT_provoking_vertex */ #ifdef GL_EXT_raster_multisample if (glewExperimental || GLEW_EXT_raster_multisample) GLEW_EXT_raster_multisample = !_glewInit_GL_EXT_raster_multisample(); #endif /* GL_EXT_raster_multisample */ #ifdef GL_EXT_scene_marker if (glewExperimental || GLEW_EXT_scene_marker) GLEW_EXT_scene_marker = !_glewInit_GL_EXT_scene_marker(); #endif /* GL_EXT_scene_marker */ #ifdef GL_EXT_secondary_color if (glewExperimental || GLEW_EXT_secondary_color) GLEW_EXT_secondary_color = !_glewInit_GL_EXT_secondary_color(); #endif /* GL_EXT_secondary_color */ #ifdef GL_EXT_semaphore if (glewExperimental || GLEW_EXT_semaphore) GLEW_EXT_semaphore = !_glewInit_GL_EXT_semaphore(); #endif /* GL_EXT_semaphore */ #ifdef GL_EXT_semaphore_fd if (glewExperimental || GLEW_EXT_semaphore_fd) GLEW_EXT_semaphore_fd = !_glewInit_GL_EXT_semaphore_fd(); #endif /* GL_EXT_semaphore_fd */ #ifdef GL_EXT_semaphore_win32 if (glewExperimental || GLEW_EXT_semaphore_win32) GLEW_EXT_semaphore_win32 = !_glewInit_GL_EXT_semaphore_win32(); #endif /* GL_EXT_semaphore_win32 */ #ifdef GL_EXT_separate_shader_objects if (glewExperimental || GLEW_EXT_separate_shader_objects) GLEW_EXT_separate_shader_objects = !_glewInit_GL_EXT_separate_shader_objects(); #endif /* GL_EXT_separate_shader_objects */ #ifdef GL_EXT_shader_image_load_store if (glewExperimental || GLEW_EXT_shader_image_load_store) GLEW_EXT_shader_image_load_store = !_glewInit_GL_EXT_shader_image_load_store(); #endif /* GL_EXT_shader_image_load_store */ #ifdef GL_EXT_shader_pixel_local_storage2 if (glewExperimental || GLEW_EXT_shader_pixel_local_storage2) GLEW_EXT_shader_pixel_local_storage2 = !_glewInit_GL_EXT_shader_pixel_local_storage2(); #endif /* GL_EXT_shader_pixel_local_storage2 */ #ifdef GL_EXT_sparse_texture if (glewExperimental || GLEW_EXT_sparse_texture) GLEW_EXT_sparse_texture = !_glewInit_GL_EXT_sparse_texture(); #endif /* GL_EXT_sparse_texture */ #ifdef GL_EXT_stencil_two_side if (glewExperimental || GLEW_EXT_stencil_two_side) GLEW_EXT_stencil_two_side = !_glewInit_GL_EXT_stencil_two_side(); #endif /* GL_EXT_stencil_two_side */ #ifdef GL_EXT_subtexture if (glewExperimental || GLEW_EXT_subtexture) GLEW_EXT_subtexture = !_glewInit_GL_EXT_subtexture(); #endif /* GL_EXT_subtexture */ #ifdef GL_EXT_texture3D if (glewExperimental || GLEW_EXT_texture3D) GLEW_EXT_texture3D = !_glewInit_GL_EXT_texture3D(); #endif /* GL_EXT_texture3D */ #ifdef GL_EXT_texture_array if (glewExperimental || GLEW_EXT_texture_array) GLEW_EXT_texture_array = !_glewInit_GL_EXT_texture_array(); #endif /* GL_EXT_texture_array */ #ifdef GL_EXT_texture_buffer_object if (glewExperimental || GLEW_EXT_texture_buffer_object) GLEW_EXT_texture_buffer_object = !_glewInit_GL_EXT_texture_buffer_object(); #endif /* GL_EXT_texture_buffer_object */ #ifdef GL_EXT_texture_integer if (glewExperimental || GLEW_EXT_texture_integer) GLEW_EXT_texture_integer = !_glewInit_GL_EXT_texture_integer(); #endif /* GL_EXT_texture_integer */ #ifdef GL_EXT_texture_object if (glewExperimental || GLEW_EXT_texture_object) GLEW_EXT_texture_object = !_glewInit_GL_EXT_texture_object(); #endif /* GL_EXT_texture_object */ #ifdef GL_EXT_texture_perturb_normal if (glewExperimental || GLEW_EXT_texture_perturb_normal) GLEW_EXT_texture_perturb_normal = !_glewInit_GL_EXT_texture_perturb_normal(); #endif /* GL_EXT_texture_perturb_normal */ #ifdef GL_EXT_texture_storage if (glewExperimental || GLEW_EXT_texture_storage) GLEW_EXT_texture_storage = !_glewInit_GL_EXT_texture_storage(); #endif /* GL_EXT_texture_storage */ #ifdef GL_EXT_texture_view if (glewExperimental || GLEW_EXT_texture_view) GLEW_EXT_texture_view = !_glewInit_GL_EXT_texture_view(); #endif /* GL_EXT_texture_view */ #ifdef GL_EXT_timer_query if (glewExperimental || GLEW_EXT_timer_query) GLEW_EXT_timer_query = !_glewInit_GL_EXT_timer_query(); #endif /* GL_EXT_timer_query */ #ifdef GL_EXT_transform_feedback if (glewExperimental || GLEW_EXT_transform_feedback) GLEW_EXT_transform_feedback = !_glewInit_GL_EXT_transform_feedback(); #endif /* GL_EXT_transform_feedback */ #ifdef GL_EXT_vertex_array if (glewExperimental || GLEW_EXT_vertex_array) GLEW_EXT_vertex_array = !_glewInit_GL_EXT_vertex_array(); #endif /* GL_EXT_vertex_array */ #ifdef GL_EXT_vertex_array_setXXX if (glewExperimental || GLEW_EXT_vertex_array_setXXX) GLEW_EXT_vertex_array_setXXX = !_glewInit_GL_EXT_vertex_array_setXXX(); #endif /* GL_EXT_vertex_array_setXXX */ #ifdef GL_EXT_vertex_attrib_64bit if (glewExperimental || GLEW_EXT_vertex_attrib_64bit) GLEW_EXT_vertex_attrib_64bit = !_glewInit_GL_EXT_vertex_attrib_64bit(); #endif /* GL_EXT_vertex_attrib_64bit */ #ifdef GL_EXT_vertex_shader if (glewExperimental || GLEW_EXT_vertex_shader) GLEW_EXT_vertex_shader = !_glewInit_GL_EXT_vertex_shader(); #endif /* GL_EXT_vertex_shader */ #ifdef GL_EXT_vertex_weighting if (glewExperimental || GLEW_EXT_vertex_weighting) GLEW_EXT_vertex_weighting = !_glewInit_GL_EXT_vertex_weighting(); #endif /* GL_EXT_vertex_weighting */ #ifdef GL_EXT_win32_keyed_mutex if (glewExperimental || GLEW_EXT_win32_keyed_mutex) GLEW_EXT_win32_keyed_mutex = !_glewInit_GL_EXT_win32_keyed_mutex(); #endif /* GL_EXT_win32_keyed_mutex */ #ifdef GL_EXT_window_rectangles if (glewExperimental || GLEW_EXT_window_rectangles) GLEW_EXT_window_rectangles = !_glewInit_GL_EXT_window_rectangles(); #endif /* GL_EXT_window_rectangles */ #ifdef GL_EXT_x11_sync_object if (glewExperimental || GLEW_EXT_x11_sync_object) GLEW_EXT_x11_sync_object = !_glewInit_GL_EXT_x11_sync_object(); #endif /* GL_EXT_x11_sync_object */ #ifdef GL_GREMEDY_frame_terminator if (glewExperimental || GLEW_GREMEDY_frame_terminator) GLEW_GREMEDY_frame_terminator = !_glewInit_GL_GREMEDY_frame_terminator(); #endif /* GL_GREMEDY_frame_terminator */ #ifdef GL_GREMEDY_string_marker if (glewExperimental || GLEW_GREMEDY_string_marker) GLEW_GREMEDY_string_marker = !_glewInit_GL_GREMEDY_string_marker(); #endif /* GL_GREMEDY_string_marker */ #ifdef GL_HP_image_transform if (glewExperimental || GLEW_HP_image_transform) GLEW_HP_image_transform = !_glewInit_GL_HP_image_transform(); #endif /* GL_HP_image_transform */ #ifdef GL_IBM_multimode_draw_arrays if (glewExperimental || GLEW_IBM_multimode_draw_arrays) GLEW_IBM_multimode_draw_arrays = !_glewInit_GL_IBM_multimode_draw_arrays(); #endif /* GL_IBM_multimode_draw_arrays */ #ifdef GL_IBM_vertex_array_lists if (glewExperimental || GLEW_IBM_vertex_array_lists) GLEW_IBM_vertex_array_lists = !_glewInit_GL_IBM_vertex_array_lists(); #endif /* GL_IBM_vertex_array_lists */ #ifdef GL_INTEL_map_texture if (glewExperimental || GLEW_INTEL_map_texture) GLEW_INTEL_map_texture = !_glewInit_GL_INTEL_map_texture(); #endif /* GL_INTEL_map_texture */ #ifdef GL_INTEL_parallel_arrays if (glewExperimental || GLEW_INTEL_parallel_arrays) GLEW_INTEL_parallel_arrays = !_glewInit_GL_INTEL_parallel_arrays(); #endif /* GL_INTEL_parallel_arrays */ #ifdef GL_INTEL_performance_query if (glewExperimental || GLEW_INTEL_performance_query) GLEW_INTEL_performance_query = !_glewInit_GL_INTEL_performance_query(); #endif /* GL_INTEL_performance_query */ #ifdef GL_INTEL_texture_scissor if (glewExperimental || GLEW_INTEL_texture_scissor) GLEW_INTEL_texture_scissor = !_glewInit_GL_INTEL_texture_scissor(); #endif /* GL_INTEL_texture_scissor */ #ifdef GL_KHR_blend_equation_advanced if (glewExperimental || GLEW_KHR_blend_equation_advanced) GLEW_KHR_blend_equation_advanced = !_glewInit_GL_KHR_blend_equation_advanced(); #endif /* GL_KHR_blend_equation_advanced */ #ifdef GL_KHR_debug if (glewExperimental || GLEW_KHR_debug) GLEW_KHR_debug = !_glewInit_GL_KHR_debug(); #endif /* GL_KHR_debug */ #ifdef GL_KHR_parallel_shader_compile if (glewExperimental || GLEW_KHR_parallel_shader_compile) GLEW_KHR_parallel_shader_compile = !_glewInit_GL_KHR_parallel_shader_compile(); #endif /* GL_KHR_parallel_shader_compile */ #ifdef GL_KHR_robustness if (glewExperimental || GLEW_KHR_robustness) GLEW_KHR_robustness = !_glewInit_GL_KHR_robustness(); #endif /* GL_KHR_robustness */ #ifdef GL_KTX_buffer_region if (glewExperimental || GLEW_KTX_buffer_region) GLEW_KTX_buffer_region = !_glewInit_GL_KTX_buffer_region(); #endif /* GL_KTX_buffer_region */ #ifdef GL_MESA_resize_buffers if (glewExperimental || GLEW_MESA_resize_buffers) GLEW_MESA_resize_buffers = !_glewInit_GL_MESA_resize_buffers(); #endif /* GL_MESA_resize_buffers */ #ifdef GL_MESA_window_pos if (glewExperimental || GLEW_MESA_window_pos) GLEW_MESA_window_pos = !_glewInit_GL_MESA_window_pos(); #endif /* GL_MESA_window_pos */ #ifdef GL_NVX_conditional_render if (glewExperimental || GLEW_NVX_conditional_render) GLEW_NVX_conditional_render = !_glewInit_GL_NVX_conditional_render(); #endif /* GL_NVX_conditional_render */ #ifdef GL_NVX_linked_gpu_multicast if (glewExperimental || GLEW_NVX_linked_gpu_multicast) GLEW_NVX_linked_gpu_multicast = !_glewInit_GL_NVX_linked_gpu_multicast(); #endif /* GL_NVX_linked_gpu_multicast */ #ifdef GL_NV_3dvision_settings if (glewExperimental || GLEW_NV_3dvision_settings) GLEW_NV_3dvision_settings = !_glewInit_GL_NV_3dvision_settings(); #endif /* GL_NV_3dvision_settings */ #ifdef GL_NV_bindless_multi_draw_indirect if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect) GLEW_NV_bindless_multi_draw_indirect = !_glewInit_GL_NV_bindless_multi_draw_indirect(); #endif /* GL_NV_bindless_multi_draw_indirect */ #ifdef GL_NV_bindless_multi_draw_indirect_count if (glewExperimental || GLEW_NV_bindless_multi_draw_indirect_count) GLEW_NV_bindless_multi_draw_indirect_count = !_glewInit_GL_NV_bindless_multi_draw_indirect_count(); #endif /* GL_NV_bindless_multi_draw_indirect_count */ #ifdef GL_NV_bindless_texture if (glewExperimental || GLEW_NV_bindless_texture) GLEW_NV_bindless_texture = !_glewInit_GL_NV_bindless_texture(); #endif /* GL_NV_bindless_texture */ #ifdef GL_NV_blend_equation_advanced if (glewExperimental || GLEW_NV_blend_equation_advanced) GLEW_NV_blend_equation_advanced = !_glewInit_GL_NV_blend_equation_advanced(); #endif /* GL_NV_blend_equation_advanced */ #ifdef GL_NV_clip_space_w_scaling if (glewExperimental || GLEW_NV_clip_space_w_scaling) GLEW_NV_clip_space_w_scaling = !_glewInit_GL_NV_clip_space_w_scaling(); #endif /* GL_NV_clip_space_w_scaling */ #ifdef GL_NV_command_list if (glewExperimental || GLEW_NV_command_list) GLEW_NV_command_list = !_glewInit_GL_NV_command_list(); #endif /* GL_NV_command_list */ #ifdef GL_NV_conditional_render if (glewExperimental || GLEW_NV_conditional_render) GLEW_NV_conditional_render = !_glewInit_GL_NV_conditional_render(); #endif /* GL_NV_conditional_render */ #ifdef GL_NV_conservative_raster if (glewExperimental || GLEW_NV_conservative_raster) GLEW_NV_conservative_raster = !_glewInit_GL_NV_conservative_raster(); #endif /* GL_NV_conservative_raster */ #ifdef GL_NV_conservative_raster_dilate if (glewExperimental || GLEW_NV_conservative_raster_dilate) GLEW_NV_conservative_raster_dilate = !_glewInit_GL_NV_conservative_raster_dilate(); #endif /* GL_NV_conservative_raster_dilate */ #ifdef GL_NV_conservative_raster_pre_snap_triangles if (glewExperimental || GLEW_NV_conservative_raster_pre_snap_triangles) GLEW_NV_conservative_raster_pre_snap_triangles = !_glewInit_GL_NV_conservative_raster_pre_snap_triangles(); #endif /* GL_NV_conservative_raster_pre_snap_triangles */ #ifdef GL_NV_copy_buffer if (glewExperimental || GLEW_NV_copy_buffer) GLEW_NV_copy_buffer = !_glewInit_GL_NV_copy_buffer(); #endif /* GL_NV_copy_buffer */ #ifdef GL_NV_copy_image if (glewExperimental || GLEW_NV_copy_image) GLEW_NV_copy_image = !_glewInit_GL_NV_copy_image(); #endif /* GL_NV_copy_image */ #ifdef GL_NV_depth_buffer_float if (glewExperimental || GLEW_NV_depth_buffer_float) GLEW_NV_depth_buffer_float = !_glewInit_GL_NV_depth_buffer_float(); #endif /* GL_NV_depth_buffer_float */ #ifdef GL_NV_draw_buffers if (glewExperimental || GLEW_NV_draw_buffers) GLEW_NV_draw_buffers = !_glewInit_GL_NV_draw_buffers(); #endif /* GL_NV_draw_buffers */ #ifdef GL_NV_draw_instanced if (glewExperimental || GLEW_NV_draw_instanced) GLEW_NV_draw_instanced = !_glewInit_GL_NV_draw_instanced(); #endif /* GL_NV_draw_instanced */ #ifdef GL_NV_draw_texture if (glewExperimental || GLEW_NV_draw_texture) GLEW_NV_draw_texture = !_glewInit_GL_NV_draw_texture(); #endif /* GL_NV_draw_texture */ #ifdef GL_NV_draw_vulkan_image if (glewExperimental || GLEW_NV_draw_vulkan_image) GLEW_NV_draw_vulkan_image = !_glewInit_GL_NV_draw_vulkan_image(); #endif /* GL_NV_draw_vulkan_image */ #ifdef GL_NV_evaluators if (glewExperimental || GLEW_NV_evaluators) GLEW_NV_evaluators = !_glewInit_GL_NV_evaluators(); #endif /* GL_NV_evaluators */ #ifdef GL_NV_explicit_multisample if (glewExperimental || GLEW_NV_explicit_multisample) GLEW_NV_explicit_multisample = !_glewInit_GL_NV_explicit_multisample(); #endif /* GL_NV_explicit_multisample */ #ifdef GL_NV_fence if (glewExperimental || GLEW_NV_fence) GLEW_NV_fence = !_glewInit_GL_NV_fence(); #endif /* GL_NV_fence */ #ifdef GL_NV_fragment_coverage_to_color if (glewExperimental || GLEW_NV_fragment_coverage_to_color) GLEW_NV_fragment_coverage_to_color = !_glewInit_GL_NV_fragment_coverage_to_color(); #endif /* GL_NV_fragment_coverage_to_color */ #ifdef GL_NV_fragment_program if (glewExperimental || GLEW_NV_fragment_program) GLEW_NV_fragment_program = !_glewInit_GL_NV_fragment_program(); #endif /* GL_NV_fragment_program */ #ifdef GL_NV_framebuffer_blit if (glewExperimental || GLEW_NV_framebuffer_blit) GLEW_NV_framebuffer_blit = !_glewInit_GL_NV_framebuffer_blit(); #endif /* GL_NV_framebuffer_blit */ #ifdef GL_NV_framebuffer_multisample if (glewExperimental || GLEW_NV_framebuffer_multisample) GLEW_NV_framebuffer_multisample = !_glewInit_GL_NV_framebuffer_multisample(); #endif /* GL_NV_framebuffer_multisample */ #ifdef GL_NV_framebuffer_multisample_coverage if (glewExperimental || GLEW_NV_framebuffer_multisample_coverage) GLEW_NV_framebuffer_multisample_coverage = !_glewInit_GL_NV_framebuffer_multisample_coverage(); #endif /* GL_NV_framebuffer_multisample_coverage */ #ifdef GL_NV_geometry_program4 if (glewExperimental || GLEW_NV_geometry_program4) GLEW_NV_geometry_program4 = !_glewInit_GL_NV_geometry_program4(); #endif /* GL_NV_geometry_program4 */ #ifdef GL_NV_gpu_multicast if (glewExperimental || GLEW_NV_gpu_multicast) GLEW_NV_gpu_multicast = !_glewInit_GL_NV_gpu_multicast(); #endif /* GL_NV_gpu_multicast */ #ifdef GL_NV_gpu_program4 if (glewExperimental || GLEW_NV_gpu_program4) GLEW_NV_gpu_program4 = !_glewInit_GL_NV_gpu_program4(); #endif /* GL_NV_gpu_program4 */ #ifdef GL_NV_gpu_shader5 if (glewExperimental || GLEW_NV_gpu_shader5) GLEW_NV_gpu_shader5 = !_glewInit_GL_NV_gpu_shader5(); #endif /* GL_NV_gpu_shader5 */ #ifdef GL_NV_half_float if (glewExperimental || GLEW_NV_half_float) GLEW_NV_half_float = !_glewInit_GL_NV_half_float(); #endif /* GL_NV_half_float */ #ifdef GL_NV_instanced_arrays if (glewExperimental || GLEW_NV_instanced_arrays) GLEW_NV_instanced_arrays = !_glewInit_GL_NV_instanced_arrays(); #endif /* GL_NV_instanced_arrays */ #ifdef GL_NV_internalformat_sample_query if (glewExperimental || GLEW_NV_internalformat_sample_query) GLEW_NV_internalformat_sample_query = !_glewInit_GL_NV_internalformat_sample_query(); #endif /* GL_NV_internalformat_sample_query */ #ifdef GL_NV_non_square_matrices if (glewExperimental || GLEW_NV_non_square_matrices) GLEW_NV_non_square_matrices = !_glewInit_GL_NV_non_square_matrices(); #endif /* GL_NV_non_square_matrices */ #ifdef GL_NV_occlusion_query if (glewExperimental || GLEW_NV_occlusion_query) GLEW_NV_occlusion_query = !_glewInit_GL_NV_occlusion_query(); #endif /* GL_NV_occlusion_query */ #ifdef GL_NV_parameter_buffer_object if (glewExperimental || GLEW_NV_parameter_buffer_object) GLEW_NV_parameter_buffer_object = !_glewInit_GL_NV_parameter_buffer_object(); #endif /* GL_NV_parameter_buffer_object */ #ifdef GL_NV_path_rendering if (glewExperimental || GLEW_NV_path_rendering) GLEW_NV_path_rendering = !_glewInit_GL_NV_path_rendering(); #endif /* GL_NV_path_rendering */ #ifdef GL_NV_pixel_data_range if (glewExperimental || GLEW_NV_pixel_data_range) GLEW_NV_pixel_data_range = !_glewInit_GL_NV_pixel_data_range(); #endif /* GL_NV_pixel_data_range */ #ifdef GL_NV_point_sprite if (glewExperimental || GLEW_NV_point_sprite) GLEW_NV_point_sprite = !_glewInit_GL_NV_point_sprite(); #endif /* GL_NV_point_sprite */ #ifdef GL_NV_polygon_mode if (glewExperimental || GLEW_NV_polygon_mode) GLEW_NV_polygon_mode = !_glewInit_GL_NV_polygon_mode(); #endif /* GL_NV_polygon_mode */ #ifdef GL_NV_present_video if (glewExperimental || GLEW_NV_present_video) GLEW_NV_present_video = !_glewInit_GL_NV_present_video(); #endif /* GL_NV_present_video */ #ifdef GL_NV_primitive_restart if (glewExperimental || GLEW_NV_primitive_restart) GLEW_NV_primitive_restart = !_glewInit_GL_NV_primitive_restart(); #endif /* GL_NV_primitive_restart */ #ifdef GL_NV_register_combiners if (glewExperimental || GLEW_NV_register_combiners) GLEW_NV_register_combiners = !_glewInit_GL_NV_register_combiners(); #endif /* GL_NV_register_combiners */ #ifdef GL_NV_register_combiners2 if (glewExperimental || GLEW_NV_register_combiners2) GLEW_NV_register_combiners2 = !_glewInit_GL_NV_register_combiners2(); #endif /* GL_NV_register_combiners2 */ #ifdef GL_NV_sample_locations if (glewExperimental || GLEW_NV_sample_locations) GLEW_NV_sample_locations = !_glewInit_GL_NV_sample_locations(); #endif /* GL_NV_sample_locations */ #ifdef GL_NV_shader_buffer_load if (glewExperimental || GLEW_NV_shader_buffer_load) GLEW_NV_shader_buffer_load = !_glewInit_GL_NV_shader_buffer_load(); #endif /* GL_NV_shader_buffer_load */ #ifdef GL_NV_texture_array if (glewExperimental || GLEW_NV_texture_array) GLEW_NV_texture_array = !_glewInit_GL_NV_texture_array(); #endif /* GL_NV_texture_array */ #ifdef GL_NV_texture_barrier if (glewExperimental || GLEW_NV_texture_barrier) GLEW_NV_texture_barrier = !_glewInit_GL_NV_texture_barrier(); #endif /* GL_NV_texture_barrier */ #ifdef GL_NV_texture_multisample if (glewExperimental || GLEW_NV_texture_multisample) GLEW_NV_texture_multisample = !_glewInit_GL_NV_texture_multisample(); #endif /* GL_NV_texture_multisample */ #ifdef GL_NV_transform_feedback if (glewExperimental || GLEW_NV_transform_feedback) GLEW_NV_transform_feedback = !_glewInit_GL_NV_transform_feedback(); #endif /* GL_NV_transform_feedback */ #ifdef GL_NV_transform_feedback2 if (glewExperimental || GLEW_NV_transform_feedback2) GLEW_NV_transform_feedback2 = !_glewInit_GL_NV_transform_feedback2(); #endif /* GL_NV_transform_feedback2 */ #ifdef GL_NV_vdpau_interop if (glewExperimental || GLEW_NV_vdpau_interop) GLEW_NV_vdpau_interop = !_glewInit_GL_NV_vdpau_interop(); #endif /* GL_NV_vdpau_interop */ #ifdef GL_NV_vertex_array_range if (glewExperimental || GLEW_NV_vertex_array_range) GLEW_NV_vertex_array_range = !_glewInit_GL_NV_vertex_array_range(); #endif /* GL_NV_vertex_array_range */ #ifdef GL_NV_vertex_attrib_integer_64bit if (glewExperimental || GLEW_NV_vertex_attrib_integer_64bit) GLEW_NV_vertex_attrib_integer_64bit = !_glewInit_GL_NV_vertex_attrib_integer_64bit(); #endif /* GL_NV_vertex_attrib_integer_64bit */ #ifdef GL_NV_vertex_buffer_unified_memory if (glewExperimental || GLEW_NV_vertex_buffer_unified_memory) GLEW_NV_vertex_buffer_unified_memory = !_glewInit_GL_NV_vertex_buffer_unified_memory(); #endif /* GL_NV_vertex_buffer_unified_memory */ #ifdef GL_NV_vertex_program if (glewExperimental || GLEW_NV_vertex_program) GLEW_NV_vertex_program = !_glewInit_GL_NV_vertex_program(); #endif /* GL_NV_vertex_program */ #ifdef GL_NV_video_capture if (glewExperimental || GLEW_NV_video_capture) GLEW_NV_video_capture = !_glewInit_GL_NV_video_capture(); #endif /* GL_NV_video_capture */ #ifdef GL_NV_viewport_array if (glewExperimental || GLEW_NV_viewport_array) GLEW_NV_viewport_array = !_glewInit_GL_NV_viewport_array(); #endif /* GL_NV_viewport_array */ #ifdef GL_NV_viewport_swizzle if (glewExperimental || GLEW_NV_viewport_swizzle) GLEW_NV_viewport_swizzle = !_glewInit_GL_NV_viewport_swizzle(); #endif /* GL_NV_viewport_swizzle */ #ifdef GL_OVR_multiview if (glewExperimental || GLEW_OVR_multiview) GLEW_OVR_multiview = !_glewInit_GL_OVR_multiview(); #endif /* GL_OVR_multiview */ #ifdef GL_OVR_multiview_multisampled_render_to_texture if (glewExperimental || GLEW_OVR_multiview_multisampled_render_to_texture) GLEW_OVR_multiview_multisampled_render_to_texture = !_glewInit_GL_OVR_multiview_multisampled_render_to_texture(); #endif /* GL_OVR_multiview_multisampled_render_to_texture */ #ifdef GL_QCOM_alpha_test if (glewExperimental || GLEW_QCOM_alpha_test) GLEW_QCOM_alpha_test = !_glewInit_GL_QCOM_alpha_test(); #endif /* GL_QCOM_alpha_test */ #ifdef GL_QCOM_driver_control if (glewExperimental || GLEW_QCOM_driver_control) GLEW_QCOM_driver_control = !_glewInit_GL_QCOM_driver_control(); #endif /* GL_QCOM_driver_control */ #ifdef GL_QCOM_extended_get if (glewExperimental || GLEW_QCOM_extended_get) GLEW_QCOM_extended_get = !_glewInit_GL_QCOM_extended_get(); #endif /* GL_QCOM_extended_get */ #ifdef GL_QCOM_extended_get2 if (glewExperimental || GLEW_QCOM_extended_get2) GLEW_QCOM_extended_get2 = !_glewInit_GL_QCOM_extended_get2(); #endif /* GL_QCOM_extended_get2 */ #ifdef GL_QCOM_framebuffer_foveated if (glewExperimental || GLEW_QCOM_framebuffer_foveated) GLEW_QCOM_framebuffer_foveated = !_glewInit_GL_QCOM_framebuffer_foveated(); #endif /* GL_QCOM_framebuffer_foveated */ #ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent if (glewExperimental || GLEW_QCOM_shader_framebuffer_fetch_noncoherent) GLEW_QCOM_shader_framebuffer_fetch_noncoherent = !_glewInit_GL_QCOM_shader_framebuffer_fetch_noncoherent(); #endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */ #ifdef GL_QCOM_tiled_rendering if (glewExperimental || GLEW_QCOM_tiled_rendering) GLEW_QCOM_tiled_rendering = !_glewInit_GL_QCOM_tiled_rendering(); #endif /* GL_QCOM_tiled_rendering */ #ifdef GL_REGAL_ES1_0_compatibility if (glewExperimental || GLEW_REGAL_ES1_0_compatibility) GLEW_REGAL_ES1_0_compatibility = !_glewInit_GL_REGAL_ES1_0_compatibility(); #endif /* GL_REGAL_ES1_0_compatibility */ #ifdef GL_REGAL_ES1_1_compatibility if (glewExperimental || GLEW_REGAL_ES1_1_compatibility) GLEW_REGAL_ES1_1_compatibility = !_glewInit_GL_REGAL_ES1_1_compatibility(); #endif /* GL_REGAL_ES1_1_compatibility */ #ifdef GL_REGAL_error_string if (glewExperimental || GLEW_REGAL_error_string) GLEW_REGAL_error_string = !_glewInit_GL_REGAL_error_string(); #endif /* GL_REGAL_error_string */ #ifdef GL_REGAL_extension_query if (glewExperimental || GLEW_REGAL_extension_query) GLEW_REGAL_extension_query = !_glewInit_GL_REGAL_extension_query(); #endif /* GL_REGAL_extension_query */ #ifdef GL_REGAL_log if (glewExperimental || GLEW_REGAL_log) GLEW_REGAL_log = !_glewInit_GL_REGAL_log(); #endif /* GL_REGAL_log */ #ifdef GL_REGAL_proc_address if (glewExperimental || GLEW_REGAL_proc_address) GLEW_REGAL_proc_address = !_glewInit_GL_REGAL_proc_address(); #endif /* GL_REGAL_proc_address */ #ifdef GL_SGIS_detail_texture if (glewExperimental || GLEW_SGIS_detail_texture) GLEW_SGIS_detail_texture = !_glewInit_GL_SGIS_detail_texture(); #endif /* GL_SGIS_detail_texture */ #ifdef GL_SGIS_fog_function if (glewExperimental || GLEW_SGIS_fog_function) GLEW_SGIS_fog_function = !_glewInit_GL_SGIS_fog_function(); #endif /* GL_SGIS_fog_function */ #ifdef GL_SGIS_multisample if (glewExperimental || GLEW_SGIS_multisample) GLEW_SGIS_multisample = !_glewInit_GL_SGIS_multisample(); #endif /* GL_SGIS_multisample */ #ifdef GL_SGIS_multitexture if (glewExperimental || GLEW_SGIS_multitexture) GLEW_SGIS_multitexture = !_glewInit_GL_SGIS_multitexture(); #endif /* GL_SGIS_multitexture */ #ifdef GL_SGIS_shared_multisample if (glewExperimental || GLEW_SGIS_shared_multisample) GLEW_SGIS_shared_multisample = !_glewInit_GL_SGIS_shared_multisample(); #endif /* GL_SGIS_shared_multisample */ #ifdef GL_SGIS_sharpen_texture if (glewExperimental || GLEW_SGIS_sharpen_texture) GLEW_SGIS_sharpen_texture = !_glewInit_GL_SGIS_sharpen_texture(); #endif /* GL_SGIS_sharpen_texture */ #ifdef GL_SGIS_texture4D if (glewExperimental || GLEW_SGIS_texture4D) GLEW_SGIS_texture4D = !_glewInit_GL_SGIS_texture4D(); #endif /* GL_SGIS_texture4D */ #ifdef GL_SGIS_texture_filter4 if (glewExperimental || GLEW_SGIS_texture_filter4) GLEW_SGIS_texture_filter4 = !_glewInit_GL_SGIS_texture_filter4(); #endif /* GL_SGIS_texture_filter4 */ #ifdef GL_SGIX_async if (glewExperimental || GLEW_SGIX_async) GLEW_SGIX_async = !_glewInit_GL_SGIX_async(); #endif /* GL_SGIX_async */ #ifdef GL_SGIX_datapipe if (glewExperimental || GLEW_SGIX_datapipe) GLEW_SGIX_datapipe = !_glewInit_GL_SGIX_datapipe(); #endif /* GL_SGIX_datapipe */ #ifdef GL_SGIX_flush_raster if (glewExperimental || GLEW_SGIX_flush_raster) GLEW_SGIX_flush_raster = !_glewInit_GL_SGIX_flush_raster(); #endif /* GL_SGIX_flush_raster */ #ifdef GL_SGIX_fog_layers if (glewExperimental || GLEW_SGIX_fog_layers) GLEW_SGIX_fog_layers = !_glewInit_GL_SGIX_fog_layers(); #endif /* GL_SGIX_fog_layers */ #ifdef GL_SGIX_fog_texture if (glewExperimental || GLEW_SGIX_fog_texture) GLEW_SGIX_fog_texture = !_glewInit_GL_SGIX_fog_texture(); #endif /* GL_SGIX_fog_texture */ #ifdef GL_SGIX_fragment_specular_lighting if (glewExperimental || GLEW_SGIX_fragment_specular_lighting) GLEW_SGIX_fragment_specular_lighting = !_glewInit_GL_SGIX_fragment_specular_lighting(); #endif /* GL_SGIX_fragment_specular_lighting */ #ifdef GL_SGIX_framezoom if (glewExperimental || GLEW_SGIX_framezoom) GLEW_SGIX_framezoom = !_glewInit_GL_SGIX_framezoom(); #endif /* GL_SGIX_framezoom */ #ifdef GL_SGIX_igloo_interface if (glewExperimental || GLEW_SGIX_igloo_interface) GLEW_SGIX_igloo_interface = !_glewInit_GL_SGIX_igloo_interface(); #endif /* GL_SGIX_igloo_interface */ #ifdef GL_SGIX_mpeg1 if (glewExperimental || GLEW_SGIX_mpeg1) GLEW_SGIX_mpeg1 = !_glewInit_GL_SGIX_mpeg1(); #endif /* GL_SGIX_mpeg1 */ #ifdef GL_SGIX_nonlinear_lighting_pervertex if (glewExperimental || GLEW_SGIX_nonlinear_lighting_pervertex) GLEW_SGIX_nonlinear_lighting_pervertex = !_glewInit_GL_SGIX_nonlinear_lighting_pervertex(); #endif /* GL_SGIX_nonlinear_lighting_pervertex */ #ifdef GL_SGIX_pixel_texture if (glewExperimental || GLEW_SGIX_pixel_texture) GLEW_SGIX_pixel_texture = !_glewInit_GL_SGIX_pixel_texture(); #endif /* GL_SGIX_pixel_texture */ #ifdef GL_SGIX_polynomial_ffd if (glewExperimental || GLEW_SGIX_polynomial_ffd) GLEW_SGIX_polynomial_ffd = !_glewInit_GL_SGIX_polynomial_ffd(); #endif /* GL_SGIX_polynomial_ffd */ #ifdef GL_SGIX_quad_mesh if (glewExperimental || GLEW_SGIX_quad_mesh) GLEW_SGIX_quad_mesh = !_glewInit_GL_SGIX_quad_mesh(); #endif /* GL_SGIX_quad_mesh */ #ifdef GL_SGIX_reference_plane if (glewExperimental || GLEW_SGIX_reference_plane) GLEW_SGIX_reference_plane = !_glewInit_GL_SGIX_reference_plane(); #endif /* GL_SGIX_reference_plane */ #ifdef GL_SGIX_sprite if (glewExperimental || GLEW_SGIX_sprite) GLEW_SGIX_sprite = !_glewInit_GL_SGIX_sprite(); #endif /* GL_SGIX_sprite */ #ifdef GL_SGIX_tag_sample_buffer if (glewExperimental || GLEW_SGIX_tag_sample_buffer) GLEW_SGIX_tag_sample_buffer = !_glewInit_GL_SGIX_tag_sample_buffer(); #endif /* GL_SGIX_tag_sample_buffer */ #ifdef GL_SGIX_vector_ops if (glewExperimental || GLEW_SGIX_vector_ops) GLEW_SGIX_vector_ops = !_glewInit_GL_SGIX_vector_ops(); #endif /* GL_SGIX_vector_ops */ #ifdef GL_SGIX_vertex_array_object if (glewExperimental || GLEW_SGIX_vertex_array_object) GLEW_SGIX_vertex_array_object = !_glewInit_GL_SGIX_vertex_array_object(); #endif /* GL_SGIX_vertex_array_object */ #ifdef GL_SGI_color_table if (glewExperimental || GLEW_SGI_color_table) GLEW_SGI_color_table = !_glewInit_GL_SGI_color_table(); #endif /* GL_SGI_color_table */ #ifdef GL_SGI_fft if (glewExperimental || GLEW_SGI_fft) GLEW_SGI_fft = !_glewInit_GL_SGI_fft(); #endif /* GL_SGI_fft */ #ifdef GL_SUNX_constant_data if (glewExperimental || GLEW_SUNX_constant_data) GLEW_SUNX_constant_data = !_glewInit_GL_SUNX_constant_data(); #endif /* GL_SUNX_constant_data */ #ifdef GL_SUN_global_alpha if (glewExperimental || GLEW_SUN_global_alpha) GLEW_SUN_global_alpha = !_glewInit_GL_SUN_global_alpha(); #endif /* GL_SUN_global_alpha */ #ifdef GL_SUN_read_video_pixels if (glewExperimental || GLEW_SUN_read_video_pixels) GLEW_SUN_read_video_pixels = !_glewInit_GL_SUN_read_video_pixels(); #endif /* GL_SUN_read_video_pixels */ #ifdef GL_SUN_triangle_list if (glewExperimental || GLEW_SUN_triangle_list) GLEW_SUN_triangle_list = !_glewInit_GL_SUN_triangle_list(); #endif /* GL_SUN_triangle_list */ #ifdef GL_SUN_vertex if (glewExperimental || GLEW_SUN_vertex) GLEW_SUN_vertex = !_glewInit_GL_SUN_vertex(); #endif /* GL_SUN_vertex */ #ifdef GL_WIN_swap_hint if (glewExperimental || GLEW_WIN_swap_hint) GLEW_WIN_swap_hint = !_glewInit_GL_WIN_swap_hint(); #endif /* GL_WIN_swap_hint */ #ifdef GL_NV_fragment_program4 GLEW_NV_fragment_program4 = GLEW_NV_gpu_program4; #endif /* GL_NV_fragment_program4 */ #ifdef GL_NV_geometry_program4 GLEW_NV_geometry_program4 = GLEW_NV_gpu_program4; #endif /* GL_NV_geometry_program4 */ #ifdef GL_NV_tessellation_program5 GLEW_NV_tessellation_program5 = GLEW_NV_gpu_program5; #endif /* GL_NV_tessellation_program5 */ #ifdef GL_NV_vertex_program4 GLEW_NV_vertex_program4 = GLEW_NV_gpu_program4; #endif /* GL_NV_vertex_program4 */ return GLEW_OK; } #if defined(GLEW_OSMESA) #elif defined(GLEW_EGL) PFNEGLCHOOSECONFIGPROC __eglewChooseConfig = NULL; PFNEGLCOPYBUFFERSPROC __eglewCopyBuffers = NULL; PFNEGLCREATECONTEXTPROC __eglewCreateContext = NULL; PFNEGLCREATEPBUFFERSURFACEPROC __eglewCreatePbufferSurface = NULL; PFNEGLCREATEPIXMAPSURFACEPROC __eglewCreatePixmapSurface = NULL; PFNEGLCREATEWINDOWSURFACEPROC __eglewCreateWindowSurface = NULL; PFNEGLDESTROYCONTEXTPROC __eglewDestroyContext = NULL; PFNEGLDESTROYSURFACEPROC __eglewDestroySurface = NULL; PFNEGLGETCONFIGATTRIBPROC __eglewGetConfigAttrib = NULL; PFNEGLGETCONFIGSPROC __eglewGetConfigs = NULL; PFNEGLGETCURRENTDISPLAYPROC __eglewGetCurrentDisplay = NULL; PFNEGLGETCURRENTSURFACEPROC __eglewGetCurrentSurface = NULL; PFNEGLGETDISPLAYPROC __eglewGetDisplay = NULL; PFNEGLGETERRORPROC __eglewGetError = NULL; PFNEGLINITIALIZEPROC __eglewInitialize = NULL; PFNEGLMAKECURRENTPROC __eglewMakeCurrent = NULL; PFNEGLQUERYCONTEXTPROC __eglewQueryContext = NULL; PFNEGLQUERYSTRINGPROC __eglewQueryString = NULL; PFNEGLQUERYSURFACEPROC __eglewQuerySurface = NULL; PFNEGLSWAPBUFFERSPROC __eglewSwapBuffers = NULL; PFNEGLTERMINATEPROC __eglewTerminate = NULL; PFNEGLWAITGLPROC __eglewWaitGL = NULL; PFNEGLWAITNATIVEPROC __eglewWaitNative = NULL; PFNEGLBINDTEXIMAGEPROC __eglewBindTexImage = NULL; PFNEGLRELEASETEXIMAGEPROC __eglewReleaseTexImage = NULL; PFNEGLSURFACEATTRIBPROC __eglewSurfaceAttrib = NULL; PFNEGLSWAPINTERVALPROC __eglewSwapInterval = NULL; PFNEGLBINDAPIPROC __eglewBindAPI = NULL; PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC __eglewCreatePbufferFromClientBuffer = NULL; PFNEGLQUERYAPIPROC __eglewQueryAPI = NULL; PFNEGLRELEASETHREADPROC __eglewReleaseThread = NULL; PFNEGLWAITCLIENTPROC __eglewWaitClient = NULL; PFNEGLGETCURRENTCONTEXTPROC __eglewGetCurrentContext = NULL; PFNEGLCLIENTWAITSYNCPROC __eglewClientWaitSync = NULL; PFNEGLCREATEIMAGEPROC __eglewCreateImage = NULL; PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC __eglewCreatePlatformPixmapSurface = NULL; PFNEGLCREATEPLATFORMWINDOWSURFACEPROC __eglewCreatePlatformWindowSurface = NULL; PFNEGLCREATESYNCPROC __eglewCreateSync = NULL; PFNEGLDESTROYIMAGEPROC __eglewDestroyImage = NULL; PFNEGLDESTROYSYNCPROC __eglewDestroySync = NULL; PFNEGLGETPLATFORMDISPLAYPROC __eglewGetPlatformDisplay = NULL; PFNEGLGETSYNCATTRIBPROC __eglewGetSyncAttrib = NULL; PFNEGLWAITSYNCPROC __eglewWaitSync = NULL; PFNEGLSETBLOBCACHEFUNCSANDROIDPROC __eglewSetBlobCacheFuncsANDROID = NULL; PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC __eglewCreateNativeClientBufferANDROID = NULL; PFNEGLDUPNATIVEFENCEFDANDROIDPROC __eglewDupNativeFenceFDANDROID = NULL; PFNEGLPRESENTATIONTIMEANDROIDPROC __eglewPresentationTimeANDROID = NULL; PFNEGLQUERYSURFACEPOINTERANGLEPROC __eglewQuerySurfacePointerANGLE = NULL; PFNEGLQUERYDEVICESEXTPROC __eglewQueryDevicesEXT = NULL; PFNEGLQUERYDEVICEATTRIBEXTPROC __eglewQueryDeviceAttribEXT = NULL; PFNEGLQUERYDEVICESTRINGEXTPROC __eglewQueryDeviceStringEXT = NULL; PFNEGLQUERYDISPLAYATTRIBEXTPROC __eglewQueryDisplayAttribEXT = NULL; PFNEGLQUERYDMABUFFORMATSEXTPROC __eglewQueryDmaBufFormatsEXT = NULL; PFNEGLQUERYDMABUFMODIFIERSEXTPROC __eglewQueryDmaBufModifiersEXT = NULL; PFNEGLGETOUTPUTLAYERSEXTPROC __eglewGetOutputLayersEXT = NULL; PFNEGLGETOUTPUTPORTSEXTPROC __eglewGetOutputPortsEXT = NULL; PFNEGLOUTPUTLAYERATTRIBEXTPROC __eglewOutputLayerAttribEXT = NULL; PFNEGLOUTPUTPORTATTRIBEXTPROC __eglewOutputPortAttribEXT = NULL; PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC __eglewQueryOutputLayerAttribEXT = NULL; PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC __eglewQueryOutputLayerStringEXT = NULL; PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC __eglewQueryOutputPortAttribEXT = NULL; PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC __eglewQueryOutputPortStringEXT = NULL; PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC __eglewCreatePlatformPixmapSurfaceEXT = NULL; PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC __eglewCreatePlatformWindowSurfaceEXT = NULL; PFNEGLGETPLATFORMDISPLAYEXTPROC __eglewGetPlatformDisplayEXT = NULL; PFNEGLSTREAMCONSUMEROUTPUTEXTPROC __eglewStreamConsumerOutputEXT = NULL; PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC __eglewSwapBuffersWithDamageEXT = NULL; PFNEGLCREATEPIXMAPSURFACEHIPROC __eglewCreatePixmapSurfaceHI = NULL; PFNEGLCREATESYNC64KHRPROC __eglewCreateSync64KHR = NULL; PFNEGLDEBUGMESSAGECONTROLKHRPROC __eglewDebugMessageControlKHR = NULL; PFNEGLLABELOBJECTKHRPROC __eglewLabelObjectKHR = NULL; PFNEGLQUERYDEBUGKHRPROC __eglewQueryDebugKHR = NULL; PFNEGLCREATEIMAGEKHRPROC __eglewCreateImageKHR = NULL; PFNEGLDESTROYIMAGEKHRPROC __eglewDestroyImageKHR = NULL; PFNEGLLOCKSURFACEKHRPROC __eglewLockSurfaceKHR = NULL; PFNEGLUNLOCKSURFACEKHRPROC __eglewUnlockSurfaceKHR = NULL; PFNEGLQUERYSURFACE64KHRPROC __eglewQuerySurface64KHR = NULL; PFNEGLSETDAMAGEREGIONKHRPROC __eglewSetDamageRegionKHR = NULL; PFNEGLCLIENTWAITSYNCKHRPROC __eglewClientWaitSyncKHR = NULL; PFNEGLCREATESYNCKHRPROC __eglewCreateSyncKHR = NULL; PFNEGLDESTROYSYNCKHRPROC __eglewDestroySyncKHR = NULL; PFNEGLGETSYNCATTRIBKHRPROC __eglewGetSyncAttribKHR = NULL; PFNEGLSIGNALSYNCKHRPROC __eglewSignalSyncKHR = NULL; PFNEGLCREATESTREAMKHRPROC __eglewCreateStreamKHR = NULL; PFNEGLDESTROYSTREAMKHRPROC __eglewDestroyStreamKHR = NULL; PFNEGLQUERYSTREAMKHRPROC __eglewQueryStreamKHR = NULL; PFNEGLQUERYSTREAMU64KHRPROC __eglewQueryStreamu64KHR = NULL; PFNEGLSTREAMATTRIBKHRPROC __eglewStreamAttribKHR = NULL; PFNEGLCREATESTREAMATTRIBKHRPROC __eglewCreateStreamAttribKHR = NULL; PFNEGLQUERYSTREAMATTRIBKHRPROC __eglewQueryStreamAttribKHR = NULL; PFNEGLSETSTREAMATTRIBKHRPROC __eglewSetStreamAttribKHR = NULL; PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC __eglewStreamConsumerAcquireAttribKHR = NULL; PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC __eglewStreamConsumerReleaseAttribKHR = NULL; PFNEGLSTREAMCONSUMERACQUIREKHRPROC __eglewStreamConsumerAcquireKHR = NULL; PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC __eglewStreamConsumerGLTextureExternalKHR = NULL; PFNEGLSTREAMCONSUMERRELEASEKHRPROC __eglewStreamConsumerReleaseKHR = NULL; PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC __eglewCreateStreamFromFileDescriptorKHR = NULL; PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC __eglewGetStreamFileDescriptorKHR = NULL; PFNEGLQUERYSTREAMTIMEKHRPROC __eglewQueryStreamTimeKHR = NULL; PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC __eglewCreateStreamProducerSurfaceKHR = NULL; PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC __eglewSwapBuffersWithDamageKHR = NULL; PFNEGLWAITSYNCKHRPROC __eglewWaitSyncKHR = NULL; PFNEGLCREATEDRMIMAGEMESAPROC __eglewCreateDRMImageMESA = NULL; PFNEGLEXPORTDRMIMAGEMESAPROC __eglewExportDRMImageMESA = NULL; PFNEGLEXPORTDMABUFIMAGEMESAPROC __eglewExportDMABUFImageMESA = NULL; PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC __eglewExportDMABUFImageQueryMESA = NULL; PFNEGLSWAPBUFFERSREGIONNOKPROC __eglewSwapBuffersRegionNOK = NULL; PFNEGLSWAPBUFFERSREGION2NOKPROC __eglewSwapBuffersRegion2NOK = NULL; PFNEGLQUERYNATIVEDISPLAYNVPROC __eglewQueryNativeDisplayNV = NULL; PFNEGLQUERYNATIVEPIXMAPNVPROC __eglewQueryNativePixmapNV = NULL; PFNEGLQUERYNATIVEWINDOWNVPROC __eglewQueryNativeWindowNV = NULL; PFNEGLPOSTSUBBUFFERNVPROC __eglewPostSubBufferNV = NULL; PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC __eglewStreamConsumerGLTextureExternalAttribsNV = NULL; PFNEGLQUERYDISPLAYATTRIBNVPROC __eglewQueryDisplayAttribNV = NULL; PFNEGLQUERYSTREAMMETADATANVPROC __eglewQueryStreamMetadataNV = NULL; PFNEGLSETSTREAMMETADATANVPROC __eglewSetStreamMetadataNV = NULL; PFNEGLRESETSTREAMNVPROC __eglewResetStreamNV = NULL; PFNEGLCREATESTREAMSYNCNVPROC __eglewCreateStreamSyncNV = NULL; PFNEGLCLIENTWAITSYNCNVPROC __eglewClientWaitSyncNV = NULL; PFNEGLCREATEFENCESYNCNVPROC __eglewCreateFenceSyncNV = NULL; PFNEGLDESTROYSYNCNVPROC __eglewDestroySyncNV = NULL; PFNEGLFENCENVPROC __eglewFenceNV = NULL; PFNEGLGETSYNCATTRIBNVPROC __eglewGetSyncAttribNV = NULL; PFNEGLSIGNALSYNCNVPROC __eglewSignalSyncNV = NULL; PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC __eglewGetSystemTimeFrequencyNV = NULL; PFNEGLGETSYSTEMTIMENVPROC __eglewGetSystemTimeNV = NULL; GLboolean __EGLEW_VERSION_1_0 = GL_FALSE; GLboolean __EGLEW_VERSION_1_1 = GL_FALSE; GLboolean __EGLEW_VERSION_1_2 = GL_FALSE; GLboolean __EGLEW_VERSION_1_3 = GL_FALSE; GLboolean __EGLEW_VERSION_1_4 = GL_FALSE; GLboolean __EGLEW_VERSION_1_5 = GL_FALSE; GLboolean __EGLEW_ANDROID_blob_cache = GL_FALSE; GLboolean __EGLEW_ANDROID_create_native_client_buffer = GL_FALSE; GLboolean __EGLEW_ANDROID_framebuffer_target = GL_FALSE; GLboolean __EGLEW_ANDROID_front_buffer_auto_refresh = GL_FALSE; GLboolean __EGLEW_ANDROID_image_native_buffer = GL_FALSE; GLboolean __EGLEW_ANDROID_native_fence_sync = GL_FALSE; GLboolean __EGLEW_ANDROID_presentation_time = GL_FALSE; GLboolean __EGLEW_ANDROID_recordable = GL_FALSE; GLboolean __EGLEW_ANGLE_d3d_share_handle_client_buffer = GL_FALSE; GLboolean __EGLEW_ANGLE_device_d3d = GL_FALSE; GLboolean __EGLEW_ANGLE_query_surface_pointer = GL_FALSE; GLboolean __EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = GL_FALSE; GLboolean __EGLEW_ANGLE_window_fixed_size = GL_FALSE; GLboolean __EGLEW_ARM_implicit_external_sync = GL_FALSE; GLboolean __EGLEW_ARM_pixmap_multisample_discard = GL_FALSE; GLboolean __EGLEW_EXT_buffer_age = GL_FALSE; GLboolean __EGLEW_EXT_client_extensions = GL_FALSE; GLboolean __EGLEW_EXT_create_context_robustness = GL_FALSE; GLboolean __EGLEW_EXT_device_base = GL_FALSE; GLboolean __EGLEW_EXT_device_drm = GL_FALSE; GLboolean __EGLEW_EXT_device_enumeration = GL_FALSE; GLboolean __EGLEW_EXT_device_openwf = GL_FALSE; GLboolean __EGLEW_EXT_device_query = GL_FALSE; GLboolean __EGLEW_EXT_gl_colorspace_bt2020_linear = GL_FALSE; GLboolean __EGLEW_EXT_gl_colorspace_bt2020_pq = GL_FALSE; GLboolean __EGLEW_EXT_gl_colorspace_scrgb_linear = GL_FALSE; GLboolean __EGLEW_EXT_image_dma_buf_import = GL_FALSE; GLboolean __EGLEW_EXT_image_dma_buf_import_modifiers = GL_FALSE; GLboolean __EGLEW_EXT_multiview_window = GL_FALSE; GLboolean __EGLEW_EXT_output_base = GL_FALSE; GLboolean __EGLEW_EXT_output_drm = GL_FALSE; GLboolean __EGLEW_EXT_output_openwf = GL_FALSE; GLboolean __EGLEW_EXT_pixel_format_float = GL_FALSE; GLboolean __EGLEW_EXT_platform_base = GL_FALSE; GLboolean __EGLEW_EXT_platform_device = GL_FALSE; GLboolean __EGLEW_EXT_platform_wayland = GL_FALSE; GLboolean __EGLEW_EXT_platform_x11 = GL_FALSE; GLboolean __EGLEW_EXT_protected_content = GL_FALSE; GLboolean __EGLEW_EXT_protected_surface = GL_FALSE; GLboolean __EGLEW_EXT_stream_consumer_egloutput = GL_FALSE; GLboolean __EGLEW_EXT_surface_SMPTE2086_metadata = GL_FALSE; GLboolean __EGLEW_EXT_swap_buffers_with_damage = GL_FALSE; GLboolean __EGLEW_EXT_yuv_surface = GL_FALSE; GLboolean __EGLEW_HI_clientpixmap = GL_FALSE; GLboolean __EGLEW_HI_colorformats = GL_FALSE; GLboolean __EGLEW_IMG_context_priority = GL_FALSE; GLboolean __EGLEW_IMG_image_plane_attribs = GL_FALSE; GLboolean __EGLEW_KHR_cl_event = GL_FALSE; GLboolean __EGLEW_KHR_cl_event2 = GL_FALSE; GLboolean __EGLEW_KHR_client_get_all_proc_addresses = GL_FALSE; GLboolean __EGLEW_KHR_config_attribs = GL_FALSE; GLboolean __EGLEW_KHR_context_flush_control = GL_FALSE; GLboolean __EGLEW_KHR_create_context = GL_FALSE; GLboolean __EGLEW_KHR_create_context_no_error = GL_FALSE; GLboolean __EGLEW_KHR_debug = GL_FALSE; GLboolean __EGLEW_KHR_fence_sync = GL_FALSE; GLboolean __EGLEW_KHR_get_all_proc_addresses = GL_FALSE; GLboolean __EGLEW_KHR_gl_colorspace = GL_FALSE; GLboolean __EGLEW_KHR_gl_renderbuffer_image = GL_FALSE; GLboolean __EGLEW_KHR_gl_texture_2D_image = GL_FALSE; GLboolean __EGLEW_KHR_gl_texture_3D_image = GL_FALSE; GLboolean __EGLEW_KHR_gl_texture_cubemap_image = GL_FALSE; GLboolean __EGLEW_KHR_image = GL_FALSE; GLboolean __EGLEW_KHR_image_base = GL_FALSE; GLboolean __EGLEW_KHR_image_pixmap = GL_FALSE; GLboolean __EGLEW_KHR_lock_surface = GL_FALSE; GLboolean __EGLEW_KHR_lock_surface2 = GL_FALSE; GLboolean __EGLEW_KHR_lock_surface3 = GL_FALSE; GLboolean __EGLEW_KHR_mutable_render_buffer = GL_FALSE; GLboolean __EGLEW_KHR_no_config_context = GL_FALSE; GLboolean __EGLEW_KHR_partial_update = GL_FALSE; GLboolean __EGLEW_KHR_platform_android = GL_FALSE; GLboolean __EGLEW_KHR_platform_gbm = GL_FALSE; GLboolean __EGLEW_KHR_platform_wayland = GL_FALSE; GLboolean __EGLEW_KHR_platform_x11 = GL_FALSE; GLboolean __EGLEW_KHR_reusable_sync = GL_FALSE; GLboolean __EGLEW_KHR_stream = GL_FALSE; GLboolean __EGLEW_KHR_stream_attrib = GL_FALSE; GLboolean __EGLEW_KHR_stream_consumer_gltexture = GL_FALSE; GLboolean __EGLEW_KHR_stream_cross_process_fd = GL_FALSE; GLboolean __EGLEW_KHR_stream_fifo = GL_FALSE; GLboolean __EGLEW_KHR_stream_producer_aldatalocator = GL_FALSE; GLboolean __EGLEW_KHR_stream_producer_eglsurface = GL_FALSE; GLboolean __EGLEW_KHR_surfaceless_context = GL_FALSE; GLboolean __EGLEW_KHR_swap_buffers_with_damage = GL_FALSE; GLboolean __EGLEW_KHR_vg_parent_image = GL_FALSE; GLboolean __EGLEW_KHR_wait_sync = GL_FALSE; GLboolean __EGLEW_MESA_drm_image = GL_FALSE; GLboolean __EGLEW_MESA_image_dma_buf_export = GL_FALSE; GLboolean __EGLEW_MESA_platform_gbm = GL_FALSE; GLboolean __EGLEW_MESA_platform_surfaceless = GL_FALSE; GLboolean __EGLEW_NOK_swap_region = GL_FALSE; GLboolean __EGLEW_NOK_swap_region2 = GL_FALSE; GLboolean __EGLEW_NOK_texture_from_pixmap = GL_FALSE; GLboolean __EGLEW_NV_3dvision_surface = GL_FALSE; GLboolean __EGLEW_NV_coverage_sample = GL_FALSE; GLboolean __EGLEW_NV_coverage_sample_resolve = GL_FALSE; GLboolean __EGLEW_NV_cuda_event = GL_FALSE; GLboolean __EGLEW_NV_depth_nonlinear = GL_FALSE; GLboolean __EGLEW_NV_device_cuda = GL_FALSE; GLboolean __EGLEW_NV_native_query = GL_FALSE; GLboolean __EGLEW_NV_post_convert_rounding = GL_FALSE; GLboolean __EGLEW_NV_post_sub_buffer = GL_FALSE; GLboolean __EGLEW_NV_robustness_video_memory_purge = GL_FALSE; GLboolean __EGLEW_NV_stream_consumer_gltexture_yuv = GL_FALSE; GLboolean __EGLEW_NV_stream_cross_display = GL_FALSE; GLboolean __EGLEW_NV_stream_cross_object = GL_FALSE; GLboolean __EGLEW_NV_stream_cross_partition = GL_FALSE; GLboolean __EGLEW_NV_stream_cross_process = GL_FALSE; GLboolean __EGLEW_NV_stream_cross_system = GL_FALSE; GLboolean __EGLEW_NV_stream_fifo_next = GL_FALSE; GLboolean __EGLEW_NV_stream_fifo_synchronous = GL_FALSE; GLboolean __EGLEW_NV_stream_frame_limits = GL_FALSE; GLboolean __EGLEW_NV_stream_metadata = GL_FALSE; GLboolean __EGLEW_NV_stream_remote = GL_FALSE; GLboolean __EGLEW_NV_stream_reset = GL_FALSE; GLboolean __EGLEW_NV_stream_socket = GL_FALSE; GLboolean __EGLEW_NV_stream_socket_inet = GL_FALSE; GLboolean __EGLEW_NV_stream_socket_unix = GL_FALSE; GLboolean __EGLEW_NV_stream_sync = GL_FALSE; GLboolean __EGLEW_NV_sync = GL_FALSE; GLboolean __EGLEW_NV_system_time = GL_FALSE; GLboolean __EGLEW_TIZEN_image_native_buffer = GL_FALSE; GLboolean __EGLEW_TIZEN_image_native_surface = GL_FALSE; #ifdef EGL_VERSION_1_0 static GLboolean _glewInit_EGL_VERSION_1_0 () { GLboolean r = GL_FALSE; r = ((eglChooseConfig = (PFNEGLCHOOSECONFIGPROC)glewGetProcAddress((const GLubyte*)"eglChooseConfig")) == NULL) || r; r = ((eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglCopyBuffers")) == NULL) || r; r = ((eglCreateContext = (PFNEGLCREATECONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreateContext")) == NULL) || r; r = ((eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferSurface")) == NULL) || r; r = ((eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurface")) == NULL) || r; r = ((eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreateWindowSurface")) == NULL) || r; r = ((eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglDestroyContext")) == NULL) || r; r = ((eglDestroySurface = (PFNEGLDESTROYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglDestroySurface")) == NULL) || r; r = ((eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigAttrib")) == NULL) || r; r = ((eglGetConfigs = (PFNEGLGETCONFIGSPROC)glewGetProcAddress((const GLubyte*)"eglGetConfigs")) == NULL) || r; r = ((eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentDisplay")) == NULL) || r; r = ((eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentSurface")) == NULL) || r; r = ((eglGetDisplay = (PFNEGLGETDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetDisplay")) == NULL) || r; r = ((eglGetError = (PFNEGLGETERRORPROC)glewGetProcAddress((const GLubyte*)"eglGetError")) == NULL) || r; r = ((eglInitialize = (PFNEGLINITIALIZEPROC)glewGetProcAddress((const GLubyte*)"eglInitialize")) == NULL) || r; r = ((eglMakeCurrent = (PFNEGLMAKECURRENTPROC)glewGetProcAddress((const GLubyte*)"eglMakeCurrent")) == NULL) || r; r = ((eglQueryContext = (PFNEGLQUERYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryContext")) == NULL) || r; r = ((eglQueryString = (PFNEGLQUERYSTRINGPROC)glewGetProcAddress((const GLubyte*)"eglQueryString")) == NULL) || r; r = ((eglQuerySurface = (PFNEGLQUERYSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface")) == NULL) || r; r = ((eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffers")) == NULL) || r; r = ((eglTerminate = (PFNEGLTERMINATEPROC)glewGetProcAddress((const GLubyte*)"eglTerminate")) == NULL) || r; r = ((eglWaitGL = (PFNEGLWAITGLPROC)glewGetProcAddress((const GLubyte*)"eglWaitGL")) == NULL) || r; r = ((eglWaitNative = (PFNEGLWAITNATIVEPROC)glewGetProcAddress((const GLubyte*)"eglWaitNative")) == NULL) || r; return r; } #endif /* EGL_VERSION_1_0 */ #ifdef EGL_VERSION_1_1 static GLboolean _glewInit_EGL_VERSION_1_1 () { GLboolean r = GL_FALSE; r = ((eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglBindTexImage")) == NULL) || r; r = ((eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglReleaseTexImage")) == NULL) || r; r = ((eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglSurfaceAttrib")) == NULL) || r; r = ((eglSwapInterval = (PFNEGLSWAPINTERVALPROC)glewGetProcAddress((const GLubyte*)"eglSwapInterval")) == NULL) || r; return r; } #endif /* EGL_VERSION_1_1 */ #ifdef EGL_VERSION_1_2 static GLboolean _glewInit_EGL_VERSION_1_2 () { GLboolean r = GL_FALSE; r = ((eglBindAPI = (PFNEGLBINDAPIPROC)glewGetProcAddress((const GLubyte*)"eglBindAPI")) == NULL) || r; r = ((eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)glewGetProcAddress((const GLubyte*)"eglCreatePbufferFromClientBuffer")) == NULL) || r; r = ((eglQueryAPI = (PFNEGLQUERYAPIPROC)glewGetProcAddress((const GLubyte*)"eglQueryAPI")) == NULL) || r; r = ((eglReleaseThread = (PFNEGLRELEASETHREADPROC)glewGetProcAddress((const GLubyte*)"eglReleaseThread")) == NULL) || r; r = ((eglWaitClient = (PFNEGLWAITCLIENTPROC)glewGetProcAddress((const GLubyte*)"eglWaitClient")) == NULL) || r; return r; } #endif /* EGL_VERSION_1_2 */ #ifdef EGL_VERSION_1_4 static GLboolean _glewInit_EGL_VERSION_1_4 () { GLboolean r = GL_FALSE; r = ((eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetCurrentContext")) == NULL) || r; return r; } #endif /* EGL_VERSION_1_4 */ #ifdef EGL_VERSION_1_5 static GLboolean _glewInit_EGL_VERSION_1_5 () { GLboolean r = GL_FALSE; r = ((eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSync")) == NULL) || r; r = ((eglCreateImage = (PFNEGLCREATEIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglCreateImage")) == NULL) || r; r = ((eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurface")) == NULL) || r; r = ((eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurface")) == NULL) || r; r = ((eglCreateSync = (PFNEGLCREATESYNCPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync")) == NULL) || r; r = ((eglDestroyImage = (PFNEGLDESTROYIMAGEPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImage")) == NULL) || r; r = ((eglDestroySync = (PFNEGLDESTROYSYNCPROC)glewGetProcAddress((const GLubyte*)"eglDestroySync")) == NULL) || r; r = ((eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplay")) == NULL) || r; r = ((eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttrib")) == NULL) || r; r = ((eglWaitSync = (PFNEGLWAITSYNCPROC)glewGetProcAddress((const GLubyte*)"eglWaitSync")) == NULL) || r; return r; } #endif /* EGL_VERSION_1_5 */ #ifdef EGL_ANDROID_blob_cache static GLboolean _glewInit_EGL_ANDROID_blob_cache () { GLboolean r = GL_FALSE; r = ((eglSetBlobCacheFuncsANDROID = (PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglSetBlobCacheFuncsANDROID")) == NULL) || r; return r; } #endif /* EGL_ANDROID_blob_cache */ #ifdef EGL_ANDROID_create_native_client_buffer static GLboolean _glewInit_EGL_ANDROID_create_native_client_buffer () { GLboolean r = GL_FALSE; r = ((eglCreateNativeClientBufferANDROID = (PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglCreateNativeClientBufferANDROID")) == NULL) || r; return r; } #endif /* EGL_ANDROID_create_native_client_buffer */ #ifdef EGL_ANDROID_native_fence_sync static GLboolean _glewInit_EGL_ANDROID_native_fence_sync () { GLboolean r = GL_FALSE; r = ((eglDupNativeFenceFDANDROID = (PFNEGLDUPNATIVEFENCEFDANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglDupNativeFenceFDANDROID")) == NULL) || r; return r; } #endif /* EGL_ANDROID_native_fence_sync */ #ifdef EGL_ANDROID_presentation_time static GLboolean _glewInit_EGL_ANDROID_presentation_time () { GLboolean r = GL_FALSE; r = ((eglPresentationTimeANDROID = (PFNEGLPRESENTATIONTIMEANDROIDPROC)glewGetProcAddress((const GLubyte*)"eglPresentationTimeANDROID")) == NULL) || r; return r; } #endif /* EGL_ANDROID_presentation_time */ #ifdef EGL_ANGLE_query_surface_pointer static GLboolean _glewInit_EGL_ANGLE_query_surface_pointer () { GLboolean r = GL_FALSE; r = ((eglQuerySurfacePointerANGLE = (PFNEGLQUERYSURFACEPOINTERANGLEPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurfacePointerANGLE")) == NULL) || r; return r; } #endif /* EGL_ANGLE_query_surface_pointer */ #ifdef EGL_EXT_device_enumeration static GLboolean _glewInit_EGL_EXT_device_enumeration () { GLboolean r = GL_FALSE; r = ((eglQueryDevicesEXT = (PFNEGLQUERYDEVICESEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDevicesEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_device_enumeration */ #ifdef EGL_EXT_device_query static GLboolean _glewInit_EGL_EXT_device_query () { GLboolean r = GL_FALSE; r = ((eglQueryDeviceAttribEXT = (PFNEGLQUERYDEVICEATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceAttribEXT")) == NULL) || r; r = ((eglQueryDeviceStringEXT = (PFNEGLQUERYDEVICESTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDeviceStringEXT")) == NULL) || r; r = ((eglQueryDisplayAttribEXT = (PFNEGLQUERYDISPLAYATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_device_query */ #ifdef EGL_EXT_image_dma_buf_import_modifiers static GLboolean _glewInit_EGL_EXT_image_dma_buf_import_modifiers () { GLboolean r = GL_FALSE; r = ((eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufFormatsEXT")) == NULL) || r; r = ((eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryDmaBufModifiersEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_image_dma_buf_import_modifiers */ #ifdef EGL_EXT_output_base static GLboolean _glewInit_EGL_EXT_output_base () { GLboolean r = GL_FALSE; r = ((eglGetOutputLayersEXT = (PFNEGLGETOUTPUTLAYERSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputLayersEXT")) == NULL) || r; r = ((eglGetOutputPortsEXT = (PFNEGLGETOUTPUTPORTSEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetOutputPortsEXT")) == NULL) || r; r = ((eglOutputLayerAttribEXT = (PFNEGLOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputLayerAttribEXT")) == NULL) || r; r = ((eglOutputPortAttribEXT = (PFNEGLOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglOutputPortAttribEXT")) == NULL) || r; r = ((eglQueryOutputLayerAttribEXT = (PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerAttribEXT")) == NULL) || r; r = ((eglQueryOutputLayerStringEXT = (PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputLayerStringEXT")) == NULL) || r; r = ((eglQueryOutputPortAttribEXT = (PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortAttribEXT")) == NULL) || r; r = ((eglQueryOutputPortStringEXT = (PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"eglQueryOutputPortStringEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_output_base */ #ifdef EGL_EXT_platform_base static GLboolean _glewInit_EGL_EXT_platform_base () { GLboolean r = GL_FALSE; r = ((eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformPixmapSurfaceEXT")) == NULL) || r; r = ((eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)glewGetProcAddress((const GLubyte*)"eglCreatePlatformWindowSurfaceEXT")) == NULL) || r; r = ((eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC)glewGetProcAddress((const GLubyte*)"eglGetPlatformDisplayEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_platform_base */ #ifdef EGL_EXT_stream_consumer_egloutput static GLboolean _glewInit_EGL_EXT_stream_consumer_egloutput () { GLboolean r = GL_FALSE; r = ((eglStreamConsumerOutputEXT = (PFNEGLSTREAMCONSUMEROUTPUTEXTPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerOutputEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_stream_consumer_egloutput */ #ifdef EGL_EXT_swap_buffers_with_damage static GLboolean _glewInit_EGL_EXT_swap_buffers_with_damage () { GLboolean r = GL_FALSE; r = ((eglSwapBuffersWithDamageEXT = (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageEXT")) == NULL) || r; return r; } #endif /* EGL_EXT_swap_buffers_with_damage */ #ifdef EGL_HI_clientpixmap static GLboolean _glewInit_EGL_HI_clientpixmap () { GLboolean r = GL_FALSE; r = ((eglCreatePixmapSurfaceHI = (PFNEGLCREATEPIXMAPSURFACEHIPROC)glewGetProcAddress((const GLubyte*)"eglCreatePixmapSurfaceHI")) == NULL) || r; return r; } #endif /* EGL_HI_clientpixmap */ #ifdef EGL_KHR_cl_event2 static GLboolean _glewInit_EGL_KHR_cl_event2 () { GLboolean r = GL_FALSE; r = ((eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSync64KHR")) == NULL) || r; return r; } #endif /* EGL_KHR_cl_event2 */ #ifdef EGL_KHR_debug static GLboolean _glewInit_EGL_KHR_debug () { GLboolean r = GL_FALSE; r = ((eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC)glewGetProcAddress((const GLubyte*)"eglDebugMessageControlKHR")) == NULL) || r; r = ((eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC)glewGetProcAddress((const GLubyte*)"eglLabelObjectKHR")) == NULL) || r; r = ((eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryDebugKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_debug */ #ifdef EGL_KHR_image static GLboolean _glewInit_EGL_KHR_image () { GLboolean r = GL_FALSE; r = ((eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateImageKHR")) == NULL) || r; r = ((eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyImageKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_image */ #ifdef EGL_KHR_lock_surface static GLboolean _glewInit_EGL_KHR_lock_surface () { GLboolean r = GL_FALSE; r = ((eglLockSurfaceKHR = (PFNEGLLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglLockSurfaceKHR")) == NULL) || r; r = ((eglUnlockSurfaceKHR = (PFNEGLUNLOCKSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglUnlockSurfaceKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_lock_surface */ #ifdef EGL_KHR_lock_surface3 static GLboolean _glewInit_EGL_KHR_lock_surface3 () { GLboolean r = GL_FALSE; r = ((eglQuerySurface64KHR = (PFNEGLQUERYSURFACE64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQuerySurface64KHR")) == NULL) || r; return r; } #endif /* EGL_KHR_lock_surface3 */ #ifdef EGL_KHR_partial_update static GLboolean _glewInit_EGL_KHR_partial_update () { GLboolean r = GL_FALSE; r = ((eglSetDamageRegionKHR = (PFNEGLSETDAMAGEREGIONKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetDamageRegionKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_partial_update */ #ifdef EGL_KHR_reusable_sync static GLboolean _glewInit_EGL_KHR_reusable_sync () { GLboolean r = GL_FALSE; r = ((eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncKHR")) == NULL) || r; r = ((eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateSyncKHR")) == NULL) || r; r = ((eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncKHR")) == NULL) || r; r = ((eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribKHR")) == NULL) || r; r = ((eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_reusable_sync */ #ifdef EGL_KHR_stream static GLboolean _glewInit_EGL_KHR_stream () { GLboolean r = GL_FALSE; r = ((eglCreateStreamKHR = (PFNEGLCREATESTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamKHR")) == NULL) || r; r = ((eglDestroyStreamKHR = (PFNEGLDESTROYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglDestroyStreamKHR")) == NULL) || r; r = ((eglQueryStreamKHR = (PFNEGLQUERYSTREAMKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamKHR")) == NULL) || r; r = ((eglQueryStreamu64KHR = (PFNEGLQUERYSTREAMU64KHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamu64KHR")) == NULL) || r; r = ((eglStreamAttribKHR = (PFNEGLSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamAttribKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_stream */ #ifdef EGL_KHR_stream_attrib static GLboolean _glewInit_EGL_KHR_stream_attrib () { GLboolean r = GL_FALSE; r = ((eglCreateStreamAttribKHR = (PFNEGLCREATESTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamAttribKHR")) == NULL) || r; r = ((eglQueryStreamAttribKHR = (PFNEGLQUERYSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamAttribKHR")) == NULL) || r; r = ((eglSetStreamAttribKHR = (PFNEGLSETSTREAMATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamAttribKHR")) == NULL) || r; r = ((eglStreamConsumerAcquireAttribKHR = (PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireAttribKHR")) == NULL) || r; r = ((eglStreamConsumerReleaseAttribKHR = (PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseAttribKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_stream_attrib */ #ifdef EGL_KHR_stream_consumer_gltexture static GLboolean _glewInit_EGL_KHR_stream_consumer_gltexture () { GLboolean r = GL_FALSE; r = ((eglStreamConsumerAcquireKHR = (PFNEGLSTREAMCONSUMERACQUIREKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerAcquireKHR")) == NULL) || r; r = ((eglStreamConsumerGLTextureExternalKHR = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalKHR")) == NULL) || r; r = ((eglStreamConsumerReleaseKHR = (PFNEGLSTREAMCONSUMERRELEASEKHRPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerReleaseKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_stream_consumer_gltexture */ #ifdef EGL_KHR_stream_cross_process_fd static GLboolean _glewInit_EGL_KHR_stream_cross_process_fd () { GLboolean r = GL_FALSE; r = ((eglCreateStreamFromFileDescriptorKHR = (PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamFromFileDescriptorKHR")) == NULL) || r; r = ((eglGetStreamFileDescriptorKHR = (PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)glewGetProcAddress((const GLubyte*)"eglGetStreamFileDescriptorKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_stream_cross_process_fd */ #ifdef EGL_KHR_stream_fifo static GLboolean _glewInit_EGL_KHR_stream_fifo () { GLboolean r = GL_FALSE; r = ((eglQueryStreamTimeKHR = (PFNEGLQUERYSTREAMTIMEKHRPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamTimeKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_stream_fifo */ #ifdef EGL_KHR_stream_producer_eglsurface static GLboolean _glewInit_EGL_KHR_stream_producer_eglsurface () { GLboolean r = GL_FALSE; r = ((eglCreateStreamProducerSurfaceKHR = (PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamProducerSurfaceKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_stream_producer_eglsurface */ #ifdef EGL_KHR_swap_buffers_with_damage static GLboolean _glewInit_EGL_KHR_swap_buffers_with_damage () { GLboolean r = GL_FALSE; r = ((eglSwapBuffersWithDamageKHR = (PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersWithDamageKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_swap_buffers_with_damage */ #ifdef EGL_KHR_wait_sync static GLboolean _glewInit_EGL_KHR_wait_sync () { GLboolean r = GL_FALSE; r = ((eglWaitSyncKHR = (PFNEGLWAITSYNCKHRPROC)glewGetProcAddress((const GLubyte*)"eglWaitSyncKHR")) == NULL) || r; return r; } #endif /* EGL_KHR_wait_sync */ #ifdef EGL_MESA_drm_image static GLboolean _glewInit_EGL_MESA_drm_image () { GLboolean r = GL_FALSE; r = ((eglCreateDRMImageMESA = (PFNEGLCREATEDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglCreateDRMImageMESA")) == NULL) || r; r = ((eglExportDRMImageMESA = (PFNEGLEXPORTDRMIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDRMImageMESA")) == NULL) || r; return r; } #endif /* EGL_MESA_drm_image */ #ifdef EGL_MESA_image_dma_buf_export static GLboolean _glewInit_EGL_MESA_image_dma_buf_export () { GLboolean r = GL_FALSE; r = ((eglExportDMABUFImageMESA = (PFNEGLEXPORTDMABUFIMAGEMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageMESA")) == NULL) || r; r = ((eglExportDMABUFImageQueryMESA = (PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC)glewGetProcAddress((const GLubyte*)"eglExportDMABUFImageQueryMESA")) == NULL) || r; return r; } #endif /* EGL_MESA_image_dma_buf_export */ #ifdef EGL_NOK_swap_region static GLboolean _glewInit_EGL_NOK_swap_region () { GLboolean r = GL_FALSE; r = ((eglSwapBuffersRegionNOK = (PFNEGLSWAPBUFFERSREGIONNOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegionNOK")) == NULL) || r; return r; } #endif /* EGL_NOK_swap_region */ #ifdef EGL_NOK_swap_region2 static GLboolean _glewInit_EGL_NOK_swap_region2 () { GLboolean r = GL_FALSE; r = ((eglSwapBuffersRegion2NOK = (PFNEGLSWAPBUFFERSREGION2NOKPROC)glewGetProcAddress((const GLubyte*)"eglSwapBuffersRegion2NOK")) == NULL) || r; return r; } #endif /* EGL_NOK_swap_region2 */ #ifdef EGL_NV_native_query static GLboolean _glewInit_EGL_NV_native_query () { GLboolean r = GL_FALSE; r = ((eglQueryNativeDisplayNV = (PFNEGLQUERYNATIVEDISPLAYNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeDisplayNV")) == NULL) || r; r = ((eglQueryNativePixmapNV = (PFNEGLQUERYNATIVEPIXMAPNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativePixmapNV")) == NULL) || r; r = ((eglQueryNativeWindowNV = (PFNEGLQUERYNATIVEWINDOWNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryNativeWindowNV")) == NULL) || r; return r; } #endif /* EGL_NV_native_query */ #ifdef EGL_NV_post_sub_buffer static GLboolean _glewInit_EGL_NV_post_sub_buffer () { GLboolean r = GL_FALSE; r = ((eglPostSubBufferNV = (PFNEGLPOSTSUBBUFFERNVPROC)glewGetProcAddress((const GLubyte*)"eglPostSubBufferNV")) == NULL) || r; return r; } #endif /* EGL_NV_post_sub_buffer */ #ifdef EGL_NV_stream_consumer_gltexture_yuv static GLboolean _glewInit_EGL_NV_stream_consumer_gltexture_yuv () { GLboolean r = GL_FALSE; r = ((eglStreamConsumerGLTextureExternalAttribsNV = (PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC)glewGetProcAddress((const GLubyte*)"eglStreamConsumerGLTextureExternalAttribsNV")) == NULL) || r; return r; } #endif /* EGL_NV_stream_consumer_gltexture_yuv */ #ifdef EGL_NV_stream_metadata static GLboolean _glewInit_EGL_NV_stream_metadata () { GLboolean r = GL_FALSE; r = ((eglQueryDisplayAttribNV = (PFNEGLQUERYDISPLAYATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglQueryDisplayAttribNV")) == NULL) || r; r = ((eglQueryStreamMetadataNV = (PFNEGLQUERYSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglQueryStreamMetadataNV")) == NULL) || r; r = ((eglSetStreamMetadataNV = (PFNEGLSETSTREAMMETADATANVPROC)glewGetProcAddress((const GLubyte*)"eglSetStreamMetadataNV")) == NULL) || r; return r; } #endif /* EGL_NV_stream_metadata */ #ifdef EGL_NV_stream_reset static GLboolean _glewInit_EGL_NV_stream_reset () { GLboolean r = GL_FALSE; r = ((eglResetStreamNV = (PFNEGLRESETSTREAMNVPROC)glewGetProcAddress((const GLubyte*)"eglResetStreamNV")) == NULL) || r; return r; } #endif /* EGL_NV_stream_reset */ #ifdef EGL_NV_stream_sync static GLboolean _glewInit_EGL_NV_stream_sync () { GLboolean r = GL_FALSE; r = ((eglCreateStreamSyncNV = (PFNEGLCREATESTREAMSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateStreamSyncNV")) == NULL) || r; return r; } #endif /* EGL_NV_stream_sync */ #ifdef EGL_NV_sync static GLboolean _glewInit_EGL_NV_sync () { GLboolean r = GL_FALSE; r = ((eglClientWaitSyncNV = (PFNEGLCLIENTWAITSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglClientWaitSyncNV")) == NULL) || r; r = ((eglCreateFenceSyncNV = (PFNEGLCREATEFENCESYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglCreateFenceSyncNV")) == NULL) || r; r = ((eglDestroySyncNV = (PFNEGLDESTROYSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglDestroySyncNV")) == NULL) || r; r = ((eglFenceNV = (PFNEGLFENCENVPROC)glewGetProcAddress((const GLubyte*)"eglFenceNV")) == NULL) || r; r = ((eglGetSyncAttribNV = (PFNEGLGETSYNCATTRIBNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSyncAttribNV")) == NULL) || r; r = ((eglSignalSyncNV = (PFNEGLSIGNALSYNCNVPROC)glewGetProcAddress((const GLubyte*)"eglSignalSyncNV")) == NULL) || r; return r; } #endif /* EGL_NV_sync */ #ifdef EGL_NV_system_time static GLboolean _glewInit_EGL_NV_system_time () { GLboolean r = GL_FALSE; r = ((eglGetSystemTimeFrequencyNV = (PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeFrequencyNV")) == NULL) || r; r = ((eglGetSystemTimeNV = (PFNEGLGETSYSTEMTIMENVPROC)glewGetProcAddress((const GLubyte*)"eglGetSystemTimeNV")) == NULL) || r; return r; } #endif /* EGL_NV_system_time */ /* ------------------------------------------------------------------------ */ GLboolean eglewGetExtension (const char* name) { const GLubyte* start; const GLubyte* end; start = (const GLubyte*) eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS); if (0 == start) return GL_FALSE; end = start + _glewStrLen(start); return _glewSearchExtension(name, start, end); } GLenum eglewInit (EGLDisplay display) { EGLint major, minor; const GLubyte* extStart; const GLubyte* extEnd; PFNEGLINITIALIZEPROC initialize = NULL; PFNEGLQUERYSTRINGPROC queryString = NULL; /* Load necessary entry points */ initialize = (PFNEGLINITIALIZEPROC) glewGetProcAddress("eglInitialize"); queryString = (PFNEGLQUERYSTRINGPROC) glewGetProcAddress("eglQueryString"); if (!initialize || !queryString) return 1; /* query EGK version */ if (initialize(display, &major, &minor) != EGL_TRUE) return 1; EGLEW_VERSION_1_5 = ( major > 1 ) || ( major == 1 && minor >= 5 ) ? GL_TRUE : GL_FALSE; EGLEW_VERSION_1_4 = EGLEW_VERSION_1_5 == GL_TRUE || ( major == 1 && minor >= 4 ) ? GL_TRUE : GL_FALSE; EGLEW_VERSION_1_3 = EGLEW_VERSION_1_4 == GL_TRUE || ( major == 1 && minor >= 3 ) ? GL_TRUE : GL_FALSE; EGLEW_VERSION_1_2 = EGLEW_VERSION_1_3 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; EGLEW_VERSION_1_1 = EGLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; EGLEW_VERSION_1_0 = EGLEW_VERSION_1_1 == GL_TRUE || ( major == 1 && minor >= 0 ) ? GL_TRUE : GL_FALSE; /* query EGL extension string */ extStart = (const GLubyte*) queryString(display, EGL_EXTENSIONS); if (extStart == 0) extStart = (const GLubyte *)""; extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ #ifdef EGL_VERSION_1_0 if (glewExperimental || EGLEW_VERSION_1_0) EGLEW_VERSION_1_0 = !_glewInit_EGL_VERSION_1_0(); #endif /* EGL_VERSION_1_0 */ #ifdef EGL_VERSION_1_1 if (glewExperimental || EGLEW_VERSION_1_1) EGLEW_VERSION_1_1 = !_glewInit_EGL_VERSION_1_1(); #endif /* EGL_VERSION_1_1 */ #ifdef EGL_VERSION_1_2 if (glewExperimental || EGLEW_VERSION_1_2) EGLEW_VERSION_1_2 = !_glewInit_EGL_VERSION_1_2(); #endif /* EGL_VERSION_1_2 */ #ifdef EGL_VERSION_1_4 if (glewExperimental || EGLEW_VERSION_1_4) EGLEW_VERSION_1_4 = !_glewInit_EGL_VERSION_1_4(); #endif /* EGL_VERSION_1_4 */ #ifdef EGL_VERSION_1_5 if (glewExperimental || EGLEW_VERSION_1_5) EGLEW_VERSION_1_5 = !_glewInit_EGL_VERSION_1_5(); #endif /* EGL_VERSION_1_5 */ #ifdef EGL_ANDROID_blob_cache EGLEW_ANDROID_blob_cache = _glewSearchExtension("EGL_ANDROID_blob_cache", extStart, extEnd); if (glewExperimental || EGLEW_ANDROID_blob_cache) EGLEW_ANDROID_blob_cache = !_glewInit_EGL_ANDROID_blob_cache(); #endif /* EGL_ANDROID_blob_cache */ #ifdef EGL_ANDROID_create_native_client_buffer EGLEW_ANDROID_create_native_client_buffer = _glewSearchExtension("EGL_ANDROID_create_native_client_buffer", extStart, extEnd); if (glewExperimental || EGLEW_ANDROID_create_native_client_buffer) EGLEW_ANDROID_create_native_client_buffer = !_glewInit_EGL_ANDROID_create_native_client_buffer(); #endif /* EGL_ANDROID_create_native_client_buffer */ #ifdef EGL_ANDROID_framebuffer_target EGLEW_ANDROID_framebuffer_target = _glewSearchExtension("EGL_ANDROID_framebuffer_target", extStart, extEnd); #endif /* EGL_ANDROID_framebuffer_target */ #ifdef EGL_ANDROID_front_buffer_auto_refresh EGLEW_ANDROID_front_buffer_auto_refresh = _glewSearchExtension("EGL_ANDROID_front_buffer_auto_refresh", extStart, extEnd); #endif /* EGL_ANDROID_front_buffer_auto_refresh */ #ifdef EGL_ANDROID_image_native_buffer EGLEW_ANDROID_image_native_buffer = _glewSearchExtension("EGL_ANDROID_image_native_buffer", extStart, extEnd); #endif /* EGL_ANDROID_image_native_buffer */ #ifdef EGL_ANDROID_native_fence_sync EGLEW_ANDROID_native_fence_sync = _glewSearchExtension("EGL_ANDROID_native_fence_sync", extStart, extEnd); if (glewExperimental || EGLEW_ANDROID_native_fence_sync) EGLEW_ANDROID_native_fence_sync = !_glewInit_EGL_ANDROID_native_fence_sync(); #endif /* EGL_ANDROID_native_fence_sync */ #ifdef EGL_ANDROID_presentation_time EGLEW_ANDROID_presentation_time = _glewSearchExtension("EGL_ANDROID_presentation_time", extStart, extEnd); if (glewExperimental || EGLEW_ANDROID_presentation_time) EGLEW_ANDROID_presentation_time = !_glewInit_EGL_ANDROID_presentation_time(); #endif /* EGL_ANDROID_presentation_time */ #ifdef EGL_ANDROID_recordable EGLEW_ANDROID_recordable = _glewSearchExtension("EGL_ANDROID_recordable", extStart, extEnd); #endif /* EGL_ANDROID_recordable */ #ifdef EGL_ANGLE_d3d_share_handle_client_buffer EGLEW_ANGLE_d3d_share_handle_client_buffer = _glewSearchExtension("EGL_ANGLE_d3d_share_handle_client_buffer", extStart, extEnd); #endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ #ifdef EGL_ANGLE_device_d3d EGLEW_ANGLE_device_d3d = _glewSearchExtension("EGL_ANGLE_device_d3d", extStart, extEnd); #endif /* EGL_ANGLE_device_d3d */ #ifdef EGL_ANGLE_query_surface_pointer EGLEW_ANGLE_query_surface_pointer = _glewSearchExtension("EGL_ANGLE_query_surface_pointer", extStart, extEnd); if (glewExperimental || EGLEW_ANGLE_query_surface_pointer) EGLEW_ANGLE_query_surface_pointer = !_glewInit_EGL_ANGLE_query_surface_pointer(); #endif /* EGL_ANGLE_query_surface_pointer */ #ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle EGLEW_ANGLE_surface_d3d_texture_2d_share_handle = _glewSearchExtension("EGL_ANGLE_surface_d3d_texture_2d_share_handle", extStart, extEnd); #endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ #ifdef EGL_ANGLE_window_fixed_size EGLEW_ANGLE_window_fixed_size = _glewSearchExtension("EGL_ANGLE_window_fixed_size", extStart, extEnd); #endif /* EGL_ANGLE_window_fixed_size */ #ifdef EGL_ARM_implicit_external_sync EGLEW_ARM_implicit_external_sync = _glewSearchExtension("EGL_ARM_implicit_external_sync", extStart, extEnd); #endif /* EGL_ARM_implicit_external_sync */ #ifdef EGL_ARM_pixmap_multisample_discard EGLEW_ARM_pixmap_multisample_discard = _glewSearchExtension("EGL_ARM_pixmap_multisample_discard", extStart, extEnd); #endif /* EGL_ARM_pixmap_multisample_discard */ #ifdef EGL_EXT_buffer_age EGLEW_EXT_buffer_age = _glewSearchExtension("EGL_EXT_buffer_age", extStart, extEnd); #endif /* EGL_EXT_buffer_age */ #ifdef EGL_EXT_client_extensions EGLEW_EXT_client_extensions = _glewSearchExtension("EGL_EXT_client_extensions", extStart, extEnd); #endif /* EGL_EXT_client_extensions */ #ifdef EGL_EXT_create_context_robustness EGLEW_EXT_create_context_robustness = _glewSearchExtension("EGL_EXT_create_context_robustness", extStart, extEnd); #endif /* EGL_EXT_create_context_robustness */ #ifdef EGL_EXT_device_base EGLEW_EXT_device_base = _glewSearchExtension("EGL_EXT_device_base", extStart, extEnd); #endif /* EGL_EXT_device_base */ #ifdef EGL_EXT_device_drm EGLEW_EXT_device_drm = _glewSearchExtension("EGL_EXT_device_drm", extStart, extEnd); #endif /* EGL_EXT_device_drm */ #ifdef EGL_EXT_device_enumeration EGLEW_EXT_device_enumeration = _glewSearchExtension("EGL_EXT_device_enumeration", extStart, extEnd); if (glewExperimental || EGLEW_EXT_device_enumeration) EGLEW_EXT_device_enumeration = !_glewInit_EGL_EXT_device_enumeration(); #endif /* EGL_EXT_device_enumeration */ #ifdef EGL_EXT_device_openwf EGLEW_EXT_device_openwf = _glewSearchExtension("EGL_EXT_device_openwf", extStart, extEnd); #endif /* EGL_EXT_device_openwf */ #ifdef EGL_EXT_device_query EGLEW_EXT_device_query = _glewSearchExtension("EGL_EXT_device_query", extStart, extEnd); if (glewExperimental || EGLEW_EXT_device_query) EGLEW_EXT_device_query = !_glewInit_EGL_EXT_device_query(); #endif /* EGL_EXT_device_query */ #ifdef EGL_EXT_gl_colorspace_bt2020_linear EGLEW_EXT_gl_colorspace_bt2020_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_linear", extStart, extEnd); #endif /* EGL_EXT_gl_colorspace_bt2020_linear */ #ifdef EGL_EXT_gl_colorspace_bt2020_pq EGLEW_EXT_gl_colorspace_bt2020_pq = _glewSearchExtension("EGL_EXT_gl_colorspace_bt2020_pq", extStart, extEnd); #endif /* EGL_EXT_gl_colorspace_bt2020_pq */ #ifdef EGL_EXT_gl_colorspace_scrgb_linear EGLEW_EXT_gl_colorspace_scrgb_linear = _glewSearchExtension("EGL_EXT_gl_colorspace_scrgb_linear", extStart, extEnd); #endif /* EGL_EXT_gl_colorspace_scrgb_linear */ #ifdef EGL_EXT_image_dma_buf_import EGLEW_EXT_image_dma_buf_import = _glewSearchExtension("EGL_EXT_image_dma_buf_import", extStart, extEnd); #endif /* EGL_EXT_image_dma_buf_import */ #ifdef EGL_EXT_image_dma_buf_import_modifiers EGLEW_EXT_image_dma_buf_import_modifiers = _glewSearchExtension("EGL_EXT_image_dma_buf_import_modifiers", extStart, extEnd); if (glewExperimental || EGLEW_EXT_image_dma_buf_import_modifiers) EGLEW_EXT_image_dma_buf_import_modifiers = !_glewInit_EGL_EXT_image_dma_buf_import_modifiers(); #endif /* EGL_EXT_image_dma_buf_import_modifiers */ #ifdef EGL_EXT_multiview_window EGLEW_EXT_multiview_window = _glewSearchExtension("EGL_EXT_multiview_window", extStart, extEnd); #endif /* EGL_EXT_multiview_window */ #ifdef EGL_EXT_output_base EGLEW_EXT_output_base = _glewSearchExtension("EGL_EXT_output_base", extStart, extEnd); if (glewExperimental || EGLEW_EXT_output_base) EGLEW_EXT_output_base = !_glewInit_EGL_EXT_output_base(); #endif /* EGL_EXT_output_base */ #ifdef EGL_EXT_output_drm EGLEW_EXT_output_drm = _glewSearchExtension("EGL_EXT_output_drm", extStart, extEnd); #endif /* EGL_EXT_output_drm */ #ifdef EGL_EXT_output_openwf EGLEW_EXT_output_openwf = _glewSearchExtension("EGL_EXT_output_openwf", extStart, extEnd); #endif /* EGL_EXT_output_openwf */ #ifdef EGL_EXT_pixel_format_float EGLEW_EXT_pixel_format_float = _glewSearchExtension("EGL_EXT_pixel_format_float", extStart, extEnd); #endif /* EGL_EXT_pixel_format_float */ #ifdef EGL_EXT_platform_base EGLEW_EXT_platform_base = _glewSearchExtension("EGL_EXT_platform_base", extStart, extEnd); if (glewExperimental || EGLEW_EXT_platform_base) EGLEW_EXT_platform_base = !_glewInit_EGL_EXT_platform_base(); #endif /* EGL_EXT_platform_base */ #ifdef EGL_EXT_platform_device EGLEW_EXT_platform_device = _glewSearchExtension("EGL_EXT_platform_device", extStart, extEnd); #endif /* EGL_EXT_platform_device */ #ifdef EGL_EXT_platform_wayland EGLEW_EXT_platform_wayland = _glewSearchExtension("EGL_EXT_platform_wayland", extStart, extEnd); #endif /* EGL_EXT_platform_wayland */ #ifdef EGL_EXT_platform_x11 EGLEW_EXT_platform_x11 = _glewSearchExtension("EGL_EXT_platform_x11", extStart, extEnd); #endif /* EGL_EXT_platform_x11 */ #ifdef EGL_EXT_protected_content EGLEW_EXT_protected_content = _glewSearchExtension("EGL_EXT_protected_content", extStart, extEnd); #endif /* EGL_EXT_protected_content */ #ifdef EGL_EXT_protected_surface EGLEW_EXT_protected_surface = _glewSearchExtension("EGL_EXT_protected_surface", extStart, extEnd); #endif /* EGL_EXT_protected_surface */ #ifdef EGL_EXT_stream_consumer_egloutput EGLEW_EXT_stream_consumer_egloutput = _glewSearchExtension("EGL_EXT_stream_consumer_egloutput", extStart, extEnd); if (glewExperimental || EGLEW_EXT_stream_consumer_egloutput) EGLEW_EXT_stream_consumer_egloutput = !_glewInit_EGL_EXT_stream_consumer_egloutput(); #endif /* EGL_EXT_stream_consumer_egloutput */ #ifdef EGL_EXT_surface_SMPTE2086_metadata EGLEW_EXT_surface_SMPTE2086_metadata = _glewSearchExtension("EGL_EXT_surface_SMPTE2086_metadata", extStart, extEnd); #endif /* EGL_EXT_surface_SMPTE2086_metadata */ #ifdef EGL_EXT_swap_buffers_with_damage EGLEW_EXT_swap_buffers_with_damage = _glewSearchExtension("EGL_EXT_swap_buffers_with_damage", extStart, extEnd); if (glewExperimental || EGLEW_EXT_swap_buffers_with_damage) EGLEW_EXT_swap_buffers_with_damage = !_glewInit_EGL_EXT_swap_buffers_with_damage(); #endif /* EGL_EXT_swap_buffers_with_damage */ #ifdef EGL_EXT_yuv_surface EGLEW_EXT_yuv_surface = _glewSearchExtension("EGL_EXT_yuv_surface", extStart, extEnd); #endif /* EGL_EXT_yuv_surface */ #ifdef EGL_HI_clientpixmap EGLEW_HI_clientpixmap = _glewSearchExtension("EGL_HI_clientpixmap", extStart, extEnd); if (glewExperimental || EGLEW_HI_clientpixmap) EGLEW_HI_clientpixmap = !_glewInit_EGL_HI_clientpixmap(); #endif /* EGL_HI_clientpixmap */ #ifdef EGL_HI_colorformats EGLEW_HI_colorformats = _glewSearchExtension("EGL_HI_colorformats", extStart, extEnd); #endif /* EGL_HI_colorformats */ #ifdef EGL_IMG_context_priority EGLEW_IMG_context_priority = _glewSearchExtension("EGL_IMG_context_priority", extStart, extEnd); #endif /* EGL_IMG_context_priority */ #ifdef EGL_IMG_image_plane_attribs EGLEW_IMG_image_plane_attribs = _glewSearchExtension("EGL_IMG_image_plane_attribs", extStart, extEnd); #endif /* EGL_IMG_image_plane_attribs */ #ifdef EGL_KHR_cl_event EGLEW_KHR_cl_event = _glewSearchExtension("EGL_KHR_cl_event", extStart, extEnd); #endif /* EGL_KHR_cl_event */ #ifdef EGL_KHR_cl_event2 EGLEW_KHR_cl_event2 = _glewSearchExtension("EGL_KHR_cl_event2", extStart, extEnd); if (glewExperimental || EGLEW_KHR_cl_event2) EGLEW_KHR_cl_event2 = !_glewInit_EGL_KHR_cl_event2(); #endif /* EGL_KHR_cl_event2 */ #ifdef EGL_KHR_client_get_all_proc_addresses EGLEW_KHR_client_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_client_get_all_proc_addresses", extStart, extEnd); #endif /* EGL_KHR_client_get_all_proc_addresses */ #ifdef EGL_KHR_config_attribs EGLEW_KHR_config_attribs = _glewSearchExtension("EGL_KHR_config_attribs", extStart, extEnd); #endif /* EGL_KHR_config_attribs */ #ifdef EGL_KHR_context_flush_control EGLEW_KHR_context_flush_control = _glewSearchExtension("EGL_KHR_context_flush_control", extStart, extEnd); #endif /* EGL_KHR_context_flush_control */ #ifdef EGL_KHR_create_context EGLEW_KHR_create_context = _glewSearchExtension("EGL_KHR_create_context", extStart, extEnd); #endif /* EGL_KHR_create_context */ #ifdef EGL_KHR_create_context_no_error EGLEW_KHR_create_context_no_error = _glewSearchExtension("EGL_KHR_create_context_no_error", extStart, extEnd); #endif /* EGL_KHR_create_context_no_error */ #ifdef EGL_KHR_debug EGLEW_KHR_debug = _glewSearchExtension("EGL_KHR_debug", extStart, extEnd); if (glewExperimental || EGLEW_KHR_debug) EGLEW_KHR_debug = !_glewInit_EGL_KHR_debug(); #endif /* EGL_KHR_debug */ #ifdef EGL_KHR_fence_sync EGLEW_KHR_fence_sync = _glewSearchExtension("EGL_KHR_fence_sync", extStart, extEnd); #endif /* EGL_KHR_fence_sync */ #ifdef EGL_KHR_get_all_proc_addresses EGLEW_KHR_get_all_proc_addresses = _glewSearchExtension("EGL_KHR_get_all_proc_addresses", extStart, extEnd); #endif /* EGL_KHR_get_all_proc_addresses */ #ifdef EGL_KHR_gl_colorspace EGLEW_KHR_gl_colorspace = _glewSearchExtension("EGL_KHR_gl_colorspace", extStart, extEnd); #endif /* EGL_KHR_gl_colorspace */ #ifdef EGL_KHR_gl_renderbuffer_image EGLEW_KHR_gl_renderbuffer_image = _glewSearchExtension("EGL_KHR_gl_renderbuffer_image", extStart, extEnd); #endif /* EGL_KHR_gl_renderbuffer_image */ #ifdef EGL_KHR_gl_texture_2D_image EGLEW_KHR_gl_texture_2D_image = _glewSearchExtension("EGL_KHR_gl_texture_2D_image", extStart, extEnd); #endif /* EGL_KHR_gl_texture_2D_image */ #ifdef EGL_KHR_gl_texture_3D_image EGLEW_KHR_gl_texture_3D_image = _glewSearchExtension("EGL_KHR_gl_texture_3D_image", extStart, extEnd); #endif /* EGL_KHR_gl_texture_3D_image */ #ifdef EGL_KHR_gl_texture_cubemap_image EGLEW_KHR_gl_texture_cubemap_image = _glewSearchExtension("EGL_KHR_gl_texture_cubemap_image", extStart, extEnd); #endif /* EGL_KHR_gl_texture_cubemap_image */ #ifdef EGL_KHR_image EGLEW_KHR_image = _glewSearchExtension("EGL_KHR_image", extStart, extEnd); if (glewExperimental || EGLEW_KHR_image) EGLEW_KHR_image = !_glewInit_EGL_KHR_image(); #endif /* EGL_KHR_image */ #ifdef EGL_KHR_image_base EGLEW_KHR_image_base = _glewSearchExtension("EGL_KHR_image_base", extStart, extEnd); #endif /* EGL_KHR_image_base */ #ifdef EGL_KHR_image_pixmap EGLEW_KHR_image_pixmap = _glewSearchExtension("EGL_KHR_image_pixmap", extStart, extEnd); #endif /* EGL_KHR_image_pixmap */ #ifdef EGL_KHR_lock_surface EGLEW_KHR_lock_surface = _glewSearchExtension("EGL_KHR_lock_surface", extStart, extEnd); if (glewExperimental || EGLEW_KHR_lock_surface) EGLEW_KHR_lock_surface = !_glewInit_EGL_KHR_lock_surface(); #endif /* EGL_KHR_lock_surface */ #ifdef EGL_KHR_lock_surface2 EGLEW_KHR_lock_surface2 = _glewSearchExtension("EGL_KHR_lock_surface2", extStart, extEnd); #endif /* EGL_KHR_lock_surface2 */ #ifdef EGL_KHR_lock_surface3 EGLEW_KHR_lock_surface3 = _glewSearchExtension("EGL_KHR_lock_surface3", extStart, extEnd); if (glewExperimental || EGLEW_KHR_lock_surface3) EGLEW_KHR_lock_surface3 = !_glewInit_EGL_KHR_lock_surface3(); #endif /* EGL_KHR_lock_surface3 */ #ifdef EGL_KHR_mutable_render_buffer EGLEW_KHR_mutable_render_buffer = _glewSearchExtension("EGL_KHR_mutable_render_buffer", extStart, extEnd); #endif /* EGL_KHR_mutable_render_buffer */ #ifdef EGL_KHR_no_config_context EGLEW_KHR_no_config_context = _glewSearchExtension("EGL_KHR_no_config_context", extStart, extEnd); #endif /* EGL_KHR_no_config_context */ #ifdef EGL_KHR_partial_update EGLEW_KHR_partial_update = _glewSearchExtension("EGL_KHR_partial_update", extStart, extEnd); if (glewExperimental || EGLEW_KHR_partial_update) EGLEW_KHR_partial_update = !_glewInit_EGL_KHR_partial_update(); #endif /* EGL_KHR_partial_update */ #ifdef EGL_KHR_platform_android EGLEW_KHR_platform_android = _glewSearchExtension("EGL_KHR_platform_android", extStart, extEnd); #endif /* EGL_KHR_platform_android */ #ifdef EGL_KHR_platform_gbm EGLEW_KHR_platform_gbm = _glewSearchExtension("EGL_KHR_platform_gbm", extStart, extEnd); #endif /* EGL_KHR_platform_gbm */ #ifdef EGL_KHR_platform_wayland EGLEW_KHR_platform_wayland = _glewSearchExtension("EGL_KHR_platform_wayland", extStart, extEnd); #endif /* EGL_KHR_platform_wayland */ #ifdef EGL_KHR_platform_x11 EGLEW_KHR_platform_x11 = _glewSearchExtension("EGL_KHR_platform_x11", extStart, extEnd); #endif /* EGL_KHR_platform_x11 */ #ifdef EGL_KHR_reusable_sync EGLEW_KHR_reusable_sync = _glewSearchExtension("EGL_KHR_reusable_sync", extStart, extEnd); if (glewExperimental || EGLEW_KHR_reusable_sync) EGLEW_KHR_reusable_sync = !_glewInit_EGL_KHR_reusable_sync(); #endif /* EGL_KHR_reusable_sync */ #ifdef EGL_KHR_stream EGLEW_KHR_stream = _glewSearchExtension("EGL_KHR_stream", extStart, extEnd); if (glewExperimental || EGLEW_KHR_stream) EGLEW_KHR_stream = !_glewInit_EGL_KHR_stream(); #endif /* EGL_KHR_stream */ #ifdef EGL_KHR_stream_attrib EGLEW_KHR_stream_attrib = _glewSearchExtension("EGL_KHR_stream_attrib", extStart, extEnd); if (glewExperimental || EGLEW_KHR_stream_attrib) EGLEW_KHR_stream_attrib = !_glewInit_EGL_KHR_stream_attrib(); #endif /* EGL_KHR_stream_attrib */ #ifdef EGL_KHR_stream_consumer_gltexture EGLEW_KHR_stream_consumer_gltexture = _glewSearchExtension("EGL_KHR_stream_consumer_gltexture", extStart, extEnd); if (glewExperimental || EGLEW_KHR_stream_consumer_gltexture) EGLEW_KHR_stream_consumer_gltexture = !_glewInit_EGL_KHR_stream_consumer_gltexture(); #endif /* EGL_KHR_stream_consumer_gltexture */ #ifdef EGL_KHR_stream_cross_process_fd EGLEW_KHR_stream_cross_process_fd = _glewSearchExtension("EGL_KHR_stream_cross_process_fd", extStart, extEnd); if (glewExperimental || EGLEW_KHR_stream_cross_process_fd) EGLEW_KHR_stream_cross_process_fd = !_glewInit_EGL_KHR_stream_cross_process_fd(); #endif /* EGL_KHR_stream_cross_process_fd */ #ifdef EGL_KHR_stream_fifo EGLEW_KHR_stream_fifo = _glewSearchExtension("EGL_KHR_stream_fifo", extStart, extEnd); if (glewExperimental || EGLEW_KHR_stream_fifo) EGLEW_KHR_stream_fifo = !_glewInit_EGL_KHR_stream_fifo(); #endif /* EGL_KHR_stream_fifo */ #ifdef EGL_KHR_stream_producer_aldatalocator EGLEW_KHR_stream_producer_aldatalocator = _glewSearchExtension("EGL_KHR_stream_producer_aldatalocator", extStart, extEnd); #endif /* EGL_KHR_stream_producer_aldatalocator */ #ifdef EGL_KHR_stream_producer_eglsurface EGLEW_KHR_stream_producer_eglsurface = _glewSearchExtension("EGL_KHR_stream_producer_eglsurface", extStart, extEnd); if (glewExperimental || EGLEW_KHR_stream_producer_eglsurface) EGLEW_KHR_stream_producer_eglsurface = !_glewInit_EGL_KHR_stream_producer_eglsurface(); #endif /* EGL_KHR_stream_producer_eglsurface */ #ifdef EGL_KHR_surfaceless_context EGLEW_KHR_surfaceless_context = _glewSearchExtension("EGL_KHR_surfaceless_context", extStart, extEnd); #endif /* EGL_KHR_surfaceless_context */ #ifdef EGL_KHR_swap_buffers_with_damage EGLEW_KHR_swap_buffers_with_damage = _glewSearchExtension("EGL_KHR_swap_buffers_with_damage", extStart, extEnd); if (glewExperimental || EGLEW_KHR_swap_buffers_with_damage) EGLEW_KHR_swap_buffers_with_damage = !_glewInit_EGL_KHR_swap_buffers_with_damage(); #endif /* EGL_KHR_swap_buffers_with_damage */ #ifdef EGL_KHR_vg_parent_image EGLEW_KHR_vg_parent_image = _glewSearchExtension("EGL_KHR_vg_parent_image", extStart, extEnd); #endif /* EGL_KHR_vg_parent_image */ #ifdef EGL_KHR_wait_sync EGLEW_KHR_wait_sync = _glewSearchExtension("EGL_KHR_wait_sync", extStart, extEnd); if (glewExperimental || EGLEW_KHR_wait_sync) EGLEW_KHR_wait_sync = !_glewInit_EGL_KHR_wait_sync(); #endif /* EGL_KHR_wait_sync */ #ifdef EGL_MESA_drm_image EGLEW_MESA_drm_image = _glewSearchExtension("EGL_MESA_drm_image", extStart, extEnd); if (glewExperimental || EGLEW_MESA_drm_image) EGLEW_MESA_drm_image = !_glewInit_EGL_MESA_drm_image(); #endif /* EGL_MESA_drm_image */ #ifdef EGL_MESA_image_dma_buf_export EGLEW_MESA_image_dma_buf_export = _glewSearchExtension("EGL_MESA_image_dma_buf_export", extStart, extEnd); if (glewExperimental || EGLEW_MESA_image_dma_buf_export) EGLEW_MESA_image_dma_buf_export = !_glewInit_EGL_MESA_image_dma_buf_export(); #endif /* EGL_MESA_image_dma_buf_export */ #ifdef EGL_MESA_platform_gbm EGLEW_MESA_platform_gbm = _glewSearchExtension("EGL_MESA_platform_gbm", extStart, extEnd); #endif /* EGL_MESA_platform_gbm */ #ifdef EGL_MESA_platform_surfaceless EGLEW_MESA_platform_surfaceless = _glewSearchExtension("EGL_MESA_platform_surfaceless", extStart, extEnd); #endif /* EGL_MESA_platform_surfaceless */ #ifdef EGL_NOK_swap_region EGLEW_NOK_swap_region = _glewSearchExtension("EGL_NOK_swap_region", extStart, extEnd); if (glewExperimental || EGLEW_NOK_swap_region) EGLEW_NOK_swap_region = !_glewInit_EGL_NOK_swap_region(); #endif /* EGL_NOK_swap_region */ #ifdef EGL_NOK_swap_region2 EGLEW_NOK_swap_region2 = _glewSearchExtension("EGL_NOK_swap_region2", extStart, extEnd); if (glewExperimental || EGLEW_NOK_swap_region2) EGLEW_NOK_swap_region2 = !_glewInit_EGL_NOK_swap_region2(); #endif /* EGL_NOK_swap_region2 */ #ifdef EGL_NOK_texture_from_pixmap EGLEW_NOK_texture_from_pixmap = _glewSearchExtension("EGL_NOK_texture_from_pixmap", extStart, extEnd); #endif /* EGL_NOK_texture_from_pixmap */ #ifdef EGL_NV_3dvision_surface EGLEW_NV_3dvision_surface = _glewSearchExtension("EGL_NV_3dvision_surface", extStart, extEnd); #endif /* EGL_NV_3dvision_surface */ #ifdef EGL_NV_coverage_sample EGLEW_NV_coverage_sample = _glewSearchExtension("EGL_NV_coverage_sample", extStart, extEnd); #endif /* EGL_NV_coverage_sample */ #ifdef EGL_NV_coverage_sample_resolve EGLEW_NV_coverage_sample_resolve = _glewSearchExtension("EGL_NV_coverage_sample_resolve", extStart, extEnd); #endif /* EGL_NV_coverage_sample_resolve */ #ifdef EGL_NV_cuda_event EGLEW_NV_cuda_event = _glewSearchExtension("EGL_NV_cuda_event", extStart, extEnd); #endif /* EGL_NV_cuda_event */ #ifdef EGL_NV_depth_nonlinear EGLEW_NV_depth_nonlinear = _glewSearchExtension("EGL_NV_depth_nonlinear", extStart, extEnd); #endif /* EGL_NV_depth_nonlinear */ #ifdef EGL_NV_device_cuda EGLEW_NV_device_cuda = _glewSearchExtension("EGL_NV_device_cuda", extStart, extEnd); #endif /* EGL_NV_device_cuda */ #ifdef EGL_NV_native_query EGLEW_NV_native_query = _glewSearchExtension("EGL_NV_native_query", extStart, extEnd); if (glewExperimental || EGLEW_NV_native_query) EGLEW_NV_native_query = !_glewInit_EGL_NV_native_query(); #endif /* EGL_NV_native_query */ #ifdef EGL_NV_post_convert_rounding EGLEW_NV_post_convert_rounding = _glewSearchExtension("EGL_NV_post_convert_rounding", extStart, extEnd); #endif /* EGL_NV_post_convert_rounding */ #ifdef EGL_NV_post_sub_buffer EGLEW_NV_post_sub_buffer = _glewSearchExtension("EGL_NV_post_sub_buffer", extStart, extEnd); if (glewExperimental || EGLEW_NV_post_sub_buffer) EGLEW_NV_post_sub_buffer = !_glewInit_EGL_NV_post_sub_buffer(); #endif /* EGL_NV_post_sub_buffer */ #ifdef EGL_NV_robustness_video_memory_purge EGLEW_NV_robustness_video_memory_purge = _glewSearchExtension("EGL_NV_robustness_video_memory_purge", extStart, extEnd); #endif /* EGL_NV_robustness_video_memory_purge */ #ifdef EGL_NV_stream_consumer_gltexture_yuv EGLEW_NV_stream_consumer_gltexture_yuv = _glewSearchExtension("EGL_NV_stream_consumer_gltexture_yuv", extStart, extEnd); if (glewExperimental || EGLEW_NV_stream_consumer_gltexture_yuv) EGLEW_NV_stream_consumer_gltexture_yuv = !_glewInit_EGL_NV_stream_consumer_gltexture_yuv(); #endif /* EGL_NV_stream_consumer_gltexture_yuv */ #ifdef EGL_NV_stream_cross_display EGLEW_NV_stream_cross_display = _glewSearchExtension("EGL_NV_stream_cross_display", extStart, extEnd); #endif /* EGL_NV_stream_cross_display */ #ifdef EGL_NV_stream_cross_object EGLEW_NV_stream_cross_object = _glewSearchExtension("EGL_NV_stream_cross_object", extStart, extEnd); #endif /* EGL_NV_stream_cross_object */ #ifdef EGL_NV_stream_cross_partition EGLEW_NV_stream_cross_partition = _glewSearchExtension("EGL_NV_stream_cross_partition", extStart, extEnd); #endif /* EGL_NV_stream_cross_partition */ #ifdef EGL_NV_stream_cross_process EGLEW_NV_stream_cross_process = _glewSearchExtension("EGL_NV_stream_cross_process", extStart, extEnd); #endif /* EGL_NV_stream_cross_process */ #ifdef EGL_NV_stream_cross_system EGLEW_NV_stream_cross_system = _glewSearchExtension("EGL_NV_stream_cross_system", extStart, extEnd); #endif /* EGL_NV_stream_cross_system */ #ifdef EGL_NV_stream_fifo_next EGLEW_NV_stream_fifo_next = _glewSearchExtension("EGL_NV_stream_fifo_next", extStart, extEnd); #endif /* EGL_NV_stream_fifo_next */ #ifdef EGL_NV_stream_fifo_synchronous EGLEW_NV_stream_fifo_synchronous = _glewSearchExtension("EGL_NV_stream_fifo_synchronous", extStart, extEnd); #endif /* EGL_NV_stream_fifo_synchronous */ #ifdef EGL_NV_stream_frame_limits EGLEW_NV_stream_frame_limits = _glewSearchExtension("EGL_NV_stream_frame_limits", extStart, extEnd); #endif /* EGL_NV_stream_frame_limits */ #ifdef EGL_NV_stream_metadata EGLEW_NV_stream_metadata = _glewSearchExtension("EGL_NV_stream_metadata", extStart, extEnd); if (glewExperimental || EGLEW_NV_stream_metadata) EGLEW_NV_stream_metadata = !_glewInit_EGL_NV_stream_metadata(); #endif /* EGL_NV_stream_metadata */ #ifdef EGL_NV_stream_remote EGLEW_NV_stream_remote = _glewSearchExtension("EGL_NV_stream_remote", extStart, extEnd); #endif /* EGL_NV_stream_remote */ #ifdef EGL_NV_stream_reset EGLEW_NV_stream_reset = _glewSearchExtension("EGL_NV_stream_reset", extStart, extEnd); if (glewExperimental || EGLEW_NV_stream_reset) EGLEW_NV_stream_reset = !_glewInit_EGL_NV_stream_reset(); #endif /* EGL_NV_stream_reset */ #ifdef EGL_NV_stream_socket EGLEW_NV_stream_socket = _glewSearchExtension("EGL_NV_stream_socket", extStart, extEnd); #endif /* EGL_NV_stream_socket */ #ifdef EGL_NV_stream_socket_inet EGLEW_NV_stream_socket_inet = _glewSearchExtension("EGL_NV_stream_socket_inet", extStart, extEnd); #endif /* EGL_NV_stream_socket_inet */ #ifdef EGL_NV_stream_socket_unix EGLEW_NV_stream_socket_unix = _glewSearchExtension("EGL_NV_stream_socket_unix", extStart, extEnd); #endif /* EGL_NV_stream_socket_unix */ #ifdef EGL_NV_stream_sync EGLEW_NV_stream_sync = _glewSearchExtension("EGL_NV_stream_sync", extStart, extEnd); if (glewExperimental || EGLEW_NV_stream_sync) EGLEW_NV_stream_sync = !_glewInit_EGL_NV_stream_sync(); #endif /* EGL_NV_stream_sync */ #ifdef EGL_NV_sync EGLEW_NV_sync = _glewSearchExtension("EGL_NV_sync", extStart, extEnd); if (glewExperimental || EGLEW_NV_sync) EGLEW_NV_sync = !_glewInit_EGL_NV_sync(); #endif /* EGL_NV_sync */ #ifdef EGL_NV_system_time EGLEW_NV_system_time = _glewSearchExtension("EGL_NV_system_time", extStart, extEnd); if (glewExperimental || EGLEW_NV_system_time) EGLEW_NV_system_time = !_glewInit_EGL_NV_system_time(); #endif /* EGL_NV_system_time */ #ifdef EGL_TIZEN_image_native_buffer EGLEW_TIZEN_image_native_buffer = _glewSearchExtension("EGL_TIZEN_image_native_buffer", extStart, extEnd); #endif /* EGL_TIZEN_image_native_buffer */ #ifdef EGL_TIZEN_image_native_surface EGLEW_TIZEN_image_native_surface = _glewSearchExtension("EGL_TIZEN_image_native_surface", extStart, extEnd); #endif /* EGL_TIZEN_image_native_surface */ return GLEW_OK; } #elif defined(_WIN32) PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL = NULL; PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD = NULL; PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD = NULL; PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD = NULL; PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD = NULL; PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD = NULL; PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD = NULL; PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD = NULL; PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD = NULL; PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD = NULL; PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB = NULL; PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB = NULL; PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB = NULL; PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB = NULL; PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB = NULL; PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB = NULL; PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB = NULL; PFNWGLMAKECONTEXTCURRENTARBPROC __wglewMakeContextCurrentARB = NULL; PFNWGLCREATEPBUFFERARBPROC __wglewCreatePbufferARB = NULL; PFNWGLDESTROYPBUFFERARBPROC __wglewDestroyPbufferARB = NULL; PFNWGLGETPBUFFERDCARBPROC __wglewGetPbufferDCARB = NULL; PFNWGLQUERYPBUFFERARBPROC __wglewQueryPbufferARB = NULL; PFNWGLRELEASEPBUFFERDCARBPROC __wglewReleasePbufferDCARB = NULL; PFNWGLCHOOSEPIXELFORMATARBPROC __wglewChoosePixelFormatARB = NULL; PFNWGLGETPIXELFORMATATTRIBFVARBPROC __wglewGetPixelFormatAttribfvARB = NULL; PFNWGLGETPIXELFORMATATTRIBIVARBPROC __wglewGetPixelFormatAttribivARB = NULL; PFNWGLBINDTEXIMAGEARBPROC __wglewBindTexImageARB = NULL; PFNWGLRELEASETEXIMAGEARBPROC __wglewReleaseTexImageARB = NULL; PFNWGLSETPBUFFERATTRIBARBPROC __wglewSetPbufferAttribARB = NULL; PFNWGLBINDDISPLAYCOLORTABLEEXTPROC __wglewBindDisplayColorTableEXT = NULL; PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC __wglewCreateDisplayColorTableEXT = NULL; PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC __wglewDestroyDisplayColorTableEXT = NULL; PFNWGLLOADDISPLAYCOLORTABLEEXTPROC __wglewLoadDisplayColorTableEXT = NULL; PFNWGLGETEXTENSIONSSTRINGEXTPROC __wglewGetExtensionsStringEXT = NULL; PFNWGLGETCURRENTREADDCEXTPROC __wglewGetCurrentReadDCEXT = NULL; PFNWGLMAKECONTEXTCURRENTEXTPROC __wglewMakeContextCurrentEXT = NULL; PFNWGLCREATEPBUFFEREXTPROC __wglewCreatePbufferEXT = NULL; PFNWGLDESTROYPBUFFEREXTPROC __wglewDestroyPbufferEXT = NULL; PFNWGLGETPBUFFERDCEXTPROC __wglewGetPbufferDCEXT = NULL; PFNWGLQUERYPBUFFEREXTPROC __wglewQueryPbufferEXT = NULL; PFNWGLRELEASEPBUFFERDCEXTPROC __wglewReleasePbufferDCEXT = NULL; PFNWGLCHOOSEPIXELFORMATEXTPROC __wglewChoosePixelFormatEXT = NULL; PFNWGLGETPIXELFORMATATTRIBFVEXTPROC __wglewGetPixelFormatAttribfvEXT = NULL; PFNWGLGETPIXELFORMATATTRIBIVEXTPROC __wglewGetPixelFormatAttribivEXT = NULL; PFNWGLGETSWAPINTERVALEXTPROC __wglewGetSwapIntervalEXT = NULL; PFNWGLSWAPINTERVALEXTPROC __wglewSwapIntervalEXT = NULL; PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC __wglewGetDigitalVideoParametersI3D = NULL; PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC __wglewSetDigitalVideoParametersI3D = NULL; PFNWGLGETGAMMATABLEI3DPROC __wglewGetGammaTableI3D = NULL; PFNWGLGETGAMMATABLEPARAMETERSI3DPROC __wglewGetGammaTableParametersI3D = NULL; PFNWGLSETGAMMATABLEI3DPROC __wglewSetGammaTableI3D = NULL; PFNWGLSETGAMMATABLEPARAMETERSI3DPROC __wglewSetGammaTableParametersI3D = NULL; PFNWGLDISABLEGENLOCKI3DPROC __wglewDisableGenlockI3D = NULL; PFNWGLENABLEGENLOCKI3DPROC __wglewEnableGenlockI3D = NULL; PFNWGLGENLOCKSAMPLERATEI3DPROC __wglewGenlockSampleRateI3D = NULL; PFNWGLGENLOCKSOURCEDELAYI3DPROC __wglewGenlockSourceDelayI3D = NULL; PFNWGLGENLOCKSOURCEEDGEI3DPROC __wglewGenlockSourceEdgeI3D = NULL; PFNWGLGENLOCKSOURCEI3DPROC __wglewGenlockSourceI3D = NULL; PFNWGLGETGENLOCKSAMPLERATEI3DPROC __wglewGetGenlockSampleRateI3D = NULL; PFNWGLGETGENLOCKSOURCEDELAYI3DPROC __wglewGetGenlockSourceDelayI3D = NULL; PFNWGLGETGENLOCKSOURCEEDGEI3DPROC __wglewGetGenlockSourceEdgeI3D = NULL; PFNWGLGETGENLOCKSOURCEI3DPROC __wglewGetGenlockSourceI3D = NULL; PFNWGLISENABLEDGENLOCKI3DPROC __wglewIsEnabledGenlockI3D = NULL; PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC __wglewQueryGenlockMaxSourceDelayI3D = NULL; PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC __wglewAssociateImageBufferEventsI3D = NULL; PFNWGLCREATEIMAGEBUFFERI3DPROC __wglewCreateImageBufferI3D = NULL; PFNWGLDESTROYIMAGEBUFFERI3DPROC __wglewDestroyImageBufferI3D = NULL; PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC __wglewReleaseImageBufferEventsI3D = NULL; PFNWGLDISABLEFRAMELOCKI3DPROC __wglewDisableFrameLockI3D = NULL; PFNWGLENABLEFRAMELOCKI3DPROC __wglewEnableFrameLockI3D = NULL; PFNWGLISENABLEDFRAMELOCKI3DPROC __wglewIsEnabledFrameLockI3D = NULL; PFNWGLQUERYFRAMELOCKMASTERI3DPROC __wglewQueryFrameLockMasterI3D = NULL; PFNWGLBEGINFRAMETRACKINGI3DPROC __wglewBeginFrameTrackingI3D = NULL; PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D = NULL; PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D = NULL; PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D = NULL; PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV = NULL; PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV = NULL; PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV = NULL; PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV = NULL; PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV = NULL; PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV = NULL; PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV = NULL; PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV = NULL; PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV = NULL; PFNWGLDELAYBEFORESWAPNVPROC __wglewDelayBeforeSwapNV = NULL; PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV = NULL; PFNWGLDELETEDCNVPROC __wglewDeleteDCNV = NULL; PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV = NULL; PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV = NULL; PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV = NULL; PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV = NULL; PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV = NULL; PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV = NULL; PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV = NULL; PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV = NULL; PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV = NULL; PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV = NULL; PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV = NULL; PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV = NULL; PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV = NULL; PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV = NULL; PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV = NULL; PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV = NULL; PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV = NULL; PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV = NULL; PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV = NULL; PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV = NULL; PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV = NULL; PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV = NULL; PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV = NULL; PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV = NULL; PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV = NULL; PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML = NULL; PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML = NULL; PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML = NULL; PFNWGLSWAPLAYERBUFFERSMSCOMLPROC __wglewSwapLayerBuffersMscOML = NULL; PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML = NULL; PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML = NULL; GLboolean __WGLEW_3DFX_multisample = GL_FALSE; GLboolean __WGLEW_3DL_stereo_control = GL_FALSE; GLboolean __WGLEW_AMD_gpu_association = GL_FALSE; GLboolean __WGLEW_ARB_buffer_region = GL_FALSE; GLboolean __WGLEW_ARB_context_flush_control = GL_FALSE; GLboolean __WGLEW_ARB_create_context = GL_FALSE; GLboolean __WGLEW_ARB_create_context_no_error = GL_FALSE; GLboolean __WGLEW_ARB_create_context_profile = GL_FALSE; GLboolean __WGLEW_ARB_create_context_robustness = GL_FALSE; GLboolean __WGLEW_ARB_extensions_string = GL_FALSE; GLboolean __WGLEW_ARB_framebuffer_sRGB = GL_FALSE; GLboolean __WGLEW_ARB_make_current_read = GL_FALSE; GLboolean __WGLEW_ARB_multisample = GL_FALSE; GLboolean __WGLEW_ARB_pbuffer = GL_FALSE; GLboolean __WGLEW_ARB_pixel_format = GL_FALSE; GLboolean __WGLEW_ARB_pixel_format_float = GL_FALSE; GLboolean __WGLEW_ARB_render_texture = GL_FALSE; GLboolean __WGLEW_ARB_robustness_application_isolation = GL_FALSE; GLboolean __WGLEW_ARB_robustness_share_group_isolation = GL_FALSE; GLboolean __WGLEW_ATI_pixel_format_float = GL_FALSE; GLboolean __WGLEW_ATI_render_texture_rectangle = GL_FALSE; GLboolean __WGLEW_EXT_colorspace = GL_FALSE; GLboolean __WGLEW_EXT_create_context_es2_profile = GL_FALSE; GLboolean __WGLEW_EXT_create_context_es_profile = GL_FALSE; GLboolean __WGLEW_EXT_depth_float = GL_FALSE; GLboolean __WGLEW_EXT_display_color_table = GL_FALSE; GLboolean __WGLEW_EXT_extensions_string = GL_FALSE; GLboolean __WGLEW_EXT_framebuffer_sRGB = GL_FALSE; GLboolean __WGLEW_EXT_make_current_read = GL_FALSE; GLboolean __WGLEW_EXT_multisample = GL_FALSE; GLboolean __WGLEW_EXT_pbuffer = GL_FALSE; GLboolean __WGLEW_EXT_pixel_format = GL_FALSE; GLboolean __WGLEW_EXT_pixel_format_packed_float = GL_FALSE; GLboolean __WGLEW_EXT_swap_control = GL_FALSE; GLboolean __WGLEW_EXT_swap_control_tear = GL_FALSE; GLboolean __WGLEW_I3D_digital_video_control = GL_FALSE; GLboolean __WGLEW_I3D_gamma = GL_FALSE; GLboolean __WGLEW_I3D_genlock = GL_FALSE; GLboolean __WGLEW_I3D_image_buffer = GL_FALSE; GLboolean __WGLEW_I3D_swap_frame_lock = GL_FALSE; GLboolean __WGLEW_I3D_swap_frame_usage = GL_FALSE; GLboolean __WGLEW_NV_DX_interop = GL_FALSE; GLboolean __WGLEW_NV_DX_interop2 = GL_FALSE; GLboolean __WGLEW_NV_copy_image = GL_FALSE; GLboolean __WGLEW_NV_delay_before_swap = GL_FALSE; GLboolean __WGLEW_NV_float_buffer = GL_FALSE; GLboolean __WGLEW_NV_gpu_affinity = GL_FALSE; GLboolean __WGLEW_NV_multisample_coverage = GL_FALSE; GLboolean __WGLEW_NV_present_video = GL_FALSE; GLboolean __WGLEW_NV_render_depth_texture = GL_FALSE; GLboolean __WGLEW_NV_render_texture_rectangle = GL_FALSE; GLboolean __WGLEW_NV_swap_group = GL_FALSE; GLboolean __WGLEW_NV_vertex_array_range = GL_FALSE; GLboolean __WGLEW_NV_video_capture = GL_FALSE; GLboolean __WGLEW_NV_video_output = GL_FALSE; GLboolean __WGLEW_OML_sync_control = GL_FALSE; #ifdef WGL_3DL_stereo_control static GLboolean _glewInit_WGL_3DL_stereo_control () { GLboolean r = GL_FALSE; r = ((wglSetStereoEmitterState3DL = (PFNWGLSETSTEREOEMITTERSTATE3DLPROC)glewGetProcAddress((const GLubyte*)"wglSetStereoEmitterState3DL")) == NULL) || r; return r; } #endif /* WGL_3DL_stereo_control */ #ifdef WGL_AMD_gpu_association static GLboolean _glewInit_WGL_AMD_gpu_association () { GLboolean r = GL_FALSE; r = ((wglBlitContextFramebufferAMD = (PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)glewGetProcAddress((const GLubyte*)"wglBlitContextFramebufferAMD")) == NULL) || r; r = ((wglCreateAssociatedContextAMD = (PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"wglCreateAssociatedContextAMD")) == NULL) || r; r = ((wglCreateAssociatedContextAttribsAMD = (PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)glewGetProcAddress((const GLubyte*)"wglCreateAssociatedContextAttribsAMD")) == NULL) || r; r = ((wglDeleteAssociatedContextAMD = (PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"wglDeleteAssociatedContextAMD")) == NULL) || r; r = ((wglGetContextGPUIDAMD = (PFNWGLGETCONTEXTGPUIDAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetContextGPUIDAMD")) == NULL) || r; r = ((wglGetCurrentAssociatedContextAMD = (PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetCurrentAssociatedContextAMD")) == NULL) || r; r = ((wglGetGPUIDsAMD = (PFNWGLGETGPUIDSAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetGPUIDsAMD")) == NULL) || r; r = ((wglGetGPUInfoAMD = (PFNWGLGETGPUINFOAMDPROC)glewGetProcAddress((const GLubyte*)"wglGetGPUInfoAMD")) == NULL) || r; r = ((wglMakeAssociatedContextCurrentAMD = (PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)glewGetProcAddress((const GLubyte*)"wglMakeAssociatedContextCurrentAMD")) == NULL) || r; return r; } #endif /* WGL_AMD_gpu_association */ #ifdef WGL_ARB_buffer_region static GLboolean _glewInit_WGL_ARB_buffer_region () { GLboolean r = GL_FALSE; r = ((wglCreateBufferRegionARB = (PFNWGLCREATEBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglCreateBufferRegionARB")) == NULL) || r; r = ((wglDeleteBufferRegionARB = (PFNWGLDELETEBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglDeleteBufferRegionARB")) == NULL) || r; r = ((wglRestoreBufferRegionARB = (PFNWGLRESTOREBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglRestoreBufferRegionARB")) == NULL) || r; r = ((wglSaveBufferRegionARB = (PFNWGLSAVEBUFFERREGIONARBPROC)glewGetProcAddress((const GLubyte*)"wglSaveBufferRegionARB")) == NULL) || r; return r; } #endif /* WGL_ARB_buffer_region */ #ifdef WGL_ARB_create_context static GLboolean _glewInit_WGL_ARB_create_context () { GLboolean r = GL_FALSE; r = ((wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)glewGetProcAddress((const GLubyte*)"wglCreateContextAttribsARB")) == NULL) || r; return r; } #endif /* WGL_ARB_create_context */ #ifdef WGL_ARB_extensions_string static GLboolean _glewInit_WGL_ARB_extensions_string () { GLboolean r = GL_FALSE; r = ((wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB")) == NULL) || r; return r; } #endif /* WGL_ARB_extensions_string */ #ifdef WGL_ARB_make_current_read static GLboolean _glewInit_WGL_ARB_make_current_read () { GLboolean r = GL_FALSE; r = ((wglGetCurrentReadDCARB = (PFNWGLGETCURRENTREADDCARBPROC)glewGetProcAddress((const GLubyte*)"wglGetCurrentReadDCARB")) == NULL) || r; r = ((wglMakeContextCurrentARB = (PFNWGLMAKECONTEXTCURRENTARBPROC)glewGetProcAddress((const GLubyte*)"wglMakeContextCurrentARB")) == NULL) || r; return r; } #endif /* WGL_ARB_make_current_read */ #ifdef WGL_ARB_pbuffer static GLboolean _glewInit_WGL_ARB_pbuffer () { GLboolean r = GL_FALSE; r = ((wglCreatePbufferARB = (PFNWGLCREATEPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"wglCreatePbufferARB")) == NULL) || r; r = ((wglDestroyPbufferARB = (PFNWGLDESTROYPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"wglDestroyPbufferARB")) == NULL) || r; r = ((wglGetPbufferDCARB = (PFNWGLGETPBUFFERDCARBPROC)glewGetProcAddress((const GLubyte*)"wglGetPbufferDCARB")) == NULL) || r; r = ((wglQueryPbufferARB = (PFNWGLQUERYPBUFFERARBPROC)glewGetProcAddress((const GLubyte*)"wglQueryPbufferARB")) == NULL) || r; r = ((wglReleasePbufferDCARB = (PFNWGLRELEASEPBUFFERDCARBPROC)glewGetProcAddress((const GLubyte*)"wglReleasePbufferDCARB")) == NULL) || r; return r; } #endif /* WGL_ARB_pbuffer */ #ifdef WGL_ARB_pixel_format static GLboolean _glewInit_WGL_ARB_pixel_format () { GLboolean r = GL_FALSE; r = ((wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)glewGetProcAddress((const GLubyte*)"wglChoosePixelFormatARB")) == NULL) || r; r = ((wglGetPixelFormatAttribfvARB = (PFNWGLGETPIXELFORMATATTRIBFVARBPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribfvARB")) == NULL) || r; r = ((wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribivARB")) == NULL) || r; return r; } #endif /* WGL_ARB_pixel_format */ #ifdef WGL_ARB_render_texture static GLboolean _glewInit_WGL_ARB_render_texture () { GLboolean r = GL_FALSE; r = ((wglBindTexImageARB = (PFNWGLBINDTEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"wglBindTexImageARB")) == NULL) || r; r = ((wglReleaseTexImageARB = (PFNWGLRELEASETEXIMAGEARBPROC)glewGetProcAddress((const GLubyte*)"wglReleaseTexImageARB")) == NULL) || r; r = ((wglSetPbufferAttribARB = (PFNWGLSETPBUFFERATTRIBARBPROC)glewGetProcAddress((const GLubyte*)"wglSetPbufferAttribARB")) == NULL) || r; return r; } #endif /* WGL_ARB_render_texture */ #ifdef WGL_EXT_display_color_table static GLboolean _glewInit_WGL_EXT_display_color_table () { GLboolean r = GL_FALSE; r = ((wglBindDisplayColorTableEXT = (PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglBindDisplayColorTableEXT")) == NULL) || r; r = ((wglCreateDisplayColorTableEXT = (PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglCreateDisplayColorTableEXT")) == NULL) || r; r = ((wglDestroyDisplayColorTableEXT = (PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglDestroyDisplayColorTableEXT")) == NULL) || r; r = ((wglLoadDisplayColorTableEXT = (PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)glewGetProcAddress((const GLubyte*)"wglLoadDisplayColorTableEXT")) == NULL) || r; return r; } #endif /* WGL_EXT_display_color_table */ #ifdef WGL_EXT_extensions_string static GLboolean _glewInit_WGL_EXT_extensions_string () { GLboolean r = GL_FALSE; r = ((wglGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT")) == NULL) || r; return r; } #endif /* WGL_EXT_extensions_string */ #ifdef WGL_EXT_make_current_read static GLboolean _glewInit_WGL_EXT_make_current_read () { GLboolean r = GL_FALSE; r = ((wglGetCurrentReadDCEXT = (PFNWGLGETCURRENTREADDCEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetCurrentReadDCEXT")) == NULL) || r; r = ((wglMakeContextCurrentEXT = (PFNWGLMAKECONTEXTCURRENTEXTPROC)glewGetProcAddress((const GLubyte*)"wglMakeContextCurrentEXT")) == NULL) || r; return r; } #endif /* WGL_EXT_make_current_read */ #ifdef WGL_EXT_pbuffer static GLboolean _glewInit_WGL_EXT_pbuffer () { GLboolean r = GL_FALSE; r = ((wglCreatePbufferEXT = (PFNWGLCREATEPBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"wglCreatePbufferEXT")) == NULL) || r; r = ((wglDestroyPbufferEXT = (PFNWGLDESTROYPBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"wglDestroyPbufferEXT")) == NULL) || r; r = ((wglGetPbufferDCEXT = (PFNWGLGETPBUFFERDCEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetPbufferDCEXT")) == NULL) || r; r = ((wglQueryPbufferEXT = (PFNWGLQUERYPBUFFEREXTPROC)glewGetProcAddress((const GLubyte*)"wglQueryPbufferEXT")) == NULL) || r; r = ((wglReleasePbufferDCEXT = (PFNWGLRELEASEPBUFFERDCEXTPROC)glewGetProcAddress((const GLubyte*)"wglReleasePbufferDCEXT")) == NULL) || r; return r; } #endif /* WGL_EXT_pbuffer */ #ifdef WGL_EXT_pixel_format static GLboolean _glewInit_WGL_EXT_pixel_format () { GLboolean r = GL_FALSE; r = ((wglChoosePixelFormatEXT = (PFNWGLCHOOSEPIXELFORMATEXTPROC)glewGetProcAddress((const GLubyte*)"wglChoosePixelFormatEXT")) == NULL) || r; r = ((wglGetPixelFormatAttribfvEXT = (PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribfvEXT")) == NULL) || r; r = ((wglGetPixelFormatAttribivEXT = (PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetPixelFormatAttribivEXT")) == NULL) || r; return r; } #endif /* WGL_EXT_pixel_format */ #ifdef WGL_EXT_swap_control static GLboolean _glewInit_WGL_EXT_swap_control () { GLboolean r = GL_FALSE; r = ((wglGetSwapIntervalEXT = (PFNWGLGETSWAPINTERVALEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetSwapIntervalEXT")) == NULL) || r; r = ((wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)glewGetProcAddress((const GLubyte*)"wglSwapIntervalEXT")) == NULL) || r; return r; } #endif /* WGL_EXT_swap_control */ #ifdef WGL_I3D_digital_video_control static GLboolean _glewInit_WGL_I3D_digital_video_control () { GLboolean r = GL_FALSE; r = ((wglGetDigitalVideoParametersI3D = (PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetDigitalVideoParametersI3D")) == NULL) || r; r = ((wglSetDigitalVideoParametersI3D = (PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglSetDigitalVideoParametersI3D")) == NULL) || r; return r; } #endif /* WGL_I3D_digital_video_control */ #ifdef WGL_I3D_gamma static GLboolean _glewInit_WGL_I3D_gamma () { GLboolean r = GL_FALSE; r = ((wglGetGammaTableI3D = (PFNWGLGETGAMMATABLEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGammaTableI3D")) == NULL) || r; r = ((wglGetGammaTableParametersI3D = (PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGammaTableParametersI3D")) == NULL) || r; r = ((wglSetGammaTableI3D = (PFNWGLSETGAMMATABLEI3DPROC)glewGetProcAddress((const GLubyte*)"wglSetGammaTableI3D")) == NULL) || r; r = ((wglSetGammaTableParametersI3D = (PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)glewGetProcAddress((const GLubyte*)"wglSetGammaTableParametersI3D")) == NULL) || r; return r; } #endif /* WGL_I3D_gamma */ #ifdef WGL_I3D_genlock static GLboolean _glewInit_WGL_I3D_genlock () { GLboolean r = GL_FALSE; r = ((wglDisableGenlockI3D = (PFNWGLDISABLEGENLOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglDisableGenlockI3D")) == NULL) || r; r = ((wglEnableGenlockI3D = (PFNWGLENABLEGENLOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglEnableGenlockI3D")) == NULL) || r; r = ((wglGenlockSampleRateI3D = (PFNWGLGENLOCKSAMPLERATEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSampleRateI3D")) == NULL) || r; r = ((wglGenlockSourceDelayI3D = (PFNWGLGENLOCKSOURCEDELAYI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSourceDelayI3D")) == NULL) || r; r = ((wglGenlockSourceEdgeI3D = (PFNWGLGENLOCKSOURCEEDGEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSourceEdgeI3D")) == NULL) || r; r = ((wglGenlockSourceI3D = (PFNWGLGENLOCKSOURCEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGenlockSourceI3D")) == NULL) || r; r = ((wglGetGenlockSampleRateI3D = (PFNWGLGETGENLOCKSAMPLERATEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSampleRateI3D")) == NULL) || r; r = ((wglGetGenlockSourceDelayI3D = (PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSourceDelayI3D")) == NULL) || r; r = ((wglGetGenlockSourceEdgeI3D = (PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSourceEdgeI3D")) == NULL) || r; r = ((wglGetGenlockSourceI3D = (PFNWGLGETGENLOCKSOURCEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetGenlockSourceI3D")) == NULL) || r; r = ((wglIsEnabledGenlockI3D = (PFNWGLISENABLEDGENLOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglIsEnabledGenlockI3D")) == NULL) || r; r = ((wglQueryGenlockMaxSourceDelayI3D = (PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)glewGetProcAddress((const GLubyte*)"wglQueryGenlockMaxSourceDelayI3D")) == NULL) || r; return r; } #endif /* WGL_I3D_genlock */ #ifdef WGL_I3D_image_buffer static GLboolean _glewInit_WGL_I3D_image_buffer () { GLboolean r = GL_FALSE; r = ((wglAssociateImageBufferEventsI3D = (PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)glewGetProcAddress((const GLubyte*)"wglAssociateImageBufferEventsI3D")) == NULL) || r; r = ((wglCreateImageBufferI3D = (PFNWGLCREATEIMAGEBUFFERI3DPROC)glewGetProcAddress((const GLubyte*)"wglCreateImageBufferI3D")) == NULL) || r; r = ((wglDestroyImageBufferI3D = (PFNWGLDESTROYIMAGEBUFFERI3DPROC)glewGetProcAddress((const GLubyte*)"wglDestroyImageBufferI3D")) == NULL) || r; r = ((wglReleaseImageBufferEventsI3D = (PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)glewGetProcAddress((const GLubyte*)"wglReleaseImageBufferEventsI3D")) == NULL) || r; return r; } #endif /* WGL_I3D_image_buffer */ #ifdef WGL_I3D_swap_frame_lock static GLboolean _glewInit_WGL_I3D_swap_frame_lock () { GLboolean r = GL_FALSE; r = ((wglDisableFrameLockI3D = (PFNWGLDISABLEFRAMELOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglDisableFrameLockI3D")) == NULL) || r; r = ((wglEnableFrameLockI3D = (PFNWGLENABLEFRAMELOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglEnableFrameLockI3D")) == NULL) || r; r = ((wglIsEnabledFrameLockI3D = (PFNWGLISENABLEDFRAMELOCKI3DPROC)glewGetProcAddress((const GLubyte*)"wglIsEnabledFrameLockI3D")) == NULL) || r; r = ((wglQueryFrameLockMasterI3D = (PFNWGLQUERYFRAMELOCKMASTERI3DPROC)glewGetProcAddress((const GLubyte*)"wglQueryFrameLockMasterI3D")) == NULL) || r; return r; } #endif /* WGL_I3D_swap_frame_lock */ #ifdef WGL_I3D_swap_frame_usage static GLboolean _glewInit_WGL_I3D_swap_frame_usage () { GLboolean r = GL_FALSE; r = ((wglBeginFrameTrackingI3D = (PFNWGLBEGINFRAMETRACKINGI3DPROC)glewGetProcAddress((const GLubyte*)"wglBeginFrameTrackingI3D")) == NULL) || r; r = ((wglEndFrameTrackingI3D = (PFNWGLENDFRAMETRACKINGI3DPROC)glewGetProcAddress((const GLubyte*)"wglEndFrameTrackingI3D")) == NULL) || r; r = ((wglGetFrameUsageI3D = (PFNWGLGETFRAMEUSAGEI3DPROC)glewGetProcAddress((const GLubyte*)"wglGetFrameUsageI3D")) == NULL) || r; r = ((wglQueryFrameTrackingI3D = (PFNWGLQUERYFRAMETRACKINGI3DPROC)glewGetProcAddress((const GLubyte*)"wglQueryFrameTrackingI3D")) == NULL) || r; return r; } #endif /* WGL_I3D_swap_frame_usage */ #ifdef WGL_NV_DX_interop static GLboolean _glewInit_WGL_NV_DX_interop () { GLboolean r = GL_FALSE; r = ((wglDXCloseDeviceNV = (PFNWGLDXCLOSEDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglDXCloseDeviceNV")) == NULL) || r; r = ((wglDXLockObjectsNV = (PFNWGLDXLOCKOBJECTSNVPROC)glewGetProcAddress((const GLubyte*)"wglDXLockObjectsNV")) == NULL) || r; r = ((wglDXObjectAccessNV = (PFNWGLDXOBJECTACCESSNVPROC)glewGetProcAddress((const GLubyte*)"wglDXObjectAccessNV")) == NULL) || r; r = ((wglDXOpenDeviceNV = (PFNWGLDXOPENDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglDXOpenDeviceNV")) == NULL) || r; r = ((wglDXRegisterObjectNV = (PFNWGLDXREGISTEROBJECTNVPROC)glewGetProcAddress((const GLubyte*)"wglDXRegisterObjectNV")) == NULL) || r; r = ((wglDXSetResourceShareHandleNV = (PFNWGLDXSETRESOURCESHAREHANDLENVPROC)glewGetProcAddress((const GLubyte*)"wglDXSetResourceShareHandleNV")) == NULL) || r; r = ((wglDXUnlockObjectsNV = (PFNWGLDXUNLOCKOBJECTSNVPROC)glewGetProcAddress((const GLubyte*)"wglDXUnlockObjectsNV")) == NULL) || r; r = ((wglDXUnregisterObjectNV = (PFNWGLDXUNREGISTEROBJECTNVPROC)glewGetProcAddress((const GLubyte*)"wglDXUnregisterObjectNV")) == NULL) || r; return r; } #endif /* WGL_NV_DX_interop */ #ifdef WGL_NV_copy_image static GLboolean _glewInit_WGL_NV_copy_image () { GLboolean r = GL_FALSE; r = ((wglCopyImageSubDataNV = (PFNWGLCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"wglCopyImageSubDataNV")) == NULL) || r; return r; } #endif /* WGL_NV_copy_image */ #ifdef WGL_NV_delay_before_swap static GLboolean _glewInit_WGL_NV_delay_before_swap () { GLboolean r = GL_FALSE; r = ((wglDelayBeforeSwapNV = (PFNWGLDELAYBEFORESWAPNVPROC)glewGetProcAddress((const GLubyte*)"wglDelayBeforeSwapNV")) == NULL) || r; return r; } #endif /* WGL_NV_delay_before_swap */ #ifdef WGL_NV_gpu_affinity static GLboolean _glewInit_WGL_NV_gpu_affinity () { GLboolean r = GL_FALSE; r = ((wglCreateAffinityDCNV = (PFNWGLCREATEAFFINITYDCNVPROC)glewGetProcAddress((const GLubyte*)"wglCreateAffinityDCNV")) == NULL) || r; r = ((wglDeleteDCNV = (PFNWGLDELETEDCNVPROC)glewGetProcAddress((const GLubyte*)"wglDeleteDCNV")) == NULL) || r; r = ((wglEnumGpuDevicesNV = (PFNWGLENUMGPUDEVICESNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumGpuDevicesNV")) == NULL) || r; r = ((wglEnumGpusFromAffinityDCNV = (PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumGpusFromAffinityDCNV")) == NULL) || r; r = ((wglEnumGpusNV = (PFNWGLENUMGPUSNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumGpusNV")) == NULL) || r; return r; } #endif /* WGL_NV_gpu_affinity */ #ifdef WGL_NV_present_video static GLboolean _glewInit_WGL_NV_present_video () { GLboolean r = GL_FALSE; r = ((wglBindVideoDeviceNV = (PFNWGLBINDVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglBindVideoDeviceNV")) == NULL) || r; r = ((wglEnumerateVideoDevicesNV = (PFNWGLENUMERATEVIDEODEVICESNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumerateVideoDevicesNV")) == NULL) || r; r = ((wglQueryCurrentContextNV = (PFNWGLQUERYCURRENTCONTEXTNVPROC)glewGetProcAddress((const GLubyte*)"wglQueryCurrentContextNV")) == NULL) || r; return r; } #endif /* WGL_NV_present_video */ #ifdef WGL_NV_swap_group static GLboolean _glewInit_WGL_NV_swap_group () { GLboolean r = GL_FALSE; r = ((wglBindSwapBarrierNV = (PFNWGLBINDSWAPBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"wglBindSwapBarrierNV")) == NULL) || r; r = ((wglJoinSwapGroupNV = (PFNWGLJOINSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"wglJoinSwapGroupNV")) == NULL) || r; r = ((wglQueryFrameCountNV = (PFNWGLQUERYFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"wglQueryFrameCountNV")) == NULL) || r; r = ((wglQueryMaxSwapGroupsNV = (PFNWGLQUERYMAXSWAPGROUPSNVPROC)glewGetProcAddress((const GLubyte*)"wglQueryMaxSwapGroupsNV")) == NULL) || r; r = ((wglQuerySwapGroupNV = (PFNWGLQUERYSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"wglQuerySwapGroupNV")) == NULL) || r; r = ((wglResetFrameCountNV = (PFNWGLRESETFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"wglResetFrameCountNV")) == NULL) || r; return r; } #endif /* WGL_NV_swap_group */ #ifdef WGL_NV_vertex_array_range static GLboolean _glewInit_WGL_NV_vertex_array_range () { GLboolean r = GL_FALSE; r = ((wglAllocateMemoryNV = (PFNWGLALLOCATEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"wglAllocateMemoryNV")) == NULL) || r; r = ((wglFreeMemoryNV = (PFNWGLFREEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"wglFreeMemoryNV")) == NULL) || r; return r; } #endif /* WGL_NV_vertex_array_range */ #ifdef WGL_NV_video_capture static GLboolean _glewInit_WGL_NV_video_capture () { GLboolean r = GL_FALSE; r = ((wglBindVideoCaptureDeviceNV = (PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglBindVideoCaptureDeviceNV")) == NULL) || r; r = ((wglEnumerateVideoCaptureDevicesNV = (PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)glewGetProcAddress((const GLubyte*)"wglEnumerateVideoCaptureDevicesNV")) == NULL) || r; r = ((wglLockVideoCaptureDeviceNV = (PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglLockVideoCaptureDeviceNV")) == NULL) || r; r = ((wglQueryVideoCaptureDeviceNV = (PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglQueryVideoCaptureDeviceNV")) == NULL) || r; r = ((wglReleaseVideoCaptureDeviceNV = (PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglReleaseVideoCaptureDeviceNV")) == NULL) || r; return r; } #endif /* WGL_NV_video_capture */ #ifdef WGL_NV_video_output static GLboolean _glewInit_WGL_NV_video_output () { GLboolean r = GL_FALSE; r = ((wglBindVideoImageNV = (PFNWGLBINDVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"wglBindVideoImageNV")) == NULL) || r; r = ((wglGetVideoDeviceNV = (PFNWGLGETVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglGetVideoDeviceNV")) == NULL) || r; r = ((wglGetVideoInfoNV = (PFNWGLGETVIDEOINFONVPROC)glewGetProcAddress((const GLubyte*)"wglGetVideoInfoNV")) == NULL) || r; r = ((wglReleaseVideoDeviceNV = (PFNWGLRELEASEVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"wglReleaseVideoDeviceNV")) == NULL) || r; r = ((wglReleaseVideoImageNV = (PFNWGLRELEASEVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"wglReleaseVideoImageNV")) == NULL) || r; r = ((wglSendPbufferToVideoNV = (PFNWGLSENDPBUFFERTOVIDEONVPROC)glewGetProcAddress((const GLubyte*)"wglSendPbufferToVideoNV")) == NULL) || r; return r; } #endif /* WGL_NV_video_output */ #ifdef WGL_OML_sync_control static GLboolean _glewInit_WGL_OML_sync_control () { GLboolean r = GL_FALSE; r = ((wglGetMscRateOML = (PFNWGLGETMSCRATEOMLPROC)glewGetProcAddress((const GLubyte*)"wglGetMscRateOML")) == NULL) || r; r = ((wglGetSyncValuesOML = (PFNWGLGETSYNCVALUESOMLPROC)glewGetProcAddress((const GLubyte*)"wglGetSyncValuesOML")) == NULL) || r; r = ((wglSwapBuffersMscOML = (PFNWGLSWAPBUFFERSMSCOMLPROC)glewGetProcAddress((const GLubyte*)"wglSwapBuffersMscOML")) == NULL) || r; r = ((wglSwapLayerBuffersMscOML = (PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)glewGetProcAddress((const GLubyte*)"wglSwapLayerBuffersMscOML")) == NULL) || r; r = ((wglWaitForMscOML = (PFNWGLWAITFORMSCOMLPROC)glewGetProcAddress((const GLubyte*)"wglWaitForMscOML")) == NULL) || r; r = ((wglWaitForSbcOML = (PFNWGLWAITFORSBCOMLPROC)glewGetProcAddress((const GLubyte*)"wglWaitForSbcOML")) == NULL) || r; return r; } #endif /* WGL_OML_sync_control */ /* ------------------------------------------------------------------------- */ static PFNWGLGETEXTENSIONSSTRINGARBPROC _wglewGetExtensionsStringARB = NULL; static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL; GLboolean GLEWAPIENTRY wglewGetExtension (const char* name) { const GLubyte* start; const GLubyte* end; if (_wglewGetExtensionsStringARB == NULL) if (_wglewGetExtensionsStringEXT == NULL) return GL_FALSE; else start = (const GLubyte*)_wglewGetExtensionsStringEXT(); else start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); if (start == 0) return GL_FALSE; end = start + _glewStrLen(start); return _glewSearchExtension(name, start, end); } GLenum GLEWAPIENTRY wglewInit () { GLboolean crippled; const GLubyte* extStart; const GLubyte* extEnd; /* find wgl extension string query functions */ _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB"); _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT"); /* query wgl extension string */ if (_wglewGetExtensionsStringARB == NULL) if (_wglewGetExtensionsStringEXT == NULL) extStart = (const GLubyte*)""; else extStart = (const GLubyte*)_wglewGetExtensionsStringEXT(); else extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; #ifdef WGL_3DFX_multisample WGLEW_3DFX_multisample = _glewSearchExtension("WGL_3DFX_multisample", extStart, extEnd); #endif /* WGL_3DFX_multisample */ #ifdef WGL_3DL_stereo_control WGLEW_3DL_stereo_control = _glewSearchExtension("WGL_3DL_stereo_control", extStart, extEnd); if (glewExperimental || WGLEW_3DL_stereo_control|| crippled) WGLEW_3DL_stereo_control= !_glewInit_WGL_3DL_stereo_control(); #endif /* WGL_3DL_stereo_control */ #ifdef WGL_AMD_gpu_association WGLEW_AMD_gpu_association = _glewSearchExtension("WGL_AMD_gpu_association", extStart, extEnd); if (glewExperimental || WGLEW_AMD_gpu_association|| crippled) WGLEW_AMD_gpu_association= !_glewInit_WGL_AMD_gpu_association(); #endif /* WGL_AMD_gpu_association */ #ifdef WGL_ARB_buffer_region WGLEW_ARB_buffer_region = _glewSearchExtension("WGL_ARB_buffer_region", extStart, extEnd); if (glewExperimental || WGLEW_ARB_buffer_region|| crippled) WGLEW_ARB_buffer_region= !_glewInit_WGL_ARB_buffer_region(); #endif /* WGL_ARB_buffer_region */ #ifdef WGL_ARB_context_flush_control WGLEW_ARB_context_flush_control = _glewSearchExtension("WGL_ARB_context_flush_control", extStart, extEnd); #endif /* WGL_ARB_context_flush_control */ #ifdef WGL_ARB_create_context WGLEW_ARB_create_context = _glewSearchExtension("WGL_ARB_create_context", extStart, extEnd); if (glewExperimental || WGLEW_ARB_create_context|| crippled) WGLEW_ARB_create_context= !_glewInit_WGL_ARB_create_context(); #endif /* WGL_ARB_create_context */ #ifdef WGL_ARB_create_context_no_error WGLEW_ARB_create_context_no_error = _glewSearchExtension("WGL_ARB_create_context_no_error", extStart, extEnd); #endif /* WGL_ARB_create_context_no_error */ #ifdef WGL_ARB_create_context_profile WGLEW_ARB_create_context_profile = _glewSearchExtension("WGL_ARB_create_context_profile", extStart, extEnd); #endif /* WGL_ARB_create_context_profile */ #ifdef WGL_ARB_create_context_robustness WGLEW_ARB_create_context_robustness = _glewSearchExtension("WGL_ARB_create_context_robustness", extStart, extEnd); #endif /* WGL_ARB_create_context_robustness */ #ifdef WGL_ARB_extensions_string WGLEW_ARB_extensions_string = _glewSearchExtension("WGL_ARB_extensions_string", extStart, extEnd); if (glewExperimental || WGLEW_ARB_extensions_string|| crippled) WGLEW_ARB_extensions_string= !_glewInit_WGL_ARB_extensions_string(); #endif /* WGL_ARB_extensions_string */ #ifdef WGL_ARB_framebuffer_sRGB WGLEW_ARB_framebuffer_sRGB = _glewSearchExtension("WGL_ARB_framebuffer_sRGB", extStart, extEnd); #endif /* WGL_ARB_framebuffer_sRGB */ #ifdef WGL_ARB_make_current_read WGLEW_ARB_make_current_read = _glewSearchExtension("WGL_ARB_make_current_read", extStart, extEnd); if (glewExperimental || WGLEW_ARB_make_current_read|| crippled) WGLEW_ARB_make_current_read= !_glewInit_WGL_ARB_make_current_read(); #endif /* WGL_ARB_make_current_read */ #ifdef WGL_ARB_multisample WGLEW_ARB_multisample = _glewSearchExtension("WGL_ARB_multisample", extStart, extEnd); #endif /* WGL_ARB_multisample */ #ifdef WGL_ARB_pbuffer WGLEW_ARB_pbuffer = _glewSearchExtension("WGL_ARB_pbuffer", extStart, extEnd); if (glewExperimental || WGLEW_ARB_pbuffer|| crippled) WGLEW_ARB_pbuffer= !_glewInit_WGL_ARB_pbuffer(); #endif /* WGL_ARB_pbuffer */ #ifdef WGL_ARB_pixel_format WGLEW_ARB_pixel_format = _glewSearchExtension("WGL_ARB_pixel_format", extStart, extEnd); if (glewExperimental || WGLEW_ARB_pixel_format|| crippled) WGLEW_ARB_pixel_format= !_glewInit_WGL_ARB_pixel_format(); #endif /* WGL_ARB_pixel_format */ #ifdef WGL_ARB_pixel_format_float WGLEW_ARB_pixel_format_float = _glewSearchExtension("WGL_ARB_pixel_format_float", extStart, extEnd); #endif /* WGL_ARB_pixel_format_float */ #ifdef WGL_ARB_render_texture WGLEW_ARB_render_texture = _glewSearchExtension("WGL_ARB_render_texture", extStart, extEnd); if (glewExperimental || WGLEW_ARB_render_texture|| crippled) WGLEW_ARB_render_texture= !_glewInit_WGL_ARB_render_texture(); #endif /* WGL_ARB_render_texture */ #ifdef WGL_ARB_robustness_application_isolation WGLEW_ARB_robustness_application_isolation = _glewSearchExtension("WGL_ARB_robustness_application_isolation", extStart, extEnd); #endif /* WGL_ARB_robustness_application_isolation */ #ifdef WGL_ARB_robustness_share_group_isolation WGLEW_ARB_robustness_share_group_isolation = _glewSearchExtension("WGL_ARB_robustness_share_group_isolation", extStart, extEnd); #endif /* WGL_ARB_robustness_share_group_isolation */ #ifdef WGL_ATI_pixel_format_float WGLEW_ATI_pixel_format_float = _glewSearchExtension("WGL_ATI_pixel_format_float", extStart, extEnd); #endif /* WGL_ATI_pixel_format_float */ #ifdef WGL_ATI_render_texture_rectangle WGLEW_ATI_render_texture_rectangle = _glewSearchExtension("WGL_ATI_render_texture_rectangle", extStart, extEnd); #endif /* WGL_ATI_render_texture_rectangle */ #ifdef WGL_EXT_colorspace WGLEW_EXT_colorspace = _glewSearchExtension("WGL_EXT_colorspace", extStart, extEnd); #endif /* WGL_EXT_colorspace */ #ifdef WGL_EXT_create_context_es2_profile WGLEW_EXT_create_context_es2_profile = _glewSearchExtension("WGL_EXT_create_context_es2_profile", extStart, extEnd); #endif /* WGL_EXT_create_context_es2_profile */ #ifdef WGL_EXT_create_context_es_profile WGLEW_EXT_create_context_es_profile = _glewSearchExtension("WGL_EXT_create_context_es_profile", extStart, extEnd); #endif /* WGL_EXT_create_context_es_profile */ #ifdef WGL_EXT_depth_float WGLEW_EXT_depth_float = _glewSearchExtension("WGL_EXT_depth_float", extStart, extEnd); #endif /* WGL_EXT_depth_float */ #ifdef WGL_EXT_display_color_table WGLEW_EXT_display_color_table = _glewSearchExtension("WGL_EXT_display_color_table", extStart, extEnd); if (glewExperimental || WGLEW_EXT_display_color_table|| crippled) WGLEW_EXT_display_color_table= !_glewInit_WGL_EXT_display_color_table(); #endif /* WGL_EXT_display_color_table */ #ifdef WGL_EXT_extensions_string WGLEW_EXT_extensions_string = _glewSearchExtension("WGL_EXT_extensions_string", extStart, extEnd); if (glewExperimental || WGLEW_EXT_extensions_string|| crippled) WGLEW_EXT_extensions_string= !_glewInit_WGL_EXT_extensions_string(); #endif /* WGL_EXT_extensions_string */ #ifdef WGL_EXT_framebuffer_sRGB WGLEW_EXT_framebuffer_sRGB = _glewSearchExtension("WGL_EXT_framebuffer_sRGB", extStart, extEnd); #endif /* WGL_EXT_framebuffer_sRGB */ #ifdef WGL_EXT_make_current_read WGLEW_EXT_make_current_read = _glewSearchExtension("WGL_EXT_make_current_read", extStart, extEnd); if (glewExperimental || WGLEW_EXT_make_current_read|| crippled) WGLEW_EXT_make_current_read= !_glewInit_WGL_EXT_make_current_read(); #endif /* WGL_EXT_make_current_read */ #ifdef WGL_EXT_multisample WGLEW_EXT_multisample = _glewSearchExtension("WGL_EXT_multisample", extStart, extEnd); #endif /* WGL_EXT_multisample */ #ifdef WGL_EXT_pbuffer WGLEW_EXT_pbuffer = _glewSearchExtension("WGL_EXT_pbuffer", extStart, extEnd); if (glewExperimental || WGLEW_EXT_pbuffer|| crippled) WGLEW_EXT_pbuffer= !_glewInit_WGL_EXT_pbuffer(); #endif /* WGL_EXT_pbuffer */ #ifdef WGL_EXT_pixel_format WGLEW_EXT_pixel_format = _glewSearchExtension("WGL_EXT_pixel_format", extStart, extEnd); if (glewExperimental || WGLEW_EXT_pixel_format|| crippled) WGLEW_EXT_pixel_format= !_glewInit_WGL_EXT_pixel_format(); #endif /* WGL_EXT_pixel_format */ #ifdef WGL_EXT_pixel_format_packed_float WGLEW_EXT_pixel_format_packed_float = _glewSearchExtension("WGL_EXT_pixel_format_packed_float", extStart, extEnd); #endif /* WGL_EXT_pixel_format_packed_float */ #ifdef WGL_EXT_swap_control WGLEW_EXT_swap_control = _glewSearchExtension("WGL_EXT_swap_control", extStart, extEnd); if (glewExperimental || WGLEW_EXT_swap_control|| crippled) WGLEW_EXT_swap_control= !_glewInit_WGL_EXT_swap_control(); #endif /* WGL_EXT_swap_control */ #ifdef WGL_EXT_swap_control_tear WGLEW_EXT_swap_control_tear = _glewSearchExtension("WGL_EXT_swap_control_tear", extStart, extEnd); #endif /* WGL_EXT_swap_control_tear */ #ifdef WGL_I3D_digital_video_control WGLEW_I3D_digital_video_control = _glewSearchExtension("WGL_I3D_digital_video_control", extStart, extEnd); if (glewExperimental || WGLEW_I3D_digital_video_control|| crippled) WGLEW_I3D_digital_video_control= !_glewInit_WGL_I3D_digital_video_control(); #endif /* WGL_I3D_digital_video_control */ #ifdef WGL_I3D_gamma WGLEW_I3D_gamma = _glewSearchExtension("WGL_I3D_gamma", extStart, extEnd); if (glewExperimental || WGLEW_I3D_gamma|| crippled) WGLEW_I3D_gamma= !_glewInit_WGL_I3D_gamma(); #endif /* WGL_I3D_gamma */ #ifdef WGL_I3D_genlock WGLEW_I3D_genlock = _glewSearchExtension("WGL_I3D_genlock", extStart, extEnd); if (glewExperimental || WGLEW_I3D_genlock|| crippled) WGLEW_I3D_genlock= !_glewInit_WGL_I3D_genlock(); #endif /* WGL_I3D_genlock */ #ifdef WGL_I3D_image_buffer WGLEW_I3D_image_buffer = _glewSearchExtension("WGL_I3D_image_buffer", extStart, extEnd); if (glewExperimental || WGLEW_I3D_image_buffer|| crippled) WGLEW_I3D_image_buffer= !_glewInit_WGL_I3D_image_buffer(); #endif /* WGL_I3D_image_buffer */ #ifdef WGL_I3D_swap_frame_lock WGLEW_I3D_swap_frame_lock = _glewSearchExtension("WGL_I3D_swap_frame_lock", extStart, extEnd); if (glewExperimental || WGLEW_I3D_swap_frame_lock|| crippled) WGLEW_I3D_swap_frame_lock= !_glewInit_WGL_I3D_swap_frame_lock(); #endif /* WGL_I3D_swap_frame_lock */ #ifdef WGL_I3D_swap_frame_usage WGLEW_I3D_swap_frame_usage = _glewSearchExtension("WGL_I3D_swap_frame_usage", extStart, extEnd); if (glewExperimental || WGLEW_I3D_swap_frame_usage|| crippled) WGLEW_I3D_swap_frame_usage= !_glewInit_WGL_I3D_swap_frame_usage(); #endif /* WGL_I3D_swap_frame_usage */ #ifdef WGL_NV_DX_interop WGLEW_NV_DX_interop = _glewSearchExtension("WGL_NV_DX_interop", extStart, extEnd); if (glewExperimental || WGLEW_NV_DX_interop|| crippled) WGLEW_NV_DX_interop= !_glewInit_WGL_NV_DX_interop(); #endif /* WGL_NV_DX_interop */ #ifdef WGL_NV_DX_interop2 WGLEW_NV_DX_interop2 = _glewSearchExtension("WGL_NV_DX_interop2", extStart, extEnd); #endif /* WGL_NV_DX_interop2 */ #ifdef WGL_NV_copy_image WGLEW_NV_copy_image = _glewSearchExtension("WGL_NV_copy_image", extStart, extEnd); if (glewExperimental || WGLEW_NV_copy_image|| crippled) WGLEW_NV_copy_image= !_glewInit_WGL_NV_copy_image(); #endif /* WGL_NV_copy_image */ #ifdef WGL_NV_delay_before_swap WGLEW_NV_delay_before_swap = _glewSearchExtension("WGL_NV_delay_before_swap", extStart, extEnd); if (glewExperimental || WGLEW_NV_delay_before_swap|| crippled) WGLEW_NV_delay_before_swap= !_glewInit_WGL_NV_delay_before_swap(); #endif /* WGL_NV_delay_before_swap */ #ifdef WGL_NV_float_buffer WGLEW_NV_float_buffer = _glewSearchExtension("WGL_NV_float_buffer", extStart, extEnd); #endif /* WGL_NV_float_buffer */ #ifdef WGL_NV_gpu_affinity WGLEW_NV_gpu_affinity = _glewSearchExtension("WGL_NV_gpu_affinity", extStart, extEnd); if (glewExperimental || WGLEW_NV_gpu_affinity|| crippled) WGLEW_NV_gpu_affinity= !_glewInit_WGL_NV_gpu_affinity(); #endif /* WGL_NV_gpu_affinity */ #ifdef WGL_NV_multisample_coverage WGLEW_NV_multisample_coverage = _glewSearchExtension("WGL_NV_multisample_coverage", extStart, extEnd); #endif /* WGL_NV_multisample_coverage */ #ifdef WGL_NV_present_video WGLEW_NV_present_video = _glewSearchExtension("WGL_NV_present_video", extStart, extEnd); if (glewExperimental || WGLEW_NV_present_video|| crippled) WGLEW_NV_present_video= !_glewInit_WGL_NV_present_video(); #endif /* WGL_NV_present_video */ #ifdef WGL_NV_render_depth_texture WGLEW_NV_render_depth_texture = _glewSearchExtension("WGL_NV_render_depth_texture", extStart, extEnd); #endif /* WGL_NV_render_depth_texture */ #ifdef WGL_NV_render_texture_rectangle WGLEW_NV_render_texture_rectangle = _glewSearchExtension("WGL_NV_render_texture_rectangle", extStart, extEnd); #endif /* WGL_NV_render_texture_rectangle */ #ifdef WGL_NV_swap_group WGLEW_NV_swap_group = _glewSearchExtension("WGL_NV_swap_group", extStart, extEnd); if (glewExperimental || WGLEW_NV_swap_group|| crippled) WGLEW_NV_swap_group= !_glewInit_WGL_NV_swap_group(); #endif /* WGL_NV_swap_group */ #ifdef WGL_NV_vertex_array_range WGLEW_NV_vertex_array_range = _glewSearchExtension("WGL_NV_vertex_array_range", extStart, extEnd); if (glewExperimental || WGLEW_NV_vertex_array_range|| crippled) WGLEW_NV_vertex_array_range= !_glewInit_WGL_NV_vertex_array_range(); #endif /* WGL_NV_vertex_array_range */ #ifdef WGL_NV_video_capture WGLEW_NV_video_capture = _glewSearchExtension("WGL_NV_video_capture", extStart, extEnd); if (glewExperimental || WGLEW_NV_video_capture|| crippled) WGLEW_NV_video_capture= !_glewInit_WGL_NV_video_capture(); #endif /* WGL_NV_video_capture */ #ifdef WGL_NV_video_output WGLEW_NV_video_output = _glewSearchExtension("WGL_NV_video_output", extStart, extEnd); if (glewExperimental || WGLEW_NV_video_output|| crippled) WGLEW_NV_video_output= !_glewInit_WGL_NV_video_output(); #endif /* WGL_NV_video_output */ #ifdef WGL_OML_sync_control WGLEW_OML_sync_control = _glewSearchExtension("WGL_OML_sync_control", extStart, extEnd); if (glewExperimental || WGLEW_OML_sync_control|| crippled) WGLEW_OML_sync_control= !_glewInit_WGL_OML_sync_control(); #endif /* WGL_OML_sync_control */ return GLEW_OK; } #elif !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL; PFNGLXCHOOSEFBCONFIGPROC __glewXChooseFBConfig = NULL; PFNGLXCREATENEWCONTEXTPROC __glewXCreateNewContext = NULL; PFNGLXCREATEPBUFFERPROC __glewXCreatePbuffer = NULL; PFNGLXCREATEPIXMAPPROC __glewXCreatePixmap = NULL; PFNGLXCREATEWINDOWPROC __glewXCreateWindow = NULL; PFNGLXDESTROYPBUFFERPROC __glewXDestroyPbuffer = NULL; PFNGLXDESTROYPIXMAPPROC __glewXDestroyPixmap = NULL; PFNGLXDESTROYWINDOWPROC __glewXDestroyWindow = NULL; PFNGLXGETCURRENTREADDRAWABLEPROC __glewXGetCurrentReadDrawable = NULL; PFNGLXGETFBCONFIGATTRIBPROC __glewXGetFBConfigAttrib = NULL; PFNGLXGETFBCONFIGSPROC __glewXGetFBConfigs = NULL; PFNGLXGETSELECTEDEVENTPROC __glewXGetSelectedEvent = NULL; PFNGLXGETVISUALFROMFBCONFIGPROC __glewXGetVisualFromFBConfig = NULL; PFNGLXMAKECONTEXTCURRENTPROC __glewXMakeContextCurrent = NULL; PFNGLXQUERYCONTEXTPROC __glewXQueryContext = NULL; PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable = NULL; PFNGLXSELECTEVENTPROC __glewXSelectEvent = NULL; PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC __glewXBlitContextFramebufferAMD = NULL; PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC __glewXCreateAssociatedContextAMD = NULL; PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __glewXCreateAssociatedContextAttribsAMD = NULL; PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC __glewXDeleteAssociatedContextAMD = NULL; PFNGLXGETCONTEXTGPUIDAMDPROC __glewXGetContextGPUIDAMD = NULL; PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC __glewXGetCurrentAssociatedContextAMD = NULL; PFNGLXGETGPUIDSAMDPROC __glewXGetGPUIDsAMD = NULL; PFNGLXGETGPUINFOAMDPROC __glewXGetGPUInfoAMD = NULL; PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __glewXMakeAssociatedContextCurrentAMD = NULL; PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB = NULL; PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI = NULL; PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI = NULL; PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI = NULL; PFNGLXFREECONTEXTEXTPROC __glewXFreeContextEXT = NULL; PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT = NULL; PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT = NULL; PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT = NULL; PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT = NULL; PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT = NULL; PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT = NULL; PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA = NULL; PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA = NULL; PFNGLXCREATEGLXPIXMAPMESAPROC __glewXCreateGLXPixmapMESA = NULL; PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC __glewXQueryCurrentRendererIntegerMESA = NULL; PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC __glewXQueryCurrentRendererStringMESA = NULL; PFNGLXQUERYRENDERERINTEGERMESAPROC __glewXQueryRendererIntegerMESA = NULL; PFNGLXQUERYRENDERERSTRINGMESAPROC __glewXQueryRendererStringMESA = NULL; PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA = NULL; PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA = NULL; PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA = NULL; PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA = NULL; PFNGLXCOPYBUFFERSUBDATANVPROC __glewXCopyBufferSubDataNV = NULL; PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC __glewXNamedCopyBufferSubDataNV = NULL; PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV = NULL; PFNGLXDELAYBEFORESWAPNVPROC __glewXDelayBeforeSwapNV = NULL; PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV = NULL; PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV = NULL; PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV = NULL; PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV = NULL; PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV = NULL; PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV = NULL; PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV = NULL; PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV = NULL; PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV = NULL; PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV = NULL; PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV = NULL; PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV = NULL; PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV = NULL; PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV = NULL; PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV = NULL; PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV = NULL; PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV = NULL; PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV = NULL; PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV = NULL; PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV = NULL; PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV = NULL; PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML = NULL; PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML = NULL; PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML = NULL; PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML = NULL; PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML = NULL; PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX = NULL; PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX = NULL; PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC __glewXCreateGLXPixmapWithConfigSGIX = NULL; PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX = NULL; PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX = NULL; PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX = NULL; PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX = NULL; PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX = NULL; PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX = NULL; PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX = NULL; PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX = NULL; PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX = NULL; PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX = NULL; PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX = NULL; PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX = NULL; PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX = NULL; PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX = NULL; PFNGLXQUERYGLXPBUFFERSGIXPROC __glewXQueryGLXPbufferSGIX = NULL; PFNGLXSELECTEVENTSGIXPROC __glewXSelectEventSGIX = NULL; PFNGLXBINDSWAPBARRIERSGIXPROC __glewXBindSwapBarrierSGIX = NULL; PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC __glewXQueryMaxSwapBarriersSGIX = NULL; PFNGLXJOINSWAPGROUPSGIXPROC __glewXJoinSwapGroupSGIX = NULL; PFNGLXBINDCHANNELTOWINDOWSGIXPROC __glewXBindChannelToWindowSGIX = NULL; PFNGLXCHANNELRECTSGIXPROC __glewXChannelRectSGIX = NULL; PFNGLXCHANNELRECTSYNCSGIXPROC __glewXChannelRectSyncSGIX = NULL; PFNGLXQUERYCHANNELDELTASSGIXPROC __glewXQueryChannelDeltasSGIX = NULL; PFNGLXQUERYCHANNELRECTSGIXPROC __glewXQueryChannelRectSGIX = NULL; PFNGLXCUSHIONSGIPROC __glewXCushionSGI = NULL; PFNGLXGETCURRENTREADDRAWABLESGIPROC __glewXGetCurrentReadDrawableSGI = NULL; PFNGLXMAKECURRENTREADSGIPROC __glewXMakeCurrentReadSGI = NULL; PFNGLXSWAPINTERVALSGIPROC __glewXSwapIntervalSGI = NULL; PFNGLXGETVIDEOSYNCSGIPROC __glewXGetVideoSyncSGI = NULL; PFNGLXWAITVIDEOSYNCSGIPROC __glewXWaitVideoSyncSGI = NULL; PFNGLXGETTRANSPARENTINDEXSUNPROC __glewXGetTransparentIndexSUN = NULL; PFNGLXGETVIDEORESIZESUNPROC __glewXGetVideoResizeSUN = NULL; PFNGLXVIDEORESIZESUNPROC __glewXVideoResizeSUN = NULL; GLboolean __GLXEW_VERSION_1_0 = GL_FALSE; GLboolean __GLXEW_VERSION_1_1 = GL_FALSE; GLboolean __GLXEW_VERSION_1_2 = GL_FALSE; GLboolean __GLXEW_VERSION_1_3 = GL_FALSE; GLboolean __GLXEW_VERSION_1_4 = GL_FALSE; GLboolean __GLXEW_3DFX_multisample = GL_FALSE; GLboolean __GLXEW_AMD_gpu_association = GL_FALSE; GLboolean __GLXEW_ARB_context_flush_control = GL_FALSE; GLboolean __GLXEW_ARB_create_context = GL_FALSE; GLboolean __GLXEW_ARB_create_context_no_error = GL_FALSE; GLboolean __GLXEW_ARB_create_context_profile = GL_FALSE; GLboolean __GLXEW_ARB_create_context_robustness = GL_FALSE; GLboolean __GLXEW_ARB_fbconfig_float = GL_FALSE; GLboolean __GLXEW_ARB_framebuffer_sRGB = GL_FALSE; GLboolean __GLXEW_ARB_get_proc_address = GL_FALSE; GLboolean __GLXEW_ARB_multisample = GL_FALSE; GLboolean __GLXEW_ARB_robustness_application_isolation = GL_FALSE; GLboolean __GLXEW_ARB_robustness_share_group_isolation = GL_FALSE; GLboolean __GLXEW_ARB_vertex_buffer_object = GL_FALSE; GLboolean __GLXEW_ATI_pixel_format_float = GL_FALSE; GLboolean __GLXEW_ATI_render_texture = GL_FALSE; GLboolean __GLXEW_EXT_buffer_age = GL_FALSE; GLboolean __GLXEW_EXT_create_context_es2_profile = GL_FALSE; GLboolean __GLXEW_EXT_create_context_es_profile = GL_FALSE; GLboolean __GLXEW_EXT_fbconfig_packed_float = GL_FALSE; GLboolean __GLXEW_EXT_framebuffer_sRGB = GL_FALSE; GLboolean __GLXEW_EXT_import_context = GL_FALSE; GLboolean __GLXEW_EXT_libglvnd = GL_FALSE; GLboolean __GLXEW_EXT_scene_marker = GL_FALSE; GLboolean __GLXEW_EXT_stereo_tree = GL_FALSE; GLboolean __GLXEW_EXT_swap_control = GL_FALSE; GLboolean __GLXEW_EXT_swap_control_tear = GL_FALSE; GLboolean __GLXEW_EXT_texture_from_pixmap = GL_FALSE; GLboolean __GLXEW_EXT_visual_info = GL_FALSE; GLboolean __GLXEW_EXT_visual_rating = GL_FALSE; GLboolean __GLXEW_INTEL_swap_event = GL_FALSE; GLboolean __GLXEW_MESA_agp_offset = GL_FALSE; GLboolean __GLXEW_MESA_copy_sub_buffer = GL_FALSE; GLboolean __GLXEW_MESA_pixmap_colormap = GL_FALSE; GLboolean __GLXEW_MESA_query_renderer = GL_FALSE; GLboolean __GLXEW_MESA_release_buffers = GL_FALSE; GLboolean __GLXEW_MESA_set_3dfx_mode = GL_FALSE; GLboolean __GLXEW_MESA_swap_control = GL_FALSE; GLboolean __GLXEW_NV_copy_buffer = GL_FALSE; GLboolean __GLXEW_NV_copy_image = GL_FALSE; GLboolean __GLXEW_NV_delay_before_swap = GL_FALSE; GLboolean __GLXEW_NV_float_buffer = GL_FALSE; GLboolean __GLXEW_NV_multisample_coverage = GL_FALSE; GLboolean __GLXEW_NV_present_video = GL_FALSE; GLboolean __GLXEW_NV_robustness_video_memory_purge = GL_FALSE; GLboolean __GLXEW_NV_swap_group = GL_FALSE; GLboolean __GLXEW_NV_vertex_array_range = GL_FALSE; GLboolean __GLXEW_NV_video_capture = GL_FALSE; GLboolean __GLXEW_NV_video_out = GL_FALSE; GLboolean __GLXEW_OML_swap_method = GL_FALSE; GLboolean __GLXEW_OML_sync_control = GL_FALSE; GLboolean __GLXEW_SGIS_blended_overlay = GL_FALSE; GLboolean __GLXEW_SGIS_color_range = GL_FALSE; GLboolean __GLXEW_SGIS_multisample = GL_FALSE; GLboolean __GLXEW_SGIS_shared_multisample = GL_FALSE; GLboolean __GLXEW_SGIX_fbconfig = GL_FALSE; GLboolean __GLXEW_SGIX_hyperpipe = GL_FALSE; GLboolean __GLXEW_SGIX_pbuffer = GL_FALSE; GLboolean __GLXEW_SGIX_swap_barrier = GL_FALSE; GLboolean __GLXEW_SGIX_swap_group = GL_FALSE; GLboolean __GLXEW_SGIX_video_resize = GL_FALSE; GLboolean __GLXEW_SGIX_visual_select_group = GL_FALSE; GLboolean __GLXEW_SGI_cushion = GL_FALSE; GLboolean __GLXEW_SGI_make_current_read = GL_FALSE; GLboolean __GLXEW_SGI_swap_control = GL_FALSE; GLboolean __GLXEW_SGI_video_sync = GL_FALSE; GLboolean __GLXEW_SUN_get_transparent_index = GL_FALSE; GLboolean __GLXEW_SUN_video_resize = GL_FALSE; #ifdef GLX_VERSION_1_2 static GLboolean _glewInit_GLX_VERSION_1_2 () { GLboolean r = GL_FALSE; r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r; return r; } #endif /* GLX_VERSION_1_2 */ #ifdef GLX_VERSION_1_3 static GLboolean _glewInit_GLX_VERSION_1_3 () { GLboolean r = GL_FALSE; r = ((glXChooseFBConfig = (PFNGLXCHOOSEFBCONFIGPROC)glewGetProcAddress((const GLubyte*)"glXChooseFBConfig")) == NULL) || r; r = ((glXCreateNewContext = (PFNGLXCREATENEWCONTEXTPROC)glewGetProcAddress((const GLubyte*)"glXCreateNewContext")) == NULL) || r; r = ((glXCreatePbuffer = (PFNGLXCREATEPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glXCreatePbuffer")) == NULL) || r; r = ((glXCreatePixmap = (PFNGLXCREATEPIXMAPPROC)glewGetProcAddress((const GLubyte*)"glXCreatePixmap")) == NULL) || r; r = ((glXCreateWindow = (PFNGLXCREATEWINDOWPROC)glewGetProcAddress((const GLubyte*)"glXCreateWindow")) == NULL) || r; r = ((glXDestroyPbuffer = (PFNGLXDESTROYPBUFFERPROC)glewGetProcAddress((const GLubyte*)"glXDestroyPbuffer")) == NULL) || r; r = ((glXDestroyPixmap = (PFNGLXDESTROYPIXMAPPROC)glewGetProcAddress((const GLubyte*)"glXDestroyPixmap")) == NULL) || r; r = ((glXDestroyWindow = (PFNGLXDESTROYWINDOWPROC)glewGetProcAddress((const GLubyte*)"glXDestroyWindow")) == NULL) || r; r = ((glXGetCurrentReadDrawable = (PFNGLXGETCURRENTREADDRAWABLEPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentReadDrawable")) == NULL) || r; r = ((glXGetFBConfigAttrib = (PFNGLXGETFBCONFIGATTRIBPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigAttrib")) == NULL) || r; r = ((glXGetFBConfigs = (PFNGLXGETFBCONFIGSPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigs")) == NULL) || r; r = ((glXGetSelectedEvent = (PFNGLXGETSELECTEDEVENTPROC)glewGetProcAddress((const GLubyte*)"glXGetSelectedEvent")) == NULL) || r; r = ((glXGetVisualFromFBConfig = (PFNGLXGETVISUALFROMFBCONFIGPROC)glewGetProcAddress((const GLubyte*)"glXGetVisualFromFBConfig")) == NULL) || r; r = ((glXMakeContextCurrent = (PFNGLXMAKECONTEXTCURRENTPROC)glewGetProcAddress((const GLubyte*)"glXMakeContextCurrent")) == NULL) || r; r = ((glXQueryContext = (PFNGLXQUERYCONTEXTPROC)glewGetProcAddress((const GLubyte*)"glXQueryContext")) == NULL) || r; r = ((glXQueryDrawable = (PFNGLXQUERYDRAWABLEPROC)glewGetProcAddress((const GLubyte*)"glXQueryDrawable")) == NULL) || r; r = ((glXSelectEvent = (PFNGLXSELECTEVENTPROC)glewGetProcAddress((const GLubyte*)"glXSelectEvent")) == NULL) || r; return r; } #endif /* GLX_VERSION_1_3 */ #ifdef GLX_AMD_gpu_association static GLboolean _glewInit_GLX_AMD_gpu_association () { GLboolean r = GL_FALSE; r = ((glXBlitContextFramebufferAMD = (PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)glewGetProcAddress((const GLubyte*)"glXBlitContextFramebufferAMD")) == NULL) || r; r = ((glXCreateAssociatedContextAMD = (PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"glXCreateAssociatedContextAMD")) == NULL) || r; r = ((glXCreateAssociatedContextAttribsAMD = (PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)glewGetProcAddress((const GLubyte*)"glXCreateAssociatedContextAttribsAMD")) == NULL) || r; r = ((glXDeleteAssociatedContextAMD = (PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"glXDeleteAssociatedContextAMD")) == NULL) || r; r = ((glXGetContextGPUIDAMD = (PFNGLXGETCONTEXTGPUIDAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetContextGPUIDAMD")) == NULL) || r; r = ((glXGetCurrentAssociatedContextAMD = (PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentAssociatedContextAMD")) == NULL) || r; r = ((glXGetGPUIDsAMD = (PFNGLXGETGPUIDSAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetGPUIDsAMD")) == NULL) || r; r = ((glXGetGPUInfoAMD = (PFNGLXGETGPUINFOAMDPROC)glewGetProcAddress((const GLubyte*)"glXGetGPUInfoAMD")) == NULL) || r; r = ((glXMakeAssociatedContextCurrentAMD = (PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)glewGetProcAddress((const GLubyte*)"glXMakeAssociatedContextCurrentAMD")) == NULL) || r; return r; } #endif /* GLX_AMD_gpu_association */ #ifdef GLX_ARB_create_context static GLboolean _glewInit_GLX_ARB_create_context () { GLboolean r = GL_FALSE; r = ((glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)glewGetProcAddress((const GLubyte*)"glXCreateContextAttribsARB")) == NULL) || r; return r; } #endif /* GLX_ARB_create_context */ #ifdef GLX_ATI_render_texture static GLboolean _glewInit_GLX_ATI_render_texture () { GLboolean r = GL_FALSE; r = ((glXBindTexImageATI = (PFNGLXBINDTEXIMAGEATIPROC)glewGetProcAddress((const GLubyte*)"glXBindTexImageATI")) == NULL) || r; r = ((glXDrawableAttribATI = (PFNGLXDRAWABLEATTRIBATIPROC)glewGetProcAddress((const GLubyte*)"glXDrawableAttribATI")) == NULL) || r; r = ((glXReleaseTexImageATI = (PFNGLXRELEASETEXIMAGEATIPROC)glewGetProcAddress((const GLubyte*)"glXReleaseTexImageATI")) == NULL) || r; return r; } #endif /* GLX_ATI_render_texture */ #ifdef GLX_EXT_import_context static GLboolean _glewInit_GLX_EXT_import_context () { GLboolean r = GL_FALSE; r = ((glXFreeContextEXT = (PFNGLXFREECONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXFreeContextEXT")) == NULL) || r; r = ((glXGetContextIDEXT = (PFNGLXGETCONTEXTIDEXTPROC)glewGetProcAddress((const GLubyte*)"glXGetContextIDEXT")) == NULL) || r; r = ((glXImportContextEXT = (PFNGLXIMPORTCONTEXTEXTPROC)glewGetProcAddress((const GLubyte*)"glXImportContextEXT")) == NULL) || r; r = ((glXQueryContextInfoEXT = (PFNGLXQUERYCONTEXTINFOEXTPROC)glewGetProcAddress((const GLubyte*)"glXQueryContextInfoEXT")) == NULL) || r; return r; } #endif /* GLX_EXT_import_context */ #ifdef GLX_EXT_swap_control static GLboolean _glewInit_GLX_EXT_swap_control () { GLboolean r = GL_FALSE; r = ((glXSwapIntervalEXT = (PFNGLXSWAPINTERVALEXTPROC)glewGetProcAddress((const GLubyte*)"glXSwapIntervalEXT")) == NULL) || r; return r; } #endif /* GLX_EXT_swap_control */ #ifdef GLX_EXT_texture_from_pixmap static GLboolean _glewInit_GLX_EXT_texture_from_pixmap () { GLboolean r = GL_FALSE; r = ((glXBindTexImageEXT = (PFNGLXBINDTEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glXBindTexImageEXT")) == NULL) || r; r = ((glXReleaseTexImageEXT = (PFNGLXRELEASETEXIMAGEEXTPROC)glewGetProcAddress((const GLubyte*)"glXReleaseTexImageEXT")) == NULL) || r; return r; } #endif /* GLX_EXT_texture_from_pixmap */ #ifdef GLX_MESA_agp_offset static GLboolean _glewInit_GLX_MESA_agp_offset () { GLboolean r = GL_FALSE; r = ((glXGetAGPOffsetMESA = (PFNGLXGETAGPOFFSETMESAPROC)glewGetProcAddress((const GLubyte*)"glXGetAGPOffsetMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_agp_offset */ #ifdef GLX_MESA_copy_sub_buffer static GLboolean _glewInit_GLX_MESA_copy_sub_buffer () { GLboolean r = GL_FALSE; r = ((glXCopySubBufferMESA = (PFNGLXCOPYSUBBUFFERMESAPROC)glewGetProcAddress((const GLubyte*)"glXCopySubBufferMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_copy_sub_buffer */ #ifdef GLX_MESA_pixmap_colormap static GLboolean _glewInit_GLX_MESA_pixmap_colormap () { GLboolean r = GL_FALSE; r = ((glXCreateGLXPixmapMESA = (PFNGLXCREATEGLXPIXMAPMESAPROC)glewGetProcAddress((const GLubyte*)"glXCreateGLXPixmapMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_pixmap_colormap */ #ifdef GLX_MESA_query_renderer static GLboolean _glewInit_GLX_MESA_query_renderer () { GLboolean r = GL_FALSE; r = ((glXQueryCurrentRendererIntegerMESA = (PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryCurrentRendererIntegerMESA")) == NULL) || r; r = ((glXQueryCurrentRendererStringMESA = (PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryCurrentRendererStringMESA")) == NULL) || r; r = ((glXQueryRendererIntegerMESA = (PFNGLXQUERYRENDERERINTEGERMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryRendererIntegerMESA")) == NULL) || r; r = ((glXQueryRendererStringMESA = (PFNGLXQUERYRENDERERSTRINGMESAPROC)glewGetProcAddress((const GLubyte*)"glXQueryRendererStringMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_query_renderer */ #ifdef GLX_MESA_release_buffers static GLboolean _glewInit_GLX_MESA_release_buffers () { GLboolean r = GL_FALSE; r = ((glXReleaseBuffersMESA = (PFNGLXRELEASEBUFFERSMESAPROC)glewGetProcAddress((const GLubyte*)"glXReleaseBuffersMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_release_buffers */ #ifdef GLX_MESA_set_3dfx_mode static GLboolean _glewInit_GLX_MESA_set_3dfx_mode () { GLboolean r = GL_FALSE; r = ((glXSet3DfxModeMESA = (PFNGLXSET3DFXMODEMESAPROC)glewGetProcAddress((const GLubyte*)"glXSet3DfxModeMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_set_3dfx_mode */ #ifdef GLX_MESA_swap_control static GLboolean _glewInit_GLX_MESA_swap_control () { GLboolean r = GL_FALSE; r = ((glXGetSwapIntervalMESA = (PFNGLXGETSWAPINTERVALMESAPROC)glewGetProcAddress((const GLubyte*)"glXGetSwapIntervalMESA")) == NULL) || r; r = ((glXSwapIntervalMESA = (PFNGLXSWAPINTERVALMESAPROC)glewGetProcAddress((const GLubyte*)"glXSwapIntervalMESA")) == NULL) || r; return r; } #endif /* GLX_MESA_swap_control */ #ifdef GLX_NV_copy_buffer static GLboolean _glewInit_GLX_NV_copy_buffer () { GLboolean r = GL_FALSE; r = ((glXCopyBufferSubDataNV = (PFNGLXCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glXCopyBufferSubDataNV")) == NULL) || r; r = ((glXNamedCopyBufferSubDataNV = (PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glXNamedCopyBufferSubDataNV")) == NULL) || r; return r; } #endif /* GLX_NV_copy_buffer */ #ifdef GLX_NV_copy_image static GLboolean _glewInit_GLX_NV_copy_image () { GLboolean r = GL_FALSE; r = ((glXCopyImageSubDataNV = (PFNGLXCOPYIMAGESUBDATANVPROC)glewGetProcAddress((const GLubyte*)"glXCopyImageSubDataNV")) == NULL) || r; return r; } #endif /* GLX_NV_copy_image */ #ifdef GLX_NV_delay_before_swap static GLboolean _glewInit_GLX_NV_delay_before_swap () { GLboolean r = GL_FALSE; r = ((glXDelayBeforeSwapNV = (PFNGLXDELAYBEFORESWAPNVPROC)glewGetProcAddress((const GLubyte*)"glXDelayBeforeSwapNV")) == NULL) || r; return r; } #endif /* GLX_NV_delay_before_swap */ #ifdef GLX_NV_present_video static GLboolean _glewInit_GLX_NV_present_video () { GLboolean r = GL_FALSE; r = ((glXBindVideoDeviceNV = (PFNGLXBINDVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXBindVideoDeviceNV")) == NULL) || r; r = ((glXEnumerateVideoDevicesNV = (PFNGLXENUMERATEVIDEODEVICESNVPROC)glewGetProcAddress((const GLubyte*)"glXEnumerateVideoDevicesNV")) == NULL) || r; return r; } #endif /* GLX_NV_present_video */ #ifdef GLX_NV_swap_group static GLboolean _glewInit_GLX_NV_swap_group () { GLboolean r = GL_FALSE; r = ((glXBindSwapBarrierNV = (PFNGLXBINDSWAPBARRIERNVPROC)glewGetProcAddress((const GLubyte*)"glXBindSwapBarrierNV")) == NULL) || r; r = ((glXJoinSwapGroupNV = (PFNGLXJOINSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"glXJoinSwapGroupNV")) == NULL) || r; r = ((glXQueryFrameCountNV = (PFNGLXQUERYFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glXQueryFrameCountNV")) == NULL) || r; r = ((glXQueryMaxSwapGroupsNV = (PFNGLXQUERYMAXSWAPGROUPSNVPROC)glewGetProcAddress((const GLubyte*)"glXQueryMaxSwapGroupsNV")) == NULL) || r; r = ((glXQuerySwapGroupNV = (PFNGLXQUERYSWAPGROUPNVPROC)glewGetProcAddress((const GLubyte*)"glXQuerySwapGroupNV")) == NULL) || r; r = ((glXResetFrameCountNV = (PFNGLXRESETFRAMECOUNTNVPROC)glewGetProcAddress((const GLubyte*)"glXResetFrameCountNV")) == NULL) || r; return r; } #endif /* GLX_NV_swap_group */ #ifdef GLX_NV_vertex_array_range static GLboolean _glewInit_GLX_NV_vertex_array_range () { GLboolean r = GL_FALSE; r = ((glXAllocateMemoryNV = (PFNGLXALLOCATEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glXAllocateMemoryNV")) == NULL) || r; r = ((glXFreeMemoryNV = (PFNGLXFREEMEMORYNVPROC)glewGetProcAddress((const GLubyte*)"glXFreeMemoryNV")) == NULL) || r; return r; } #endif /* GLX_NV_vertex_array_range */ #ifdef GLX_NV_video_capture static GLboolean _glewInit_GLX_NV_video_capture () { GLboolean r = GL_FALSE; r = ((glXBindVideoCaptureDeviceNV = (PFNGLXBINDVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXBindVideoCaptureDeviceNV")) == NULL) || r; r = ((glXEnumerateVideoCaptureDevicesNV = (PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC)glewGetProcAddress((const GLubyte*)"glXEnumerateVideoCaptureDevicesNV")) == NULL) || r; r = ((glXLockVideoCaptureDeviceNV = (PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXLockVideoCaptureDeviceNV")) == NULL) || r; r = ((glXQueryVideoCaptureDeviceNV = (PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXQueryVideoCaptureDeviceNV")) == NULL) || r; r = ((glXReleaseVideoCaptureDeviceNV = (PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXReleaseVideoCaptureDeviceNV")) == NULL) || r; return r; } #endif /* GLX_NV_video_capture */ #ifdef GLX_NV_video_out static GLboolean _glewInit_GLX_NV_video_out () { GLboolean r = GL_FALSE; r = ((glXBindVideoImageNV = (PFNGLXBINDVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glXBindVideoImageNV")) == NULL) || r; r = ((glXGetVideoDeviceNV = (PFNGLXGETVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoDeviceNV")) == NULL) || r; r = ((glXGetVideoInfoNV = (PFNGLXGETVIDEOINFONVPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoInfoNV")) == NULL) || r; r = ((glXReleaseVideoDeviceNV = (PFNGLXRELEASEVIDEODEVICENVPROC)glewGetProcAddress((const GLubyte*)"glXReleaseVideoDeviceNV")) == NULL) || r; r = ((glXReleaseVideoImageNV = (PFNGLXRELEASEVIDEOIMAGENVPROC)glewGetProcAddress((const GLubyte*)"glXReleaseVideoImageNV")) == NULL) || r; r = ((glXSendPbufferToVideoNV = (PFNGLXSENDPBUFFERTOVIDEONVPROC)glewGetProcAddress((const GLubyte*)"glXSendPbufferToVideoNV")) == NULL) || r; return r; } #endif /* GLX_NV_video_out */ #ifdef GLX_OML_sync_control static GLboolean _glewInit_GLX_OML_sync_control () { GLboolean r = GL_FALSE; r = ((glXGetMscRateOML = (PFNGLXGETMSCRATEOMLPROC)glewGetProcAddress((const GLubyte*)"glXGetMscRateOML")) == NULL) || r; r = ((glXGetSyncValuesOML = (PFNGLXGETSYNCVALUESOMLPROC)glewGetProcAddress((const GLubyte*)"glXGetSyncValuesOML")) == NULL) || r; r = ((glXSwapBuffersMscOML = (PFNGLXSWAPBUFFERSMSCOMLPROC)glewGetProcAddress((const GLubyte*)"glXSwapBuffersMscOML")) == NULL) || r; r = ((glXWaitForMscOML = (PFNGLXWAITFORMSCOMLPROC)glewGetProcAddress((const GLubyte*)"glXWaitForMscOML")) == NULL) || r; r = ((glXWaitForSbcOML = (PFNGLXWAITFORSBCOMLPROC)glewGetProcAddress((const GLubyte*)"glXWaitForSbcOML")) == NULL) || r; return r; } #endif /* GLX_OML_sync_control */ #ifdef GLX_SGIX_fbconfig static GLboolean _glewInit_GLX_SGIX_fbconfig () { GLboolean r = GL_FALSE; r = ((glXChooseFBConfigSGIX = (PFNGLXCHOOSEFBCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXChooseFBConfigSGIX")) == NULL) || r; r = ((glXCreateContextWithConfigSGIX = (PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXCreateContextWithConfigSGIX")) == NULL) || r; r = ((glXCreateGLXPixmapWithConfigSGIX = (PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXCreateGLXPixmapWithConfigSGIX")) == NULL) || r; r = ((glXGetFBConfigAttribSGIX = (PFNGLXGETFBCONFIGATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigAttribSGIX")) == NULL) || r; r = ((glXGetFBConfigFromVisualSGIX = (PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetFBConfigFromVisualSGIX")) == NULL) || r; r = ((glXGetVisualFromFBConfigSGIX = (PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetVisualFromFBConfigSGIX")) == NULL) || r; return r; } #endif /* GLX_SGIX_fbconfig */ #ifdef GLX_SGIX_hyperpipe static GLboolean _glewInit_GLX_SGIX_hyperpipe () { GLboolean r = GL_FALSE; r = ((glXBindHyperpipeSGIX = (PFNGLXBINDHYPERPIPESGIXPROC)glewGetProcAddress((const GLubyte*)"glXBindHyperpipeSGIX")) == NULL) || r; r = ((glXDestroyHyperpipeConfigSGIX = (PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXDestroyHyperpipeConfigSGIX")) == NULL) || r; r = ((glXHyperpipeAttribSGIX = (PFNGLXHYPERPIPEATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXHyperpipeAttribSGIX")) == NULL) || r; r = ((glXHyperpipeConfigSGIX = (PFNGLXHYPERPIPECONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXHyperpipeConfigSGIX")) == NULL) || r; r = ((glXQueryHyperpipeAttribSGIX = (PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeAttribSGIX")) == NULL) || r; r = ((glXQueryHyperpipeBestAttribSGIX = (PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeBestAttribSGIX")) == NULL) || r; r = ((glXQueryHyperpipeConfigSGIX = (PFNGLXQUERYHYPERPIPECONFIGSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeConfigSGIX")) == NULL) || r; r = ((glXQueryHyperpipeNetworkSGIX = (PFNGLXQUERYHYPERPIPENETWORKSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryHyperpipeNetworkSGIX")) == NULL) || r; return r; } #endif /* GLX_SGIX_hyperpipe */ #ifdef GLX_SGIX_pbuffer static GLboolean _glewInit_GLX_SGIX_pbuffer () { GLboolean r = GL_FALSE; r = ((glXCreateGLXPbufferSGIX = (PFNGLXCREATEGLXPBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXCreateGLXPbufferSGIX")) == NULL) || r; r = ((glXDestroyGLXPbufferSGIX = (PFNGLXDESTROYGLXPBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXDestroyGLXPbufferSGIX")) == NULL) || r; r = ((glXGetSelectedEventSGIX = (PFNGLXGETSELECTEDEVENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXGetSelectedEventSGIX")) == NULL) || r; r = ((glXQueryGLXPbufferSGIX = (PFNGLXQUERYGLXPBUFFERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryGLXPbufferSGIX")) == NULL) || r; r = ((glXSelectEventSGIX = (PFNGLXSELECTEVENTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXSelectEventSGIX")) == NULL) || r; return r; } #endif /* GLX_SGIX_pbuffer */ #ifdef GLX_SGIX_swap_barrier static GLboolean _glewInit_GLX_SGIX_swap_barrier () { GLboolean r = GL_FALSE; r = ((glXBindSwapBarrierSGIX = (PFNGLXBINDSWAPBARRIERSGIXPROC)glewGetProcAddress((const GLubyte*)"glXBindSwapBarrierSGIX")) == NULL) || r; r = ((glXQueryMaxSwapBarriersSGIX = (PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryMaxSwapBarriersSGIX")) == NULL) || r; return r; } #endif /* GLX_SGIX_swap_barrier */ #ifdef GLX_SGIX_swap_group static GLboolean _glewInit_GLX_SGIX_swap_group () { GLboolean r = GL_FALSE; r = ((glXJoinSwapGroupSGIX = (PFNGLXJOINSWAPGROUPSGIXPROC)glewGetProcAddress((const GLubyte*)"glXJoinSwapGroupSGIX")) == NULL) || r; return r; } #endif /* GLX_SGIX_swap_group */ #ifdef GLX_SGIX_video_resize static GLboolean _glewInit_GLX_SGIX_video_resize () { GLboolean r = GL_FALSE; r = ((glXBindChannelToWindowSGIX = (PFNGLXBINDCHANNELTOWINDOWSGIXPROC)glewGetProcAddress((const GLubyte*)"glXBindChannelToWindowSGIX")) == NULL) || r; r = ((glXChannelRectSGIX = (PFNGLXCHANNELRECTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXChannelRectSGIX")) == NULL) || r; r = ((glXChannelRectSyncSGIX = (PFNGLXCHANNELRECTSYNCSGIXPROC)glewGetProcAddress((const GLubyte*)"glXChannelRectSyncSGIX")) == NULL) || r; r = ((glXQueryChannelDeltasSGIX = (PFNGLXQUERYCHANNELDELTASSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryChannelDeltasSGIX")) == NULL) || r; r = ((glXQueryChannelRectSGIX = (PFNGLXQUERYCHANNELRECTSGIXPROC)glewGetProcAddress((const GLubyte*)"glXQueryChannelRectSGIX")) == NULL) || r; return r; } #endif /* GLX_SGIX_video_resize */ #ifdef GLX_SGI_cushion static GLboolean _glewInit_GLX_SGI_cushion () { GLboolean r = GL_FALSE; r = ((glXCushionSGI = (PFNGLXCUSHIONSGIPROC)glewGetProcAddress((const GLubyte*)"glXCushionSGI")) == NULL) || r; return r; } #endif /* GLX_SGI_cushion */ #ifdef GLX_SGI_make_current_read static GLboolean _glewInit_GLX_SGI_make_current_read () { GLboolean r = GL_FALSE; r = ((glXGetCurrentReadDrawableSGI = (PFNGLXGETCURRENTREADDRAWABLESGIPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentReadDrawableSGI")) == NULL) || r; r = ((glXMakeCurrentReadSGI = (PFNGLXMAKECURRENTREADSGIPROC)glewGetProcAddress((const GLubyte*)"glXMakeCurrentReadSGI")) == NULL) || r; return r; } #endif /* GLX_SGI_make_current_read */ #ifdef GLX_SGI_swap_control static GLboolean _glewInit_GLX_SGI_swap_control () { GLboolean r = GL_FALSE; r = ((glXSwapIntervalSGI = (PFNGLXSWAPINTERVALSGIPROC)glewGetProcAddress((const GLubyte*)"glXSwapIntervalSGI")) == NULL) || r; return r; } #endif /* GLX_SGI_swap_control */ #ifdef GLX_SGI_video_sync static GLboolean _glewInit_GLX_SGI_video_sync () { GLboolean r = GL_FALSE; r = ((glXGetVideoSyncSGI = (PFNGLXGETVIDEOSYNCSGIPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoSyncSGI")) == NULL) || r; r = ((glXWaitVideoSyncSGI = (PFNGLXWAITVIDEOSYNCSGIPROC)glewGetProcAddress((const GLubyte*)"glXWaitVideoSyncSGI")) == NULL) || r; return r; } #endif /* GLX_SGI_video_sync */ #ifdef GLX_SUN_get_transparent_index static GLboolean _glewInit_GLX_SUN_get_transparent_index () { GLboolean r = GL_FALSE; r = ((glXGetTransparentIndexSUN = (PFNGLXGETTRANSPARENTINDEXSUNPROC)glewGetProcAddress((const GLubyte*)"glXGetTransparentIndexSUN")) == NULL) || r; return r; } #endif /* GLX_SUN_get_transparent_index */ #ifdef GLX_SUN_video_resize static GLboolean _glewInit_GLX_SUN_video_resize () { GLboolean r = GL_FALSE; r = ((glXGetVideoResizeSUN = (PFNGLXGETVIDEORESIZESUNPROC)glewGetProcAddress((const GLubyte*)"glXGetVideoResizeSUN")) == NULL) || r; r = ((glXVideoResizeSUN = (PFNGLXVIDEORESIZESUNPROC)glewGetProcAddress((const GLubyte*)"glXVideoResizeSUN")) == NULL) || r; return r; } #endif /* GLX_SUN_video_resize */ /* ------------------------------------------------------------------------ */ GLboolean glxewGetExtension (const char* name) { const GLubyte* start; const GLubyte* end; if (glXGetCurrentDisplay == NULL) return GL_FALSE; start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); if (0 == start) return GL_FALSE; end = start + _glewStrLen(start); return _glewSearchExtension(name, start, end); } GLenum glxewInit () { Display* display; int major, minor; const GLubyte* extStart; const GLubyte* extEnd; /* initialize core GLX 1.2 */ if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY; /* check for a display */ display = glXGetCurrentDisplay(); if (display == NULL) return GLEW_ERROR_NO_GLX_DISPLAY; /* initialize flags */ GLXEW_VERSION_1_0 = GL_TRUE; GLXEW_VERSION_1_1 = GL_TRUE; GLXEW_VERSION_1_2 = GL_TRUE; GLXEW_VERSION_1_3 = GL_TRUE; GLXEW_VERSION_1_4 = GL_TRUE; /* query GLX version */ glXQueryVersion(display, &major, &minor); if (major == 1 && minor <= 3) { switch (minor) { case 3: GLXEW_VERSION_1_4 = GL_FALSE; break; case 2: GLXEW_VERSION_1_4 = GL_FALSE; GLXEW_VERSION_1_3 = GL_FALSE; break; default: return GLEW_ERROR_GLX_VERSION_11_ONLY; break; } } /* query GLX extension string */ extStart = 0; if (glXGetCurrentDisplay != NULL) extStart = (const GLubyte*)glXGetClientString(display, GLX_EXTENSIONS); if (extStart == 0) extStart = (const GLubyte *)""; extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ #ifdef GLX_VERSION_1_3 if (glewExperimental || GLXEW_VERSION_1_3) GLXEW_VERSION_1_3 = !_glewInit_GLX_VERSION_1_3(); #endif /* GLX_VERSION_1_3 */ #ifdef GLX_3DFX_multisample GLXEW_3DFX_multisample = _glewSearchExtension("GLX_3DFX_multisample", extStart, extEnd); #endif /* GLX_3DFX_multisample */ #ifdef GLX_AMD_gpu_association GLXEW_AMD_gpu_association = _glewSearchExtension("GLX_AMD_gpu_association", extStart, extEnd); if (glewExperimental || GLXEW_AMD_gpu_association) GLXEW_AMD_gpu_association = !_glewInit_GLX_AMD_gpu_association(); #endif /* GLX_AMD_gpu_association */ #ifdef GLX_ARB_context_flush_control GLXEW_ARB_context_flush_control = _glewSearchExtension("GLX_ARB_context_flush_control", extStart, extEnd); #endif /* GLX_ARB_context_flush_control */ #ifdef GLX_ARB_create_context GLXEW_ARB_create_context = _glewSearchExtension("GLX_ARB_create_context", extStart, extEnd); if (glewExperimental || GLXEW_ARB_create_context) GLXEW_ARB_create_context = !_glewInit_GLX_ARB_create_context(); #endif /* GLX_ARB_create_context */ #ifdef GLX_ARB_create_context_no_error GLXEW_ARB_create_context_no_error = _glewSearchExtension("GLX_ARB_create_context_no_error", extStart, extEnd); #endif /* GLX_ARB_create_context_no_error */ #ifdef GLX_ARB_create_context_profile GLXEW_ARB_create_context_profile = _glewSearchExtension("GLX_ARB_create_context_profile", extStart, extEnd); #endif /* GLX_ARB_create_context_profile */ #ifdef GLX_ARB_create_context_robustness GLXEW_ARB_create_context_robustness = _glewSearchExtension("GLX_ARB_create_context_robustness", extStart, extEnd); #endif /* GLX_ARB_create_context_robustness */ #ifdef GLX_ARB_fbconfig_float GLXEW_ARB_fbconfig_float = _glewSearchExtension("GLX_ARB_fbconfig_float", extStart, extEnd); #endif /* GLX_ARB_fbconfig_float */ #ifdef GLX_ARB_framebuffer_sRGB GLXEW_ARB_framebuffer_sRGB = _glewSearchExtension("GLX_ARB_framebuffer_sRGB", extStart, extEnd); #endif /* GLX_ARB_framebuffer_sRGB */ #ifdef GLX_ARB_get_proc_address GLXEW_ARB_get_proc_address = _glewSearchExtension("GLX_ARB_get_proc_address", extStart, extEnd); #endif /* GLX_ARB_get_proc_address */ #ifdef GLX_ARB_multisample GLXEW_ARB_multisample = _glewSearchExtension("GLX_ARB_multisample", extStart, extEnd); #endif /* GLX_ARB_multisample */ #ifdef GLX_ARB_robustness_application_isolation GLXEW_ARB_robustness_application_isolation = _glewSearchExtension("GLX_ARB_robustness_application_isolation", extStart, extEnd); #endif /* GLX_ARB_robustness_application_isolation */ #ifdef GLX_ARB_robustness_share_group_isolation GLXEW_ARB_robustness_share_group_isolation = _glewSearchExtension("GLX_ARB_robustness_share_group_isolation", extStart, extEnd); #endif /* GLX_ARB_robustness_share_group_isolation */ #ifdef GLX_ARB_vertex_buffer_object GLXEW_ARB_vertex_buffer_object = _glewSearchExtension("GLX_ARB_vertex_buffer_object", extStart, extEnd); #endif /* GLX_ARB_vertex_buffer_object */ #ifdef GLX_ATI_pixel_format_float GLXEW_ATI_pixel_format_float = _glewSearchExtension("GLX_ATI_pixel_format_float", extStart, extEnd); #endif /* GLX_ATI_pixel_format_float */ #ifdef GLX_ATI_render_texture GLXEW_ATI_render_texture = _glewSearchExtension("GLX_ATI_render_texture", extStart, extEnd); if (glewExperimental || GLXEW_ATI_render_texture) GLXEW_ATI_render_texture = !_glewInit_GLX_ATI_render_texture(); #endif /* GLX_ATI_render_texture */ #ifdef GLX_EXT_buffer_age GLXEW_EXT_buffer_age = _glewSearchExtension("GLX_EXT_buffer_age", extStart, extEnd); #endif /* GLX_EXT_buffer_age */ #ifdef GLX_EXT_create_context_es2_profile GLXEW_EXT_create_context_es2_profile = _glewSearchExtension("GLX_EXT_create_context_es2_profile", extStart, extEnd); #endif /* GLX_EXT_create_context_es2_profile */ #ifdef GLX_EXT_create_context_es_profile GLXEW_EXT_create_context_es_profile = _glewSearchExtension("GLX_EXT_create_context_es_profile", extStart, extEnd); #endif /* GLX_EXT_create_context_es_profile */ #ifdef GLX_EXT_fbconfig_packed_float GLXEW_EXT_fbconfig_packed_float = _glewSearchExtension("GLX_EXT_fbconfig_packed_float", extStart, extEnd); #endif /* GLX_EXT_fbconfig_packed_float */ #ifdef GLX_EXT_framebuffer_sRGB GLXEW_EXT_framebuffer_sRGB = _glewSearchExtension("GLX_EXT_framebuffer_sRGB", extStart, extEnd); #endif /* GLX_EXT_framebuffer_sRGB */ #ifdef GLX_EXT_import_context GLXEW_EXT_import_context = _glewSearchExtension("GLX_EXT_import_context", extStart, extEnd); if (glewExperimental || GLXEW_EXT_import_context) GLXEW_EXT_import_context = !_glewInit_GLX_EXT_import_context(); #endif /* GLX_EXT_import_context */ #ifdef GLX_EXT_libglvnd GLXEW_EXT_libglvnd = _glewSearchExtension("GLX_EXT_libglvnd", extStart, extEnd); #endif /* GLX_EXT_libglvnd */ #ifdef GLX_EXT_scene_marker GLXEW_EXT_scene_marker = _glewSearchExtension("GLX_EXT_scene_marker", extStart, extEnd); #endif /* GLX_EXT_scene_marker */ #ifdef GLX_EXT_stereo_tree GLXEW_EXT_stereo_tree = _glewSearchExtension("GLX_EXT_stereo_tree", extStart, extEnd); #endif /* GLX_EXT_stereo_tree */ #ifdef GLX_EXT_swap_control GLXEW_EXT_swap_control = _glewSearchExtension("GLX_EXT_swap_control", extStart, extEnd); if (glewExperimental || GLXEW_EXT_swap_control) GLXEW_EXT_swap_control = !_glewInit_GLX_EXT_swap_control(); #endif /* GLX_EXT_swap_control */ #ifdef GLX_EXT_swap_control_tear GLXEW_EXT_swap_control_tear = _glewSearchExtension("GLX_EXT_swap_control_tear", extStart, extEnd); #endif /* GLX_EXT_swap_control_tear */ #ifdef GLX_EXT_texture_from_pixmap GLXEW_EXT_texture_from_pixmap = _glewSearchExtension("GLX_EXT_texture_from_pixmap", extStart, extEnd); if (glewExperimental || GLXEW_EXT_texture_from_pixmap) GLXEW_EXT_texture_from_pixmap = !_glewInit_GLX_EXT_texture_from_pixmap(); #endif /* GLX_EXT_texture_from_pixmap */ #ifdef GLX_EXT_visual_info GLXEW_EXT_visual_info = _glewSearchExtension("GLX_EXT_visual_info", extStart, extEnd); #endif /* GLX_EXT_visual_info */ #ifdef GLX_EXT_visual_rating GLXEW_EXT_visual_rating = _glewSearchExtension("GLX_EXT_visual_rating", extStart, extEnd); #endif /* GLX_EXT_visual_rating */ #ifdef GLX_INTEL_swap_event GLXEW_INTEL_swap_event = _glewSearchExtension("GLX_INTEL_swap_event", extStart, extEnd); #endif /* GLX_INTEL_swap_event */ #ifdef GLX_MESA_agp_offset GLXEW_MESA_agp_offset = _glewSearchExtension("GLX_MESA_agp_offset", extStart, extEnd); if (glewExperimental || GLXEW_MESA_agp_offset) GLXEW_MESA_agp_offset = !_glewInit_GLX_MESA_agp_offset(); #endif /* GLX_MESA_agp_offset */ #ifdef GLX_MESA_copy_sub_buffer GLXEW_MESA_copy_sub_buffer = _glewSearchExtension("GLX_MESA_copy_sub_buffer", extStart, extEnd); if (glewExperimental || GLXEW_MESA_copy_sub_buffer) GLXEW_MESA_copy_sub_buffer = !_glewInit_GLX_MESA_copy_sub_buffer(); #endif /* GLX_MESA_copy_sub_buffer */ #ifdef GLX_MESA_pixmap_colormap GLXEW_MESA_pixmap_colormap = _glewSearchExtension("GLX_MESA_pixmap_colormap", extStart, extEnd); if (glewExperimental || GLXEW_MESA_pixmap_colormap) GLXEW_MESA_pixmap_colormap = !_glewInit_GLX_MESA_pixmap_colormap(); #endif /* GLX_MESA_pixmap_colormap */ #ifdef GLX_MESA_query_renderer GLXEW_MESA_query_renderer = _glewSearchExtension("GLX_MESA_query_renderer", extStart, extEnd); if (glewExperimental || GLXEW_MESA_query_renderer) GLXEW_MESA_query_renderer = !_glewInit_GLX_MESA_query_renderer(); #endif /* GLX_MESA_query_renderer */ #ifdef GLX_MESA_release_buffers GLXEW_MESA_release_buffers = _glewSearchExtension("GLX_MESA_release_buffers", extStart, extEnd); if (glewExperimental || GLXEW_MESA_release_buffers) GLXEW_MESA_release_buffers = !_glewInit_GLX_MESA_release_buffers(); #endif /* GLX_MESA_release_buffers */ #ifdef GLX_MESA_set_3dfx_mode GLXEW_MESA_set_3dfx_mode = _glewSearchExtension("GLX_MESA_set_3dfx_mode", extStart, extEnd); if (glewExperimental || GLXEW_MESA_set_3dfx_mode) GLXEW_MESA_set_3dfx_mode = !_glewInit_GLX_MESA_set_3dfx_mode(); #endif /* GLX_MESA_set_3dfx_mode */ #ifdef GLX_MESA_swap_control GLXEW_MESA_swap_control = _glewSearchExtension("GLX_MESA_swap_control", extStart, extEnd); if (glewExperimental || GLXEW_MESA_swap_control) GLXEW_MESA_swap_control = !_glewInit_GLX_MESA_swap_control(); #endif /* GLX_MESA_swap_control */ #ifdef GLX_NV_copy_buffer GLXEW_NV_copy_buffer = _glewSearchExtension("GLX_NV_copy_buffer", extStart, extEnd); if (glewExperimental || GLXEW_NV_copy_buffer) GLXEW_NV_copy_buffer = !_glewInit_GLX_NV_copy_buffer(); #endif /* GLX_NV_copy_buffer */ #ifdef GLX_NV_copy_image GLXEW_NV_copy_image = _glewSearchExtension("GLX_NV_copy_image", extStart, extEnd); if (glewExperimental || GLXEW_NV_copy_image) GLXEW_NV_copy_image = !_glewInit_GLX_NV_copy_image(); #endif /* GLX_NV_copy_image */ #ifdef GLX_NV_delay_before_swap GLXEW_NV_delay_before_swap = _glewSearchExtension("GLX_NV_delay_before_swap", extStart, extEnd); if (glewExperimental || GLXEW_NV_delay_before_swap) GLXEW_NV_delay_before_swap = !_glewInit_GLX_NV_delay_before_swap(); #endif /* GLX_NV_delay_before_swap */ #ifdef GLX_NV_float_buffer GLXEW_NV_float_buffer = _glewSearchExtension("GLX_NV_float_buffer", extStart, extEnd); #endif /* GLX_NV_float_buffer */ #ifdef GLX_NV_multisample_coverage GLXEW_NV_multisample_coverage = _glewSearchExtension("GLX_NV_multisample_coverage", extStart, extEnd); #endif /* GLX_NV_multisample_coverage */ #ifdef GLX_NV_present_video GLXEW_NV_present_video = _glewSearchExtension("GLX_NV_present_video", extStart, extEnd); if (glewExperimental || GLXEW_NV_present_video) GLXEW_NV_present_video = !_glewInit_GLX_NV_present_video(); #endif /* GLX_NV_present_video */ #ifdef GLX_NV_robustness_video_memory_purge GLXEW_NV_robustness_video_memory_purge = _glewSearchExtension("GLX_NV_robustness_video_memory_purge", extStart, extEnd); #endif /* GLX_NV_robustness_video_memory_purge */ #ifdef GLX_NV_swap_group GLXEW_NV_swap_group = _glewSearchExtension("GLX_NV_swap_group", extStart, extEnd); if (glewExperimental || GLXEW_NV_swap_group) GLXEW_NV_swap_group = !_glewInit_GLX_NV_swap_group(); #endif /* GLX_NV_swap_group */ #ifdef GLX_NV_vertex_array_range GLXEW_NV_vertex_array_range = _glewSearchExtension("GLX_NV_vertex_array_range", extStart, extEnd); if (glewExperimental || GLXEW_NV_vertex_array_range) GLXEW_NV_vertex_array_range = !_glewInit_GLX_NV_vertex_array_range(); #endif /* GLX_NV_vertex_array_range */ #ifdef GLX_NV_video_capture GLXEW_NV_video_capture = _glewSearchExtension("GLX_NV_video_capture", extStart, extEnd); if (glewExperimental || GLXEW_NV_video_capture) GLXEW_NV_video_capture = !_glewInit_GLX_NV_video_capture(); #endif /* GLX_NV_video_capture */ #ifdef GLX_NV_video_out GLXEW_NV_video_out = _glewSearchExtension("GLX_NV_video_out", extStart, extEnd); if (glewExperimental || GLXEW_NV_video_out) GLXEW_NV_video_out = !_glewInit_GLX_NV_video_out(); #endif /* GLX_NV_video_out */ #ifdef GLX_OML_swap_method GLXEW_OML_swap_method = _glewSearchExtension("GLX_OML_swap_method", extStart, extEnd); #endif /* GLX_OML_swap_method */ #ifdef GLX_OML_sync_control GLXEW_OML_sync_control = _glewSearchExtension("GLX_OML_sync_control", extStart, extEnd); if (glewExperimental || GLXEW_OML_sync_control) GLXEW_OML_sync_control = !_glewInit_GLX_OML_sync_control(); #endif /* GLX_OML_sync_control */ #ifdef GLX_SGIS_blended_overlay GLXEW_SGIS_blended_overlay = _glewSearchExtension("GLX_SGIS_blended_overlay", extStart, extEnd); #endif /* GLX_SGIS_blended_overlay */ #ifdef GLX_SGIS_color_range GLXEW_SGIS_color_range = _glewSearchExtension("GLX_SGIS_color_range", extStart, extEnd); #endif /* GLX_SGIS_color_range */ #ifdef GLX_SGIS_multisample GLXEW_SGIS_multisample = _glewSearchExtension("GLX_SGIS_multisample", extStart, extEnd); #endif /* GLX_SGIS_multisample */ #ifdef GLX_SGIS_shared_multisample GLXEW_SGIS_shared_multisample = _glewSearchExtension("GLX_SGIS_shared_multisample", extStart, extEnd); #endif /* GLX_SGIS_shared_multisample */ #ifdef GLX_SGIX_fbconfig GLXEW_SGIX_fbconfig = _glewSearchExtension("GLX_SGIX_fbconfig", extStart, extEnd); if (glewExperimental || GLXEW_SGIX_fbconfig) GLXEW_SGIX_fbconfig = !_glewInit_GLX_SGIX_fbconfig(); #endif /* GLX_SGIX_fbconfig */ #ifdef GLX_SGIX_hyperpipe GLXEW_SGIX_hyperpipe = _glewSearchExtension("GLX_SGIX_hyperpipe", extStart, extEnd); if (glewExperimental || GLXEW_SGIX_hyperpipe) GLXEW_SGIX_hyperpipe = !_glewInit_GLX_SGIX_hyperpipe(); #endif /* GLX_SGIX_hyperpipe */ #ifdef GLX_SGIX_pbuffer GLXEW_SGIX_pbuffer = _glewSearchExtension("GLX_SGIX_pbuffer", extStart, extEnd); if (glewExperimental || GLXEW_SGIX_pbuffer) GLXEW_SGIX_pbuffer = !_glewInit_GLX_SGIX_pbuffer(); #endif /* GLX_SGIX_pbuffer */ #ifdef GLX_SGIX_swap_barrier GLXEW_SGIX_swap_barrier = _glewSearchExtension("GLX_SGIX_swap_barrier", extStart, extEnd); if (glewExperimental || GLXEW_SGIX_swap_barrier) GLXEW_SGIX_swap_barrier = !_glewInit_GLX_SGIX_swap_barrier(); #endif /* GLX_SGIX_swap_barrier */ #ifdef GLX_SGIX_swap_group GLXEW_SGIX_swap_group = _glewSearchExtension("GLX_SGIX_swap_group", extStart, extEnd); if (glewExperimental || GLXEW_SGIX_swap_group) GLXEW_SGIX_swap_group = !_glewInit_GLX_SGIX_swap_group(); #endif /* GLX_SGIX_swap_group */ #ifdef GLX_SGIX_video_resize GLXEW_SGIX_video_resize = _glewSearchExtension("GLX_SGIX_video_resize", extStart, extEnd); if (glewExperimental || GLXEW_SGIX_video_resize) GLXEW_SGIX_video_resize = !_glewInit_GLX_SGIX_video_resize(); #endif /* GLX_SGIX_video_resize */ #ifdef GLX_SGIX_visual_select_group GLXEW_SGIX_visual_select_group = _glewSearchExtension("GLX_SGIX_visual_select_group", extStart, extEnd); #endif /* GLX_SGIX_visual_select_group */ #ifdef GLX_SGI_cushion GLXEW_SGI_cushion = _glewSearchExtension("GLX_SGI_cushion", extStart, extEnd); if (glewExperimental || GLXEW_SGI_cushion) GLXEW_SGI_cushion = !_glewInit_GLX_SGI_cushion(); #endif /* GLX_SGI_cushion */ #ifdef GLX_SGI_make_current_read GLXEW_SGI_make_current_read = _glewSearchExtension("GLX_SGI_make_current_read", extStart, extEnd); if (glewExperimental || GLXEW_SGI_make_current_read) GLXEW_SGI_make_current_read = !_glewInit_GLX_SGI_make_current_read(); #endif /* GLX_SGI_make_current_read */ #ifdef GLX_SGI_swap_control GLXEW_SGI_swap_control = _glewSearchExtension("GLX_SGI_swap_control", extStart, extEnd); if (glewExperimental || GLXEW_SGI_swap_control) GLXEW_SGI_swap_control = !_glewInit_GLX_SGI_swap_control(); #endif /* GLX_SGI_swap_control */ #ifdef GLX_SGI_video_sync GLXEW_SGI_video_sync = _glewSearchExtension("GLX_SGI_video_sync", extStart, extEnd); if (glewExperimental || GLXEW_SGI_video_sync) GLXEW_SGI_video_sync = !_glewInit_GLX_SGI_video_sync(); #endif /* GLX_SGI_video_sync */ #ifdef GLX_SUN_get_transparent_index GLXEW_SUN_get_transparent_index = _glewSearchExtension("GLX_SUN_get_transparent_index", extStart, extEnd); if (glewExperimental || GLXEW_SUN_get_transparent_index) GLXEW_SUN_get_transparent_index = !_glewInit_GLX_SUN_get_transparent_index(); #endif /* GLX_SUN_get_transparent_index */ #ifdef GLX_SUN_video_resize GLXEW_SUN_video_resize = _glewSearchExtension("GLX_SUN_video_resize", extStart, extEnd); if (glewExperimental || GLXEW_SUN_video_resize) GLXEW_SUN_video_resize = !_glewInit_GLX_SUN_video_resize(); #endif /* GLX_SUN_video_resize */ return GLEW_OK; } #endif /* !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */ /* ------------------------------------------------------------------------ */ const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error) { static const GLubyte* _glewErrorString[] = { (const GLubyte*)"No error", (const GLubyte*)"Missing GL version", (const GLubyte*)"GL 1.1 and up are not supported", (const GLubyte*)"GLX 1.2 and up are not supported", (const GLubyte*)"Unknown error" }; const size_t max_error = sizeof(_glewErrorString)/sizeof(*_glewErrorString) - 1; return _glewErrorString[(size_t)error > max_error ? max_error : (size_t)error]; } const GLubyte * GLEWAPIENTRY glewGetString (GLenum name) { static const GLubyte* _glewString[] = { (const GLubyte*)NULL, (const GLubyte*)"2.1.0", (const GLubyte*)"2", (const GLubyte*)"1", (const GLubyte*)"0" }; const size_t max_string = sizeof(_glewString)/sizeof(*_glewString) - 1; return _glewString[(size_t)name > max_string ? 0 : (size_t)name]; } /* ------------------------------------------------------------------------ */ GLboolean glewExperimental = GL_FALSE; GLenum GLEWAPIENTRY glewInit (void) { GLenum r; #if defined(GLEW_EGL) PFNEGLGETCURRENTDISPLAYPROC getCurrentDisplay = NULL; #endif r = glewContextInit(); if ( r != 0 ) return r; #if defined(GLEW_EGL) getCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) glewGetProcAddress("eglGetCurrentDisplay"); return eglewInit(getCurrentDisplay()); #elif defined(GLEW_OSMESA) || defined(__ANDROID__) || defined(__native_client__) || defined(__HAIKU__) return r; #elif defined(_WIN32) return wglewInit(); #elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) /* _UNIX */ return glxewInit(); #else return r; #endif /* _WIN32 */ } #if defined(_WIN32) && defined(GLEW_BUILD) && defined(__GNUC__) /* GCC requires a DLL entry point even without any standard library included. */ /* Types extracted from windows.h to avoid polluting the rest of the file. */ int __stdcall DllMainCRTStartup(void* instance, unsigned reason, void* reserved) { (void) instance; (void) reason; (void) reserved; return 1; } #endif GLboolean GLEWAPIENTRY glewIsSupported (const char* name) { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); GLboolean ret = GL_TRUE; while (ret && len > 0) { if (_glewStrSame1(&pos, &len, (const GLubyte*)"GL_", 3)) { if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8)) { #ifdef GL_VERSION_1_2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3)) { ret = GLEW_VERSION_1_2; continue; } #endif #ifdef GL_VERSION_1_2_1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2_1", 5)) { ret = GLEW_VERSION_1_2_1; continue; } #endif #ifdef GL_VERSION_1_3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3)) { ret = GLEW_VERSION_1_3; continue; } #endif #ifdef GL_VERSION_1_4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3)) { ret = GLEW_VERSION_1_4; continue; } #endif #ifdef GL_VERSION_1_5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_5", 3)) { ret = GLEW_VERSION_1_5; continue; } #endif #ifdef GL_VERSION_2_0 if (_glewStrSame3(&pos, &len, (const GLubyte*)"2_0", 3)) { ret = GLEW_VERSION_2_0; continue; } #endif #ifdef GL_VERSION_2_1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"2_1", 3)) { ret = GLEW_VERSION_2_1; continue; } #endif #ifdef GL_VERSION_3_0 if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_0", 3)) { ret = GLEW_VERSION_3_0; continue; } #endif #ifdef GL_VERSION_3_1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_1", 3)) { ret = GLEW_VERSION_3_1; continue; } #endif #ifdef GL_VERSION_3_2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_2", 3)) { ret = GLEW_VERSION_3_2; continue; } #endif #ifdef GL_VERSION_3_3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"3_3", 3)) { ret = GLEW_VERSION_3_3; continue; } #endif #ifdef GL_VERSION_4_0 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_0", 3)) { ret = GLEW_VERSION_4_0; continue; } #endif #ifdef GL_VERSION_4_1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_1", 3)) { ret = GLEW_VERSION_4_1; continue; } #endif #ifdef GL_VERSION_4_2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_2", 3)) { ret = GLEW_VERSION_4_2; continue; } #endif #ifdef GL_VERSION_4_3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_3", 3)) { ret = GLEW_VERSION_4_3; continue; } #endif #ifdef GL_VERSION_4_4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_4", 3)) { ret = GLEW_VERSION_4_4; continue; } #endif #ifdef GL_VERSION_4_5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_5", 3)) { ret = GLEW_VERSION_4_5; continue; } #endif #ifdef GL_VERSION_4_6 if (_glewStrSame3(&pos, &len, (const GLubyte*)"4_6", 3)) { ret = GLEW_VERSION_4_6; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5)) { #ifdef GL_3DFX_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLEW_3DFX_multisample; continue; } #endif #ifdef GL_3DFX_tbuffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"tbuffer", 7)) { ret = GLEW_3DFX_tbuffer; continue; } #endif #ifdef GL_3DFX_texture_compression_FXT1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_FXT1", 24)) { ret = GLEW_3DFX_texture_compression_FXT1; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"AMD_", 4)) { #ifdef GL_AMD_blend_minmax_factor if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax_factor", 19)) { ret = GLEW_AMD_blend_minmax_factor; continue; } #endif #ifdef GL_AMD_compressed_3DC_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_3DC_texture", 22)) { ret = GLEW_AMD_compressed_3DC_texture; continue; } #endif #ifdef GL_AMD_compressed_ATC_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ATC_texture", 22)) { ret = GLEW_AMD_compressed_ATC_texture; continue; } #endif #ifdef GL_AMD_conservative_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) { ret = GLEW_AMD_conservative_depth; continue; } #endif #ifdef GL_AMD_debug_output if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_output", 12)) { ret = GLEW_AMD_debug_output; continue; } #endif #ifdef GL_AMD_depth_clamp_separate if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp_separate", 20)) { ret = GLEW_AMD_depth_clamp_separate; continue; } #endif #ifdef GL_AMD_draw_buffers_blend if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_blend", 18)) { ret = GLEW_AMD_draw_buffers_blend; continue; } #endif #ifdef GL_AMD_framebuffer_sample_positions if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sample_positions", 28)) { ret = GLEW_AMD_framebuffer_sample_positions; continue; } #endif #ifdef GL_AMD_gcn_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"gcn_shader", 10)) { ret = GLEW_AMD_gcn_shader; continue; } #endif #ifdef GL_AMD_gpu_shader_half_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_half_float", 21)) { ret = GLEW_AMD_gpu_shader_half_float; continue; } #endif #ifdef GL_AMD_gpu_shader_int16 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int16", 16)) { ret = GLEW_AMD_gpu_shader_int16; continue; } #endif #ifdef GL_AMD_gpu_shader_int64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int64", 16)) { ret = GLEW_AMD_gpu_shader_int64; continue; } #endif #ifdef GL_AMD_interleaved_elements if (_glewStrSame3(&pos, &len, (const GLubyte*)"interleaved_elements", 20)) { ret = GLEW_AMD_interleaved_elements; continue; } #endif #ifdef GL_AMD_multi_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19)) { ret = GLEW_AMD_multi_draw_indirect; continue; } #endif #ifdef GL_AMD_name_gen_delete if (_glewStrSame3(&pos, &len, (const GLubyte*)"name_gen_delete", 15)) { ret = GLEW_AMD_name_gen_delete; continue; } #endif #ifdef GL_AMD_occlusion_query_event if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query_event", 21)) { ret = GLEW_AMD_occlusion_query_event; continue; } #endif #ifdef GL_AMD_performance_monitor if (_glewStrSame3(&pos, &len, (const GLubyte*)"performance_monitor", 19)) { ret = GLEW_AMD_performance_monitor; continue; } #endif #ifdef GL_AMD_pinned_memory if (_glewStrSame3(&pos, &len, (const GLubyte*)"pinned_memory", 13)) { ret = GLEW_AMD_pinned_memory; continue; } #endif #ifdef GL_AMD_program_binary_Z400 if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary_Z400", 19)) { ret = GLEW_AMD_program_binary_Z400; continue; } #endif #ifdef GL_AMD_query_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_buffer_object", 19)) { ret = GLEW_AMD_query_buffer_object; continue; } #endif #ifdef GL_AMD_sample_positions if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_positions", 16)) { ret = GLEW_AMD_sample_positions; continue; } #endif #ifdef GL_AMD_seamless_cubemap_per_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"seamless_cubemap_per_texture", 28)) { ret = GLEW_AMD_seamless_cubemap_per_texture; continue; } #endif #ifdef GL_AMD_shader_atomic_counter_ops if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counter_ops", 25)) { ret = GLEW_AMD_shader_atomic_counter_ops; continue; } #endif #ifdef GL_AMD_shader_ballot if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_ballot", 13)) { ret = GLEW_AMD_shader_ballot; continue; } #endif #ifdef GL_AMD_shader_explicit_vertex_parameter if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_explicit_vertex_parameter", 32)) { ret = GLEW_AMD_shader_explicit_vertex_parameter; continue; } #endif #ifdef GL_AMD_shader_stencil_export if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_export", 21)) { ret = GLEW_AMD_shader_stencil_export; continue; } #endif #ifdef GL_AMD_shader_stencil_value_export if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_value_export", 27)) { ret = GLEW_AMD_shader_stencil_value_export; continue; } #endif #ifdef GL_AMD_shader_trinary_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_trinary_minmax", 21)) { ret = GLEW_AMD_shader_trinary_minmax; continue; } #endif #ifdef GL_AMD_sparse_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14)) { ret = GLEW_AMD_sparse_texture; continue; } #endif #ifdef GL_AMD_stencil_operation_extended if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_operation_extended", 26)) { ret = GLEW_AMD_stencil_operation_extended; continue; } #endif #ifdef GL_AMD_texture_gather_bias_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_gather_bias_lod", 23)) { ret = GLEW_AMD_texture_gather_bias_lod; continue; } #endif #ifdef GL_AMD_texture_texture4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_texture4", 16)) { ret = GLEW_AMD_texture_texture4; continue; } #endif #ifdef GL_AMD_transform_feedback3_lines_triangles if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback3_lines_triangles", 35)) { ret = GLEW_AMD_transform_feedback3_lines_triangles; continue; } #endif #ifdef GL_AMD_transform_feedback4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback4", 19)) { ret = GLEW_AMD_transform_feedback4; continue; } #endif #ifdef GL_AMD_vertex_shader_layer if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_layer", 19)) { ret = GLEW_AMD_vertex_shader_layer; continue; } #endif #ifdef GL_AMD_vertex_shader_tessellator if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_tessellator", 25)) { ret = GLEW_AMD_vertex_shader_tessellator; continue; } #endif #ifdef GL_AMD_vertex_shader_viewport_index if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_viewport_index", 28)) { ret = GLEW_AMD_vertex_shader_viewport_index; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8)) { #ifdef GL_ANDROID_extension_pack_es31a if (_glewStrSame3(&pos, &len, (const GLubyte*)"extension_pack_es31a", 20)) { ret = GLEW_ANDROID_extension_pack_es31a; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6)) { #ifdef GL_ANGLE_depth_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) { ret = GLEW_ANGLE_depth_texture; continue; } #endif #ifdef GL_ANGLE_framebuffer_blit if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16)) { ret = GLEW_ANGLE_framebuffer_blit; continue; } #endif #ifdef GL_ANGLE_framebuffer_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) { ret = GLEW_ANGLE_framebuffer_multisample; continue; } #endif #ifdef GL_ANGLE_instanced_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) { ret = GLEW_ANGLE_instanced_arrays; continue; } #endif #ifdef GL_ANGLE_pack_reverse_row_order if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_reverse_row_order", 22)) { ret = GLEW_ANGLE_pack_reverse_row_order; continue; } #endif #ifdef GL_ANGLE_program_binary if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_binary", 14)) { ret = GLEW_ANGLE_program_binary; continue; } #endif #ifdef GL_ANGLE_texture_compression_dxt1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt1", 24)) { ret = GLEW_ANGLE_texture_compression_dxt1; continue; } #endif #ifdef GL_ANGLE_texture_compression_dxt3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt3", 24)) { ret = GLEW_ANGLE_texture_compression_dxt3; continue; } #endif #ifdef GL_ANGLE_texture_compression_dxt5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt5", 24)) { ret = GLEW_ANGLE_texture_compression_dxt5; continue; } #endif #ifdef GL_ANGLE_texture_usage if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_usage", 13)) { ret = GLEW_ANGLE_texture_usage; continue; } #endif #ifdef GL_ANGLE_timer_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11)) { ret = GLEW_ANGLE_timer_query; continue; } #endif #ifdef GL_ANGLE_translated_shader_source if (_glewStrSame3(&pos, &len, (const GLubyte*)"translated_shader_source", 24)) { ret = GLEW_ANGLE_translated_shader_source; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"APPLE_", 6)) { #ifdef GL_APPLE_aux_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"aux_depth_stencil", 17)) { ret = GLEW_APPLE_aux_depth_stencil; continue; } #endif #ifdef GL_APPLE_client_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_storage", 14)) { ret = GLEW_APPLE_client_storage; continue; } #endif #ifdef GL_APPLE_clip_distance if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_distance", 13)) { ret = GLEW_APPLE_clip_distance; continue; } #endif #ifdef GL_APPLE_color_buffer_packed_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_packed_float", 25)) { ret = GLEW_APPLE_color_buffer_packed_float; continue; } #endif #ifdef GL_APPLE_copy_texture_levels if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture_levels", 19)) { ret = GLEW_APPLE_copy_texture_levels; continue; } #endif #ifdef GL_APPLE_element_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_array", 13)) { ret = GLEW_APPLE_element_array; continue; } #endif #ifdef GL_APPLE_fence if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence", 5)) { ret = GLEW_APPLE_fence; continue; } #endif #ifdef GL_APPLE_float_pixels if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_pixels", 12)) { ret = GLEW_APPLE_float_pixels; continue; } #endif #ifdef GL_APPLE_flush_buffer_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"flush_buffer_range", 18)) { ret = GLEW_APPLE_flush_buffer_range; continue; } #endif #ifdef GL_APPLE_framebuffer_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) { ret = GLEW_APPLE_framebuffer_multisample; continue; } #endif #ifdef GL_APPLE_object_purgeable if (_glewStrSame3(&pos, &len, (const GLubyte*)"object_purgeable", 16)) { ret = GLEW_APPLE_object_purgeable; continue; } #endif #ifdef GL_APPLE_pixel_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer", 12)) { ret = GLEW_APPLE_pixel_buffer; continue; } #endif #ifdef GL_APPLE_rgb_422 if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgb_422", 7)) { ret = GLEW_APPLE_rgb_422; continue; } #endif #ifdef GL_APPLE_row_bytes if (_glewStrSame3(&pos, &len, (const GLubyte*)"row_bytes", 9)) { ret = GLEW_APPLE_row_bytes; continue; } #endif #ifdef GL_APPLE_specular_vector if (_glewStrSame3(&pos, &len, (const GLubyte*)"specular_vector", 15)) { ret = GLEW_APPLE_specular_vector; continue; } #endif #ifdef GL_APPLE_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) { ret = GLEW_APPLE_sync; continue; } #endif #ifdef GL_APPLE_texture_2D_limited_npot if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_2D_limited_npot", 23)) { ret = GLEW_APPLE_texture_2D_limited_npot; continue; } #endif #ifdef GL_APPLE_texture_format_BGRA8888 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23)) { ret = GLEW_APPLE_texture_format_BGRA8888; continue; } #endif #ifdef GL_APPLE_texture_max_level if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_max_level", 17)) { ret = GLEW_APPLE_texture_max_level; continue; } #endif #ifdef GL_APPLE_texture_packed_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_packed_float", 20)) { ret = GLEW_APPLE_texture_packed_float; continue; } #endif #ifdef GL_APPLE_texture_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13)) { ret = GLEW_APPLE_texture_range; continue; } #endif #ifdef GL_APPLE_transform_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_hint", 14)) { ret = GLEW_APPLE_transform_hint; continue; } #endif #ifdef GL_APPLE_vertex_array_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) { ret = GLEW_APPLE_vertex_array_object; continue; } #endif #ifdef GL_APPLE_vertex_array_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18)) { ret = GLEW_APPLE_vertex_array_range; continue; } #endif #ifdef GL_APPLE_vertex_program_evaluators if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program_evaluators", 25)) { ret = GLEW_APPLE_vertex_program_evaluators; continue; } #endif #ifdef GL_APPLE_ycbcr_422 if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycbcr_422", 9)) { ret = GLEW_APPLE_ycbcr_422; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARB_", 4)) { #ifdef GL_ARB_ES2_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES2_compatibility", 17)) { ret = GLEW_ARB_ES2_compatibility; continue; } #endif #ifdef GL_ARB_ES3_1_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES3_1_compatibility", 19)) { ret = GLEW_ARB_ES3_1_compatibility; continue; } #endif #ifdef GL_ARB_ES3_2_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES3_2_compatibility", 19)) { ret = GLEW_ARB_ES3_2_compatibility; continue; } #endif #ifdef GL_ARB_ES3_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES3_compatibility", 17)) { ret = GLEW_ARB_ES3_compatibility; continue; } #endif #ifdef GL_ARB_arrays_of_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"arrays_of_arrays", 16)) { ret = GLEW_ARB_arrays_of_arrays; continue; } #endif #ifdef GL_ARB_base_instance if (_glewStrSame3(&pos, &len, (const GLubyte*)"base_instance", 13)) { ret = GLEW_ARB_base_instance; continue; } #endif #ifdef GL_ARB_bindless_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16)) { ret = GLEW_ARB_bindless_texture; continue; } #endif #ifdef GL_ARB_blend_func_extended if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_extended", 19)) { ret = GLEW_ARB_blend_func_extended; continue; } #endif #ifdef GL_ARB_buffer_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_storage", 14)) { ret = GLEW_ARB_buffer_storage; continue; } #endif #ifdef GL_ARB_cl_event if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event", 8)) { ret = GLEW_ARB_cl_event; continue; } #endif #ifdef GL_ARB_clear_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_buffer_object", 19)) { ret = GLEW_ARB_clear_buffer_object; continue; } #endif #ifdef GL_ARB_clear_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_texture", 13)) { ret = GLEW_ARB_clear_texture; continue; } #endif #ifdef GL_ARB_clip_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_control", 12)) { ret = GLEW_ARB_clip_control; continue; } #endif #ifdef GL_ARB_color_buffer_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_float", 18)) { ret = GLEW_ARB_color_buffer_float; continue; } #endif #ifdef GL_ARB_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"compatibility", 13)) { ret = GLEW_ARB_compatibility; continue; } #endif #ifdef GL_ARB_compressed_texture_pixel_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_texture_pixel_storage", 32)) { ret = GLEW_ARB_compressed_texture_pixel_storage; continue; } #endif #ifdef GL_ARB_compute_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_shader", 14)) { ret = GLEW_ARB_compute_shader; continue; } #endif #ifdef GL_ARB_compute_variable_group_size if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_variable_group_size", 27)) { ret = GLEW_ARB_compute_variable_group_size; continue; } #endif #ifdef GL_ARB_conditional_render_inverted if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render_inverted", 27)) { ret = GLEW_ARB_conditional_render_inverted; continue; } #endif #ifdef GL_ARB_conservative_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) { ret = GLEW_ARB_conservative_depth; continue; } #endif #ifdef GL_ARB_copy_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11)) { ret = GLEW_ARB_copy_buffer; continue; } #endif #ifdef GL_ARB_copy_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) { ret = GLEW_ARB_copy_image; continue; } #endif #ifdef GL_ARB_cull_distance if (_glewStrSame3(&pos, &len, (const GLubyte*)"cull_distance", 13)) { ret = GLEW_ARB_cull_distance; continue; } #endif #ifdef GL_ARB_debug_output if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_output", 12)) { ret = GLEW_ARB_debug_output; continue; } #endif #ifdef GL_ARB_depth_buffer_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_buffer_float", 18)) { ret = GLEW_ARB_depth_buffer_float; continue; } #endif #ifdef GL_ARB_depth_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11)) { ret = GLEW_ARB_depth_clamp; continue; } #endif #ifdef GL_ARB_depth_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) { ret = GLEW_ARB_depth_texture; continue; } #endif #ifdef GL_ARB_derivative_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"derivative_control", 18)) { ret = GLEW_ARB_derivative_control; continue; } #endif #ifdef GL_ARB_direct_state_access if (_glewStrSame3(&pos, &len, (const GLubyte*)"direct_state_access", 19)) { ret = GLEW_ARB_direct_state_access; continue; } #endif #ifdef GL_ARB_draw_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) { ret = GLEW_ARB_draw_buffers; continue; } #endif #ifdef GL_ARB_draw_buffers_blend if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_blend", 18)) { ret = GLEW_ARB_draw_buffers_blend; continue; } #endif #ifdef GL_ARB_draw_elements_base_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_elements_base_vertex", 25)) { ret = GLEW_ARB_draw_elements_base_vertex; continue; } #endif #ifdef GL_ARB_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_indirect", 13)) { ret = GLEW_ARB_draw_indirect; continue; } #endif #ifdef GL_ARB_draw_instanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) { ret = GLEW_ARB_draw_instanced; continue; } #endif #ifdef GL_ARB_enhanced_layouts if (_glewStrSame3(&pos, &len, (const GLubyte*)"enhanced_layouts", 16)) { ret = GLEW_ARB_enhanced_layouts; continue; } #endif #ifdef GL_ARB_explicit_attrib_location if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_attrib_location", 24)) { ret = GLEW_ARB_explicit_attrib_location; continue; } #endif #ifdef GL_ARB_explicit_uniform_location if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_uniform_location", 25)) { ret = GLEW_ARB_explicit_uniform_location; continue; } #endif #ifdef GL_ARB_fragment_coord_conventions if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_coord_conventions", 26)) { ret = GLEW_ARB_fragment_coord_conventions; continue; } #endif #ifdef GL_ARB_fragment_layer_viewport if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_layer_viewport", 23)) { ret = GLEW_ARB_fragment_layer_viewport; continue; } #endif #ifdef GL_ARB_fragment_program if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program", 16)) { ret = GLEW_ARB_fragment_program; continue; } #endif #ifdef GL_ARB_fragment_program_shadow if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program_shadow", 23)) { ret = GLEW_ARB_fragment_program_shadow; continue; } #endif #ifdef GL_ARB_fragment_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader", 15)) { ret = GLEW_ARB_fragment_shader; continue; } #endif #ifdef GL_ARB_fragment_shader_interlock if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_interlock", 25)) { ret = GLEW_ARB_fragment_shader_interlock; continue; } #endif #ifdef GL_ARB_framebuffer_no_attachments if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_no_attachments", 26)) { ret = GLEW_ARB_framebuffer_no_attachments; continue; } #endif #ifdef GL_ARB_framebuffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18)) { ret = GLEW_ARB_framebuffer_object; continue; } #endif #ifdef GL_ARB_framebuffer_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16)) { ret = GLEW_ARB_framebuffer_sRGB; continue; } #endif #ifdef GL_ARB_geometry_shader4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16)) { ret = GLEW_ARB_geometry_shader4; continue; } #endif #ifdef GL_ARB_get_program_binary if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_program_binary", 18)) { ret = GLEW_ARB_get_program_binary; continue; } #endif #ifdef GL_ARB_get_texture_sub_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_texture_sub_image", 21)) { ret = GLEW_ARB_get_texture_sub_image; continue; } #endif #ifdef GL_ARB_gl_spirv if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_spirv", 8)) { ret = GLEW_ARB_gl_spirv; continue; } #endif #ifdef GL_ARB_gpu_shader5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) { ret = GLEW_ARB_gpu_shader5; continue; } #endif #ifdef GL_ARB_gpu_shader_fp64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_fp64", 15)) { ret = GLEW_ARB_gpu_shader_fp64; continue; } #endif #ifdef GL_ARB_gpu_shader_int64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader_int64", 16)) { ret = GLEW_ARB_gpu_shader_int64; continue; } #endif #ifdef GL_ARB_half_float_pixel if (_glewStrSame3(&pos, &len, (const GLubyte*)"half_float_pixel", 16)) { ret = GLEW_ARB_half_float_pixel; continue; } #endif #ifdef GL_ARB_half_float_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"half_float_vertex", 17)) { ret = GLEW_ARB_half_float_vertex; continue; } #endif #ifdef GL_ARB_imaging if (_glewStrSame3(&pos, &len, (const GLubyte*)"imaging", 7)) { ret = GLEW_ARB_imaging; continue; } #endif #ifdef GL_ARB_indirect_parameters if (_glewStrSame3(&pos, &len, (const GLubyte*)"indirect_parameters", 19)) { ret = GLEW_ARB_indirect_parameters; continue; } #endif #ifdef GL_ARB_instanced_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) { ret = GLEW_ARB_instanced_arrays; continue; } #endif #ifdef GL_ARB_internalformat_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_query", 20)) { ret = GLEW_ARB_internalformat_query; continue; } #endif #ifdef GL_ARB_internalformat_query2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_query2", 21)) { ret = GLEW_ARB_internalformat_query2; continue; } #endif #ifdef GL_ARB_invalidate_subdata if (_glewStrSame3(&pos, &len, (const GLubyte*)"invalidate_subdata", 18)) { ret = GLEW_ARB_invalidate_subdata; continue; } #endif #ifdef GL_ARB_map_buffer_alignment if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_alignment", 20)) { ret = GLEW_ARB_map_buffer_alignment; continue; } #endif #ifdef GL_ARB_map_buffer_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_range", 16)) { ret = GLEW_ARB_map_buffer_range; continue; } #endif #ifdef GL_ARB_matrix_palette if (_glewStrSame3(&pos, &len, (const GLubyte*)"matrix_palette", 14)) { ret = GLEW_ARB_matrix_palette; continue; } #endif #ifdef GL_ARB_multi_bind if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_bind", 10)) { ret = GLEW_ARB_multi_bind; continue; } #endif #ifdef GL_ARB_multi_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19)) { ret = GLEW_ARB_multi_draw_indirect; continue; } #endif #ifdef GL_ARB_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLEW_ARB_multisample; continue; } #endif #ifdef GL_ARB_multitexture if (_glewStrSame3(&pos, &len, (const GLubyte*)"multitexture", 12)) { ret = GLEW_ARB_multitexture; continue; } #endif #ifdef GL_ARB_occlusion_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query", 15)) { ret = GLEW_ARB_occlusion_query; continue; } #endif #ifdef GL_ARB_occlusion_query2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query2", 16)) { ret = GLEW_ARB_occlusion_query2; continue; } #endif #ifdef GL_ARB_parallel_shader_compile if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_shader_compile", 23)) { ret = GLEW_ARB_parallel_shader_compile; continue; } #endif #ifdef GL_ARB_pipeline_statistics_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"pipeline_statistics_query", 25)) { ret = GLEW_ARB_pipeline_statistics_query; continue; } #endif #ifdef GL_ARB_pixel_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19)) { ret = GLEW_ARB_pixel_buffer_object; continue; } #endif #ifdef GL_ARB_point_parameters if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_parameters", 16)) { ret = GLEW_ARB_point_parameters; continue; } #endif #ifdef GL_ARB_point_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12)) { ret = GLEW_ARB_point_sprite; continue; } #endif #ifdef GL_ARB_polygon_offset_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset_clamp", 20)) { ret = GLEW_ARB_polygon_offset_clamp; continue; } #endif #ifdef GL_ARB_post_depth_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_depth_coverage", 19)) { ret = GLEW_ARB_post_depth_coverage; continue; } #endif #ifdef GL_ARB_program_interface_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"program_interface_query", 23)) { ret = GLEW_ARB_program_interface_query; continue; } #endif #ifdef GL_ARB_provoking_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"provoking_vertex", 16)) { ret = GLEW_ARB_provoking_vertex; continue; } #endif #ifdef GL_ARB_query_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_buffer_object", 19)) { ret = GLEW_ARB_query_buffer_object; continue; } #endif #ifdef GL_ARB_robust_buffer_access_behavior if (_glewStrSame3(&pos, &len, (const GLubyte*)"robust_buffer_access_behavior", 29)) { ret = GLEW_ARB_robust_buffer_access_behavior; continue; } #endif #ifdef GL_ARB_robustness if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10)) { ret = GLEW_ARB_robustness; continue; } #endif #ifdef GL_ARB_robustness_application_isolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_application_isolation", 32)) { ret = GLEW_ARB_robustness_application_isolation; continue; } #endif #ifdef GL_ARB_robustness_share_group_isolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_share_group_isolation", 32)) { ret = GLEW_ARB_robustness_share_group_isolation; continue; } #endif #ifdef GL_ARB_sample_locations if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_locations", 16)) { ret = GLEW_ARB_sample_locations; continue; } #endif #ifdef GL_ARB_sample_shading if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_shading", 14)) { ret = GLEW_ARB_sample_shading; continue; } #endif #ifdef GL_ARB_sampler_objects if (_glewStrSame3(&pos, &len, (const GLubyte*)"sampler_objects", 15)) { ret = GLEW_ARB_sampler_objects; continue; } #endif #ifdef GL_ARB_seamless_cube_map if (_glewStrSame3(&pos, &len, (const GLubyte*)"seamless_cube_map", 17)) { ret = GLEW_ARB_seamless_cube_map; continue; } #endif #ifdef GL_ARB_seamless_cubemap_per_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"seamless_cubemap_per_texture", 28)) { ret = GLEW_ARB_seamless_cubemap_per_texture; continue; } #endif #ifdef GL_ARB_separate_shader_objects if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_shader_objects", 23)) { ret = GLEW_ARB_separate_shader_objects; continue; } #endif #ifdef GL_ARB_shader_atomic_counter_ops if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counter_ops", 25)) { ret = GLEW_ARB_shader_atomic_counter_ops; continue; } #endif #ifdef GL_ARB_shader_atomic_counters if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counters", 22)) { ret = GLEW_ARB_shader_atomic_counters; continue; } #endif #ifdef GL_ARB_shader_ballot if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_ballot", 13)) { ret = GLEW_ARB_shader_ballot; continue; } #endif #ifdef GL_ARB_shader_bit_encoding if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_bit_encoding", 19)) { ret = GLEW_ARB_shader_bit_encoding; continue; } #endif #ifdef GL_ARB_shader_clock if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_clock", 12)) { ret = GLEW_ARB_shader_clock; continue; } #endif #ifdef GL_ARB_shader_draw_parameters if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_draw_parameters", 22)) { ret = GLEW_ARB_shader_draw_parameters; continue; } #endif #ifdef GL_ARB_shader_group_vote if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_group_vote", 17)) { ret = GLEW_ARB_shader_group_vote; continue; } #endif #ifdef GL_ARB_shader_image_load_store if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store", 23)) { ret = GLEW_ARB_shader_image_load_store; continue; } #endif #ifdef GL_ARB_shader_image_size if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_size", 17)) { ret = GLEW_ARB_shader_image_size; continue; } #endif #ifdef GL_ARB_shader_objects if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_objects", 14)) { ret = GLEW_ARB_shader_objects; continue; } #endif #ifdef GL_ARB_shader_precision if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_precision", 16)) { ret = GLEW_ARB_shader_precision; continue; } #endif #ifdef GL_ARB_shader_stencil_export if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_stencil_export", 21)) { ret = GLEW_ARB_shader_stencil_export; continue; } #endif #ifdef GL_ARB_shader_storage_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_storage_buffer_object", 28)) { ret = GLEW_ARB_shader_storage_buffer_object; continue; } #endif #ifdef GL_ARB_shader_subroutine if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_subroutine", 17)) { ret = GLEW_ARB_shader_subroutine; continue; } #endif #ifdef GL_ARB_shader_texture_image_samples if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_image_samples", 28)) { ret = GLEW_ARB_shader_texture_image_samples; continue; } #endif #ifdef GL_ARB_shader_texture_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18)) { ret = GLEW_ARB_shader_texture_lod; continue; } #endif #ifdef GL_ARB_shader_viewport_layer_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_viewport_layer_array", 27)) { ret = GLEW_ARB_shader_viewport_layer_array; continue; } #endif #ifdef GL_ARB_shading_language_100 if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_100", 20)) { ret = GLEW_ARB_shading_language_100; continue; } #endif #ifdef GL_ARB_shading_language_420pack if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_420pack", 24)) { ret = GLEW_ARB_shading_language_420pack; continue; } #endif #ifdef GL_ARB_shading_language_include if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_include", 24)) { ret = GLEW_ARB_shading_language_include; continue; } #endif #ifdef GL_ARB_shading_language_packing if (_glewStrSame3(&pos, &len, (const GLubyte*)"shading_language_packing", 24)) { ret = GLEW_ARB_shading_language_packing; continue; } #endif #ifdef GL_ARB_shadow if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow", 6)) { ret = GLEW_ARB_shadow; continue; } #endif #ifdef GL_ARB_shadow_ambient if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_ambient", 14)) { ret = GLEW_ARB_shadow_ambient; continue; } #endif #ifdef GL_ARB_sparse_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_buffer", 13)) { ret = GLEW_ARB_sparse_buffer; continue; } #endif #ifdef GL_ARB_sparse_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14)) { ret = GLEW_ARB_sparse_texture; continue; } #endif #ifdef GL_ARB_sparse_texture2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture2", 15)) { ret = GLEW_ARB_sparse_texture2; continue; } #endif #ifdef GL_ARB_sparse_texture_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture_clamp", 20)) { ret = GLEW_ARB_sparse_texture_clamp; continue; } #endif #ifdef GL_ARB_spirv_extensions if (_glewStrSame3(&pos, &len, (const GLubyte*)"spirv_extensions", 16)) { ret = GLEW_ARB_spirv_extensions; continue; } #endif #ifdef GL_ARB_stencil_texturing if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_texturing", 17)) { ret = GLEW_ARB_stencil_texturing; continue; } #endif #ifdef GL_ARB_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) { ret = GLEW_ARB_sync; continue; } #endif #ifdef GL_ARB_tessellation_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_shader", 19)) { ret = GLEW_ARB_tessellation_shader; continue; } #endif #ifdef GL_ARB_texture_barrier if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_barrier", 15)) { ret = GLEW_ARB_texture_barrier; continue; } #endif #ifdef GL_ARB_texture_border_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) { ret = GLEW_ARB_texture_border_clamp; continue; } #endif #ifdef GL_ARB_texture_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object", 21)) { ret = GLEW_ARB_texture_buffer_object; continue; } #endif #ifdef GL_ARB_texture_buffer_object_rgb32 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object_rgb32", 27)) { ret = GLEW_ARB_texture_buffer_object_rgb32; continue; } #endif #ifdef GL_ARB_texture_buffer_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_range", 20)) { ret = GLEW_ARB_texture_buffer_range; continue; } #endif #ifdef GL_ARB_texture_compression if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression", 19)) { ret = GLEW_ARB_texture_compression; continue; } #endif #ifdef GL_ARB_texture_compression_bptc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_bptc", 24)) { ret = GLEW_ARB_texture_compression_bptc; continue; } #endif #ifdef GL_ARB_texture_compression_rgtc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_rgtc", 24)) { ret = GLEW_ARB_texture_compression_rgtc; continue; } #endif #ifdef GL_ARB_texture_cube_map if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16)) { ret = GLEW_ARB_texture_cube_map; continue; } #endif #ifdef GL_ARB_texture_cube_map_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22)) { ret = GLEW_ARB_texture_cube_map_array; continue; } #endif #ifdef GL_ARB_texture_env_add if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_add", 15)) { ret = GLEW_ARB_texture_env_add; continue; } #endif #ifdef GL_ARB_texture_env_combine if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine", 19)) { ret = GLEW_ARB_texture_env_combine; continue; } #endif #ifdef GL_ARB_texture_env_crossbar if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_crossbar", 20)) { ret = GLEW_ARB_texture_env_crossbar; continue; } #endif #ifdef GL_ARB_texture_env_dot3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_dot3", 16)) { ret = GLEW_ARB_texture_env_dot3; continue; } #endif #ifdef GL_ARB_texture_filter_anisotropic if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_anisotropic", 26)) { ret = GLEW_ARB_texture_filter_anisotropic; continue; } #endif #ifdef GL_ARB_texture_filter_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_minmax", 21)) { ret = GLEW_ARB_texture_filter_minmax; continue; } #endif #ifdef GL_ARB_texture_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_float", 13)) { ret = GLEW_ARB_texture_float; continue; } #endif #ifdef GL_ARB_texture_gather if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_gather", 14)) { ret = GLEW_ARB_texture_gather; continue; } #endif #ifdef GL_ARB_texture_mirror_clamp_to_edge if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp_to_edge", 28)) { ret = GLEW_ARB_texture_mirror_clamp_to_edge; continue; } #endif #ifdef GL_ARB_texture_mirrored_repeat if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23)) { ret = GLEW_ARB_texture_mirrored_repeat; continue; } #endif #ifdef GL_ARB_texture_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multisample", 19)) { ret = GLEW_ARB_texture_multisample; continue; } #endif #ifdef GL_ARB_texture_non_power_of_two if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_non_power_of_two", 24)) { ret = GLEW_ARB_texture_non_power_of_two; continue; } #endif #ifdef GL_ARB_texture_query_levels if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_levels", 20)) { ret = GLEW_ARB_texture_query_levels; continue; } #endif #ifdef GL_ARB_texture_query_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_query_lod", 17)) { ret = GLEW_ARB_texture_query_lod; continue; } #endif #ifdef GL_ARB_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { ret = GLEW_ARB_texture_rectangle; continue; } #endif #ifdef GL_ARB_texture_rg if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rg", 10)) { ret = GLEW_ARB_texture_rg; continue; } #endif #ifdef GL_ARB_texture_rgb10_a2ui if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rgb10_a2ui", 18)) { ret = GLEW_ARB_texture_rgb10_a2ui; continue; } #endif #ifdef GL_ARB_texture_stencil8 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stencil8", 16)) { ret = GLEW_ARB_texture_stencil8; continue; } #endif #ifdef GL_ARB_texture_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage", 15)) { ret = GLEW_ARB_texture_storage; continue; } #endif #ifdef GL_ARB_texture_storage_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage_multisample", 27)) { ret = GLEW_ARB_texture_storage_multisample; continue; } #endif #ifdef GL_ARB_texture_swizzle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_swizzle", 15)) { ret = GLEW_ARB_texture_swizzle; continue; } #endif #ifdef GL_ARB_texture_view if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12)) { ret = GLEW_ARB_texture_view; continue; } #endif #ifdef GL_ARB_timer_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11)) { ret = GLEW_ARB_timer_query; continue; } #endif #ifdef GL_ARB_transform_feedback2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback2", 19)) { ret = GLEW_ARB_transform_feedback2; continue; } #endif #ifdef GL_ARB_transform_feedback3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback3", 19)) { ret = GLEW_ARB_transform_feedback3; continue; } #endif #ifdef GL_ARB_transform_feedback_instanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback_instanced", 28)) { ret = GLEW_ARB_transform_feedback_instanced; continue; } #endif #ifdef GL_ARB_transform_feedback_overflow_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback_overflow_query", 33)) { ret = GLEW_ARB_transform_feedback_overflow_query; continue; } #endif #ifdef GL_ARB_transpose_matrix if (_glewStrSame3(&pos, &len, (const GLubyte*)"transpose_matrix", 16)) { ret = GLEW_ARB_transpose_matrix; continue; } #endif #ifdef GL_ARB_uniform_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"uniform_buffer_object", 21)) { ret = GLEW_ARB_uniform_buffer_object; continue; } #endif #ifdef GL_ARB_vertex_array_bgra if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_bgra", 17)) { ret = GLEW_ARB_vertex_array_bgra; continue; } #endif #ifdef GL_ARB_vertex_array_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) { ret = GLEW_ARB_vertex_array_object; continue; } #endif #ifdef GL_ARB_vertex_attrib_64bit if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_64bit", 19)) { ret = GLEW_ARB_vertex_attrib_64bit; continue; } #endif #ifdef GL_ARB_vertex_attrib_binding if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_binding", 21)) { ret = GLEW_ARB_vertex_attrib_binding; continue; } #endif #ifdef GL_ARB_vertex_blend if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_blend", 12)) { ret = GLEW_ARB_vertex_blend; continue; } #endif #ifdef GL_ARB_vertex_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_buffer_object", 20)) { ret = GLEW_ARB_vertex_buffer_object; continue; } #endif #ifdef GL_ARB_vertex_program if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program", 14)) { ret = GLEW_ARB_vertex_program; continue; } #endif #ifdef GL_ARB_vertex_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader", 13)) { ret = GLEW_ARB_vertex_shader; continue; } #endif #ifdef GL_ARB_vertex_type_10f_11f_11f_rev if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_10f_11f_11f_rev", 27)) { ret = GLEW_ARB_vertex_type_10f_11f_11f_rev; continue; } #endif #ifdef GL_ARB_vertex_type_2_10_10_10_rev if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_type_2_10_10_10_rev", 26)) { ret = GLEW_ARB_vertex_type_2_10_10_10_rev; continue; } #endif #ifdef GL_ARB_viewport_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array", 14)) { ret = GLEW_ARB_viewport_array; continue; } #endif #ifdef GL_ARB_window_pos if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_pos", 10)) { ret = GLEW_ARB_window_pos; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4)) { #ifdef GL_ARM_mali_program_binary if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_program_binary", 19)) { ret = GLEW_ARM_mali_program_binary; continue; } #endif #ifdef GL_ARM_mali_shader_binary if (_glewStrSame3(&pos, &len, (const GLubyte*)"mali_shader_binary", 18)) { ret = GLEW_ARM_mali_shader_binary; continue; } #endif #ifdef GL_ARM_rgba8 if (_glewStrSame3(&pos, &len, (const GLubyte*)"rgba8", 5)) { ret = GLEW_ARM_rgba8; continue; } #endif #ifdef GL_ARM_shader_framebuffer_fetch if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24)) { ret = GLEW_ARM_shader_framebuffer_fetch; continue; } #endif #ifdef GL_ARM_shader_framebuffer_fetch_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_depth_stencil", 38)) { ret = GLEW_ARM_shader_framebuffer_fetch_depth_stencil; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATIX_", 5)) { #ifdef GL_ATIX_point_sprites if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprites", 13)) { ret = GLEW_ATIX_point_sprites; continue; } #endif #ifdef GL_ATIX_texture_env_combine3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine3", 20)) { ret = GLEW_ATIX_texture_env_combine3; continue; } #endif #ifdef GL_ATIX_texture_env_route if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_route", 17)) { ret = GLEW_ATIX_texture_env_route; continue; } #endif #ifdef GL_ATIX_vertex_shader_output_point_size if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader_output_point_size", 31)) { ret = GLEW_ATIX_vertex_shader_output_point_size; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATI_", 4)) { #ifdef GL_ATI_draw_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) { ret = GLEW_ATI_draw_buffers; continue; } #endif #ifdef GL_ATI_element_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"element_array", 13)) { ret = GLEW_ATI_element_array; continue; } #endif #ifdef GL_ATI_envmap_bumpmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"envmap_bumpmap", 14)) { ret = GLEW_ATI_envmap_bumpmap; continue; } #endif #ifdef GL_ATI_fragment_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader", 15)) { ret = GLEW_ATI_fragment_shader; continue; } #endif #ifdef GL_ATI_map_object_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_object_buffer", 17)) { ret = GLEW_ATI_map_object_buffer; continue; } #endif #ifdef GL_ATI_meminfo if (_glewStrSame3(&pos, &len, (const GLubyte*)"meminfo", 7)) { ret = GLEW_ATI_meminfo; continue; } #endif #ifdef GL_ATI_pn_triangles if (_glewStrSame3(&pos, &len, (const GLubyte*)"pn_triangles", 12)) { ret = GLEW_ATI_pn_triangles; continue; } #endif #ifdef GL_ATI_separate_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_stencil", 16)) { ret = GLEW_ATI_separate_stencil; continue; } #endif #ifdef GL_ATI_shader_texture_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18)) { ret = GLEW_ATI_shader_texture_lod; continue; } #endif #ifdef GL_ATI_text_fragment_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"text_fragment_shader", 20)) { ret = GLEW_ATI_text_fragment_shader; continue; } #endif #ifdef GL_ATI_texture_compression_3dc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_3dc", 23)) { ret = GLEW_ATI_texture_compression_3dc; continue; } #endif #ifdef GL_ATI_texture_env_combine3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine3", 20)) { ret = GLEW_ATI_texture_env_combine3; continue; } #endif #ifdef GL_ATI_texture_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_float", 13)) { ret = GLEW_ATI_texture_float; continue; } #endif #ifdef GL_ATI_texture_mirror_once if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_once", 19)) { ret = GLEW_ATI_texture_mirror_once; continue; } #endif #ifdef GL_ATI_vertex_array_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) { ret = GLEW_ATI_vertex_array_object; continue; } #endif #ifdef GL_ATI_vertex_attrib_array_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_array_object", 26)) { ret = GLEW_ATI_vertex_attrib_array_object; continue; } #endif #ifdef GL_ATI_vertex_streams if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_streams", 14)) { ret = GLEW_ATI_vertex_streams; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EGL_", 4)) { #ifdef GL_EGL_KHR_context_flush_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"KHR_context_flush_control", 25)) { ret = GLEW_EGL_KHR_context_flush_control; continue; } #endif #ifdef GL_EGL_NV_robustness_video_memory_purge if (_glewStrSame3(&pos, &len, (const GLubyte*)"NV_robustness_video_memory_purge", 32)) { ret = GLEW_EGL_NV_robustness_video_memory_purge; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) { #ifdef GL_EXT_422_pixels if (_glewStrSame3(&pos, &len, (const GLubyte*)"422_pixels", 10)) { ret = GLEW_EXT_422_pixels; continue; } #endif #ifdef GL_EXT_Cg_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"Cg_shader", 9)) { ret = GLEW_EXT_Cg_shader; continue; } #endif #ifdef GL_EXT_EGL_image_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_image_array", 15)) { ret = GLEW_EXT_EGL_image_array; continue; } #endif #ifdef GL_EXT_YUV_target if (_glewStrSame3(&pos, &len, (const GLubyte*)"YUV_target", 10)) { ret = GLEW_EXT_YUV_target; continue; } #endif #ifdef GL_EXT_abgr if (_glewStrSame3(&pos, &len, (const GLubyte*)"abgr", 4)) { ret = GLEW_EXT_abgr; continue; } #endif #ifdef GL_EXT_base_instance if (_glewStrSame3(&pos, &len, (const GLubyte*)"base_instance", 13)) { ret = GLEW_EXT_base_instance; continue; } #endif #ifdef GL_EXT_bgra if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgra", 4)) { ret = GLEW_EXT_bgra; continue; } #endif #ifdef GL_EXT_bindable_uniform if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindable_uniform", 16)) { ret = GLEW_EXT_bindable_uniform; continue; } #endif #ifdef GL_EXT_blend_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_color", 11)) { ret = GLEW_EXT_blend_color; continue; } #endif #ifdef GL_EXT_blend_equation_separate if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_separate", 23)) { ret = GLEW_EXT_blend_equation_separate; continue; } #endif #ifdef GL_EXT_blend_func_extended if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_extended", 19)) { ret = GLEW_EXT_blend_func_extended; continue; } #endif #ifdef GL_EXT_blend_func_separate if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_func_separate", 19)) { ret = GLEW_EXT_blend_func_separate; continue; } #endif #ifdef GL_EXT_blend_logic_op if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_logic_op", 14)) { ret = GLEW_EXT_blend_logic_op; continue; } #endif #ifdef GL_EXT_blend_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax", 12)) { ret = GLEW_EXT_blend_minmax; continue; } #endif #ifdef GL_EXT_blend_subtract if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_subtract", 14)) { ret = GLEW_EXT_blend_subtract; continue; } #endif #ifdef GL_EXT_buffer_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_storage", 14)) { ret = GLEW_EXT_buffer_storage; continue; } #endif #ifdef GL_EXT_clear_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"clear_texture", 13)) { ret = GLEW_EXT_clear_texture; continue; } #endif #ifdef GL_EXT_clip_cull_distance if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_cull_distance", 18)) { ret = GLEW_EXT_clip_cull_distance; continue; } #endif #ifdef GL_EXT_clip_volume_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_volume_hint", 16)) { ret = GLEW_EXT_clip_volume_hint; continue; } #endif #ifdef GL_EXT_cmyka if (_glewStrSame3(&pos, &len, (const GLubyte*)"cmyka", 5)) { ret = GLEW_EXT_cmyka; continue; } #endif #ifdef GL_EXT_color_buffer_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_float", 18)) { ret = GLEW_EXT_color_buffer_float; continue; } #endif #ifdef GL_EXT_color_buffer_half_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_buffer_half_float", 23)) { ret = GLEW_EXT_color_buffer_half_float; continue; } #endif #ifdef GL_EXT_color_subtable if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_subtable", 14)) { ret = GLEW_EXT_color_subtable; continue; } #endif #ifdef GL_EXT_compiled_vertex_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"compiled_vertex_array", 21)) { ret = GLEW_EXT_compiled_vertex_array; continue; } #endif #ifdef GL_EXT_compressed_ETC1_RGB8_sub_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"compressed_ETC1_RGB8_sub_texture", 32)) { ret = GLEW_EXT_compressed_ETC1_RGB8_sub_texture; continue; } #endif #ifdef GL_EXT_conservative_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_depth", 18)) { ret = GLEW_EXT_conservative_depth; continue; } #endif #ifdef GL_EXT_convolution if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution", 11)) { ret = GLEW_EXT_convolution; continue; } #endif #ifdef GL_EXT_coordinate_frame if (_glewStrSame3(&pos, &len, (const GLubyte*)"coordinate_frame", 16)) { ret = GLEW_EXT_coordinate_frame; continue; } #endif #ifdef GL_EXT_copy_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) { ret = GLEW_EXT_copy_image; continue; } #endif #ifdef GL_EXT_copy_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_texture", 12)) { ret = GLEW_EXT_copy_texture; continue; } #endif #ifdef GL_EXT_cull_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"cull_vertex", 11)) { ret = GLEW_EXT_cull_vertex; continue; } #endif #ifdef GL_EXT_debug_label if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_label", 11)) { ret = GLEW_EXT_debug_label; continue; } #endif #ifdef GL_EXT_debug_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug_marker", 12)) { ret = GLEW_EXT_debug_marker; continue; } #endif #ifdef GL_EXT_depth_bounds_test if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_bounds_test", 17)) { ret = GLEW_EXT_depth_bounds_test; continue; } #endif #ifdef GL_EXT_direct_state_access if (_glewStrSame3(&pos, &len, (const GLubyte*)"direct_state_access", 19)) { ret = GLEW_EXT_direct_state_access; continue; } #endif #ifdef GL_EXT_discard_framebuffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"discard_framebuffer", 19)) { ret = GLEW_EXT_discard_framebuffer; continue; } #endif #ifdef GL_EXT_draw_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) { ret = GLEW_EXT_draw_buffers; continue; } #endif #ifdef GL_EXT_draw_buffers2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers2", 13)) { ret = GLEW_EXT_draw_buffers2; continue; } #endif #ifdef GL_EXT_draw_buffers_indexed if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers_indexed", 20)) { ret = GLEW_EXT_draw_buffers_indexed; continue; } #endif #ifdef GL_EXT_draw_elements_base_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_elements_base_vertex", 25)) { ret = GLEW_EXT_draw_elements_base_vertex; continue; } #endif #ifdef GL_EXT_draw_instanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) { ret = GLEW_EXT_draw_instanced; continue; } #endif #ifdef GL_EXT_draw_range_elements if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_range_elements", 19)) { ret = GLEW_EXT_draw_range_elements; continue; } #endif #ifdef GL_EXT_external_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"external_buffer", 15)) { ret = GLEW_EXT_external_buffer; continue; } #endif #ifdef GL_EXT_float_blend if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_blend", 11)) { ret = GLEW_EXT_float_blend; continue; } #endif #ifdef GL_EXT_fog_coord if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_coord", 9)) { ret = GLEW_EXT_fog_coord; continue; } #endif #ifdef GL_EXT_frag_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"frag_depth", 10)) { ret = GLEW_EXT_frag_depth; continue; } #endif #ifdef GL_EXT_fragment_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting", 17)) { ret = GLEW_EXT_fragment_lighting; continue; } #endif #ifdef GL_EXT_framebuffer_blit if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16)) { ret = GLEW_EXT_framebuffer_blit; continue; } #endif #ifdef GL_EXT_framebuffer_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) { ret = GLEW_EXT_framebuffer_multisample; continue; } #endif #ifdef GL_EXT_framebuffer_multisample_blit_scaled if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_blit_scaled", 35)) { ret = GLEW_EXT_framebuffer_multisample_blit_scaled; continue; } #endif #ifdef GL_EXT_framebuffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_object", 18)) { ret = GLEW_EXT_framebuffer_object; continue; } #endif #ifdef GL_EXT_framebuffer_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16)) { ret = GLEW_EXT_framebuffer_sRGB; continue; } #endif #ifdef GL_EXT_geometry_point_size if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_point_size", 19)) { ret = GLEW_EXT_geometry_point_size; continue; } #endif #ifdef GL_EXT_geometry_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader", 15)) { ret = GLEW_EXT_geometry_shader; continue; } #endif #ifdef GL_EXT_geometry_shader4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16)) { ret = GLEW_EXT_geometry_shader4; continue; } #endif #ifdef GL_EXT_gpu_program_parameters if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program_parameters", 22)) { ret = GLEW_EXT_gpu_program_parameters; continue; } #endif #ifdef GL_EXT_gpu_shader4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader4", 11)) { ret = GLEW_EXT_gpu_shader4; continue; } #endif #ifdef GL_EXT_gpu_shader5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) { ret = GLEW_EXT_gpu_shader5; continue; } #endif #ifdef GL_EXT_histogram if (_glewStrSame3(&pos, &len, (const GLubyte*)"histogram", 9)) { ret = GLEW_EXT_histogram; continue; } #endif #ifdef GL_EXT_index_array_formats if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_array_formats", 19)) { ret = GLEW_EXT_index_array_formats; continue; } #endif #ifdef GL_EXT_index_func if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_func", 10)) { ret = GLEW_EXT_index_func; continue; } #endif #ifdef GL_EXT_index_material if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_material", 14)) { ret = GLEW_EXT_index_material; continue; } #endif #ifdef GL_EXT_index_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"index_texture", 13)) { ret = GLEW_EXT_index_texture; continue; } #endif #ifdef GL_EXT_instanced_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) { ret = GLEW_EXT_instanced_arrays; continue; } #endif #ifdef GL_EXT_light_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"light_texture", 13)) { ret = GLEW_EXT_light_texture; continue; } #endif #ifdef GL_EXT_map_buffer_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_buffer_range", 16)) { ret = GLEW_EXT_map_buffer_range; continue; } #endif #ifdef GL_EXT_memory_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object", 13)) { ret = GLEW_EXT_memory_object; continue; } #endif #ifdef GL_EXT_memory_object_fd if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_fd", 16)) { ret = GLEW_EXT_memory_object_fd; continue; } #endif #ifdef GL_EXT_memory_object_win32 if (_glewStrSame3(&pos, &len, (const GLubyte*)"memory_object_win32", 19)) { ret = GLEW_EXT_memory_object_win32; continue; } #endif #ifdef GL_EXT_misc_attribute if (_glewStrSame3(&pos, &len, (const GLubyte*)"misc_attribute", 14)) { ret = GLEW_EXT_misc_attribute; continue; } #endif #ifdef GL_EXT_multi_draw_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_arrays", 17)) { ret = GLEW_EXT_multi_draw_arrays; continue; } #endif #ifdef GL_EXT_multi_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"multi_draw_indirect", 19)) { ret = GLEW_EXT_multi_draw_indirect; continue; } #endif #ifdef GL_EXT_multiple_textures if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiple_textures", 17)) { ret = GLEW_EXT_multiple_textures; continue; } #endif #ifdef GL_EXT_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLEW_EXT_multisample; continue; } #endif #ifdef GL_EXT_multisample_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_compatibility", 25)) { ret = GLEW_EXT_multisample_compatibility; continue; } #endif #ifdef GL_EXT_multisampled_render_to_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture", 30)) { ret = GLEW_EXT_multisampled_render_to_texture; continue; } #endif #ifdef GL_EXT_multisampled_render_to_texture2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisampled_render_to_texture2", 31)) { ret = GLEW_EXT_multisampled_render_to_texture2; continue; } #endif #ifdef GL_EXT_multiview_draw_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_draw_buffers", 22)) { ret = GLEW_EXT_multiview_draw_buffers; continue; } #endif #ifdef GL_EXT_packed_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) { ret = GLEW_EXT_packed_depth_stencil; continue; } #endif #ifdef GL_EXT_packed_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float", 12)) { ret = GLEW_EXT_packed_float; continue; } #endif #ifdef GL_EXT_packed_pixels if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_pixels", 13)) { ret = GLEW_EXT_packed_pixels; continue; } #endif #ifdef GL_EXT_paletted_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"paletted_texture", 16)) { ret = GLEW_EXT_paletted_texture; continue; } #endif #ifdef GL_EXT_pixel_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19)) { ret = GLEW_EXT_pixel_buffer_object; continue; } #endif #ifdef GL_EXT_pixel_transform if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_transform", 15)) { ret = GLEW_EXT_pixel_transform; continue; } #endif #ifdef GL_EXT_pixel_transform_color_table if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_transform_color_table", 27)) { ret = GLEW_EXT_pixel_transform_color_table; continue; } #endif #ifdef GL_EXT_point_parameters if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_parameters", 16)) { ret = GLEW_EXT_point_parameters; continue; } #endif #ifdef GL_EXT_polygon_offset if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset", 14)) { ret = GLEW_EXT_polygon_offset; continue; } #endif #ifdef GL_EXT_polygon_offset_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_offset_clamp", 20)) { ret = GLEW_EXT_polygon_offset_clamp; continue; } #endif #ifdef GL_EXT_post_depth_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_depth_coverage", 19)) { ret = GLEW_EXT_post_depth_coverage; continue; } #endif #ifdef GL_EXT_provoking_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"provoking_vertex", 16)) { ret = GLEW_EXT_provoking_vertex; continue; } #endif #ifdef GL_EXT_pvrtc_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"pvrtc_sRGB", 10)) { ret = GLEW_EXT_pvrtc_sRGB; continue; } #endif #ifdef GL_EXT_raster_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"raster_multisample", 18)) { ret = GLEW_EXT_raster_multisample; continue; } #endif #ifdef GL_EXT_read_format_bgra if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_format_bgra", 16)) { ret = GLEW_EXT_read_format_bgra; continue; } #endif #ifdef GL_EXT_render_snorm if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_snorm", 12)) { ret = GLEW_EXT_render_snorm; continue; } #endif #ifdef GL_EXT_rescale_normal if (_glewStrSame3(&pos, &len, (const GLubyte*)"rescale_normal", 14)) { ret = GLEW_EXT_rescale_normal; continue; } #endif #ifdef GL_EXT_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB", 4)) { ret = GLEW_EXT_sRGB; continue; } #endif #ifdef GL_EXT_sRGB_write_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_write_control", 18)) { ret = GLEW_EXT_sRGB_write_control; continue; } #endif #ifdef GL_EXT_scene_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12)) { ret = GLEW_EXT_scene_marker; continue; } #endif #ifdef GL_EXT_secondary_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"secondary_color", 15)) { ret = GLEW_EXT_secondary_color; continue; } #endif #ifdef GL_EXT_semaphore if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore", 9)) { ret = GLEW_EXT_semaphore; continue; } #endif #ifdef GL_EXT_semaphore_fd if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_fd", 12)) { ret = GLEW_EXT_semaphore_fd; continue; } #endif #ifdef GL_EXT_semaphore_win32 if (_glewStrSame3(&pos, &len, (const GLubyte*)"semaphore_win32", 15)) { ret = GLEW_EXT_semaphore_win32; continue; } #endif #ifdef GL_EXT_separate_shader_objects if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_shader_objects", 23)) { ret = GLEW_EXT_separate_shader_objects; continue; } #endif #ifdef GL_EXT_separate_specular_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"separate_specular_color", 23)) { ret = GLEW_EXT_separate_specular_color; continue; } #endif #ifdef GL_EXT_shader_framebuffer_fetch if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch", 24)) { ret = GLEW_EXT_shader_framebuffer_fetch; continue; } #endif #ifdef GL_EXT_shader_group_vote if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_group_vote", 17)) { ret = GLEW_EXT_shader_group_vote; continue; } #endif #ifdef GL_EXT_shader_image_load_formatted if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_formatted", 27)) { ret = GLEW_EXT_shader_image_load_formatted; continue; } #endif #ifdef GL_EXT_shader_image_load_store if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_image_load_store", 23)) { ret = GLEW_EXT_shader_image_load_store; continue; } #endif #ifdef GL_EXT_shader_implicit_conversions if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_implicit_conversions", 27)) { ret = GLEW_EXT_shader_implicit_conversions; continue; } #endif #ifdef GL_EXT_shader_integer_mix if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_mix", 18)) { ret = GLEW_EXT_shader_integer_mix; continue; } #endif #ifdef GL_EXT_shader_io_blocks if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_io_blocks", 16)) { ret = GLEW_EXT_shader_io_blocks; continue; } #endif #ifdef GL_EXT_shader_non_constant_global_initializers if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_non_constant_global_initializers", 39)) { ret = GLEW_EXT_shader_non_constant_global_initializers; continue; } #endif #ifdef GL_EXT_shader_pixel_local_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage", 26)) { ret = GLEW_EXT_shader_pixel_local_storage; continue; } #endif #ifdef GL_EXT_shader_pixel_local_storage2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_pixel_local_storage2", 27)) { ret = GLEW_EXT_shader_pixel_local_storage2; continue; } #endif #ifdef GL_EXT_shader_texture_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_texture_lod", 18)) { ret = GLEW_EXT_shader_texture_lod; continue; } #endif #ifdef GL_EXT_shadow_funcs if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_funcs", 12)) { ret = GLEW_EXT_shadow_funcs; continue; } #endif #ifdef GL_EXT_shadow_samplers if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers", 15)) { ret = GLEW_EXT_shadow_samplers; continue; } #endif #ifdef GL_EXT_shared_texture_palette if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_texture_palette", 22)) { ret = GLEW_EXT_shared_texture_palette; continue; } #endif #ifdef GL_EXT_sparse_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture", 14)) { ret = GLEW_EXT_sparse_texture; continue; } #endif #ifdef GL_EXT_sparse_texture2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"sparse_texture2", 15)) { ret = GLEW_EXT_sparse_texture2; continue; } #endif #ifdef GL_EXT_stencil_clear_tag if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_clear_tag", 17)) { ret = GLEW_EXT_stencil_clear_tag; continue; } #endif #ifdef GL_EXT_stencil_two_side if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_two_side", 16)) { ret = GLEW_EXT_stencil_two_side; continue; } #endif #ifdef GL_EXT_stencil_wrap if (_glewStrSame3(&pos, &len, (const GLubyte*)"stencil_wrap", 12)) { ret = GLEW_EXT_stencil_wrap; continue; } #endif #ifdef GL_EXT_subtexture if (_glewStrSame3(&pos, &len, (const GLubyte*)"subtexture", 10)) { ret = GLEW_EXT_subtexture; continue; } #endif #ifdef GL_EXT_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture", 7)) { ret = GLEW_EXT_texture; continue; } #endif #ifdef GL_EXT_texture3D if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture3D", 9)) { ret = GLEW_EXT_texture3D; continue; } #endif #ifdef GL_EXT_texture_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_array", 13)) { ret = GLEW_EXT_texture_array; continue; } #endif #ifdef GL_EXT_texture_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_buffer_object", 21)) { ret = GLEW_EXT_texture_buffer_object; continue; } #endif #ifdef GL_EXT_texture_compression_astc_decode_mode if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode", 36)) { ret = GLEW_EXT_texture_compression_astc_decode_mode; continue; } #endif #ifdef GL_EXT_texture_compression_astc_decode_mode_rgb9e5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_decode_mode_rgb9e5", 43)) { ret = GLEW_EXT_texture_compression_astc_decode_mode_rgb9e5; continue; } #endif #ifdef GL_EXT_texture_compression_bptc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_bptc", 24)) { ret = GLEW_EXT_texture_compression_bptc; continue; } #endif #ifdef GL_EXT_texture_compression_dxt1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_dxt1", 24)) { ret = GLEW_EXT_texture_compression_dxt1; continue; } #endif #ifdef GL_EXT_texture_compression_latc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_latc", 24)) { ret = GLEW_EXT_texture_compression_latc; continue; } #endif #ifdef GL_EXT_texture_compression_rgtc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_rgtc", 24)) { ret = GLEW_EXT_texture_compression_rgtc; continue; } #endif #ifdef GL_EXT_texture_compression_s3tc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc", 24)) { ret = GLEW_EXT_texture_compression_s3tc; continue; } #endif #ifdef GL_EXT_texture_cube_map if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map", 16)) { ret = GLEW_EXT_texture_cube_map; continue; } #endif #ifdef GL_EXT_texture_cube_map_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_cube_map_array", 22)) { ret = GLEW_EXT_texture_cube_map_array; continue; } #endif #ifdef GL_EXT_texture_edge_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_edge_clamp", 18)) { ret = GLEW_EXT_texture_edge_clamp; continue; } #endif #ifdef GL_EXT_texture_env if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env", 11)) { ret = GLEW_EXT_texture_env; continue; } #endif #ifdef GL_EXT_texture_env_add if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_add", 15)) { ret = GLEW_EXT_texture_env_add; continue; } #endif #ifdef GL_EXT_texture_env_combine if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine", 19)) { ret = GLEW_EXT_texture_env_combine; continue; } #endif #ifdef GL_EXT_texture_env_dot3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_dot3", 16)) { ret = GLEW_EXT_texture_env_dot3; continue; } #endif #ifdef GL_EXT_texture_filter_anisotropic if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_anisotropic", 26)) { ret = GLEW_EXT_texture_filter_anisotropic; continue; } #endif #ifdef GL_EXT_texture_filter_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter_minmax", 21)) { ret = GLEW_EXT_texture_filter_minmax; continue; } #endif #ifdef GL_EXT_texture_format_BGRA8888 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_format_BGRA8888", 23)) { ret = GLEW_EXT_texture_format_BGRA8888; continue; } #endif #ifdef GL_EXT_texture_integer if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_integer", 15)) { ret = GLEW_EXT_texture_integer; continue; } #endif #ifdef GL_EXT_texture_lod_bias if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lod_bias", 16)) { ret = GLEW_EXT_texture_lod_bias; continue; } #endif #ifdef GL_EXT_texture_mirror_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirror_clamp", 20)) { ret = GLEW_EXT_texture_mirror_clamp; continue; } #endif #ifdef GL_EXT_texture_norm16 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_norm16", 14)) { ret = GLEW_EXT_texture_norm16; continue; } #endif #ifdef GL_EXT_texture_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_object", 14)) { ret = GLEW_EXT_texture_object; continue; } #endif #ifdef GL_EXT_texture_perturb_normal if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_perturb_normal", 22)) { ret = GLEW_EXT_texture_perturb_normal; continue; } #endif #ifdef GL_EXT_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { ret = GLEW_EXT_texture_rectangle; continue; } #endif #ifdef GL_EXT_texture_rg if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rg", 10)) { ret = GLEW_EXT_texture_rg; continue; } #endif #ifdef GL_EXT_texture_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB", 12)) { ret = GLEW_EXT_texture_sRGB; continue; } #endif #ifdef GL_EXT_texture_sRGB_R8 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_R8", 15)) { ret = GLEW_EXT_texture_sRGB_R8; continue; } #endif #ifdef GL_EXT_texture_sRGB_RG8 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_RG8", 16)) { ret = GLEW_EXT_texture_sRGB_RG8; continue; } #endif #ifdef GL_EXT_texture_sRGB_decode if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_sRGB_decode", 19)) { ret = GLEW_EXT_texture_sRGB_decode; continue; } #endif #ifdef GL_EXT_texture_shared_exponent if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shared_exponent", 23)) { ret = GLEW_EXT_texture_shared_exponent; continue; } #endif #ifdef GL_EXT_texture_snorm if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_snorm", 13)) { ret = GLEW_EXT_texture_snorm; continue; } #endif #ifdef GL_EXT_texture_storage if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_storage", 15)) { ret = GLEW_EXT_texture_storage; continue; } #endif #ifdef GL_EXT_texture_swizzle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_swizzle", 15)) { ret = GLEW_EXT_texture_swizzle; continue; } #endif #ifdef GL_EXT_texture_type_2_10_10_10_REV if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_type_2_10_10_10_REV", 27)) { ret = GLEW_EXT_texture_type_2_10_10_10_REV; continue; } #endif #ifdef GL_EXT_texture_view if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_view", 12)) { ret = GLEW_EXT_texture_view; continue; } #endif #ifdef GL_EXT_timer_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"timer_query", 11)) { ret = GLEW_EXT_timer_query; continue; } #endif #ifdef GL_EXT_transform_feedback if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback", 18)) { ret = GLEW_EXT_transform_feedback; continue; } #endif #ifdef GL_EXT_unpack_subimage if (_glewStrSame3(&pos, &len, (const GLubyte*)"unpack_subimage", 15)) { ret = GLEW_EXT_unpack_subimage; continue; } #endif #ifdef GL_EXT_vertex_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array", 12)) { ret = GLEW_EXT_vertex_array; continue; } #endif #ifdef GL_EXT_vertex_array_bgra if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_bgra", 17)) { ret = GLEW_EXT_vertex_array_bgra; continue; } #endif #ifdef GL_EXT_vertex_array_setXXX if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_setXXX", 19)) { ret = GLEW_EXT_vertex_array_setXXX; continue; } #endif #ifdef GL_EXT_vertex_attrib_64bit if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_64bit", 19)) { ret = GLEW_EXT_vertex_attrib_64bit; continue; } #endif #ifdef GL_EXT_vertex_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_shader", 13)) { ret = GLEW_EXT_vertex_shader; continue; } #endif #ifdef GL_EXT_vertex_weighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_weighting", 16)) { ret = GLEW_EXT_vertex_weighting; continue; } #endif #ifdef GL_EXT_win32_keyed_mutex if (_glewStrSame3(&pos, &len, (const GLubyte*)"win32_keyed_mutex", 17)) { ret = GLEW_EXT_win32_keyed_mutex; continue; } #endif #ifdef GL_EXT_window_rectangles if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_rectangles", 17)) { ret = GLEW_EXT_window_rectangles; continue; } #endif #ifdef GL_EXT_x11_sync_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"x11_sync_object", 15)) { ret = GLEW_EXT_x11_sync_object; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"GREMEDY_", 8)) { #ifdef GL_GREMEDY_frame_terminator if (_glewStrSame3(&pos, &len, (const GLubyte*)"frame_terminator", 16)) { ret = GLEW_GREMEDY_frame_terminator; continue; } #endif #ifdef GL_GREMEDY_string_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"string_marker", 13)) { ret = GLEW_GREMEDY_string_marker; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"HP_", 3)) { #ifdef GL_HP_convolution_border_modes if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_border_modes", 24)) { ret = GLEW_HP_convolution_border_modes; continue; } #endif #ifdef GL_HP_image_transform if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_transform", 15)) { ret = GLEW_HP_image_transform; continue; } #endif #ifdef GL_HP_occlusion_test if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_test", 14)) { ret = GLEW_HP_occlusion_test; continue; } #endif #ifdef GL_HP_texture_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lighting", 16)) { ret = GLEW_HP_texture_lighting; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"IBM_", 4)) { #ifdef GL_IBM_cull_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"cull_vertex", 11)) { ret = GLEW_IBM_cull_vertex; continue; } #endif #ifdef GL_IBM_multimode_draw_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"multimode_draw_arrays", 21)) { ret = GLEW_IBM_multimode_draw_arrays; continue; } #endif #ifdef GL_IBM_rasterpos_clip if (_glewStrSame3(&pos, &len, (const GLubyte*)"rasterpos_clip", 14)) { ret = GLEW_IBM_rasterpos_clip; continue; } #endif #ifdef GL_IBM_static_data if (_glewStrSame3(&pos, &len, (const GLubyte*)"static_data", 11)) { ret = GLEW_IBM_static_data; continue; } #endif #ifdef GL_IBM_texture_mirrored_repeat if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mirrored_repeat", 23)) { ret = GLEW_IBM_texture_mirrored_repeat; continue; } #endif #ifdef GL_IBM_vertex_array_lists if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_lists", 18)) { ret = GLEW_IBM_vertex_array_lists; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INGR_", 5)) { #ifdef GL_INGR_color_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_clamp", 11)) { ret = GLEW_INGR_color_clamp; continue; } #endif #ifdef GL_INGR_interlace_read if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace_read", 14)) { ret = GLEW_INGR_interlace_read; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INTEL_", 6)) { #ifdef GL_INTEL_conservative_rasterization if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_rasterization", 26)) { ret = GLEW_INTEL_conservative_rasterization; continue; } #endif #ifdef GL_INTEL_fragment_shader_ordering if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_ordering", 24)) { ret = GLEW_INTEL_fragment_shader_ordering; continue; } #endif #ifdef GL_INTEL_framebuffer_CMAA if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_CMAA", 16)) { ret = GLEW_INTEL_framebuffer_CMAA; continue; } #endif #ifdef GL_INTEL_map_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"map_texture", 11)) { ret = GLEW_INTEL_map_texture; continue; } #endif #ifdef GL_INTEL_parallel_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_arrays", 15)) { ret = GLEW_INTEL_parallel_arrays; continue; } #endif #ifdef GL_INTEL_performance_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"performance_query", 17)) { ret = GLEW_INTEL_performance_query; continue; } #endif #ifdef GL_INTEL_texture_scissor if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_scissor", 15)) { ret = GLEW_INTEL_texture_scissor; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"KHR_", 4)) { #ifdef GL_KHR_blend_equation_advanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced", 23)) { ret = GLEW_KHR_blend_equation_advanced; continue; } #endif #ifdef GL_KHR_blend_equation_advanced_coherent if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_coherent", 32)) { ret = GLEW_KHR_blend_equation_advanced_coherent; continue; } #endif #ifdef GL_KHR_context_flush_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21)) { ret = GLEW_KHR_context_flush_control; continue; } #endif #ifdef GL_KHR_debug if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug", 5)) { ret = GLEW_KHR_debug; continue; } #endif #ifdef GL_KHR_no_error if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_error", 8)) { ret = GLEW_KHR_no_error; continue; } #endif #ifdef GL_KHR_parallel_shader_compile if (_glewStrSame3(&pos, &len, (const GLubyte*)"parallel_shader_compile", 23)) { ret = GLEW_KHR_parallel_shader_compile; continue; } #endif #ifdef GL_KHR_robust_buffer_access_behavior if (_glewStrSame3(&pos, &len, (const GLubyte*)"robust_buffer_access_behavior", 29)) { ret = GLEW_KHR_robust_buffer_access_behavior; continue; } #endif #ifdef GL_KHR_robustness if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness", 10)) { ret = GLEW_KHR_robustness; continue; } #endif #ifdef GL_KHR_texture_compression_astc_hdr if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_hdr", 28)) { ret = GLEW_KHR_texture_compression_astc_hdr; continue; } #endif #ifdef GL_KHR_texture_compression_astc_ldr if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_ldr", 28)) { ret = GLEW_KHR_texture_compression_astc_ldr; continue; } #endif #ifdef GL_KHR_texture_compression_astc_sliced_3d if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_astc_sliced_3d", 34)) { ret = GLEW_KHR_texture_compression_astc_sliced_3d; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"KTX_", 4)) { #ifdef GL_KTX_buffer_region if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_region", 13)) { ret = GLEW_KTX_buffer_region; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESAX_", 6)) { #ifdef GL_MESAX_texture_stack if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_stack", 13)) { ret = GLEW_MESAX_texture_stack; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) { #ifdef GL_MESA_pack_invert if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_invert", 11)) { ret = GLEW_MESA_pack_invert; continue; } #endif #ifdef GL_MESA_resize_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"resize_buffers", 14)) { ret = GLEW_MESA_resize_buffers; continue; } #endif #ifdef GL_MESA_shader_integer_functions if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_integer_functions", 24)) { ret = GLEW_MESA_shader_integer_functions; continue; } #endif #ifdef GL_MESA_window_pos if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_pos", 10)) { ret = GLEW_MESA_window_pos; continue; } #endif #ifdef GL_MESA_ycbcr_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycbcr_texture", 13)) { ret = GLEW_MESA_ycbcr_texture; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NVX_", 4)) { #ifdef GL_NVX_blend_equation_advanced_multi_draw_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_multi_draw_buffers", 42)) { ret = GLEW_NVX_blend_equation_advanced_multi_draw_buffers; continue; } #endif #ifdef GL_NVX_conditional_render if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18)) { ret = GLEW_NVX_conditional_render; continue; } #endif #ifdef GL_NVX_gpu_memory_info if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_memory_info", 15)) { ret = GLEW_NVX_gpu_memory_info; continue; } #endif #ifdef GL_NVX_linked_gpu_multicast if (_glewStrSame3(&pos, &len, (const GLubyte*)"linked_gpu_multicast", 20)) { ret = GLEW_NVX_linked_gpu_multicast; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) { #ifdef GL_NV_3dvision_settings if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_settings", 17)) { ret = GLEW_NV_3dvision_settings; continue; } #endif #ifdef GL_NV_EGL_stream_consumer_external if (_glewStrSame3(&pos, &len, (const GLubyte*)"EGL_stream_consumer_external", 28)) { ret = GLEW_NV_EGL_stream_consumer_external; continue; } #endif #ifdef GL_NV_alpha_to_coverage_dither_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_to_coverage_dither_control", 32)) { ret = GLEW_NV_alpha_to_coverage_dither_control; continue; } #endif #ifdef GL_NV_bgr if (_glewStrSame3(&pos, &len, (const GLubyte*)"bgr", 3)) { ret = GLEW_NV_bgr; continue; } #endif #ifdef GL_NV_bindless_multi_draw_indirect if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_multi_draw_indirect", 28)) { ret = GLEW_NV_bindless_multi_draw_indirect; continue; } #endif #ifdef GL_NV_bindless_multi_draw_indirect_count if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_multi_draw_indirect_count", 34)) { ret = GLEW_NV_bindless_multi_draw_indirect_count; continue; } #endif #ifdef GL_NV_bindless_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"bindless_texture", 16)) { ret = GLEW_NV_bindless_texture; continue; } #endif #ifdef GL_NV_blend_equation_advanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced", 23)) { ret = GLEW_NV_blend_equation_advanced; continue; } #endif #ifdef GL_NV_blend_equation_advanced_coherent if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_equation_advanced_coherent", 32)) { ret = GLEW_NV_blend_equation_advanced_coherent; continue; } #endif #ifdef GL_NV_blend_minmax_factor if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_minmax_factor", 19)) { ret = GLEW_NV_blend_minmax_factor; continue; } #endif #ifdef GL_NV_blend_square if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_square", 12)) { ret = GLEW_NV_blend_square; continue; } #endif #ifdef GL_NV_clip_space_w_scaling if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_space_w_scaling", 20)) { ret = GLEW_NV_clip_space_w_scaling; continue; } #endif #ifdef GL_NV_command_list if (_glewStrSame3(&pos, &len, (const GLubyte*)"command_list", 12)) { ret = GLEW_NV_command_list; continue; } #endif #ifdef GL_NV_compute_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"compute_program5", 16)) { ret = GLEW_NV_compute_program5; continue; } #endif #ifdef GL_NV_conditional_render if (_glewStrSame3(&pos, &len, (const GLubyte*)"conditional_render", 18)) { ret = GLEW_NV_conditional_render; continue; } #endif #ifdef GL_NV_conservative_raster if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster", 19)) { ret = GLEW_NV_conservative_raster; continue; } #endif #ifdef GL_NV_conservative_raster_dilate if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_dilate", 26)) { ret = GLEW_NV_conservative_raster_dilate; continue; } #endif #ifdef GL_NV_conservative_raster_pre_snap_triangles if (_glewStrSame3(&pos, &len, (const GLubyte*)"conservative_raster_pre_snap_triangles", 38)) { ret = GLEW_NV_conservative_raster_pre_snap_triangles; continue; } #endif #ifdef GL_NV_copy_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11)) { ret = GLEW_NV_copy_buffer; continue; } #endif #ifdef GL_NV_copy_depth_to_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_depth_to_color", 19)) { ret = GLEW_NV_copy_depth_to_color; continue; } #endif #ifdef GL_NV_copy_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) { ret = GLEW_NV_copy_image; continue; } #endif #ifdef GL_NV_deep_texture3D if (_glewStrSame3(&pos, &len, (const GLubyte*)"deep_texture3D", 14)) { ret = GLEW_NV_deep_texture3D; continue; } #endif #ifdef GL_NV_depth_buffer_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_buffer_float", 18)) { ret = GLEW_NV_depth_buffer_float; continue; } #endif #ifdef GL_NV_depth_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_clamp", 11)) { ret = GLEW_NV_depth_clamp; continue; } #endif #ifdef GL_NV_depth_range_unclamped if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_range_unclamped", 21)) { ret = GLEW_NV_depth_range_unclamped; continue; } #endif #ifdef GL_NV_draw_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_buffers", 12)) { ret = GLEW_NV_draw_buffers; continue; } #endif #ifdef GL_NV_draw_instanced if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_instanced", 14)) { ret = GLEW_NV_draw_instanced; continue; } #endif #ifdef GL_NV_draw_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_texture", 12)) { ret = GLEW_NV_draw_texture; continue; } #endif #ifdef GL_NV_draw_vulkan_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"draw_vulkan_image", 17)) { ret = GLEW_NV_draw_vulkan_image; continue; } #endif #ifdef GL_NV_evaluators if (_glewStrSame3(&pos, &len, (const GLubyte*)"evaluators", 10)) { ret = GLEW_NV_evaluators; continue; } #endif #ifdef GL_NV_explicit_attrib_location if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_attrib_location", 24)) { ret = GLEW_NV_explicit_attrib_location; continue; } #endif #ifdef GL_NV_explicit_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"explicit_multisample", 20)) { ret = GLEW_NV_explicit_multisample; continue; } #endif #ifdef GL_NV_fbo_color_attachments if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbo_color_attachments", 21)) { ret = GLEW_NV_fbo_color_attachments; continue; } #endif #ifdef GL_NV_fence if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence", 5)) { ret = GLEW_NV_fence; continue; } #endif #ifdef GL_NV_fill_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"fill_rectangle", 14)) { ret = GLEW_NV_fill_rectangle; continue; } #endif #ifdef GL_NV_float_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_buffer", 12)) { ret = GLEW_NV_float_buffer; continue; } #endif #ifdef GL_NV_fog_distance if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_distance", 12)) { ret = GLEW_NV_fog_distance; continue; } #endif #ifdef GL_NV_fragment_coverage_to_color if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_coverage_to_color", 26)) { ret = GLEW_NV_fragment_coverage_to_color; continue; } #endif #ifdef GL_NV_fragment_program if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program", 16)) { ret = GLEW_NV_fragment_program; continue; } #endif #ifdef GL_NV_fragment_program2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program2", 17)) { ret = GLEW_NV_fragment_program2; continue; } #endif #ifdef GL_NV_fragment_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program4", 17)) { ret = GLEW_NV_fragment_program4; continue; } #endif #ifdef GL_NV_fragment_program_option if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_program_option", 23)) { ret = GLEW_NV_fragment_program_option; continue; } #endif #ifdef GL_NV_fragment_shader_interlock if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_shader_interlock", 25)) { ret = GLEW_NV_fragment_shader_interlock; continue; } #endif #ifdef GL_NV_framebuffer_blit if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_blit", 16)) { ret = GLEW_NV_framebuffer_blit; continue; } #endif #ifdef GL_NV_framebuffer_mixed_samples if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_mixed_samples", 25)) { ret = GLEW_NV_framebuffer_mixed_samples; continue; } #endif #ifdef GL_NV_framebuffer_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample", 23)) { ret = GLEW_NV_framebuffer_multisample; continue; } #endif #ifdef GL_NV_framebuffer_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_multisample_coverage", 32)) { ret = GLEW_NV_framebuffer_multisample_coverage; continue; } #endif #ifdef GL_NV_generate_mipmap_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"generate_mipmap_sRGB", 20)) { ret = GLEW_NV_generate_mipmap_sRGB; continue; } #endif #ifdef GL_NV_geometry_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_program4", 17)) { ret = GLEW_NV_geometry_program4; continue; } #endif #ifdef GL_NV_geometry_shader4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader4", 16)) { ret = GLEW_NV_geometry_shader4; continue; } #endif #ifdef GL_NV_geometry_shader_passthrough if (_glewStrSame3(&pos, &len, (const GLubyte*)"geometry_shader_passthrough", 27)) { ret = GLEW_NV_geometry_shader_passthrough; continue; } #endif #ifdef GL_NV_gpu_multicast if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_multicast", 13)) { ret = GLEW_NV_gpu_multicast; continue; } #endif #ifdef GL_NV_gpu_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program4", 12)) { ret = GLEW_NV_gpu_program4; continue; } #endif #ifdef GL_NV_gpu_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program5", 12)) { ret = GLEW_NV_gpu_program5; continue; } #endif #ifdef GL_NV_gpu_program5_mem_extended if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program5_mem_extended", 25)) { ret = GLEW_NV_gpu_program5_mem_extended; continue; } #endif #ifdef GL_NV_gpu_program_fp64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_program_fp64", 16)) { ret = GLEW_NV_gpu_program_fp64; continue; } #endif #ifdef GL_NV_gpu_shader5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_shader5", 11)) { ret = GLEW_NV_gpu_shader5; continue; } #endif #ifdef GL_NV_half_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"half_float", 10)) { ret = GLEW_NV_half_float; continue; } #endif #ifdef GL_NV_image_formats if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_formats", 13)) { ret = GLEW_NV_image_formats; continue; } #endif #ifdef GL_NV_instanced_arrays if (_glewStrSame3(&pos, &len, (const GLubyte*)"instanced_arrays", 16)) { ret = GLEW_NV_instanced_arrays; continue; } #endif #ifdef GL_NV_internalformat_sample_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"internalformat_sample_query", 27)) { ret = GLEW_NV_internalformat_sample_query; continue; } #endif #ifdef GL_NV_light_max_exponent if (_glewStrSame3(&pos, &len, (const GLubyte*)"light_max_exponent", 18)) { ret = GLEW_NV_light_max_exponent; continue; } #endif #ifdef GL_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { ret = GLEW_NV_multisample_coverage; continue; } #endif #ifdef GL_NV_multisample_filter_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_filter_hint", 23)) { ret = GLEW_NV_multisample_filter_hint; continue; } #endif #ifdef GL_NV_non_square_matrices if (_glewStrSame3(&pos, &len, (const GLubyte*)"non_square_matrices", 19)) { ret = GLEW_NV_non_square_matrices; continue; } #endif #ifdef GL_NV_occlusion_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_query", 15)) { ret = GLEW_NV_occlusion_query; continue; } #endif #ifdef GL_NV_pack_subimage if (_glewStrSame3(&pos, &len, (const GLubyte*)"pack_subimage", 13)) { ret = GLEW_NV_pack_subimage; continue; } #endif #ifdef GL_NV_packed_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_depth_stencil", 20)) { ret = GLEW_NV_packed_depth_stencil; continue; } #endif #ifdef GL_NV_packed_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float", 12)) { ret = GLEW_NV_packed_float; continue; } #endif #ifdef GL_NV_packed_float_linear if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_float_linear", 19)) { ret = GLEW_NV_packed_float_linear; continue; } #endif #ifdef GL_NV_parameter_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"parameter_buffer_object", 23)) { ret = GLEW_NV_parameter_buffer_object; continue; } #endif #ifdef GL_NV_parameter_buffer_object2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"parameter_buffer_object2", 24)) { ret = GLEW_NV_parameter_buffer_object2; continue; } #endif #ifdef GL_NV_path_rendering if (_glewStrSame3(&pos, &len, (const GLubyte*)"path_rendering", 14)) { ret = GLEW_NV_path_rendering; continue; } #endif #ifdef GL_NV_path_rendering_shared_edge if (_glewStrSame3(&pos, &len, (const GLubyte*)"path_rendering_shared_edge", 26)) { ret = GLEW_NV_path_rendering_shared_edge; continue; } #endif #ifdef GL_NV_pixel_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_buffer_object", 19)) { ret = GLEW_NV_pixel_buffer_object; continue; } #endif #ifdef GL_NV_pixel_data_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_data_range", 16)) { ret = GLEW_NV_pixel_data_range; continue; } #endif #ifdef GL_NV_platform_binary if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_binary", 15)) { ret = GLEW_NV_platform_binary; continue; } #endif #ifdef GL_NV_point_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_sprite", 12)) { ret = GLEW_NV_point_sprite; continue; } #endif #ifdef GL_NV_polygon_mode if (_glewStrSame3(&pos, &len, (const GLubyte*)"polygon_mode", 12)) { ret = GLEW_NV_polygon_mode; continue; } #endif #ifdef GL_NV_present_video if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13)) { ret = GLEW_NV_present_video; continue; } #endif #ifdef GL_NV_primitive_restart if (_glewStrSame3(&pos, &len, (const GLubyte*)"primitive_restart", 17)) { ret = GLEW_NV_primitive_restart; continue; } #endif #ifdef GL_NV_read_depth if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth", 10)) { ret = GLEW_NV_read_depth; continue; } #endif #ifdef GL_NV_read_depth_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_depth_stencil", 18)) { ret = GLEW_NV_read_depth_stencil; continue; } #endif #ifdef GL_NV_read_stencil if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_stencil", 12)) { ret = GLEW_NV_read_stencil; continue; } #endif #ifdef GL_NV_register_combiners if (_glewStrSame3(&pos, &len, (const GLubyte*)"register_combiners", 18)) { ret = GLEW_NV_register_combiners; continue; } #endif #ifdef GL_NV_register_combiners2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"register_combiners2", 19)) { ret = GLEW_NV_register_combiners2; continue; } #endif #ifdef GL_NV_robustness_video_memory_purge if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) { ret = GLEW_NV_robustness_video_memory_purge; continue; } #endif #ifdef GL_NV_sRGB_formats if (_glewStrSame3(&pos, &len, (const GLubyte*)"sRGB_formats", 12)) { ret = GLEW_NV_sRGB_formats; continue; } #endif #ifdef GL_NV_sample_locations if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_locations", 16)) { ret = GLEW_NV_sample_locations; continue; } #endif #ifdef GL_NV_sample_mask_override_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"sample_mask_override_coverage", 29)) { ret = GLEW_NV_sample_mask_override_coverage; continue; } #endif #ifdef GL_NV_shader_atomic_counters if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_counters", 22)) { ret = GLEW_NV_shader_atomic_counters; continue; } #endif #ifdef GL_NV_shader_atomic_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_float", 19)) { ret = GLEW_NV_shader_atomic_float; continue; } #endif #ifdef GL_NV_shader_atomic_float64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_float64", 21)) { ret = GLEW_NV_shader_atomic_float64; continue; } #endif #ifdef GL_NV_shader_atomic_fp16_vector if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_fp16_vector", 25)) { ret = GLEW_NV_shader_atomic_fp16_vector; continue; } #endif #ifdef GL_NV_shader_atomic_int64 if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_atomic_int64", 19)) { ret = GLEW_NV_shader_atomic_int64; continue; } #endif #ifdef GL_NV_shader_buffer_load if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_buffer_load", 18)) { ret = GLEW_NV_shader_buffer_load; continue; } #endif #ifdef GL_NV_shader_noperspective_interpolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_noperspective_interpolation", 34)) { ret = GLEW_NV_shader_noperspective_interpolation; continue; } #endif #ifdef GL_NV_shader_storage_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_storage_buffer_object", 28)) { ret = GLEW_NV_shader_storage_buffer_object; continue; } #endif #ifdef GL_NV_shader_thread_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_thread_group", 19)) { ret = GLEW_NV_shader_thread_group; continue; } #endif #ifdef GL_NV_shader_thread_shuffle if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_thread_shuffle", 21)) { ret = GLEW_NV_shader_thread_shuffle; continue; } #endif #ifdef GL_NV_shadow_samplers_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_array", 21)) { ret = GLEW_NV_shadow_samplers_array; continue; } #endif #ifdef GL_NV_shadow_samplers_cube if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_samplers_cube", 20)) { ret = GLEW_NV_shadow_samplers_cube; continue; } #endif #ifdef GL_NV_stereo_view_rendering if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_view_rendering", 21)) { ret = GLEW_NV_stereo_view_rendering; continue; } #endif #ifdef GL_NV_tessellation_program5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"tessellation_program5", 21)) { ret = GLEW_NV_tessellation_program5; continue; } #endif #ifdef GL_NV_texgen_emboss if (_glewStrSame3(&pos, &len, (const GLubyte*)"texgen_emboss", 13)) { ret = GLEW_NV_texgen_emboss; continue; } #endif #ifdef GL_NV_texgen_reflection if (_glewStrSame3(&pos, &len, (const GLubyte*)"texgen_reflection", 17)) { ret = GLEW_NV_texgen_reflection; continue; } #endif #ifdef GL_NV_texture_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_array", 13)) { ret = GLEW_NV_texture_array; continue; } #endif #ifdef GL_NV_texture_barrier if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_barrier", 15)) { ret = GLEW_NV_texture_barrier; continue; } #endif #ifdef GL_NV_texture_border_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) { ret = GLEW_NV_texture_border_clamp; continue; } #endif #ifdef GL_NV_texture_compression_latc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_latc", 24)) { ret = GLEW_NV_texture_compression_latc; continue; } #endif #ifdef GL_NV_texture_compression_s3tc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc", 24)) { ret = GLEW_NV_texture_compression_s3tc; continue; } #endif #ifdef GL_NV_texture_compression_s3tc_update if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_s3tc_update", 31)) { ret = GLEW_NV_texture_compression_s3tc_update; continue; } #endif #ifdef GL_NV_texture_compression_vtc if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_compression_vtc", 23)) { ret = GLEW_NV_texture_compression_vtc; continue; } #endif #ifdef GL_NV_texture_env_combine4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_env_combine4", 20)) { ret = GLEW_NV_texture_env_combine4; continue; } #endif #ifdef GL_NV_texture_expand_normal if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_expand_normal", 21)) { ret = GLEW_NV_texture_expand_normal; continue; } #endif #ifdef GL_NV_texture_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multisample", 19)) { ret = GLEW_NV_texture_multisample; continue; } #endif #ifdef GL_NV_texture_npot_2D_mipmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_npot_2D_mipmap", 22)) { ret = GLEW_NV_texture_npot_2D_mipmap; continue; } #endif #ifdef GL_NV_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle", 17)) { ret = GLEW_NV_texture_rectangle; continue; } #endif #ifdef GL_NV_texture_rectangle_compressed if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_rectangle_compressed", 28)) { ret = GLEW_NV_texture_rectangle_compressed; continue; } #endif #ifdef GL_NV_texture_shader if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader", 14)) { ret = GLEW_NV_texture_shader; continue; } #endif #ifdef GL_NV_texture_shader2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader2", 15)) { ret = GLEW_NV_texture_shader2; continue; } #endif #ifdef GL_NV_texture_shader3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_shader3", 15)) { ret = GLEW_NV_texture_shader3; continue; } #endif #ifdef GL_NV_transform_feedback if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback", 18)) { ret = GLEW_NV_transform_feedback; continue; } #endif #ifdef GL_NV_transform_feedback2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"transform_feedback2", 19)) { ret = GLEW_NV_transform_feedback2; continue; } #endif #ifdef GL_NV_uniform_buffer_unified_memory if (_glewStrSame3(&pos, &len, (const GLubyte*)"uniform_buffer_unified_memory", 29)) { ret = GLEW_NV_uniform_buffer_unified_memory; continue; } #endif #ifdef GL_NV_vdpau_interop if (_glewStrSame3(&pos, &len, (const GLubyte*)"vdpau_interop", 13)) { ret = GLEW_NV_vdpau_interop; continue; } #endif #ifdef GL_NV_vertex_array_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18)) { ret = GLEW_NV_vertex_array_range; continue; } #endif #ifdef GL_NV_vertex_array_range2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range2", 19)) { ret = GLEW_NV_vertex_array_range2; continue; } #endif #ifdef GL_NV_vertex_attrib_integer_64bit if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_attrib_integer_64bit", 27)) { ret = GLEW_NV_vertex_attrib_integer_64bit; continue; } #endif #ifdef GL_NV_vertex_buffer_unified_memory if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_buffer_unified_memory", 28)) { ret = GLEW_NV_vertex_buffer_unified_memory; continue; } #endif #ifdef GL_NV_vertex_program if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program", 14)) { ret = GLEW_NV_vertex_program; continue; } #endif #ifdef GL_NV_vertex_program1_1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program1_1", 17)) { ret = GLEW_NV_vertex_program1_1; continue; } #endif #ifdef GL_NV_vertex_program2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program2", 15)) { ret = GLEW_NV_vertex_program2; continue; } #endif #ifdef GL_NV_vertex_program2_option if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program2_option", 22)) { ret = GLEW_NV_vertex_program2_option; continue; } #endif #ifdef GL_NV_vertex_program3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program3", 15)) { ret = GLEW_NV_vertex_program3; continue; } #endif #ifdef GL_NV_vertex_program4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_program4", 15)) { ret = GLEW_NV_vertex_program4; continue; } #endif #ifdef GL_NV_video_capture if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_capture", 13)) { ret = GLEW_NV_video_capture; continue; } #endif #ifdef GL_NV_viewport_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array", 14)) { ret = GLEW_NV_viewport_array; continue; } #endif #ifdef GL_NV_viewport_array2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_array2", 15)) { ret = GLEW_NV_viewport_array2; continue; } #endif #ifdef GL_NV_viewport_swizzle if (_glewStrSame3(&pos, &len, (const GLubyte*)"viewport_swizzle", 16)) { ret = GLEW_NV_viewport_swizzle; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OES_", 4)) { #ifdef GL_OES_byte_coordinates if (_glewStrSame3(&pos, &len, (const GLubyte*)"byte_coordinates", 16)) { ret = GLEW_OES_byte_coordinates; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4)) { #ifdef GL_OML_interlace if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace", 9)) { ret = GLEW_OML_interlace; continue; } #endif #ifdef GL_OML_resample if (_glewStrSame3(&pos, &len, (const GLubyte*)"resample", 8)) { ret = GLEW_OML_resample; continue; } #endif #ifdef GL_OML_subsample if (_glewStrSame3(&pos, &len, (const GLubyte*)"subsample", 9)) { ret = GLEW_OML_subsample; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OVR_", 4)) { #ifdef GL_OVR_multiview if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview", 9)) { ret = GLEW_OVR_multiview; continue; } #endif #ifdef GL_OVR_multiview2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview2", 10)) { ret = GLEW_OVR_multiview2; continue; } #endif #ifdef GL_OVR_multiview_multisampled_render_to_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_multisampled_render_to_texture", 40)) { ret = GLEW_OVR_multiview_multisampled_render_to_texture; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"PGI_", 4)) { #ifdef GL_PGI_misc_hints if (_glewStrSame3(&pos, &len, (const GLubyte*)"misc_hints", 10)) { ret = GLEW_PGI_misc_hints; continue; } #endif #ifdef GL_PGI_vertex_hints if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_hints", 12)) { ret = GLEW_PGI_vertex_hints; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"QCOM_", 5)) { #ifdef GL_QCOM_alpha_test if (_glewStrSame3(&pos, &len, (const GLubyte*)"alpha_test", 10)) { ret = GLEW_QCOM_alpha_test; continue; } #endif #ifdef GL_QCOM_binning_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"binning_control", 15)) { ret = GLEW_QCOM_binning_control; continue; } #endif #ifdef GL_QCOM_driver_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"driver_control", 14)) { ret = GLEW_QCOM_driver_control; continue; } #endif #ifdef GL_QCOM_extended_get if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get", 12)) { ret = GLEW_QCOM_extended_get; continue; } #endif #ifdef GL_QCOM_extended_get2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"extended_get2", 13)) { ret = GLEW_QCOM_extended_get2; continue; } #endif #ifdef GL_QCOM_framebuffer_foveated if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_foveated", 20)) { ret = GLEW_QCOM_framebuffer_foveated; continue; } #endif #ifdef GL_QCOM_perfmon_global_mode if (_glewStrSame3(&pos, &len, (const GLubyte*)"perfmon_global_mode", 19)) { ret = GLEW_QCOM_perfmon_global_mode; continue; } #endif #ifdef GL_QCOM_shader_framebuffer_fetch_noncoherent if (_glewStrSame3(&pos, &len, (const GLubyte*)"shader_framebuffer_fetch_noncoherent", 36)) { ret = GLEW_QCOM_shader_framebuffer_fetch_noncoherent; continue; } #endif #ifdef GL_QCOM_tiled_rendering if (_glewStrSame3(&pos, &len, (const GLubyte*)"tiled_rendering", 15)) { ret = GLEW_QCOM_tiled_rendering; continue; } #endif #ifdef GL_QCOM_writeonly_rendering if (_glewStrSame3(&pos, &len, (const GLubyte*)"writeonly_rendering", 19)) { ret = GLEW_QCOM_writeonly_rendering; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"REGAL_", 6)) { #ifdef GL_REGAL_ES1_0_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES1_0_compatibility", 19)) { ret = GLEW_REGAL_ES1_0_compatibility; continue; } #endif #ifdef GL_REGAL_ES1_1_compatibility if (_glewStrSame3(&pos, &len, (const GLubyte*)"ES1_1_compatibility", 19)) { ret = GLEW_REGAL_ES1_1_compatibility; continue; } #endif #ifdef GL_REGAL_enable if (_glewStrSame3(&pos, &len, (const GLubyte*)"enable", 6)) { ret = GLEW_REGAL_enable; continue; } #endif #ifdef GL_REGAL_error_string if (_glewStrSame3(&pos, &len, (const GLubyte*)"error_string", 12)) { ret = GLEW_REGAL_error_string; continue; } #endif #ifdef GL_REGAL_extension_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"extension_query", 15)) { ret = GLEW_REGAL_extension_query; continue; } #endif #ifdef GL_REGAL_log if (_glewStrSame3(&pos, &len, (const GLubyte*)"log", 3)) { ret = GLEW_REGAL_log; continue; } #endif #ifdef GL_REGAL_proc_address if (_glewStrSame3(&pos, &len, (const GLubyte*)"proc_address", 12)) { ret = GLEW_REGAL_proc_address; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"REND_", 5)) { #ifdef GL_REND_screen_coordinates if (_glewStrSame3(&pos, &len, (const GLubyte*)"screen_coordinates", 18)) { ret = GLEW_REND_screen_coordinates; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"S3_", 3)) { #ifdef GL_S3_s3tc if (_glewStrSame3(&pos, &len, (const GLubyte*)"s3tc", 4)) { ret = GLEW_S3_s3tc; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIS_", 5)) { #ifdef GL_SGIS_clip_band_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"clip_band_hint", 14)) { ret = GLEW_SGIS_clip_band_hint; continue; } #endif #ifdef GL_SGIS_color_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_range", 11)) { ret = GLEW_SGIS_color_range; continue; } #endif #ifdef GL_SGIS_detail_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"detail_texture", 14)) { ret = GLEW_SGIS_detail_texture; continue; } #endif #ifdef GL_SGIS_fog_function if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_function", 12)) { ret = GLEW_SGIS_fog_function; continue; } #endif #ifdef GL_SGIS_generate_mipmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"generate_mipmap", 15)) { ret = GLEW_SGIS_generate_mipmap; continue; } #endif #ifdef GL_SGIS_line_texgen if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_texgen", 11)) { ret = GLEW_SGIS_line_texgen; continue; } #endif #ifdef GL_SGIS_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLEW_SGIS_multisample; continue; } #endif #ifdef GL_SGIS_multitexture if (_glewStrSame3(&pos, &len, (const GLubyte*)"multitexture", 12)) { ret = GLEW_SGIS_multitexture; continue; } #endif #ifdef GL_SGIS_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13)) { ret = GLEW_SGIS_pixel_texture; continue; } #endif #ifdef GL_SGIS_point_line_texgen if (_glewStrSame3(&pos, &len, (const GLubyte*)"point_line_texgen", 17)) { ret = GLEW_SGIS_point_line_texgen; continue; } #endif #ifdef GL_SGIS_shared_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_multisample", 18)) { ret = GLEW_SGIS_shared_multisample; continue; } #endif #ifdef GL_SGIS_sharpen_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"sharpen_texture", 15)) { ret = GLEW_SGIS_sharpen_texture; continue; } #endif #ifdef GL_SGIS_texture4D if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture4D", 9)) { ret = GLEW_SGIS_texture4D; continue; } #endif #ifdef GL_SGIS_texture_border_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_border_clamp", 20)) { ret = GLEW_SGIS_texture_border_clamp; continue; } #endif #ifdef GL_SGIS_texture_edge_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_edge_clamp", 18)) { ret = GLEW_SGIS_texture_edge_clamp; continue; } #endif #ifdef GL_SGIS_texture_filter4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_filter4", 15)) { ret = GLEW_SGIS_texture_filter4; continue; } #endif #ifdef GL_SGIS_texture_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lod", 11)) { ret = GLEW_SGIS_texture_lod; continue; } #endif #ifdef GL_SGIS_texture_select if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_select", 14)) { ret = GLEW_SGIS_texture_select; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIX_", 5)) { #ifdef GL_SGIX_async if (_glewStrSame3(&pos, &len, (const GLubyte*)"async", 5)) { ret = GLEW_SGIX_async; continue; } #endif #ifdef GL_SGIX_async_histogram if (_glewStrSame3(&pos, &len, (const GLubyte*)"async_histogram", 15)) { ret = GLEW_SGIX_async_histogram; continue; } #endif #ifdef GL_SGIX_async_pixel if (_glewStrSame3(&pos, &len, (const GLubyte*)"async_pixel", 11)) { ret = GLEW_SGIX_async_pixel; continue; } #endif #ifdef GL_SGIX_bali_g_instruments if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_g_instruments", 18)) { ret = GLEW_SGIX_bali_g_instruments; continue; } #endif #ifdef GL_SGIX_bali_r_instruments if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_r_instruments", 18)) { ret = GLEW_SGIX_bali_r_instruments; continue; } #endif #ifdef GL_SGIX_bali_timer_instruments if (_glewStrSame3(&pos, &len, (const GLubyte*)"bali_timer_instruments", 22)) { ret = GLEW_SGIX_bali_timer_instruments; continue; } #endif #ifdef GL_SGIX_blend_alpha_minmax if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_alpha_minmax", 18)) { ret = GLEW_SGIX_blend_alpha_minmax; continue; } #endif #ifdef GL_SGIX_blend_cadd if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cadd", 10)) { ret = GLEW_SGIX_blend_cadd; continue; } #endif #ifdef GL_SGIX_blend_cmultiply if (_glewStrSame3(&pos, &len, (const GLubyte*)"blend_cmultiply", 15)) { ret = GLEW_SGIX_blend_cmultiply; continue; } #endif #ifdef GL_SGIX_calligraphic_fragment if (_glewStrSame3(&pos, &len, (const GLubyte*)"calligraphic_fragment", 21)) { ret = GLEW_SGIX_calligraphic_fragment; continue; } #endif #ifdef GL_SGIX_clipmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"clipmap", 7)) { ret = GLEW_SGIX_clipmap; continue; } #endif #ifdef GL_SGIX_color_matrix_accuracy if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_matrix_accuracy", 21)) { ret = GLEW_SGIX_color_matrix_accuracy; continue; } #endif #ifdef GL_SGIX_color_table_index_mode if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_table_index_mode", 22)) { ret = GLEW_SGIX_color_table_index_mode; continue; } #endif #ifdef GL_SGIX_complex_polar if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_polar", 13)) { ret = GLEW_SGIX_complex_polar; continue; } #endif #ifdef GL_SGIX_convolution_accuracy if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_accuracy", 20)) { ret = GLEW_SGIX_convolution_accuracy; continue; } #endif #ifdef GL_SGIX_cube_map if (_glewStrSame3(&pos, &len, (const GLubyte*)"cube_map", 8)) { ret = GLEW_SGIX_cube_map; continue; } #endif #ifdef GL_SGIX_cylinder_texgen if (_glewStrSame3(&pos, &len, (const GLubyte*)"cylinder_texgen", 15)) { ret = GLEW_SGIX_cylinder_texgen; continue; } #endif #ifdef GL_SGIX_datapipe if (_glewStrSame3(&pos, &len, (const GLubyte*)"datapipe", 8)) { ret = GLEW_SGIX_datapipe; continue; } #endif #ifdef GL_SGIX_decimation if (_glewStrSame3(&pos, &len, (const GLubyte*)"decimation", 10)) { ret = GLEW_SGIX_decimation; continue; } #endif #ifdef GL_SGIX_depth_pass_instrument if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_pass_instrument", 21)) { ret = GLEW_SGIX_depth_pass_instrument; continue; } #endif #ifdef GL_SGIX_depth_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_texture", 13)) { ret = GLEW_SGIX_depth_texture; continue; } #endif #ifdef GL_SGIX_dvc if (_glewStrSame3(&pos, &len, (const GLubyte*)"dvc", 3)) { ret = GLEW_SGIX_dvc; continue; } #endif #ifdef GL_SGIX_flush_raster if (_glewStrSame3(&pos, &len, (const GLubyte*)"flush_raster", 12)) { ret = GLEW_SGIX_flush_raster; continue; } #endif #ifdef GL_SGIX_fog_blend if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_blend", 9)) { ret = GLEW_SGIX_fog_blend; continue; } #endif #ifdef GL_SGIX_fog_factor_to_alpha if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_factor_to_alpha", 19)) { ret = GLEW_SGIX_fog_factor_to_alpha; continue; } #endif #ifdef GL_SGIX_fog_layers if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_layers", 10)) { ret = GLEW_SGIX_fog_layers; continue; } #endif #ifdef GL_SGIX_fog_offset if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_offset", 10)) { ret = GLEW_SGIX_fog_offset; continue; } #endif #ifdef GL_SGIX_fog_patchy if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_patchy", 10)) { ret = GLEW_SGIX_fog_patchy; continue; } #endif #ifdef GL_SGIX_fog_scale if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_scale", 9)) { ret = GLEW_SGIX_fog_scale; continue; } #endif #ifdef GL_SGIX_fog_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"fog_texture", 11)) { ret = GLEW_SGIX_fog_texture; continue; } #endif #ifdef GL_SGIX_fragment_lighting_space if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_lighting_space", 23)) { ret = GLEW_SGIX_fragment_lighting_space; continue; } #endif #ifdef GL_SGIX_fragment_specular_lighting if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragment_specular_lighting", 26)) { ret = GLEW_SGIX_fragment_specular_lighting; continue; } #endif #ifdef GL_SGIX_fragments_instrument if (_glewStrSame3(&pos, &len, (const GLubyte*)"fragments_instrument", 20)) { ret = GLEW_SGIX_fragments_instrument; continue; } #endif #ifdef GL_SGIX_framezoom if (_glewStrSame3(&pos, &len, (const GLubyte*)"framezoom", 9)) { ret = GLEW_SGIX_framezoom; continue; } #endif #ifdef GL_SGIX_icc_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"icc_texture", 11)) { ret = GLEW_SGIX_icc_texture; continue; } #endif #ifdef GL_SGIX_igloo_interface if (_glewStrSame3(&pos, &len, (const GLubyte*)"igloo_interface", 15)) { ret = GLEW_SGIX_igloo_interface; continue; } #endif #ifdef GL_SGIX_image_compression if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_compression", 17)) { ret = GLEW_SGIX_image_compression; continue; } #endif #ifdef GL_SGIX_impact_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"impact_pixel_texture", 20)) { ret = GLEW_SGIX_impact_pixel_texture; continue; } #endif #ifdef GL_SGIX_instrument_error if (_glewStrSame3(&pos, &len, (const GLubyte*)"instrument_error", 16)) { ret = GLEW_SGIX_instrument_error; continue; } #endif #ifdef GL_SGIX_interlace if (_glewStrSame3(&pos, &len, (const GLubyte*)"interlace", 9)) { ret = GLEW_SGIX_interlace; continue; } #endif #ifdef GL_SGIX_ir_instrument1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"ir_instrument1", 14)) { ret = GLEW_SGIX_ir_instrument1; continue; } #endif #ifdef GL_SGIX_line_quality_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"line_quality_hint", 17)) { ret = GLEW_SGIX_line_quality_hint; continue; } #endif #ifdef GL_SGIX_list_priority if (_glewStrSame3(&pos, &len, (const GLubyte*)"list_priority", 13)) { ret = GLEW_SGIX_list_priority; continue; } #endif #ifdef GL_SGIX_mpeg1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg1", 5)) { ret = GLEW_SGIX_mpeg1; continue; } #endif #ifdef GL_SGIX_mpeg2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"mpeg2", 5)) { ret = GLEW_SGIX_mpeg2; continue; } #endif #ifdef GL_SGIX_nonlinear_lighting_pervertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"nonlinear_lighting_pervertex", 28)) { ret = GLEW_SGIX_nonlinear_lighting_pervertex; continue; } #endif #ifdef GL_SGIX_nurbs_eval if (_glewStrSame3(&pos, &len, (const GLubyte*)"nurbs_eval", 10)) { ret = GLEW_SGIX_nurbs_eval; continue; } #endif #ifdef GL_SGIX_occlusion_instrument if (_glewStrSame3(&pos, &len, (const GLubyte*)"occlusion_instrument", 20)) { ret = GLEW_SGIX_occlusion_instrument; continue; } #endif #ifdef GL_SGIX_packed_6bytes if (_glewStrSame3(&pos, &len, (const GLubyte*)"packed_6bytes", 13)) { ret = GLEW_SGIX_packed_6bytes; continue; } #endif #ifdef GL_SGIX_pixel_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture", 13)) { ret = GLEW_SGIX_pixel_texture; continue; } #endif #ifdef GL_SGIX_pixel_texture_bits if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture_bits", 18)) { ret = GLEW_SGIX_pixel_texture_bits; continue; } #endif #ifdef GL_SGIX_pixel_texture_lod if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_texture_lod", 17)) { ret = GLEW_SGIX_pixel_texture_lod; continue; } #endif #ifdef GL_SGIX_pixel_tiles if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_tiles", 11)) { ret = GLEW_SGIX_pixel_tiles; continue; } #endif #ifdef GL_SGIX_polynomial_ffd if (_glewStrSame3(&pos, &len, (const GLubyte*)"polynomial_ffd", 14)) { ret = GLEW_SGIX_polynomial_ffd; continue; } #endif #ifdef GL_SGIX_quad_mesh if (_glewStrSame3(&pos, &len, (const GLubyte*)"quad_mesh", 9)) { ret = GLEW_SGIX_quad_mesh; continue; } #endif #ifdef GL_SGIX_reference_plane if (_glewStrSame3(&pos, &len, (const GLubyte*)"reference_plane", 15)) { ret = GLEW_SGIX_reference_plane; continue; } #endif #ifdef GL_SGIX_resample if (_glewStrSame3(&pos, &len, (const GLubyte*)"resample", 8)) { ret = GLEW_SGIX_resample; continue; } #endif #ifdef GL_SGIX_scalebias_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"scalebias_hint", 14)) { ret = GLEW_SGIX_scalebias_hint; continue; } #endif #ifdef GL_SGIX_shadow if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow", 6)) { ret = GLEW_SGIX_shadow; continue; } #endif #ifdef GL_SGIX_shadow_ambient if (_glewStrSame3(&pos, &len, (const GLubyte*)"shadow_ambient", 14)) { ret = GLEW_SGIX_shadow_ambient; continue; } #endif #ifdef GL_SGIX_slim if (_glewStrSame3(&pos, &len, (const GLubyte*)"slim", 4)) { ret = GLEW_SGIX_slim; continue; } #endif #ifdef GL_SGIX_spotlight_cutoff if (_glewStrSame3(&pos, &len, (const GLubyte*)"spotlight_cutoff", 16)) { ret = GLEW_SGIX_spotlight_cutoff; continue; } #endif #ifdef GL_SGIX_sprite if (_glewStrSame3(&pos, &len, (const GLubyte*)"sprite", 6)) { ret = GLEW_SGIX_sprite; continue; } #endif #ifdef GL_SGIX_subdiv_patch if (_glewStrSame3(&pos, &len, (const GLubyte*)"subdiv_patch", 12)) { ret = GLEW_SGIX_subdiv_patch; continue; } #endif #ifdef GL_SGIX_subsample if (_glewStrSame3(&pos, &len, (const GLubyte*)"subsample", 9)) { ret = GLEW_SGIX_subsample; continue; } #endif #ifdef GL_SGIX_tag_sample_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"tag_sample_buffer", 17)) { ret = GLEW_SGIX_tag_sample_buffer; continue; } #endif #ifdef GL_SGIX_texture_add_env if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_add_env", 15)) { ret = GLEW_SGIX_texture_add_env; continue; } #endif #ifdef GL_SGIX_texture_coordinate_clamp if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_coordinate_clamp", 24)) { ret = GLEW_SGIX_texture_coordinate_clamp; continue; } #endif #ifdef GL_SGIX_texture_lod_bias if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_lod_bias", 16)) { ret = GLEW_SGIX_texture_lod_bias; continue; } #endif #ifdef GL_SGIX_texture_mipmap_anisotropic if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_mipmap_anisotropic", 26)) { ret = GLEW_SGIX_texture_mipmap_anisotropic; continue; } #endif #ifdef GL_SGIX_texture_multi_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_multi_buffer", 20)) { ret = GLEW_SGIX_texture_multi_buffer; continue; } #endif #ifdef GL_SGIX_texture_phase if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_phase", 13)) { ret = GLEW_SGIX_texture_phase; continue; } #endif #ifdef GL_SGIX_texture_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_range", 13)) { ret = GLEW_SGIX_texture_range; continue; } #endif #ifdef GL_SGIX_texture_scale_bias if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_scale_bias", 18)) { ret = GLEW_SGIX_texture_scale_bias; continue; } #endif #ifdef GL_SGIX_texture_supersample if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_supersample", 19)) { ret = GLEW_SGIX_texture_supersample; continue; } #endif #ifdef GL_SGIX_vector_ops if (_glewStrSame3(&pos, &len, (const GLubyte*)"vector_ops", 10)) { ret = GLEW_SGIX_vector_ops; continue; } #endif #ifdef GL_SGIX_vertex_array_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_object", 19)) { ret = GLEW_SGIX_vertex_array_object; continue; } #endif #ifdef GL_SGIX_vertex_preclip if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_preclip", 14)) { ret = GLEW_SGIX_vertex_preclip; continue; } #endif #ifdef GL_SGIX_vertex_preclip_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_preclip_hint", 19)) { ret = GLEW_SGIX_vertex_preclip_hint; continue; } #endif #ifdef GL_SGIX_ycrcb if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcb", 5)) { ret = GLEW_SGIX_ycrcb; continue; } #endif #ifdef GL_SGIX_ycrcb_subsample if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcb_subsample", 15)) { ret = GLEW_SGIX_ycrcb_subsample; continue; } #endif #ifdef GL_SGIX_ycrcba if (_glewStrSame3(&pos, &len, (const GLubyte*)"ycrcba", 6)) { ret = GLEW_SGIX_ycrcba; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGI_", 4)) { #ifdef GL_SGI_color_matrix if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_matrix", 12)) { ret = GLEW_SGI_color_matrix; continue; } #endif #ifdef GL_SGI_color_table if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_table", 11)) { ret = GLEW_SGI_color_table; continue; } #endif #ifdef GL_SGI_complex if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex", 7)) { ret = GLEW_SGI_complex; continue; } #endif #ifdef GL_SGI_complex_type if (_glewStrSame3(&pos, &len, (const GLubyte*)"complex_type", 12)) { ret = GLEW_SGI_complex_type; continue; } #endif #ifdef GL_SGI_fft if (_glewStrSame3(&pos, &len, (const GLubyte*)"fft", 3)) { ret = GLEW_SGI_fft; continue; } #endif #ifdef GL_SGI_texture_color_table if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_color_table", 19)) { ret = GLEW_SGI_texture_color_table; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SUNX_", 5)) { #ifdef GL_SUNX_constant_data if (_glewStrSame3(&pos, &len, (const GLubyte*)"constant_data", 13)) { ret = GLEW_SUNX_constant_data; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SUN_", 4)) { #ifdef GL_SUN_convolution_border_modes if (_glewStrSame3(&pos, &len, (const GLubyte*)"convolution_border_modes", 24)) { ret = GLEW_SUN_convolution_border_modes; continue; } #endif #ifdef GL_SUN_global_alpha if (_glewStrSame3(&pos, &len, (const GLubyte*)"global_alpha", 12)) { ret = GLEW_SUN_global_alpha; continue; } #endif #ifdef GL_SUN_mesh_array if (_glewStrSame3(&pos, &len, (const GLubyte*)"mesh_array", 10)) { ret = GLEW_SUN_mesh_array; continue; } #endif #ifdef GL_SUN_read_video_pixels if (_glewStrSame3(&pos, &len, (const GLubyte*)"read_video_pixels", 17)) { ret = GLEW_SUN_read_video_pixels; continue; } #endif #ifdef GL_SUN_slice_accum if (_glewStrSame3(&pos, &len, (const GLubyte*)"slice_accum", 11)) { ret = GLEW_SUN_slice_accum; continue; } #endif #ifdef GL_SUN_triangle_list if (_glewStrSame3(&pos, &len, (const GLubyte*)"triangle_list", 13)) { ret = GLEW_SUN_triangle_list; continue; } #endif #ifdef GL_SUN_vertex if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex", 6)) { ret = GLEW_SUN_vertex; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"WIN_", 4)) { #ifdef GL_WIN_phong_shading if (_glewStrSame3(&pos, &len, (const GLubyte*)"phong_shading", 13)) { ret = GLEW_WIN_phong_shading; continue; } #endif #ifdef GL_WIN_scene_markerXXX if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_markerXXX", 15)) { ret = GLEW_WIN_scene_markerXXX; continue; } #endif #ifdef GL_WIN_specular_fog if (_glewStrSame3(&pos, &len, (const GLubyte*)"specular_fog", 12)) { ret = GLEW_WIN_specular_fog; continue; } #endif #ifdef GL_WIN_swap_hint if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_hint", 9)) { ret = GLEW_WIN_swap_hint; continue; } #endif } } ret = (len == 0); } return ret; } #if defined(_WIN32) && !defined(GLEW_EGL) && !defined(GLEW_OSMESA) GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); GLboolean ret = GL_TRUE; while (ret && len > 0) { if (_glewStrSame1(&pos, &len, (const GLubyte*)"WGL_", 4)) { if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5)) { #ifdef WGL_3DFX_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = WGLEW_3DFX_multisample; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DL_", 4)) { #ifdef WGL_3DL_stereo_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_control", 14)) { ret = WGLEW_3DL_stereo_control; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"AMD_", 4)) { #ifdef WGL_AMD_gpu_association if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_association", 15)) { ret = WGLEW_AMD_gpu_association; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARB_", 4)) { #ifdef WGL_ARB_buffer_region if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_region", 13)) { ret = WGLEW_ARB_buffer_region; continue; } #endif #ifdef WGL_ARB_context_flush_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21)) { ret = WGLEW_ARB_context_flush_control; continue; } #endif #ifdef WGL_ARB_create_context if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14)) { ret = WGLEW_ARB_create_context; continue; } #endif #ifdef WGL_ARB_create_context_no_error if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) { ret = WGLEW_ARB_create_context_no_error; continue; } #endif #ifdef WGL_ARB_create_context_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22)) { ret = WGLEW_ARB_create_context_profile; continue; } #endif #ifdef WGL_ARB_create_context_robustness if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25)) { ret = WGLEW_ARB_create_context_robustness; continue; } #endif #ifdef WGL_ARB_extensions_string if (_glewStrSame3(&pos, &len, (const GLubyte*)"extensions_string", 17)) { ret = WGLEW_ARB_extensions_string; continue; } #endif #ifdef WGL_ARB_framebuffer_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16)) { ret = WGLEW_ARB_framebuffer_sRGB; continue; } #endif #ifdef WGL_ARB_make_current_read if (_glewStrSame3(&pos, &len, (const GLubyte*)"make_current_read", 17)) { ret = WGLEW_ARB_make_current_read; continue; } #endif #ifdef WGL_ARB_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = WGLEW_ARB_multisample; continue; } #endif #ifdef WGL_ARB_pbuffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"pbuffer", 7)) { ret = WGLEW_ARB_pbuffer; continue; } #endif #ifdef WGL_ARB_pixel_format if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format", 12)) { ret = WGLEW_ARB_pixel_format; continue; } #endif #ifdef WGL_ARB_pixel_format_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18)) { ret = WGLEW_ARB_pixel_format_float; continue; } #endif #ifdef WGL_ARB_render_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture", 14)) { ret = WGLEW_ARB_render_texture; continue; } #endif #ifdef WGL_ARB_robustness_application_isolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_application_isolation", 32)) { ret = WGLEW_ARB_robustness_application_isolation; continue; } #endif #ifdef WGL_ARB_robustness_share_group_isolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_share_group_isolation", 32)) { ret = WGLEW_ARB_robustness_share_group_isolation; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATI_", 4)) { #ifdef WGL_ATI_pixel_format_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18)) { ret = WGLEW_ATI_pixel_format_float; continue; } #endif #ifdef WGL_ATI_render_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture_rectangle", 24)) { ret = WGLEW_ATI_render_texture_rectangle; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) { #ifdef WGL_EXT_colorspace if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorspace", 10)) { ret = WGLEW_EXT_colorspace; continue; } #endif #ifdef WGL_EXT_create_context_es2_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26)) { ret = WGLEW_EXT_create_context_es2_profile; continue; } #endif #ifdef WGL_EXT_create_context_es_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es_profile", 25)) { ret = WGLEW_EXT_create_context_es_profile; continue; } #endif #ifdef WGL_EXT_depth_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_float", 11)) { ret = WGLEW_EXT_depth_float; continue; } #endif #ifdef WGL_EXT_display_color_table if (_glewStrSame3(&pos, &len, (const GLubyte*)"display_color_table", 19)) { ret = WGLEW_EXT_display_color_table; continue; } #endif #ifdef WGL_EXT_extensions_string if (_glewStrSame3(&pos, &len, (const GLubyte*)"extensions_string", 17)) { ret = WGLEW_EXT_extensions_string; continue; } #endif #ifdef WGL_EXT_framebuffer_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16)) { ret = WGLEW_EXT_framebuffer_sRGB; continue; } #endif #ifdef WGL_EXT_make_current_read if (_glewStrSame3(&pos, &len, (const GLubyte*)"make_current_read", 17)) { ret = WGLEW_EXT_make_current_read; continue; } #endif #ifdef WGL_EXT_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = WGLEW_EXT_multisample; continue; } #endif #ifdef WGL_EXT_pbuffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"pbuffer", 7)) { ret = WGLEW_EXT_pbuffer; continue; } #endif #ifdef WGL_EXT_pixel_format if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format", 12)) { ret = WGLEW_EXT_pixel_format; continue; } #endif #ifdef WGL_EXT_pixel_format_packed_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_packed_float", 25)) { ret = WGLEW_EXT_pixel_format_packed_float; continue; } #endif #ifdef WGL_EXT_swap_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12)) { ret = WGLEW_EXT_swap_control; continue; } #endif #ifdef WGL_EXT_swap_control_tear if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control_tear", 17)) { ret = WGLEW_EXT_swap_control_tear; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"I3D_", 4)) { #ifdef WGL_I3D_digital_video_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"digital_video_control", 21)) { ret = WGLEW_I3D_digital_video_control; continue; } #endif #ifdef WGL_I3D_gamma if (_glewStrSame3(&pos, &len, (const GLubyte*)"gamma", 5)) { ret = WGLEW_I3D_gamma; continue; } #endif #ifdef WGL_I3D_genlock if (_glewStrSame3(&pos, &len, (const GLubyte*)"genlock", 7)) { ret = WGLEW_I3D_genlock; continue; } #endif #ifdef WGL_I3D_image_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_buffer", 12)) { ret = WGLEW_I3D_image_buffer; continue; } #endif #ifdef WGL_I3D_swap_frame_lock if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_frame_lock", 15)) { ret = WGLEW_I3D_swap_frame_lock; continue; } #endif #ifdef WGL_I3D_swap_frame_usage if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_frame_usage", 16)) { ret = WGLEW_I3D_swap_frame_usage; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) { #ifdef WGL_NV_DX_interop if (_glewStrSame3(&pos, &len, (const GLubyte*)"DX_interop", 10)) { ret = WGLEW_NV_DX_interop; continue; } #endif #ifdef WGL_NV_DX_interop2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"DX_interop2", 11)) { ret = WGLEW_NV_DX_interop2; continue; } #endif #ifdef WGL_NV_copy_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) { ret = WGLEW_NV_copy_image; continue; } #endif #ifdef WGL_NV_delay_before_swap if (_glewStrSame3(&pos, &len, (const GLubyte*)"delay_before_swap", 17)) { ret = WGLEW_NV_delay_before_swap; continue; } #endif #ifdef WGL_NV_float_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_buffer", 12)) { ret = WGLEW_NV_float_buffer; continue; } #endif #ifdef WGL_NV_gpu_affinity if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_affinity", 12)) { ret = WGLEW_NV_gpu_affinity; continue; } #endif #ifdef WGL_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { ret = WGLEW_NV_multisample_coverage; continue; } #endif #ifdef WGL_NV_present_video if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13)) { ret = WGLEW_NV_present_video; continue; } #endif #ifdef WGL_NV_render_depth_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_depth_texture", 20)) { ret = WGLEW_NV_render_depth_texture; continue; } #endif #ifdef WGL_NV_render_texture_rectangle if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture_rectangle", 24)) { ret = WGLEW_NV_render_texture_rectangle; continue; } #endif #ifdef WGL_NV_swap_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10)) { ret = WGLEW_NV_swap_group; continue; } #endif #ifdef WGL_NV_vertex_array_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18)) { ret = WGLEW_NV_vertex_array_range; continue; } #endif #ifdef WGL_NV_video_capture if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_capture", 13)) { ret = WGLEW_NV_video_capture; continue; } #endif #ifdef WGL_NV_video_output if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_output", 12)) { ret = WGLEW_NV_video_output; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4)) { #ifdef WGL_OML_sync_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_control", 12)) { ret = WGLEW_OML_sync_control; continue; } #endif } } ret = (len == 0); } return ret; } #elif !defined(GLEW_OSMESA) && !defined(GLEW_EGL) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) GLboolean glxewIsSupported (const char* name) { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); GLboolean ret = GL_TRUE; while (ret && len > 0) { if(_glewStrSame1(&pos, &len, (const GLubyte*)"GLX_", 4)) { if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8)) { #ifdef GLX_VERSION_1_2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3)) { ret = GLXEW_VERSION_1_2; continue; } #endif #ifdef GLX_VERSION_1_3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3)) { ret = GLXEW_VERSION_1_3; continue; } #endif #ifdef GLX_VERSION_1_4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3)) { ret = GLXEW_VERSION_1_4; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"3DFX_", 5)) { #ifdef GLX_3DFX_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLXEW_3DFX_multisample; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"AMD_", 4)) { #ifdef GLX_AMD_gpu_association if (_glewStrSame3(&pos, &len, (const GLubyte*)"gpu_association", 15)) { ret = GLXEW_AMD_gpu_association; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARB_", 4)) { #ifdef GLX_ARB_context_flush_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21)) { ret = GLXEW_ARB_context_flush_control; continue; } #endif #ifdef GLX_ARB_create_context if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14)) { ret = GLXEW_ARB_create_context; continue; } #endif #ifdef GLX_ARB_create_context_no_error if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) { ret = GLXEW_ARB_create_context_no_error; continue; } #endif #ifdef GLX_ARB_create_context_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_profile", 22)) { ret = GLXEW_ARB_create_context_profile; continue; } #endif #ifdef GLX_ARB_create_context_robustness if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25)) { ret = GLXEW_ARB_create_context_robustness; continue; } #endif #ifdef GLX_ARB_fbconfig_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbconfig_float", 14)) { ret = GLXEW_ARB_fbconfig_float; continue; } #endif #ifdef GLX_ARB_framebuffer_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16)) { ret = GLXEW_ARB_framebuffer_sRGB; continue; } #endif #ifdef GLX_ARB_get_proc_address if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_proc_address", 16)) { ret = GLXEW_ARB_get_proc_address; continue; } #endif #ifdef GLX_ARB_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLXEW_ARB_multisample; continue; } #endif #ifdef GLX_ARB_robustness_application_isolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_application_isolation", 32)) { ret = GLXEW_ARB_robustness_application_isolation; continue; } #endif #ifdef GLX_ARB_robustness_share_group_isolation if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_share_group_isolation", 32)) { ret = GLXEW_ARB_robustness_share_group_isolation; continue; } #endif #ifdef GLX_ARB_vertex_buffer_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_buffer_object", 20)) { ret = GLXEW_ARB_vertex_buffer_object; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ATI_", 4)) { #ifdef GLX_ATI_pixel_format_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18)) { ret = GLXEW_ATI_pixel_format_float; continue; } #endif #ifdef GLX_ATI_render_texture if (_glewStrSame3(&pos, &len, (const GLubyte*)"render_texture", 14)) { ret = GLXEW_ATI_render_texture; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) { #ifdef GLX_EXT_buffer_age if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_age", 10)) { ret = GLXEW_EXT_buffer_age; continue; } #endif #ifdef GLX_EXT_create_context_es2_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es2_profile", 26)) { ret = GLXEW_EXT_create_context_es2_profile; continue; } #endif #ifdef GLX_EXT_create_context_es_profile if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_es_profile", 25)) { ret = GLXEW_EXT_create_context_es_profile; continue; } #endif #ifdef GLX_EXT_fbconfig_packed_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbconfig_packed_float", 21)) { ret = GLXEW_EXT_fbconfig_packed_float; continue; } #endif #ifdef GLX_EXT_framebuffer_sRGB if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_sRGB", 16)) { ret = GLXEW_EXT_framebuffer_sRGB; continue; } #endif #ifdef GLX_EXT_import_context if (_glewStrSame3(&pos, &len, (const GLubyte*)"import_context", 14)) { ret = GLXEW_EXT_import_context; continue; } #endif #ifdef GLX_EXT_libglvnd if (_glewStrSame3(&pos, &len, (const GLubyte*)"libglvnd", 8)) { ret = GLXEW_EXT_libglvnd; continue; } #endif #ifdef GLX_EXT_scene_marker if (_glewStrSame3(&pos, &len, (const GLubyte*)"scene_marker", 12)) { ret = GLXEW_EXT_scene_marker; continue; } #endif #ifdef GLX_EXT_stereo_tree if (_glewStrSame3(&pos, &len, (const GLubyte*)"stereo_tree", 11)) { ret = GLXEW_EXT_stereo_tree; continue; } #endif #ifdef GLX_EXT_swap_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12)) { ret = GLXEW_EXT_swap_control; continue; } #endif #ifdef GLX_EXT_swap_control_tear if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control_tear", 17)) { ret = GLXEW_EXT_swap_control_tear; continue; } #endif #ifdef GLX_EXT_texture_from_pixmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_from_pixmap", 19)) { ret = GLXEW_EXT_texture_from_pixmap; continue; } #endif #ifdef GLX_EXT_visual_info if (_glewStrSame3(&pos, &len, (const GLubyte*)"visual_info", 11)) { ret = GLXEW_EXT_visual_info; continue; } #endif #ifdef GLX_EXT_visual_rating if (_glewStrSame3(&pos, &len, (const GLubyte*)"visual_rating", 13)) { ret = GLXEW_EXT_visual_rating; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"INTEL_", 6)) { #ifdef GLX_INTEL_swap_event if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_event", 10)) { ret = GLXEW_INTEL_swap_event; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) { #ifdef GLX_MESA_agp_offset if (_glewStrSame3(&pos, &len, (const GLubyte*)"agp_offset", 10)) { ret = GLXEW_MESA_agp_offset; continue; } #endif #ifdef GLX_MESA_copy_sub_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_sub_buffer", 15)) { ret = GLXEW_MESA_copy_sub_buffer; continue; } #endif #ifdef GLX_MESA_pixmap_colormap if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixmap_colormap", 15)) { ret = GLXEW_MESA_pixmap_colormap; continue; } #endif #ifdef GLX_MESA_query_renderer if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_renderer", 14)) { ret = GLXEW_MESA_query_renderer; continue; } #endif #ifdef GLX_MESA_release_buffers if (_glewStrSame3(&pos, &len, (const GLubyte*)"release_buffers", 15)) { ret = GLXEW_MESA_release_buffers; continue; } #endif #ifdef GLX_MESA_set_3dfx_mode if (_glewStrSame3(&pos, &len, (const GLubyte*)"set_3dfx_mode", 13)) { ret = GLXEW_MESA_set_3dfx_mode; continue; } #endif #ifdef GLX_MESA_swap_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12)) { ret = GLXEW_MESA_swap_control; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) { #ifdef GLX_NV_copy_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_buffer", 11)) { ret = GLXEW_NV_copy_buffer; continue; } #endif #ifdef GLX_NV_copy_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"copy_image", 10)) { ret = GLXEW_NV_copy_image; continue; } #endif #ifdef GLX_NV_delay_before_swap if (_glewStrSame3(&pos, &len, (const GLubyte*)"delay_before_swap", 17)) { ret = GLXEW_NV_delay_before_swap; continue; } #endif #ifdef GLX_NV_float_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"float_buffer", 12)) { ret = GLXEW_NV_float_buffer; continue; } #endif #ifdef GLX_NV_multisample_coverage if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample_coverage", 20)) { ret = GLXEW_NV_multisample_coverage; continue; } #endif #ifdef GLX_NV_present_video if (_glewStrSame3(&pos, &len, (const GLubyte*)"present_video", 13)) { ret = GLXEW_NV_present_video; continue; } #endif #ifdef GLX_NV_robustness_video_memory_purge if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) { ret = GLXEW_NV_robustness_video_memory_purge; continue; } #endif #ifdef GLX_NV_swap_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10)) { ret = GLXEW_NV_swap_group; continue; } #endif #ifdef GLX_NV_vertex_array_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"vertex_array_range", 18)) { ret = GLXEW_NV_vertex_array_range; continue; } #endif #ifdef GLX_NV_video_capture if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_capture", 13)) { ret = GLXEW_NV_video_capture; continue; } #endif #ifdef GLX_NV_video_out if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_out", 9)) { ret = GLXEW_NV_video_out; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"OML_", 4)) { #ifdef GLX_OML_swap_method if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_method", 11)) { ret = GLXEW_OML_swap_method; continue; } #endif #ifdef GLX_OML_sync_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync_control", 12)) { ret = GLXEW_OML_sync_control; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIS_", 5)) { #ifdef GLX_SGIS_blended_overlay if (_glewStrSame3(&pos, &len, (const GLubyte*)"blended_overlay", 15)) { ret = GLXEW_SGIS_blended_overlay; continue; } #endif #ifdef GLX_SGIS_color_range if (_glewStrSame3(&pos, &len, (const GLubyte*)"color_range", 11)) { ret = GLXEW_SGIS_color_range; continue; } #endif #ifdef GLX_SGIS_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"multisample", 11)) { ret = GLXEW_SGIS_multisample; continue; } #endif #ifdef GLX_SGIS_shared_multisample if (_glewStrSame3(&pos, &len, (const GLubyte*)"shared_multisample", 18)) { ret = GLXEW_SGIS_shared_multisample; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGIX_", 5)) { #ifdef GLX_SGIX_fbconfig if (_glewStrSame3(&pos, &len, (const GLubyte*)"fbconfig", 8)) { ret = GLXEW_SGIX_fbconfig; continue; } #endif #ifdef GLX_SGIX_hyperpipe if (_glewStrSame3(&pos, &len, (const GLubyte*)"hyperpipe", 9)) { ret = GLXEW_SGIX_hyperpipe; continue; } #endif #ifdef GLX_SGIX_pbuffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"pbuffer", 7)) { ret = GLXEW_SGIX_pbuffer; continue; } #endif #ifdef GLX_SGIX_swap_barrier if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_barrier", 12)) { ret = GLXEW_SGIX_swap_barrier; continue; } #endif #ifdef GLX_SGIX_swap_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_group", 10)) { ret = GLXEW_SGIX_swap_group; continue; } #endif #ifdef GLX_SGIX_video_resize if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_resize", 12)) { ret = GLXEW_SGIX_video_resize; continue; } #endif #ifdef GLX_SGIX_visual_select_group if (_glewStrSame3(&pos, &len, (const GLubyte*)"visual_select_group", 19)) { ret = GLXEW_SGIX_visual_select_group; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SGI_", 4)) { #ifdef GLX_SGI_cushion if (_glewStrSame3(&pos, &len, (const GLubyte*)"cushion", 7)) { ret = GLXEW_SGI_cushion; continue; } #endif #ifdef GLX_SGI_make_current_read if (_glewStrSame3(&pos, &len, (const GLubyte*)"make_current_read", 17)) { ret = GLXEW_SGI_make_current_read; continue; } #endif #ifdef GLX_SGI_swap_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_control", 12)) { ret = GLXEW_SGI_swap_control; continue; } #endif #ifdef GLX_SGI_video_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_sync", 10)) { ret = GLXEW_SGI_video_sync; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"SUN_", 4)) { #ifdef GLX_SUN_get_transparent_index if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_transparent_index", 21)) { ret = GLXEW_SUN_get_transparent_index; continue; } #endif #ifdef GLX_SUN_video_resize if (_glewStrSame3(&pos, &len, (const GLubyte*)"video_resize", 12)) { ret = GLXEW_SUN_video_resize; continue; } #endif } } ret = (len == 0); } return ret; } #elif defined(GLEW_EGL) GLboolean eglewIsSupported (const char* name) { const GLubyte* pos = (const GLubyte*)name; GLuint len = _glewStrLen(pos); GLboolean ret = GL_TRUE; while (ret && len > 0) { if(_glewStrSame1(&pos, &len, (const GLubyte*)"EGL_", 4)) { if (_glewStrSame2(&pos, &len, (const GLubyte*)"VERSION_", 8)) { #ifdef EGL_VERSION_1_0 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_0", 3)) { ret = EGLEW_VERSION_1_0; continue; } #endif #ifdef EGL_VERSION_1_1 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_1", 3)) { ret = EGLEW_VERSION_1_1; continue; } #endif #ifdef EGL_VERSION_1_2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_2", 3)) { ret = EGLEW_VERSION_1_2; continue; } #endif #ifdef EGL_VERSION_1_3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_3", 3)) { ret = EGLEW_VERSION_1_3; continue; } #endif #ifdef EGL_VERSION_1_4 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_4", 3)) { ret = EGLEW_VERSION_1_4; continue; } #endif #ifdef EGL_VERSION_1_5 if (_glewStrSame3(&pos, &len, (const GLubyte*)"1_5", 3)) { ret = EGLEW_VERSION_1_5; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANDROID_", 8)) { #ifdef EGL_ANDROID_blob_cache if (_glewStrSame3(&pos, &len, (const GLubyte*)"blob_cache", 10)) { ret = EGLEW_ANDROID_blob_cache; continue; } #endif #ifdef EGL_ANDROID_create_native_client_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_native_client_buffer", 27)) { ret = EGLEW_ANDROID_create_native_client_buffer; continue; } #endif #ifdef EGL_ANDROID_framebuffer_target if (_glewStrSame3(&pos, &len, (const GLubyte*)"framebuffer_target", 18)) { ret = EGLEW_ANDROID_framebuffer_target; continue; } #endif #ifdef EGL_ANDROID_front_buffer_auto_refresh if (_glewStrSame3(&pos, &len, (const GLubyte*)"front_buffer_auto_refresh", 25)) { ret = EGLEW_ANDROID_front_buffer_auto_refresh; continue; } #endif #ifdef EGL_ANDROID_image_native_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19)) { ret = EGLEW_ANDROID_image_native_buffer; continue; } #endif #ifdef EGL_ANDROID_native_fence_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_fence_sync", 17)) { ret = EGLEW_ANDROID_native_fence_sync; continue; } #endif #ifdef EGL_ANDROID_presentation_time if (_glewStrSame3(&pos, &len, (const GLubyte*)"presentation_time", 17)) { ret = EGLEW_ANDROID_presentation_time; continue; } #endif #ifdef EGL_ANDROID_recordable if (_glewStrSame3(&pos, &len, (const GLubyte*)"recordable", 10)) { ret = EGLEW_ANDROID_recordable; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ANGLE_", 6)) { #ifdef EGL_ANGLE_d3d_share_handle_client_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"d3d_share_handle_client_buffer", 30)) { ret = EGLEW_ANGLE_d3d_share_handle_client_buffer; continue; } #endif #ifdef EGL_ANGLE_device_d3d if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_d3d", 10)) { ret = EGLEW_ANGLE_device_d3d; continue; } #endif #ifdef EGL_ANGLE_query_surface_pointer if (_glewStrSame3(&pos, &len, (const GLubyte*)"query_surface_pointer", 21)) { ret = EGLEW_ANGLE_query_surface_pointer; continue; } #endif #ifdef EGL_ANGLE_surface_d3d_texture_2d_share_handle if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_d3d_texture_2d_share_handle", 35)) { ret = EGLEW_ANGLE_surface_d3d_texture_2d_share_handle; continue; } #endif #ifdef EGL_ANGLE_window_fixed_size if (_glewStrSame3(&pos, &len, (const GLubyte*)"window_fixed_size", 17)) { ret = EGLEW_ANGLE_window_fixed_size; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"ARM_", 4)) { #ifdef EGL_ARM_implicit_external_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"implicit_external_sync", 22)) { ret = EGLEW_ARM_implicit_external_sync; continue; } #endif #ifdef EGL_ARM_pixmap_multisample_discard if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixmap_multisample_discard", 26)) { ret = EGLEW_ARM_pixmap_multisample_discard; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"EXT_", 4)) { #ifdef EGL_EXT_buffer_age if (_glewStrSame3(&pos, &len, (const GLubyte*)"buffer_age", 10)) { ret = EGLEW_EXT_buffer_age; continue; } #endif #ifdef EGL_EXT_client_extensions if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_extensions", 17)) { ret = EGLEW_EXT_client_extensions; continue; } #endif #ifdef EGL_EXT_create_context_robustness if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_robustness", 25)) { ret = EGLEW_EXT_create_context_robustness; continue; } #endif #ifdef EGL_EXT_device_base if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_base", 11)) { ret = EGLEW_EXT_device_base; continue; } #endif #ifdef EGL_EXT_device_drm if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_drm", 10)) { ret = EGLEW_EXT_device_drm; continue; } #endif #ifdef EGL_EXT_device_enumeration if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_enumeration", 18)) { ret = EGLEW_EXT_device_enumeration; continue; } #endif #ifdef EGL_EXT_device_openwf if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_openwf", 13)) { ret = EGLEW_EXT_device_openwf; continue; } #endif #ifdef EGL_EXT_device_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_query", 12)) { ret = EGLEW_EXT_device_query; continue; } #endif #ifdef EGL_EXT_gl_colorspace_bt2020_linear if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_linear", 27)) { ret = EGLEW_EXT_gl_colorspace_bt2020_linear; continue; } #endif #ifdef EGL_EXT_gl_colorspace_bt2020_pq if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_bt2020_pq", 23)) { ret = EGLEW_EXT_gl_colorspace_bt2020_pq; continue; } #endif #ifdef EGL_EXT_gl_colorspace_scrgb_linear if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace_scrgb_linear", 26)) { ret = EGLEW_EXT_gl_colorspace_scrgb_linear; continue; } #endif #ifdef EGL_EXT_image_dma_buf_import if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import", 20)) { ret = EGLEW_EXT_image_dma_buf_import; continue; } #endif #ifdef EGL_EXT_image_dma_buf_import_modifiers if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_import_modifiers", 30)) { ret = EGLEW_EXT_image_dma_buf_import_modifiers; continue; } #endif #ifdef EGL_EXT_multiview_window if (_glewStrSame3(&pos, &len, (const GLubyte*)"multiview_window", 16)) { ret = EGLEW_EXT_multiview_window; continue; } #endif #ifdef EGL_EXT_output_base if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_base", 11)) { ret = EGLEW_EXT_output_base; continue; } #endif #ifdef EGL_EXT_output_drm if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_drm", 10)) { ret = EGLEW_EXT_output_drm; continue; } #endif #ifdef EGL_EXT_output_openwf if (_glewStrSame3(&pos, &len, (const GLubyte*)"output_openwf", 13)) { ret = EGLEW_EXT_output_openwf; continue; } #endif #ifdef EGL_EXT_pixel_format_float if (_glewStrSame3(&pos, &len, (const GLubyte*)"pixel_format_float", 18)) { ret = EGLEW_EXT_pixel_format_float; continue; } #endif #ifdef EGL_EXT_platform_base if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_base", 13)) { ret = EGLEW_EXT_platform_base; continue; } #endif #ifdef EGL_EXT_platform_device if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_device", 15)) { ret = EGLEW_EXT_platform_device; continue; } #endif #ifdef EGL_EXT_platform_wayland if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16)) { ret = EGLEW_EXT_platform_wayland; continue; } #endif #ifdef EGL_EXT_platform_x11 if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12)) { ret = EGLEW_EXT_platform_x11; continue; } #endif #ifdef EGL_EXT_protected_content if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_content", 17)) { ret = EGLEW_EXT_protected_content; continue; } #endif #ifdef EGL_EXT_protected_surface if (_glewStrSame3(&pos, &len, (const GLubyte*)"protected_surface", 17)) { ret = EGLEW_EXT_protected_surface; continue; } #endif #ifdef EGL_EXT_stream_consumer_egloutput if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_egloutput", 25)) { ret = EGLEW_EXT_stream_consumer_egloutput; continue; } #endif #ifdef EGL_EXT_surface_SMPTE2086_metadata if (_glewStrSame3(&pos, &len, (const GLubyte*)"surface_SMPTE2086_metadata", 26)) { ret = EGLEW_EXT_surface_SMPTE2086_metadata; continue; } #endif #ifdef EGL_EXT_swap_buffers_with_damage if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24)) { ret = EGLEW_EXT_swap_buffers_with_damage; continue; } #endif #ifdef EGL_EXT_yuv_surface if (_glewStrSame3(&pos, &len, (const GLubyte*)"yuv_surface", 11)) { ret = EGLEW_EXT_yuv_surface; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"HI_", 3)) { #ifdef EGL_HI_clientpixmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"clientpixmap", 12)) { ret = EGLEW_HI_clientpixmap; continue; } #endif #ifdef EGL_HI_colorformats if (_glewStrSame3(&pos, &len, (const GLubyte*)"colorformats", 12)) { ret = EGLEW_HI_colorformats; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"IMG_", 4)) { #ifdef EGL_IMG_context_priority if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_priority", 16)) { ret = EGLEW_IMG_context_priority; continue; } #endif #ifdef EGL_IMG_image_plane_attribs if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_plane_attribs", 19)) { ret = EGLEW_IMG_image_plane_attribs; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"KHR_", 4)) { #ifdef EGL_KHR_cl_event if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event", 8)) { ret = EGLEW_KHR_cl_event; continue; } #endif #ifdef EGL_KHR_cl_event2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"cl_event2", 9)) { ret = EGLEW_KHR_cl_event2; continue; } #endif #ifdef EGL_KHR_client_get_all_proc_addresses if (_glewStrSame3(&pos, &len, (const GLubyte*)"client_get_all_proc_addresses", 29)) { ret = EGLEW_KHR_client_get_all_proc_addresses; continue; } #endif #ifdef EGL_KHR_config_attribs if (_glewStrSame3(&pos, &len, (const GLubyte*)"config_attribs", 14)) { ret = EGLEW_KHR_config_attribs; continue; } #endif #ifdef EGL_KHR_context_flush_control if (_glewStrSame3(&pos, &len, (const GLubyte*)"context_flush_control", 21)) { ret = EGLEW_KHR_context_flush_control; continue; } #endif #ifdef EGL_KHR_create_context if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context", 14)) { ret = EGLEW_KHR_create_context; continue; } #endif #ifdef EGL_KHR_create_context_no_error if (_glewStrSame3(&pos, &len, (const GLubyte*)"create_context_no_error", 23)) { ret = EGLEW_KHR_create_context_no_error; continue; } #endif #ifdef EGL_KHR_debug if (_glewStrSame3(&pos, &len, (const GLubyte*)"debug", 5)) { ret = EGLEW_KHR_debug; continue; } #endif #ifdef EGL_KHR_fence_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"fence_sync", 10)) { ret = EGLEW_KHR_fence_sync; continue; } #endif #ifdef EGL_KHR_get_all_proc_addresses if (_glewStrSame3(&pos, &len, (const GLubyte*)"get_all_proc_addresses", 22)) { ret = EGLEW_KHR_get_all_proc_addresses; continue; } #endif #ifdef EGL_KHR_gl_colorspace if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_colorspace", 13)) { ret = EGLEW_KHR_gl_colorspace; continue; } #endif #ifdef EGL_KHR_gl_renderbuffer_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_renderbuffer_image", 21)) { ret = EGLEW_KHR_gl_renderbuffer_image; continue; } #endif #ifdef EGL_KHR_gl_texture_2D_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_2D_image", 19)) { ret = EGLEW_KHR_gl_texture_2D_image; continue; } #endif #ifdef EGL_KHR_gl_texture_3D_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_3D_image", 19)) { ret = EGLEW_KHR_gl_texture_3D_image; continue; } #endif #ifdef EGL_KHR_gl_texture_cubemap_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"gl_texture_cubemap_image", 24)) { ret = EGLEW_KHR_gl_texture_cubemap_image; continue; } #endif #ifdef EGL_KHR_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"image", 5)) { ret = EGLEW_KHR_image; continue; } #endif #ifdef EGL_KHR_image_base if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_base", 10)) { ret = EGLEW_KHR_image_base; continue; } #endif #ifdef EGL_KHR_image_pixmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_pixmap", 12)) { ret = EGLEW_KHR_image_pixmap; continue; } #endif #ifdef EGL_KHR_lock_surface if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface", 12)) { ret = EGLEW_KHR_lock_surface; continue; } #endif #ifdef EGL_KHR_lock_surface2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface2", 13)) { ret = EGLEW_KHR_lock_surface2; continue; } #endif #ifdef EGL_KHR_lock_surface3 if (_glewStrSame3(&pos, &len, (const GLubyte*)"lock_surface3", 13)) { ret = EGLEW_KHR_lock_surface3; continue; } #endif #ifdef EGL_KHR_mutable_render_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"mutable_render_buffer", 21)) { ret = EGLEW_KHR_mutable_render_buffer; continue; } #endif #ifdef EGL_KHR_no_config_context if (_glewStrSame3(&pos, &len, (const GLubyte*)"no_config_context", 17)) { ret = EGLEW_KHR_no_config_context; continue; } #endif #ifdef EGL_KHR_partial_update if (_glewStrSame3(&pos, &len, (const GLubyte*)"partial_update", 14)) { ret = EGLEW_KHR_partial_update; continue; } #endif #ifdef EGL_KHR_platform_android if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_android", 16)) { ret = EGLEW_KHR_platform_android; continue; } #endif #ifdef EGL_KHR_platform_gbm if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12)) { ret = EGLEW_KHR_platform_gbm; continue; } #endif #ifdef EGL_KHR_platform_wayland if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_wayland", 16)) { ret = EGLEW_KHR_platform_wayland; continue; } #endif #ifdef EGL_KHR_platform_x11 if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_x11", 12)) { ret = EGLEW_KHR_platform_x11; continue; } #endif #ifdef EGL_KHR_reusable_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"reusable_sync", 13)) { ret = EGLEW_KHR_reusable_sync; continue; } #endif #ifdef EGL_KHR_stream if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream", 6)) { ret = EGLEW_KHR_stream; continue; } #endif #ifdef EGL_KHR_stream_attrib if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_attrib", 13)) { ret = EGLEW_KHR_stream_attrib; continue; } #endif #ifdef EGL_KHR_stream_consumer_gltexture if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture", 25)) { ret = EGLEW_KHR_stream_consumer_gltexture; continue; } #endif #ifdef EGL_KHR_stream_cross_process_fd if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process_fd", 23)) { ret = EGLEW_KHR_stream_cross_process_fd; continue; } #endif #ifdef EGL_KHR_stream_fifo if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo", 11)) { ret = EGLEW_KHR_stream_fifo; continue; } #endif #ifdef EGL_KHR_stream_producer_aldatalocator if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_aldatalocator", 29)) { ret = EGLEW_KHR_stream_producer_aldatalocator; continue; } #endif #ifdef EGL_KHR_stream_producer_eglsurface if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_producer_eglsurface", 26)) { ret = EGLEW_KHR_stream_producer_eglsurface; continue; } #endif #ifdef EGL_KHR_surfaceless_context if (_glewStrSame3(&pos, &len, (const GLubyte*)"surfaceless_context", 19)) { ret = EGLEW_KHR_surfaceless_context; continue; } #endif #ifdef EGL_KHR_swap_buffers_with_damage if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_buffers_with_damage", 24)) { ret = EGLEW_KHR_swap_buffers_with_damage; continue; } #endif #ifdef EGL_KHR_vg_parent_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"vg_parent_image", 15)) { ret = EGLEW_KHR_vg_parent_image; continue; } #endif #ifdef EGL_KHR_wait_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"wait_sync", 9)) { ret = EGLEW_KHR_wait_sync; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"MESA_", 5)) { #ifdef EGL_MESA_drm_image if (_glewStrSame3(&pos, &len, (const GLubyte*)"drm_image", 9)) { ret = EGLEW_MESA_drm_image; continue; } #endif #ifdef EGL_MESA_image_dma_buf_export if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_dma_buf_export", 20)) { ret = EGLEW_MESA_image_dma_buf_export; continue; } #endif #ifdef EGL_MESA_platform_gbm if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_gbm", 12)) { ret = EGLEW_MESA_platform_gbm; continue; } #endif #ifdef EGL_MESA_platform_surfaceless if (_glewStrSame3(&pos, &len, (const GLubyte*)"platform_surfaceless", 20)) { ret = EGLEW_MESA_platform_surfaceless; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NOK_", 4)) { #ifdef EGL_NOK_swap_region if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region", 11)) { ret = EGLEW_NOK_swap_region; continue; } #endif #ifdef EGL_NOK_swap_region2 if (_glewStrSame3(&pos, &len, (const GLubyte*)"swap_region2", 12)) { ret = EGLEW_NOK_swap_region2; continue; } #endif #ifdef EGL_NOK_texture_from_pixmap if (_glewStrSame3(&pos, &len, (const GLubyte*)"texture_from_pixmap", 19)) { ret = EGLEW_NOK_texture_from_pixmap; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"NV_", 3)) { #ifdef EGL_NV_3dvision_surface if (_glewStrSame3(&pos, &len, (const GLubyte*)"3dvision_surface", 16)) { ret = EGLEW_NV_3dvision_surface; continue; } #endif #ifdef EGL_NV_coverage_sample if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample", 15)) { ret = EGLEW_NV_coverage_sample; continue; } #endif #ifdef EGL_NV_coverage_sample_resolve if (_glewStrSame3(&pos, &len, (const GLubyte*)"coverage_sample_resolve", 23)) { ret = EGLEW_NV_coverage_sample_resolve; continue; } #endif #ifdef EGL_NV_cuda_event if (_glewStrSame3(&pos, &len, (const GLubyte*)"cuda_event", 10)) { ret = EGLEW_NV_cuda_event; continue; } #endif #ifdef EGL_NV_depth_nonlinear if (_glewStrSame3(&pos, &len, (const GLubyte*)"depth_nonlinear", 15)) { ret = EGLEW_NV_depth_nonlinear; continue; } #endif #ifdef EGL_NV_device_cuda if (_glewStrSame3(&pos, &len, (const GLubyte*)"device_cuda", 11)) { ret = EGLEW_NV_device_cuda; continue; } #endif #ifdef EGL_NV_native_query if (_glewStrSame3(&pos, &len, (const GLubyte*)"native_query", 12)) { ret = EGLEW_NV_native_query; continue; } #endif #ifdef EGL_NV_post_convert_rounding if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_convert_rounding", 21)) { ret = EGLEW_NV_post_convert_rounding; continue; } #endif #ifdef EGL_NV_post_sub_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"post_sub_buffer", 15)) { ret = EGLEW_NV_post_sub_buffer; continue; } #endif #ifdef EGL_NV_robustness_video_memory_purge if (_glewStrSame3(&pos, &len, (const GLubyte*)"robustness_video_memory_purge", 29)) { ret = EGLEW_NV_robustness_video_memory_purge; continue; } #endif #ifdef EGL_NV_stream_consumer_gltexture_yuv if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_consumer_gltexture_yuv", 29)) { ret = EGLEW_NV_stream_consumer_gltexture_yuv; continue; } #endif #ifdef EGL_NV_stream_cross_display if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_display", 20)) { ret = EGLEW_NV_stream_cross_display; continue; } #endif #ifdef EGL_NV_stream_cross_object if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_object", 19)) { ret = EGLEW_NV_stream_cross_object; continue; } #endif #ifdef EGL_NV_stream_cross_partition if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_partition", 22)) { ret = EGLEW_NV_stream_cross_partition; continue; } #endif #ifdef EGL_NV_stream_cross_process if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_process", 20)) { ret = EGLEW_NV_stream_cross_process; continue; } #endif #ifdef EGL_NV_stream_cross_system if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_cross_system", 19)) { ret = EGLEW_NV_stream_cross_system; continue; } #endif #ifdef EGL_NV_stream_fifo_next if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_next", 16)) { ret = EGLEW_NV_stream_fifo_next; continue; } #endif #ifdef EGL_NV_stream_fifo_synchronous if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_fifo_synchronous", 23)) { ret = EGLEW_NV_stream_fifo_synchronous; continue; } #endif #ifdef EGL_NV_stream_frame_limits if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_frame_limits", 19)) { ret = EGLEW_NV_stream_frame_limits; continue; } #endif #ifdef EGL_NV_stream_metadata if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_metadata", 15)) { ret = EGLEW_NV_stream_metadata; continue; } #endif #ifdef EGL_NV_stream_remote if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_remote", 13)) { ret = EGLEW_NV_stream_remote; continue; } #endif #ifdef EGL_NV_stream_reset if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_reset", 12)) { ret = EGLEW_NV_stream_reset; continue; } #endif #ifdef EGL_NV_stream_socket if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket", 13)) { ret = EGLEW_NV_stream_socket; continue; } #endif #ifdef EGL_NV_stream_socket_inet if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_inet", 18)) { ret = EGLEW_NV_stream_socket_inet; continue; } #endif #ifdef EGL_NV_stream_socket_unix if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_socket_unix", 18)) { ret = EGLEW_NV_stream_socket_unix; continue; } #endif #ifdef EGL_NV_stream_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"stream_sync", 11)) { ret = EGLEW_NV_stream_sync; continue; } #endif #ifdef EGL_NV_sync if (_glewStrSame3(&pos, &len, (const GLubyte*)"sync", 4)) { ret = EGLEW_NV_sync; continue; } #endif #ifdef EGL_NV_system_time if (_glewStrSame3(&pos, &len, (const GLubyte*)"system_time", 11)) { ret = EGLEW_NV_system_time; continue; } #endif } if (_glewStrSame2(&pos, &len, (const GLubyte*)"TIZEN_", 6)) { #ifdef EGL_TIZEN_image_native_buffer if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_buffer", 19)) { ret = EGLEW_TIZEN_image_native_buffer; continue; } #endif #ifdef EGL_TIZEN_image_native_surface if (_glewStrSame3(&pos, &len, (const GLubyte*)"image_native_surface", 20)) { ret = EGLEW_TIZEN_image_native_surface; continue; } #endif } } ret = (len == 0); } return ret; } #endif /* _WIN32 */ ================================================ FILE: custom_backend/glfw/glew/glewinfo.c ================================================ /* ** The OpenGL Extension Wrangler Library ** Copyright (C) 2008-2017, Nigel Stewart ** Copyright (C) 2002-2008, Milan Ikits ** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev ** All rights reserved. ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** ** * Redistributions of source code must retain the above copyright notice, ** this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright notice, ** this list of conditions and the following disclaimer in the documentation ** and/or other materials provided with the distribution. ** * The name of the author may be used to endorse or promote products ** derived from this software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ** THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include #include #if defined(GLEW_EGL) #include #elif defined(GLEW_OSMESA) #define GLAPI extern #include #elif defined(_WIN32) #include #elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) #include #endif #if defined(__APPLE__) #include #endif #ifdef GLEW_REGAL #include #endif static FILE* f; /* Command-line parameters for GL context creation */ struct createParams { #if defined(GLEW_OSMESA) #elif defined(GLEW_EGL) #elif defined(_WIN32) int pixelformat; #elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) const char* display; int visual; #endif int major, minor; /* GL context version number */ /* https://www.opengl.org/registry/specs/ARB/glx_create_context.txt */ int profile; /* core = 1, compatibility = 2 */ int flags; /* debug = 1, forward compatible = 2 */ }; GLboolean glewCreateContext (struct createParams *params); GLboolean glewParseArgs (int argc, char** argv, struct createParams *); void glewDestroyContext (); /* ------------------------------------------------------------------------- */ static void glewPrintExt (const char* name, GLboolean def1, GLboolean def2, GLboolean def3) { unsigned int i; fprintf(f, "\n%s:", name); for (i=0; i<62-strlen(name); i++) fprintf(f, " "); fprintf(f, "%s ", def1 ? "OK" : "MISSING"); if (def1 != def2) fprintf(f, "[%s] ", def2 ? "OK" : "MISSING"); if (def1 != def3) fprintf(f, "[%s]\n", def3 ? "OK" : "MISSING"); else fprintf(f, "\n"); for (i=0; i] " #elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) "[-display ] " "[-visual ] " #endif "[-version ] " "[-profile core|compatibility] " "[-flag debug|forward]" "\n"); return 1; } if (GL_TRUE == glewCreateContext(¶ms)) { fprintf(stderr, "Error: glewCreateContext failed\n"); glewDestroyContext(); return 1; } glewExperimental = GL_TRUE; err = glewInit(); if (GLEW_OK != err) { fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err)); glewDestroyContext(); return 1; } #if defined(GLEW_EGL) getString = (PFNGLGETSTRINGPROC) eglGetProcAddress("glGetString"); if (!getString) { fprintf(stderr, "Error: eglGetProcAddress failed to fetch glGetString\n"); glewDestroyContext(); return 1; } #endif #if defined(_WIN32) #if defined(_MSC_VER) && (_MSC_VER >= 1400) if (fopen_s(&f, "glewinfo.txt", "w") != 0) f = stdout; #else f = fopen("glewinfo.txt", "w"); #endif if (f == NULL) f = stdout; #else f = stdout; #endif fprintf(f, "---------------------------\n"); fprintf(f, " GLEW Extension Info\n"); fprintf(f, "---------------------------\n\n"); fprintf(f, "GLEW version %s\n", glewGetString(GLEW_VERSION)); #if defined(GLEW_OSMESA) #elif defined(GLEW_EGL) #elif defined(_WIN32) fprintf(f, "Reporting capabilities of pixelformat %d\n", params.pixelformat); #elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX) fprintf(f, "Reporting capabilities of display %s, visual 0x%x\n", params.display == NULL ? getenv("DISPLAY") : params.display, params.visual); #endif #if defined(GLEW_EGL) fprintf(f, "Running on a %s from %s\n", getString(GL_RENDERER), getString(GL_VENDOR)); fprintf(f, "OpenGL version %s is supported\n", getString(GL_VERSION)); #else fprintf(f, "Running on a %s from %s\n", glGetString(GL_RENDERER), glGetString(GL_VENDOR)); fprintf(f, "OpenGL version %s is supported\n", glGetString(GL_VERSION)); #endif glewInfo(); #if defined(GLEW_OSMESA) #elif defined(GLEW_EGL) eglewInfo(); #elif defined(_WIN32) wglewInfo(); #else glxewInfo(); #endif if (f != stdout) fclose(f); glewDestroyContext(); return 0; } /* ------------------------------------------------------------------------ */ GLboolean glewParseArgs (int argc, char** argv, struct createParams *params) { int p = 0; while (p < argc) { if (!strcmp(argv[p], "-version")) { if (++p >= argc) return GL_TRUE; if (sscanf(argv[p++], "%d.%d", ¶ms->major, ¶ms->minor) != 2) return GL_TRUE; } else if (!strcmp(argv[p], "-profile")) { if (++p >= argc) return GL_TRUE; if (strcmp("core", argv[p]) == 0) params->profile |= 1; else if (strcmp("compatibility",argv[p]) == 0) params->profile |= 2; else return GL_TRUE; ++p; } else if (!strcmp(argv[p], "-flag")) { if (++p >= argc) return GL_TRUE; if (strcmp("debug", argv[p]) == 0) params->flags |= 1; else if (strcmp("forward",argv[p]) == 0) params->flags |= 2; else return GL_TRUE; ++p; } #if defined(GLEW_OSMESA) #elif defined(GLEW_EGL) #elif defined(_WIN32) else if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat")) { if (++p >= argc) return GL_TRUE; params->pixelformat = strtol(argv[p++], NULL, 0); } #elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) else if (!strcmp(argv[p], "-display")) { if (++p >= argc) return GL_TRUE; params->display = argv[p++]; } else if (!strcmp(argv[p], "-visual")) { if (++p >= argc) return GL_TRUE; params->visual = (int)strtol(argv[p++], NULL, 0); } #endif else return GL_TRUE; } return GL_FALSE; } /* ------------------------------------------------------------------------ */ #if defined(GLEW_EGL) EGLDisplay display; EGLContext ctx; /* See: http://stackoverflow.com/questions/12662227/opengl-es2-0-offscreen-context-for-fbo-rendering */ GLboolean glewCreateContext (struct createParams *params) { EGLDeviceEXT devices[1]; EGLint numDevices; EGLSurface surface; EGLint majorVersion, minorVersion; EGLint configAttribs[] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RED_SIZE, 1, EGL_GREEN_SIZE, 1, EGL_BLUE_SIZE, 1, EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, EGL_NONE }; static const EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; static const EGLint pBufferAttribs[] = { EGL_WIDTH, 128, EGL_HEIGHT, 128, EGL_NONE }; EGLConfig config; EGLint numConfig; EGLBoolean pBuffer; PFNEGLQUERYDEVICESEXTPROC queryDevices = NULL; PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplay = NULL; PFNEGLGETERRORPROC getError = NULL; PFNEGLGETDISPLAYPROC getDisplay = NULL; PFNEGLINITIALIZEPROC initialize = NULL; PFNEGLBINDAPIPROC bindAPI = NULL; PFNEGLCHOOSECONFIGPROC chooseConfig = NULL; PFNEGLCREATEWINDOWSURFACEPROC createWindowSurface = NULL; PFNEGLCREATECONTEXTPROC createContext = NULL; PFNEGLMAKECURRENTPROC makeCurrent = NULL; PFNEGLCREATEPBUFFERSURFACEPROC createPbufferSurface = NULL; /* Load necessary entry points */ queryDevices = (PFNEGLQUERYDEVICESEXTPROC) eglGetProcAddress("eglQueryDevicesEXT"); getPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYEXTPROC) eglGetProcAddress("eglGetPlatformDisplayEXT"); getError = (PFNEGLGETERRORPROC) eglGetProcAddress("eglGetError"); getDisplay = (PFNEGLGETDISPLAYPROC) eglGetProcAddress("eglGetDisplay"); initialize = (PFNEGLINITIALIZEPROC) eglGetProcAddress("eglInitialize"); bindAPI = (PFNEGLBINDAPIPROC) eglGetProcAddress("eglBindAPI"); chooseConfig = (PFNEGLCHOOSECONFIGPROC) eglGetProcAddress("eglChooseConfig"); createWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) eglGetProcAddress("eglCreateWindowSurface"); createPbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) eglGetProcAddress("eglCreatePbufferSurface"); createContext = (PFNEGLCREATECONTEXTPROC) eglGetProcAddress("eglCreateContext"); makeCurrent = (PFNEGLMAKECURRENTPROC) eglGetProcAddress("eglMakeCurrent"); if (!getError || !getDisplay || !initialize || !bindAPI || !chooseConfig || !createWindowSurface || !createContext || !makeCurrent) return GL_TRUE; pBuffer = 0; display = EGL_NO_DISPLAY; if (queryDevices && getPlatformDisplay) { queryDevices(1, devices, &numDevices); if (numDevices==1) { /* Nvidia EGL doesn't need X11 for p-buffer surface */ display = getPlatformDisplay(EGL_PLATFORM_DEVICE_EXT, devices[0], 0); configAttribs[1] = EGL_PBUFFER_BIT; pBuffer = 1; } } if (display==EGL_NO_DISPLAY) { /* Fall-back to X11 surface, works on Mesa */ display = getDisplay(EGL_DEFAULT_DISPLAY); } if (display == EGL_NO_DISPLAY) return GL_TRUE; eglewInit(display); if (bindAPI(EGL_OPENGL_API) != EGL_TRUE) return GL_TRUE; if (chooseConfig(display, configAttribs, &config, 1, &numConfig) != EGL_TRUE || (numConfig != 1)) return GL_TRUE; ctx = createContext(display, config, EGL_NO_CONTEXT, pBuffer ? contextAttribs : NULL); if (NULL == ctx) return GL_TRUE; surface = EGL_NO_SURFACE; /* Create a p-buffer surface if possible */ if (pBuffer && createPbufferSurface) { surface = createPbufferSurface(display, config, pBufferAttribs); } /* Create a generic surface without a native window, if necessary */ if (surface==EGL_NO_SURFACE) { surface = createWindowSurface(display, config, (EGLNativeWindowType) NULL, NULL); } #if 0 if (surface == EGL_NO_SURFACE) return GL_TRUE; #endif if (makeCurrent(display, surface, surface, ctx) != EGL_TRUE) return GL_TRUE; return GL_FALSE; } void glewDestroyContext () { if (NULL != ctx) eglDestroyContext(display, ctx); } #elif defined(GLEW_OSMESA) OSMesaContext ctx; static const GLint osmFormat = GL_UNSIGNED_BYTE; static const GLint osmWidth = 640; static const GLint osmHeight = 480; static GLubyte *osmPixels = NULL; GLboolean glewCreateContext (struct createParams *params) { ctx = OSMesaCreateContext(OSMESA_RGBA, NULL); if (NULL == ctx) return GL_TRUE; if (NULL == osmPixels) { osmPixels = (GLubyte *) calloc(osmWidth*osmHeight*4, 1); } if (!OSMesaMakeCurrent(ctx, osmPixels, GL_UNSIGNED_BYTE, osmWidth, osmHeight)) { return GL_TRUE; } return GL_FALSE; } void glewDestroyContext () { if (NULL != ctx) OSMesaDestroyContext(ctx); } #elif defined(_WIN32) HWND wnd = NULL; HDC dc = NULL; HGLRC rc = NULL; GLboolean glewCreateContext (struct createParams* params) { WNDCLASS wc; PIXELFORMATDESCRIPTOR pfd; /* register window class */ ZeroMemory(&wc, sizeof(WNDCLASS)); wc.hInstance = GetModuleHandle(NULL); wc.lpfnWndProc = DefWindowProc; wc.lpszClassName = "GLEW"; if (0 == RegisterClass(&wc)) return GL_TRUE; /* create window */ wnd = CreateWindow("GLEW", "GLEW", 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL); if (NULL == wnd) return GL_TRUE; /* get the device context */ dc = GetDC(wnd); if (NULL == dc) return GL_TRUE; /* find pixel format */ ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR)); if (params->pixelformat == -1) /* find default */ { pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; params->pixelformat = ChoosePixelFormat(dc, &pfd); if (params->pixelformat == 0) return GL_TRUE; } /* set the pixel format for the dc */ if (FALSE == SetPixelFormat(dc, params->pixelformat, &pfd)) return GL_TRUE; /* create rendering context */ rc = wglCreateContext(dc); if (NULL == rc) return GL_TRUE; if (FALSE == wglMakeCurrent(dc, rc)) return GL_TRUE; if (params->major || params->profile || params->flags) { HGLRC oldRC = rc; int contextAttrs[20]; int i; wglewInit(); /* Intel HD 3000 has WGL_ARB_create_context, but not WGL_ARB_create_context_profile */ if (!wglewGetExtension("WGL_ARB_create_context")) return GL_TRUE; i = 0; if (params->major) { contextAttrs[i++] = WGL_CONTEXT_MAJOR_VERSION_ARB; contextAttrs[i++] = params->major; contextAttrs[i++] = WGL_CONTEXT_MINOR_VERSION_ARB; contextAttrs[i++] = params->minor; } if (params->profile) { contextAttrs[i++] = WGL_CONTEXT_PROFILE_MASK_ARB; contextAttrs[i++] = params->profile; } if (params->flags) { contextAttrs[i++] = WGL_CONTEXT_FLAGS_ARB; contextAttrs[i++] = params->flags; } contextAttrs[i++] = 0; rc = wglCreateContextAttribsARB(dc, 0, contextAttrs); if (NULL == rc) return GL_TRUE; if (!wglMakeCurrent(dc, rc)) return GL_TRUE; wglDeleteContext(oldRC); } return GL_FALSE; } void glewDestroyContext () { if (NULL != rc) wglMakeCurrent(NULL, NULL); if (NULL != rc) wglDeleteContext(rc); if (NULL != wnd && NULL != dc) ReleaseDC(wnd, dc); if (NULL != wnd) DestroyWindow(wnd); UnregisterClass("GLEW", GetModuleHandle(NULL)); } /* ------------------------------------------------------------------------ */ #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) #include #include CGLContextObj ctx, octx; GLboolean glewCreateContext (struct createParams *params) { CGLPixelFormatAttribute contextAttrs[20]; int i; CGLPixelFormatObj pf; GLint npix; CGLError error; i = 0; contextAttrs[i++] = kCGLPFAAccelerated; /* No software rendering */ /* MAC_OS_X_VERSION_10_7 == 1070 */ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1070 if (params->profile & GL_CONTEXT_CORE_PROFILE_BIT) { if ((params->major==3 && params->minor>=2) || params->major>3) { contextAttrs[i++] = kCGLPFAOpenGLProfile; /* OSX 10.7 Lion onwards */ contextAttrs[i++] = (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core; /* 3.2 Core Context */ } } #endif contextAttrs[i++] = 0; error = CGLChoosePixelFormat(contextAttrs, &pf, &npix); if (error) return GL_TRUE; error = CGLCreateContext(pf, NULL, &ctx); if (error) return GL_TRUE; CGLReleasePixelFormat(pf); octx = CGLGetCurrentContext(); error = CGLSetCurrentContext(ctx); if (error) return GL_TRUE; /* Needed for Regal on the Mac */ #if defined(GLEW_REGAL) && defined(__APPLE__) RegalMakeCurrent(ctx); #endif return GL_FALSE; } void glewDestroyContext () { CGLSetCurrentContext(octx); CGLReleaseContext(ctx); } /* ------------------------------------------------------------------------ */ #elif defined(__HAIKU__) GLboolean glewCreateContext (struct createParams *params) { /* TODO: Haiku: We need to call C++ code here */ return GL_FALSE; } void glewDestroyContext () { /* TODO: Haiku: We need to call C++ code here */ } /* ------------------------------------------------------------------------ */ #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ Display* dpy = NULL; XVisualInfo* vi = NULL; XVisualInfo* vis = NULL; GLXContext ctx = NULL; Window wnd = 0; Colormap cmap = 0; GLboolean glewCreateContext (struct createParams *params) { int attrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None }; int erb, evb; XSetWindowAttributes swa; /* open display */ dpy = XOpenDisplay(params->display); if (NULL == dpy) return GL_TRUE; /* query for glx */ if (!glXQueryExtension(dpy, &erb, &evb)) return GL_TRUE; /* choose visual */ if (params->visual == -1) { vi = glXChooseVisual(dpy, DefaultScreen(dpy), attrib); if (NULL == vi) return GL_TRUE; params->visual = (int)XVisualIDFromVisual(vi->visual); } else { int n_vis, i; vis = XGetVisualInfo(dpy, 0, NULL, &n_vis); for (i=0; ivisual) vi = &vis[i]; } if (vi == NULL) return GL_TRUE; } /* create context */ ctx = glXCreateContext(dpy, vi, None, True); if (NULL == ctx) return GL_TRUE; /* create window */ /*wnd = XCreateSimpleWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 1, 1, 1, 0, 0);*/ cmap = XCreateColormap(dpy, RootWindow(dpy, vi->screen), vi->visual, AllocNone); swa.border_pixel = 0; swa.colormap = cmap; wnd = XCreateWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 1, 1, 0, vi->depth, InputOutput, vi->visual, CWBorderPixel | CWColormap, &swa); /* make context current */ if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE; if (params->major || params->profile || params->flags) { GLXContext oldCtx = ctx; GLXFBConfig *FBConfigs; int FBConfigAttrs[] = { GLX_FBCONFIG_ID, 0, None }; int contextAttrs[20]; int nelems, i; glxewInit(); if (!glxewGetExtension("GLX_ARB_create_context")) return GL_TRUE; if (glXQueryContext(dpy, oldCtx, GLX_FBCONFIG_ID, &FBConfigAttrs[1])) return GL_TRUE; FBConfigs = glXChooseFBConfig(dpy, vi->screen, FBConfigAttrs, &nelems); if (nelems < 1) return GL_TRUE; i = 0; if (params->major) { contextAttrs[i++] = GLX_CONTEXT_MAJOR_VERSION_ARB; contextAttrs[i++] = params->major; contextAttrs[i++] = GLX_CONTEXT_MINOR_VERSION_ARB; contextAttrs[i++] = params->minor; } if (params->profile) { contextAttrs[i++] = GLX_CONTEXT_PROFILE_MASK_ARB; contextAttrs[i++] = params->profile; } if (params->flags) { contextAttrs[i++] = GLX_CONTEXT_FLAGS_ARB; contextAttrs[i++] = params->flags; } contextAttrs[i++] = None; ctx = glXCreateContextAttribsARB(dpy, *FBConfigs, NULL, True, contextAttrs); if (NULL == ctx) return GL_TRUE; if (!glXMakeCurrent(dpy, wnd, ctx)) return GL_TRUE; glXDestroyContext(dpy, oldCtx); XFree(FBConfigs); } return GL_FALSE; } void glewDestroyContext () { if (NULL != dpy && NULL != ctx) glXDestroyContext(dpy, ctx); if (NULL != dpy && 0 != wnd) XDestroyWindow(dpy, wnd); if (NULL != dpy && 0 != cmap) XFreeColormap(dpy, cmap); if (NULL != vis) XFree(vis); else if (NULL != vi) XFree(vi); if (NULL != dpy) XCloseDisplay(dpy); } #endif /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ ================================================ FILE: custom_backend/glfw/glew/visualinfo.c ================================================ /* ** visualinfo.c ** ** Copyright (C) Nate Robins, 1997 ** Michael Wimmer, 1999 ** Milan Ikits, 2002-2008 ** Nigel Stewart, 2008-2013 ** ** visualinfo is a small utility that displays all available visuals, ** aka. pixelformats, in an OpenGL system along with renderer version ** information. It shows a table of all the visuals that support OpenGL ** along with their capabilities. The format of the table is similar to ** that of glxinfo on Unix systems: ** ** visual ~= pixel format descriptor ** id = visual id (integer from 1 - max visuals) ** tp = type (wn: window, pb: pbuffer, wp: window & pbuffer, bm: bitmap) ** ac = acceleration (ge: generic, fu: full, no: none) ** fm = format (i: integer, f: float, c: color index) ** db = double buffer (y = yes) ** sw = swap method (x: exchange, c: copy, u: undefined) ** st = stereo (y = yes) ** sz = total # bits ** r = # bits of red ** g = # bits of green ** b = # bits of blue ** a = # bits of alpha ** axbf = # aux buffers ** dpth = # bits of depth ** stcl = # bits of stencil */ #include #include #include #include #if defined(GLEW_OSMESA) #define GLAPI extern #include #elif defined(GLEW_EGL) #include #elif defined(_WIN32) #include #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) #include #include #elif !defined(__HAIKU__) #include #endif #ifdef GLEW_MX GLEWContext _glewctx; # define glewGetContext() (&_glewctx) # ifdef _WIN32 WGLEWContext _wglewctx; # define wglewGetContext() (&_wglewctx) # elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) GLXEWContext _glxewctx; # define glxewGetContext() (&_glxewctx) # endif #endif /* GLEW_MX */ typedef struct GLContextStruct { #if defined(GLEW_OSMESA) OSMesaContext ctx; #elif defined(GLEW_EGL) EGLContext ctx; #elif defined(_WIN32) HWND wnd; HDC dc; HGLRC rc; #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) CGLContextObj ctx, octx; #elif !defined(__HAIKU__) Display* dpy; XVisualInfo* vi; GLXContext ctx; Window wnd; Colormap cmap; #endif } GLContext; void InitContext (GLContext* ctx); GLboolean CreateContext (GLContext* ctx); void DestroyContext (GLContext* ctx); void VisualInfo (GLContext* ctx); void PrintExtensions (const char* s); GLboolean ParseArgs (int argc, char** argv); int showall = 0; int displaystdout = 0; int verbose = 0; int drawableonly = 0; char* display = NULL; int visual = -1; FILE* file = 0; int main (int argc, char** argv) { GLenum err; GLContext ctx; /* ---------------------------------------------------------------------- */ /* parse arguments */ if (GL_TRUE == ParseArgs(argc-1, argv+1)) { #if defined(_WIN32) fprintf(stderr, "Usage: visualinfo [-a] [-s] [-h] [-pf ]\n"); fprintf(stderr, " -a: show all visuals\n"); fprintf(stderr, " -s: display to stdout instead of visualinfo.txt\n"); fprintf(stderr, " -pf : use given pixelformat\n"); fprintf(stderr, " -h: this screen\n"); #else fprintf(stderr, "Usage: visualinfo [-h] [-display ] [-visual ]\n"); fprintf(stderr, " -h: this screen\n"); fprintf(stderr, " -display : use given display\n"); fprintf(stderr, " -visual : use given visual\n"); #endif return 1; } /* ---------------------------------------------------------------------- */ /* create OpenGL rendering context */ InitContext(&ctx); if (GL_TRUE == CreateContext(&ctx)) { fprintf(stderr, "Error: CreateContext failed\n"); DestroyContext(&ctx); return 1; } /* ---------------------------------------------------------------------- */ /* initialize GLEW */ glewExperimental = GL_TRUE; #ifdef GLEW_MX err = glewContextInit(glewGetContext()); # ifdef _WIN32 err = err || wglewContextInit(wglewGetContext()); # elif !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX) err = err || glxewContextInit(glxewGetContext()); # endif #else err = glewInit(); #endif if (GLEW_OK != err) { fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err)); DestroyContext(&ctx); return 1; } /* ---------------------------------------------------------------------- */ /* open file */ #if defined(_WIN32) if (!displaystdout) { #if defined(_MSC_VER) && (_MSC_VER >= 1400) if (fopen_s(&file, "visualinfo.txt", "w") != 0) file = stdout; #else file = fopen("visualinfo.txt", "w"); #endif } if (file == NULL) file = stdout; #else file = stdout; #endif /* ---------------------------------------------------------------------- */ /* output header information */ /* OpenGL extensions */ fprintf(file, "OpenGL vendor string: %s\n", glGetString(GL_VENDOR)); fprintf(file, "OpenGL renderer string: %s\n", glGetString(GL_RENDERER)); fprintf(file, "OpenGL version string: %s\n", glGetString(GL_VERSION)); fprintf(file, "OpenGL extensions (GL_): \n"); PrintExtensions((const char*)glGetString(GL_EXTENSIONS)); #ifndef GLEW_NO_GLU /* GLU extensions */ fprintf(file, "GLU version string: %s\n", gluGetString(GLU_VERSION)); fprintf(file, "GLU extensions (GLU_): \n"); PrintExtensions((const char*)gluGetString(GLU_EXTENSIONS)); #endif /* ---------------------------------------------------------------------- */ /* extensions string */ #if defined(GLEW_OSMESA) #elif defined(GLEW_EGL) #elif defined(_WIN32) /* WGL extensions */ if (WGLEW_ARB_extensions_string || WGLEW_EXT_extensions_string) { fprintf(file, "WGL extensions (WGL_): \n"); PrintExtensions(wglGetExtensionsStringARB ? (const char*)wglGetExtensionsStringARB(ctx.dc) : (const char*)wglGetExtensionsStringEXT()); } #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) #elif defined(__HAIKU__) /* TODO */ #else /* GLX extensions */ fprintf(file, "GLX extensions (GLX_): \n"); PrintExtensions(glXQueryExtensionsString(glXGetCurrentDisplay(), DefaultScreen(glXGetCurrentDisplay()))); #endif /* ---------------------------------------------------------------------- */ /* enumerate all the formats */ VisualInfo(&ctx); /* ---------------------------------------------------------------------- */ /* release resources */ DestroyContext(&ctx); if (file != stdout) fclose(file); return 0; } /* do the magic to separate all extensions with comma's, except for the last one that _may_ terminate in a space. */ void PrintExtensions (const char* s) { char t[80]; int i=0; char* p=0; t[79] = '\0'; while (*s) { t[i++] = *s; if(*s == ' ') { if (*(s+1) != '\0') { t[i-1] = ','; t[i] = ' '; p = &t[i++]; } else /* zoinks! last one terminated in a space! */ { t[i-1] = '\0'; } } if(i > 80 - 5) { *p = t[i] = '\0'; fprintf(file, " %s\n", t); p++; i = (int)strlen(p); #if defined(_MSC_VER) && (_MSC_VER >= 1400) strcpy_s(t, sizeof(t), p); #else strcpy(t, p); #endif } s++; } t[i] = '\0'; fprintf(file, " %s.\n", t); } /* ---------------------------------------------------------------------- */ #if defined(GLEW_OSMESA) || defined(GLEW_EGL) void VisualInfo (GLContext* ctx) { } #elif defined(_WIN32) void VisualInfoARB (GLContext* ctx) { int attrib[32], value[32], n_attrib, n_pbuffer=0, n_float=0; int i, pf, maxpf; unsigned int c; /* to get pbuffer capable pixel formats */ attrib[0] = WGL_DRAW_TO_PBUFFER_ARB; attrib[1] = GL_TRUE; attrib[2] = 0; wglChoosePixelFormatARB(ctx->dc, attrib, 0, 1, &pf, &c); /* query number of pixel formats */ attrib[0] = WGL_NUMBER_PIXEL_FORMATS_ARB; wglGetPixelFormatAttribivARB(ctx->dc, 0, 0, 1, attrib, value); maxpf = value[0]; for (i=0; i<32; i++) value[i] = 0; attrib[0] = WGL_SUPPORT_OPENGL_ARB; attrib[1] = WGL_DRAW_TO_WINDOW_ARB; attrib[2] = WGL_DRAW_TO_BITMAP_ARB; attrib[3] = WGL_ACCELERATION_ARB; /* WGL_NO_ACCELERATION_ARB, WGL_GENERIC_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB */ attrib[4] = WGL_SWAP_METHOD_ARB; /* WGL_SWAP_EXCHANGE_ARB, WGL_SWAP_COPY_ARB, WGL_SWAP_UNDEFINED_ARB */ attrib[5] = WGL_DOUBLE_BUFFER_ARB; attrib[6] = WGL_STEREO_ARB; attrib[7] = WGL_PIXEL_TYPE_ARB; /* WGL_TYPE_RGBA_ARB, WGL_TYPE_COLORINDEX_ARB, WGL_TYPE_RGBA_FLOAT_ATI (WGL_ATI_pixel_format_float) */ /* Color buffer information */ attrib[8] = WGL_COLOR_BITS_ARB; attrib[9] = WGL_RED_BITS_ARB; attrib[10] = WGL_GREEN_BITS_ARB; attrib[11] = WGL_BLUE_BITS_ARB; attrib[12] = WGL_ALPHA_BITS_ARB; /* Accumulation buffer information */ attrib[13] = WGL_ACCUM_BITS_ARB; attrib[14] = WGL_ACCUM_RED_BITS_ARB; attrib[15] = WGL_ACCUM_GREEN_BITS_ARB; attrib[16] = WGL_ACCUM_BLUE_BITS_ARB; attrib[17] = WGL_ACCUM_ALPHA_BITS_ARB; /* Depth, stencil, and aux buffer information */ attrib[18] = WGL_DEPTH_BITS_ARB; attrib[19] = WGL_STENCIL_BITS_ARB; attrib[20] = WGL_AUX_BUFFERS_ARB; /* Layer information */ attrib[21] = WGL_NUMBER_OVERLAYS_ARB; attrib[22] = WGL_NUMBER_UNDERLAYS_ARB; attrib[23] = WGL_SWAP_LAYER_BUFFERS_ARB; attrib[24] = WGL_SAMPLES_ARB; attrib[25] = WGL_SUPPORT_GDI_ARB; n_attrib = 26; if (WGLEW_ARB_pbuffer) { attrib[n_attrib] = WGL_DRAW_TO_PBUFFER_ARB; n_pbuffer = n_attrib; n_attrib++; } if (WGLEW_NV_float_buffer) { attrib[n_attrib] = WGL_FLOAT_COMPONENTS_NV; n_float = n_attrib; n_attrib++; } if (!verbose) { /* print table header */ fprintf(file, " +-----+-------------------------+-----------------+----------+-----------------+----------+\n"); fprintf(file, " | | visual | color | ax dp st | accum | layer |\n"); fprintf(file, " | id | tp ac gd fm db sw st ms | sz r g b a | bf th cl | sz r g b a | ov un sw |\n"); fprintf(file, " +-----+-------------------------+-----------------+----------+-----------------+----------+\n"); /* loop through all the pixel formats */ for(i = 1; i <= maxpf; i++) { wglGetPixelFormatAttribivARB(ctx->dc, i, 0, n_attrib, attrib, value); /* only describe this format if it supports OpenGL */ if (!value[0]) continue; /* by default show only fully accelerated window or pbuffer capable visuals */ if (!showall && ((value[2] && !value[1]) || (!WGLEW_ARB_pbuffer || !value[n_pbuffer]) || (value[3] != WGL_FULL_ACCELERATION_ARB))) continue; /* print out the information for this visual */ /* visual id */ fprintf(file, " |% 4d | ", i); /* visual type */ if (value[1]) { if (WGLEW_ARB_pbuffer && value[n_pbuffer]) fprintf(file, "wp "); else fprintf(file, "wn "); } else { if (value[2]) fprintf(file, "bm "); else if (WGLEW_ARB_pbuffer && value[n_pbuffer]) fprintf(file, "pb "); } /* acceleration */ fprintf(file, "%s ", value[3] == WGL_FULL_ACCELERATION_ARB ? "fu" : value[3] == WGL_GENERIC_ACCELERATION_ARB ? "ge" : value[3] == WGL_NO_ACCELERATION_ARB ? "no" : ". "); /* gdi support */ fprintf(file, " %c ", value[25] ? 'y' : '.'); /* format */ if (WGLEW_NV_float_buffer && value[n_float]) fprintf(file, " f "); else if (WGLEW_ATI_pixel_format_float && value[7] == WGL_TYPE_RGBA_FLOAT_ATI) fprintf(file, " f "); else if (value[7] == WGL_TYPE_RGBA_ARB) fprintf(file, " i "); else if (value[7] == WGL_TYPE_COLORINDEX_ARB) fprintf(file, " c "); else if (value[7] == WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT) fprintf(file," p "); else fprintf(file," ? "); /* double buffer */ fprintf(file, " %c ", value[5] ? 'y' : '.'); /* swap method */ if (value[4] == WGL_SWAP_EXCHANGE_ARB) fprintf(file, " x "); else if (value[4] == WGL_SWAP_COPY_ARB) fprintf(file, " c "); else if (value[4] == WGL_SWAP_UNDEFINED_ARB) fprintf(file, " . "); else fprintf(file, " . "); /* stereo */ fprintf(file, " %c ", value[6] ? 'y' : '.'); /* multisample */ if (value[24] > 0) fprintf(file, "%2d | ", value[24]); else fprintf(file, " . | "); /* color size */ if (value[8]) fprintf(file, "%3d ", value[8]); else fprintf(file, " . "); /* red */ if (value[9]) fprintf(file, "%2d ", value[9]); else fprintf(file, " . "); /* green */ if (value[10]) fprintf(file, "%2d ", value[10]); else fprintf(file, " . "); /* blue */ if (value[11]) fprintf(file, "%2d ", value[11]); else fprintf(file, " . "); /* alpha */ if (value[12]) fprintf(file, "%2d | ", value[12]); else fprintf(file, " . | "); /* aux buffers */ if (value[20]) fprintf(file, "%2d ", value[20]); else fprintf(file, " . "); /* depth */ if (value[18]) fprintf(file, "%2d ", value[18]); else fprintf(file, " . "); /* stencil */ if (value[19]) fprintf(file, "%2d | ", value[19]); else fprintf(file, " . | "); /* accum size */ if (value[13]) fprintf(file, "%3d ", value[13]); else fprintf(file, " . "); /* accum red */ if (value[14]) fprintf(file, "%2d ", value[14]); else fprintf(file, " . "); /* accum green */ if (value[15]) fprintf(file, "%2d ", value[15]); else fprintf(file, " . "); /* accum blue */ if (value[16]) fprintf(file, "%2d ", value[16]); else fprintf(file, " . "); /* accum alpha */ if (value[17]) fprintf(file, "%2d | ", value[17]); else fprintf(file, " . | "); /* overlay */ if (value[21]) fprintf(file, "%2d ", value[21]); else fprintf(file, " . "); /* underlay */ if (value[22]) fprintf(file, "%2d ", value[22]); else fprintf(file, " . "); /* layer swap */ if (value[23]) fprintf(file, "y "); else fprintf(file, " . "); fprintf(file, "|\n"); } /* print table footer */ fprintf(file, " +-----+-------------------------+-----------------+----------+-----------------+----------+\n"); fprintf(file, " | | visual | color | ax dp st | accum | layer |\n"); fprintf(file, " | id | tp ac gd fm db sw st ms | sz r g b a | bf th cl | sz r g b a | ov un sw |\n"); fprintf(file, " +-----+-------------------------+-----------------+----------+-----------------+----------+\n"); } else /* verbose */ { #if 0 fprintf(file, "\n"); /* loop through all the pixel formats */ for(i = 1; i <= maxpf; i++) { DescribePixelFormat(ctx->dc, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd); /* only describe this format if it supports OpenGL */ if(!(pfd.dwFlags & PFD_SUPPORT_OPENGL) || (drawableonly && !(pfd.dwFlags & PFD_DRAW_TO_WINDOW))) continue; fprintf(file, "Visual ID: %2d depth=%d class=%s\n", i, pfd.cDepthBits, pfd.cColorBits <= 8 ? "PseudoColor" : "TrueColor"); fprintf(file, " bufferSize=%d level=%d renderType=%s doubleBuffer=%d stereo=%d\n", pfd.cColorBits, pfd.bReserved, pfd.iPixelType == PFD_TYPE_RGBA ? "rgba" : "ci", pfd.dwFlags & PFD_DOUBLEBUFFER, pfd.dwFlags & PFD_STEREO); fprintf(file, " generic=%d generic accelerated=%d\n", (pfd.dwFlags & PFD_GENERIC_FORMAT) == PFD_GENERIC_FORMAT, (pfd.dwFlags & PFD_GENERIC_ACCELERATED) == PFD_GENERIC_ACCELERATED); fprintf(file, " rgba: redSize=%d greenSize=%d blueSize=%d alphaSize=%d\n", pfd.cRedBits, pfd.cGreenBits, pfd.cBlueBits, pfd.cAlphaBits); fprintf(file, " auxBuffers=%d depthSize=%d stencilSize=%d\n", pfd.cAuxBuffers, pfd.cDepthBits, pfd.cStencilBits); fprintf(file, " accum: redSize=%d greenSize=%d blueSize=%d alphaSize=%d\n", pfd.cAccumRedBits, pfd.cAccumGreenBits, pfd.cAccumBlueBits, pfd.cAccumAlphaBits); fprintf(file, " multiSample=%d multisampleBuffers=%d\n", 0, 0); fprintf(file, " Opaque.\n"); } #endif } } void VisualInfoGDI (GLContext* ctx) { int i, maxpf; PIXELFORMATDESCRIPTOR pfd; /* calling DescribePixelFormat() with NULL pfd (!!!) return maximum number of pixel formats */ maxpf = DescribePixelFormat(ctx->dc, 1, 0, NULL); if (!verbose) { fprintf(file, "-----------------------------------------------------------------------------\n"); fprintf(file, " visual x bf lv rg d st ge ge r g b a ax dp st accum buffs ms \n"); fprintf(file, " id dep tp sp sz l ci b ro ne ac sz sz sz sz bf th cl sz r g b a ns b\n"); fprintf(file, "-----------------------------------------------------------------------------\n"); /* loop through all the pixel formats */ for(i = 1; i <= maxpf; i++) { DescribePixelFormat(ctx->dc, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd); /* only describe this format if it supports OpenGL */ if(!(pfd.dwFlags & PFD_SUPPORT_OPENGL) || (drawableonly && (pfd.dwFlags & PFD_DRAW_TO_BITMAP))) continue; /* other criteria could be tested here for actual pixel format choosing in an application: for (...each pixel format...) { if (pfd.dwFlags & PFD_SUPPORT_OPENGL && pfd.dwFlags & PFD_DOUBLEBUFFER && pfd.cDepthBits >= 24 && pfd.cColorBits >= 24) { goto found; } } ... not found so exit ... found: ... found so use it ... */ /* print out the information for this pixel format */ fprintf(file, "0x%02x ", i); fprintf(file, "%3d ", pfd.cColorBits); if(pfd.dwFlags & PFD_DRAW_TO_WINDOW) fprintf(file, "wn "); else if(pfd.dwFlags & PFD_DRAW_TO_BITMAP) fprintf(file, "bm "); else fprintf(file, "pb "); /* should find transparent pixel from LAYERPLANEDESCRIPTOR */ fprintf(file, " . "); fprintf(file, "%3d ", pfd.cColorBits); /* bReserved field indicates number of over/underlays */ if(pfd.bReserved) fprintf(file, " %d ", pfd.bReserved); else fprintf(file, " . "); fprintf(file, " %c ", pfd.iPixelType == PFD_TYPE_RGBA ? 'r' : 'c'); fprintf(file, "%c ", pfd.dwFlags & PFD_DOUBLEBUFFER ? 'y' : '.'); fprintf(file, " %c ", pfd.dwFlags & PFD_STEREO ? 'y' : '.'); /* added: */ fprintf(file, " %c ", pfd.dwFlags & PFD_GENERIC_FORMAT ? 'y' : '.'); fprintf(file, " %c ", pfd.dwFlags & PFD_GENERIC_ACCELERATED ? 'y' : '.'); if(pfd.cRedBits && pfd.iPixelType == PFD_TYPE_RGBA) fprintf(file, "%2d ", pfd.cRedBits); else fprintf(file, " . "); if(pfd.cGreenBits && pfd.iPixelType == PFD_TYPE_RGBA) fprintf(file, "%2d ", pfd.cGreenBits); else fprintf(file, " . "); if(pfd.cBlueBits && pfd.iPixelType == PFD_TYPE_RGBA) fprintf(file, "%2d ", pfd.cBlueBits); else fprintf(file, " . "); if(pfd.cAlphaBits && pfd.iPixelType == PFD_TYPE_RGBA) fprintf(file, "%2d ", pfd.cAlphaBits); else fprintf(file, " . "); if(pfd.cAuxBuffers) fprintf(file, "%2d ", pfd.cAuxBuffers); else fprintf(file, " . "); if(pfd.cDepthBits) fprintf(file, "%2d ", pfd.cDepthBits); else fprintf(file, " . "); if(pfd.cStencilBits) fprintf(file, "%2d ", pfd.cStencilBits); else fprintf(file, " . "); if(pfd.cAccumBits) fprintf(file, "%3d ", pfd.cAccumBits); else fprintf(file, " . "); if(pfd.cAccumRedBits) fprintf(file, "%2d ", pfd.cAccumRedBits); else fprintf(file, " . "); if(pfd.cAccumGreenBits) fprintf(file, "%2d ", pfd.cAccumGreenBits); else fprintf(file, " . "); if(pfd.cAccumBlueBits) fprintf(file, "%2d ", pfd.cAccumBlueBits); else fprintf(file, " . "); if(pfd.cAccumAlphaBits) fprintf(file, "%2d ", pfd.cAccumAlphaBits); else fprintf(file, " . "); /* no multisample in win32 */ fprintf(file, " . .\n"); } /* print table footer */ fprintf(file, "-----------------------------------------------------------------------------\n"); fprintf(file, " visual x bf lv rg d st ge ge r g b a ax dp st accum buffs ms \n"); fprintf(file, " id dep tp sp sz l ci b ro ne ac sz sz sz sz bf th cl sz r g b a ns b\n"); fprintf(file, "-----------------------------------------------------------------------------\n"); } else /* verbose */ { fprintf(file, "\n"); /* loop through all the pixel formats */ for(i = 1; i <= maxpf; i++) { DescribePixelFormat(ctx->dc, i, sizeof(PIXELFORMATDESCRIPTOR), &pfd); /* only describe this format if it supports OpenGL */ if(!(pfd.dwFlags & PFD_SUPPORT_OPENGL) || (drawableonly && !(pfd.dwFlags & PFD_DRAW_TO_WINDOW))) continue; fprintf(file, "Visual ID: %2d depth=%d class=%s\n", i, pfd.cDepthBits, pfd.cColorBits <= 8 ? "PseudoColor" : "TrueColor"); fprintf(file, " bufferSize=%d level=%d renderType=%s doubleBuffer=%ld stereo=%ld\n", pfd.cColorBits, pfd.bReserved, pfd.iPixelType == PFD_TYPE_RGBA ? "rgba" : "ci", pfd.dwFlags & PFD_DOUBLEBUFFER, pfd.dwFlags & PFD_STEREO); fprintf(file, " generic=%d generic accelerated=%d\n", (pfd.dwFlags & PFD_GENERIC_FORMAT) == PFD_GENERIC_FORMAT, (pfd.dwFlags & PFD_GENERIC_ACCELERATED) == PFD_GENERIC_ACCELERATED); fprintf(file, " rgba: redSize=%d greenSize=%d blueSize=%d alphaSize=%d\n", pfd.cRedBits, pfd.cGreenBits, pfd.cBlueBits, pfd.cAlphaBits); fprintf(file, " auxBuffers=%d depthSize=%d stencilSize=%d\n", pfd.cAuxBuffers, pfd.cDepthBits, pfd.cStencilBits); fprintf(file, " accum: redSize=%d greenSize=%d blueSize=%d alphaSize=%d\n", pfd.cAccumRedBits, pfd.cAccumGreenBits, pfd.cAccumBlueBits, pfd.cAccumAlphaBits); fprintf(file, " multiSample=%d multisampleBuffers=%d\n", 0, 0); fprintf(file, " Opaque.\n"); } } } void VisualInfo (GLContext* ctx) { if (WGLEW_ARB_pixel_format) VisualInfoARB(ctx); else VisualInfoGDI(ctx); } /* ---------------------------------------------------------------------- */ #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) void VisualInfo (__attribute__((unused)) GLContext* ctx) { /* int attrib[] = { AGL_RGBA, AGL_NONE }; AGLPixelFormat pf; GLint value; pf = aglChoosePixelFormat(NULL, 0, attrib); while (pf != NULL) { aglDescribePixelFormat(pf, GL_RGBA, &value); fprintf(stderr, "%d\n", value); pf = aglNextPixelFormat(pf); } */ } /* ---------------------------------------------------------------------- */ #elif defined(__HAIKU__) void VisualInfo (GLContext* ctx) { /* TODO */ } #else /* GLX */ void VisualInfo (GLContext* ctx) { int n_fbc; GLXFBConfig* fbc; int value, ret, i; fbc = glXGetFBConfigs(ctx->dpy, DefaultScreen(ctx->dpy), &n_fbc); if (fbc) { if (!verbose) { /* print table header */ fprintf(file, " +-----+-------------------------+-----------------+----------+-------------+-------+------+\n"); fprintf(file, " | | visual | color | ax dp st | accum | ms | cav |\n"); fprintf(file, " | id | tp xr cl fm db st lv xp | sz r g b a | bf th cl | r g b a | ns b | eat |\n"); fprintf(file, " +-----+-------------------------+-----------------+----------+-------------+-------+------+\n"); /* loop through all the fbcs */ for (i=0; idpy, fbc[i], GLX_FBCONFIG_ID, &value); if (ret != Success) { fprintf(file, "| ? |"); } else { fprintf(file, " |% 4d | ", value); } /* visual type */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_DRAWABLE_TYPE, &value); if (ret != Success) { fprintf(file, " ? "); } else { if (value & GLX_WINDOW_BIT) { if (value & GLX_PBUFFER_BIT) { fprintf(file, "wp "); } else { fprintf(file, "wn "); } } else { if (value & GLX_PBUFFER_BIT) { fprintf(file, "pb "); } else if (value & GLX_PIXMAP_BIT) { fprintf(file, "pm "); } else { fprintf(file, " ? "); } } } /* x renderable */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_X_RENDERABLE, &value); if (ret != Success) { fprintf(file, " ? "); } else { fprintf(file, value ? " y " : " n "); } /* class */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_X_VISUAL_TYPE, &value); if (ret != Success) { fprintf(file, " ? "); } else { if (GLX_TRUE_COLOR == value) fprintf(file, "tc "); else if (GLX_DIRECT_COLOR == value) fprintf(file, "dc "); else if (GLX_PSEUDO_COLOR == value) fprintf(file, "pc "); else if (GLX_STATIC_COLOR == value) fprintf(file, "sc "); else if (GLX_GRAY_SCALE == value) fprintf(file, "gs "); else if (GLX_STATIC_GRAY == value) fprintf(file, "sg "); else if (GLX_X_VISUAL_TYPE == value) fprintf(file, " . "); else fprintf(file, " ? "); } /* format */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_RENDER_TYPE, &value); if (ret != Success) { fprintf(file, " ? "); } else { if (GLXEW_NV_float_buffer) { int ret2, value2; ret2 = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_FLOAT_COMPONENTS_NV, &value2); if (Success == ret2 && GL_TRUE == value2) { fprintf(file, " f "); } else if (value & GLX_RGBA_BIT) fprintf(file, " i "); else if (value & GLX_COLOR_INDEX_BIT) fprintf(file, " c "); else fprintf(file, " ? "); } else { if (value & GLX_RGBA_FLOAT_ATI_BIT) fprintf(file, " f "); else if (value & GLX_RGBA_BIT) fprintf(file, " i "); else if (value & GLX_COLOR_INDEX_BIT) fprintf(file, " c "); else fprintf(file, " ? "); } } /* double buffer */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_DOUBLEBUFFER, &value); fprintf(file, " %c ", Success != ret ? '?' : (value ? 'y' : '.')); /* stereo */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_STEREO, &value); fprintf(file, " %c ", Success != ret ? '?' : (value ? 'y' : '.')); /* level */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_LEVEL, &value); if (Success != ret) { fprintf(file, " ? "); } else { fprintf(file, "%2d ", value); } /* transparency */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_TRANSPARENT_TYPE, &value); if (Success != ret) { fprintf(file, " ? | "); } else { if (GLX_TRANSPARENT_RGB == value) fprintf(file, " r | "); else if (GLX_TRANSPARENT_INDEX == value) fprintf(file, " i | "); else if (GLX_NONE == value) fprintf(file, " . | "); else fprintf(file, " ? | "); } /* color size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_BUFFER_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%3d ", value); else fprintf(file, " . "); } /* red size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_RED_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* green size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_GREEN_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* blue size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_BLUE_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* alpha size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_ALPHA_SIZE, &value); if (Success != ret) { fprintf(file, " ? | "); } else { if (value) fprintf(file, "%2d | ", value); else fprintf(file, " . | "); } /* aux buffers */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_AUX_BUFFERS, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* depth size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_DEPTH_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* stencil size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_STENCIL_SIZE, &value); if (Success != ret) { fprintf(file, " ? | "); } else { if (value) fprintf(file, "%2d | ", value); else fprintf(file, " . | "); } /* accum red size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_ACCUM_RED_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* accum green size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_ACCUM_GREEN_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* accum blue size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_ACCUM_BLUE_SIZE, &value); if (Success != ret) { fprintf(file, " ? "); } else { if (value) fprintf(file, "%2d ", value); else fprintf(file, " . "); } /* accum alpha size */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_ACCUM_ALPHA_SIZE, &value); if (Success != ret) { fprintf(file, " ? | "); } else { if (value) fprintf(file, "%2d | ", value); else fprintf(file, " . | "); } /* multisample */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_SAMPLES, &value); if (Success != ret) { fprintf(file, " ? "); } else { fprintf(file, "%2d ", value); } ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_SAMPLE_BUFFERS, &value); if (Success != ret) { fprintf(file, " ? | "); } else { fprintf(file, "%2d | ", value); } /* caveat */ ret = glXGetFBConfigAttrib(ctx->dpy, fbc[i], GLX_CONFIG_CAVEAT, &value); if (Success != ret) { fprintf(file, "???? |"); } else { if (GLX_NONE == value) fprintf(file, "none |\n"); else if (GLX_SLOW_CONFIG == value) fprintf(file, "slow |\n"); else if (GLX_NON_CONFORMANT_CONFIG == value) fprintf(file, "ncft |\n"); else fprintf(file, "???? |\n"); } } /* print table footer */ fprintf(file, " +-----+-------------------------+-----------------+----------+-------------+-------+------+\n"); fprintf(file, " | id | tp xr cl fm db st lv xp | sz r g b a | bf th cl | r g b a | ns b | eat |\n"); fprintf(file, " | | visual | color | ax dp st | accum | ms | cav |\n"); fprintf(file, " +-----+-------------------------+-----------------+----------+-------------+-------+------+\n"); } } } #endif /* ------------------------------------------------------------------------ */ #if defined(GLEW_OSMESA) void InitContext (GLContext* ctx) { ctx->ctx = NULL; } static const GLint osmFormat = GL_UNSIGNED_BYTE; static const GLint osmWidth = 640; static const GLint osmHeight = 480; static GLubyte *osmPixels = NULL; GLboolean CreateContext (GLContext* ctx) { if (NULL == ctx) return GL_TRUE; ctx->ctx = OSMesaCreateContext(OSMESA_RGBA, NULL); if (NULL == ctx->ctx) return GL_TRUE; if (NULL == osmPixels) { osmPixels = (GLubyte *) calloc(osmWidth*osmHeight*4, 1); } if (!OSMesaMakeCurrent(ctx->ctx, osmPixels, GL_UNSIGNED_BYTE, osmWidth, osmHeight)) { return GL_TRUE; } return GL_FALSE; } void DestroyContext (GLContext* ctx) { if (NULL == ctx) return; if (NULL != ctx->ctx) OSMesaDestroyContext(ctx->ctx); } /* ------------------------------------------------------------------------ */ #elif defined(GLEW_EGL) void InitContext (GLContext* ctx) { ctx->ctx = NULL; } GLboolean CreateContext (GLContext* ctx) { return GL_FALSE; } void DestroyContext (GLContext* ctx) { if (NULL == ctx) return; return; } /* ------------------------------------------------------------------------ */ #elif defined(_WIN32) void InitContext (GLContext* ctx) { ctx->wnd = NULL; ctx->dc = NULL; ctx->rc = NULL; } GLboolean CreateContext (GLContext* ctx) { WNDCLASS wc; PIXELFORMATDESCRIPTOR pfd; /* check for input */ if (NULL == ctx) return GL_TRUE; /* register window class */ ZeroMemory(&wc, sizeof(WNDCLASS)); wc.hInstance = GetModuleHandle(NULL); wc.lpfnWndProc = DefWindowProc; wc.lpszClassName = "GLEW"; if (0 == RegisterClass(&wc)) return GL_TRUE; /* create window */ ctx->wnd = CreateWindow("GLEW", "GLEW", 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, GetModuleHandle(NULL), NULL); if (NULL == ctx->wnd) return GL_TRUE; /* get the device context */ ctx->dc = GetDC(ctx->wnd); if (NULL == ctx->dc) return GL_TRUE; /* find pixel format */ ZeroMemory(&pfd, sizeof(PIXELFORMATDESCRIPTOR)); if (visual == -1) /* find default */ { pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; visual = ChoosePixelFormat(ctx->dc, &pfd); if (0 == visual) return GL_TRUE; } /* set the pixel format for the dc */ if (FALSE == SetPixelFormat(ctx->dc, visual, &pfd)) return GL_TRUE; /* create rendering context */ ctx->rc = wglCreateContext(ctx->dc); if (NULL == ctx->rc) return GL_TRUE; if (FALSE == wglMakeCurrent(ctx->dc, ctx->rc)) return GL_TRUE; return GL_FALSE; } void DestroyContext (GLContext* ctx) { if (NULL == ctx) return; if (NULL != ctx->rc) wglMakeCurrent(NULL, NULL); if (NULL != ctx->rc) wglDeleteContext(wglGetCurrentContext()); if (NULL != ctx->wnd && NULL != ctx->dc) ReleaseDC(ctx->wnd, ctx->dc); if (NULL != ctx->wnd) DestroyWindow(ctx->wnd); UnregisterClass("GLEW", GetModuleHandle(NULL)); } /* ------------------------------------------------------------------------ */ #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) void InitContext (GLContext* ctx) { ctx->ctx = NULL; ctx->octx = NULL; } GLboolean CreateContext (GLContext* ctx) { CGLPixelFormatAttribute attrib[] = { kCGLPFAAccelerated, 0 }; CGLPixelFormatObj pf; GLint npix; CGLError error; /* check input */ if (NULL == ctx) return GL_TRUE; error = CGLChoosePixelFormat(attrib, &pf, &npix); if (error) return GL_TRUE; error = CGLCreateContext(pf, NULL, &ctx->ctx); if (error) return GL_TRUE; CGLReleasePixelFormat(pf); ctx->octx = CGLGetCurrentContext(); error = CGLSetCurrentContext(ctx->ctx); if (error) return GL_TRUE; return GL_FALSE; } void DestroyContext (GLContext* ctx) { if (NULL == ctx) return; CGLSetCurrentContext(ctx->octx); if (NULL != ctx->ctx) CGLReleaseContext(ctx->ctx); } /* ------------------------------------------------------------------------ */ #elif defined(__HAIKU__) void InitContext (GLContext* ctx) { /* TODO */ } GLboolean CreateContext (GLContext* ctx) { /* TODO */ return GL_FALSE; } void DestroyContext (GLContext* ctx) { /* TODO */ } /* ------------------------------------------------------------------------ */ #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ void InitContext (GLContext* ctx) { ctx->dpy = NULL; ctx->vi = NULL; ctx->ctx = NULL; ctx->wnd = 0; ctx->cmap = 0; } GLboolean CreateContext (GLContext* ctx) { int attrib[] = { GLX_RGBA, GLX_DOUBLEBUFFER, None }; int erb, evb; XSetWindowAttributes swa; /* check input */ if (NULL == ctx) return GL_TRUE; /* open display */ ctx->dpy = XOpenDisplay(display); if (NULL == ctx->dpy) return GL_TRUE; /* query for glx */ if (!glXQueryExtension(ctx->dpy, &erb, &evb)) return GL_TRUE; /* choose visual */ ctx->vi = glXChooseVisual(ctx->dpy, DefaultScreen(ctx->dpy), attrib); if (NULL == ctx->vi) return GL_TRUE; /* create context */ ctx->ctx = glXCreateContext(ctx->dpy, ctx->vi, None, True); if (NULL == ctx->ctx) return GL_TRUE; /* create window */ /*wnd = XCreateSimpleWindow(dpy, RootWindow(dpy, vi->screen), 0, 0, 1, 1, 1, 0, 0);*/ ctx->cmap = XCreateColormap(ctx->dpy, RootWindow(ctx->dpy, ctx->vi->screen), ctx->vi->visual, AllocNone); swa.border_pixel = 0; swa.colormap = ctx->cmap; ctx->wnd = XCreateWindow(ctx->dpy, RootWindow(ctx->dpy, ctx->vi->screen), 0, 0, 1, 1, 0, ctx->vi->depth, InputOutput, ctx->vi->visual, CWBorderPixel | CWColormap, &swa); /* make context current */ if (!glXMakeCurrent(ctx->dpy, ctx->wnd, ctx->ctx)) return GL_TRUE; return GL_FALSE; } void DestroyContext (GLContext* ctx) { if (NULL != ctx->dpy && NULL != ctx->ctx) glXDestroyContext(ctx->dpy, ctx->ctx); if (NULL != ctx->dpy && 0 != ctx->wnd) XDestroyWindow(ctx->dpy, ctx->wnd); if (NULL != ctx->dpy && 0 != ctx->cmap) XFreeColormap(ctx->dpy, ctx->cmap); if (NULL != ctx->vi) XFree(ctx->vi); if (NULL != ctx->dpy) XCloseDisplay(ctx->dpy); } #endif /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ GLboolean ParseArgs (int argc, char** argv) { int p = 0; while (p < argc) { #if defined(_WIN32) if (!strcmp(argv[p], "-pf") || !strcmp(argv[p], "-pixelformat")) { if (++p >= argc) return GL_TRUE; display = NULL; visual = strtol(argv[p], NULL, 0); } else if (!strcmp(argv[p], "-a")) { showall = 1; } else if (!strcmp(argv[p], "-s")) { displaystdout = 1; } else if (!strcmp(argv[p], "-h")) { return GL_TRUE; } else return GL_TRUE; #else if (!strcmp(argv[p], "-display")) { if (++p >= argc) return GL_TRUE; display = argv[p]; } else if (!strcmp(argv[p], "-visual")) { if (++p >= argc) return GL_TRUE; visual = (int)strtol(argv[p], NULL, 0); } else if (!strcmp(argv[p], "-h")) { return GL_TRUE; } else return GL_TRUE; #endif p++; } return GL_FALSE; } ================================================ FILE: custom_backend/glfw_example.c ================================================ #include #include #include #include #include "glfw/fbg_glfw.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } int main(int argc, char* argv[]) { struct _fbg *fbg = fbg_glfwSetup(800, 600, 4, "glfw example", 0, 0, 1); if (fbg == NULL) { return 0; } // struct _fbg_glfw_context *glfw_context = fbg->user_context; // note: when SSAA argument of fbg_glfwSetup is set higher than 1 fbg->width may return more than the display resolution due to this upscale factor // so if you need to refer to the real display width / height you must then use glfw_context->width / glfw_context->height // and use fbg->width / fbg->height when you refer to the fbg drawing context float x = 0, y = 0, velx = 3.4, vely = 3.425; signal(SIGINT, int_handler); do { fbg_glfwClear(); fbg_clear(fbg, 0); fbg_rect(fbg, x, y, 40, 40, 255, 0, 0); fbg_line(fbg, 0, 0, fbg->width - 1, fbg->height-1, 255, 255, 255); int vertices[6] = {100, 100, 200, 100, 100, 200}; fbg_polygon(fbg, 3, &vertices[0], 255, 0, 0); fbg_draw(fbg); fbg_flip(fbg); x += velx; y += vely; if (x <= 0) { x = 0; velx = -velx; } else if (x > fbg->width - 40) { x = fbg->width - 40; velx = -velx; } if (y <= 0) { y = 0; vely = -vely; } else if (y > fbg->height - 40) { y = fbg->height - 40; vely = -vely; } } while (keep_running && !fbg_glfwShouldClose(fbg)); fbg_close(fbg); } ================================================ FILE: custom_backend/glfw_example_advanced.c ================================================ /* Advanced FBG GLFW example FBG HSL feedback effect from FBG content + standard OpenGL content. Also show how to override the fragment & vertex shader used to draw the FBG content. This use the cglm library for all the 3D math https://github.com/recp/cglm This use the cwobj library to load .obj files https://github.com/grz0zrg/cwobj */ #include #include #include #include #include #include "glfw/fbg_glfw.h" #include "cwobj/cwobj.h" #define pcount (2048 * 4) float points[pcount]; mat4 proj; struct _fbg_img *img = NULL; GLint ires_loc; int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } void generatePoints(struct _fbg *fbg) { for (int i = 0; i < pcount; i += 4) { float vx = fbg_randf(-1, 1); float vy = fbg_randf(-0.005, 0.005); points[i] = fbg_randf(vx, fbg->width - vx); points[i + 1] = fbg_randf(vy, fbg->height - vy); points[i + 2] = vx; points[i + 3] = vy; } } void onResize(struct _fbg *fbg, unsigned int new_width, unsigned int new_height) { fbg_freeImage(img); img = fbg_createImage(fbg, new_width, new_height); struct _fbg_glfw_context *glfw_context = fbg->user_context; glUseProgram(glfw_context->simple_program); glUniform2f(ires_loc, new_width, new_height); // update proj matrix glm_perspective(glm_rad(45.0f), (float)new_width / (float)new_height, 0.1f, 100.0f, proj); generatePoints(fbg); } int main(int argc, char* argv[]) { struct _fbg *fbg = fbg_glfwSetup(800, 600, 3, "glfw example", 0, 0, 1); if (fbg == NULL) { return 0; } glfwWindowHint(GLFW_SAMPLES, 4); srand((unsigned int)time(NULL)); struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_img *bone_image = fbg_loadPNG(fbg, "bone.png"); GLuint bone_texture = fbg_glfwCreateTextureFromImage(fbg, bone_image); glBindTexture(GL_TEXTURE_2D, bone_texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glGenerateMipmap(GL_TEXTURE_2D); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); img = fbg_createImage(fbg, fbg->width, fbg->height); signal(SIGINT, int_handler); generatePoints(fbg); float motion = 0; struct _fbg_rgb color, color2; // we must resize the image upon a FBG resize event since we render the screen into it, we must also update the proj matrix and update some uniforms fbg_setResizeCallback(fbg, onResize); // override the internal fragment & vertex shader used to draw the FBG buffer struct _fbg_glfw_context *glfw_context = fbg->user_context; glDeleteProgram(glfw_context->simple_program); glfw_context->simple_program = fbg_glfwCreateProgramFromFiles("advanced.vert", "advanced.frag", NULL); // we bind some uniforms glUseProgram(glfw_context->simple_program); GLint itime_loc = glGetUniformLocation(glfw_context->simple_program, "iTime"); GLint imouse_loc = glGetUniformLocation(glfw_context->simple_program, "iMouse"); ires_loc = glGetUniformLocation(glfw_context->simple_program, "iResolution"); glUniform1f(itime_loc, 0); glUniform2f(ires_loc, fbg->width, fbg->height); // we change the FBG texture to linear glBindTexture(GL_TEXTURE_2D, glfw_context->fbg_texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glGenerateMipmap(GL_TEXTURE_2D); // we load a cube as a .obj file (this is handled by the cwobj library which is a small single C header obj library) cwobj *cube_mesh = cwobj_load("bad_skull.obj", NULL); cwobj_geo *cube_geo = cube_mesh->geometry; GLuint cube_vao = fbg_glfwCreateVAO(cube_geo->indice_n, &cube_geo->indice[0], sizeof(CWOBJ_INDICE_TYPE), cube_geo->vertice_n, &cube_geo->vertice[0], cube_geo->texcoord_n, &cube_geo->texcoord[0], cube_geo->normal_n, &cube_geo->normal[0], cube_geo->color_n, &cube_geo->color[0]); // load a simple shader to handle our cube GLuint program_3d = fbg_glfwCreateProgramFromFiles("advanced_3d.vert", "advanced_3d.frag", NULL); glUseProgram(program_3d); GLint m_loc = glGetUniformLocation(program_3d, "m"); GLint v_loc = glGetUniformLocation(program_3d, "v"); GLint p_loc = glGetUniformLocation(program_3d, "p"); GLuint texLoc = glGetUniformLocation(program_3d, "t0"); glUniform1i(texLoc, 0); texLoc = glGetUniformLocation(program_3d, "t1"); glUniform1i(texLoc, 1); // setup regular MVP for 3D stuff mat4 view, model; glm_perspective(glm_rad(45.0f), (float)fbg->width / (float)fbg->height, 0.1f, 100.0f, proj); glm_lookat((vec3){0.0f, 0.0f, 12.0f}, (vec3){0.0f, 0.0f, 0.0f}, (vec3){0.0f, 1.0f, 0.0f}, view); glm_mat4_identity(model); do { //fbg_clear(fbg, 0); fbg_glfwClear(); fbg_image(fbg, img, 0, 0); fbg_drawInto(fbg, img->data); fbg_fadeDown(fbg, 1); int c = 0; for (int i = 0; i < pcount; i += 4) { float x = points[i]; float y = points[i + 1]; if (x <= 0) { points[i] = fbg->width - 1; } if (x >= fbg->width - 1) { points[i] = 0; } if (y <= 0) { points[i + 1] = fbg->height - 1; } if (y >= fbg->height - 1) { points[i + 1] = 0; } float vx = points[i + 2]; float vy = points[i + 3]; fbg_hslToRGB(&color, abs(sin(x / (float)fbg->width * 3.1415 / 2) * 360), fbg_randf(0.5f, 1), 0.5f); fbg_getPixel(fbg, x, y, &color2); fbg_recta(fbg, x, y, 1, 1, (color.r + color2.r) / 2, (color.g + color2.g) / 2, (color.b + color2.b) / 2, i % 255); points[i] += vx; points[i + 1] += vy; c += 1; } fbg_drawInto(fbg, NULL); fbg_write(fbg, "FPS:", 4, 2); fbg_write(fbg, fbg->fps_char, 32 + 8, 2); // show the cube over the FBG content glDisable(GL_DEPTH_TEST); //glEnable(GL_BLEND); //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_DST_ALPHA); fbg_draw(fbg); // OpenGL stuff glDisable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glBindVertexArray(cube_vao); glUseProgram(program_3d); float scale_motion = 2.75 + fabsf(sin(motion / 24.) / 8.) * 28.; glm_translate_make(model, (vec3){0., 0., scale_motion}); glm_rotate(model, sin(motion / 8.), (vec3){0., 1., 0.25}); glm_rotate(model, cos(motion / 14.) / 2., (vec3){1., 1., 1.}); //glm_scale(model, (vec3){scale_motion, scale_motion, scale_motion}); // upload M V P as separate components //glm_mat4_mulN((mat4 *[]){&proj, &view}, 2, vp); glUniformMatrix4fv(v_loc, 1, GL_FALSE, (float *)view); glUniformMatrix4fv(p_loc, 1, GL_FALSE, (float *)proj); glUniformMatrix4fv(m_loc, 1, GL_FALSE, (float *)model); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, glfw_context->fbg_texture); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, bone_texture); glDrawElements(GL_TRIANGLES, cube_geo->indice_n, GL_UNSIGNED_INT, (void*)0); glBindVertexArray(0); glUseProgram(0); // fbg_flip(fbg); motion += 0.5f; // update our uniforms glUseProgram(glfw_context->simple_program); glUniform1f(itime_loc, glfwGetTime()); double xpos, ypos; glfwGetCursorPos(glfw_context->window, &xpos, &ypos); glUniform4f(imouse_loc, xpos, ypos, 0, 0); } while (keep_running && !fbg_glfwShouldClose(fbg)); cwobj_free(cube_mesh); glDeleteProgram(program_3d); glDeleteVertexArrays(1, &cube_vao); glDeleteTextures(1, &bone_texture); fbg_freeImage(img); fbg_freeImage(bone_image); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/glfw_lua.c ================================================ /** * Advanced example which use Lua scripting language to provide a sort of multithreaded Processing-like environment * to build FB Graphics graphical sketches from a Lua script without the need to compile any C code. * * This use 8 cores, all threads (fbg fragments) have their own Lua state and call the Lua draw() function at each frames * * See 'sketch.lua' * * This could be extended to be a complete Processing-like environment easily. * * Note : It only offer clear / rect and image functions inside Lua code and the compositing function is useless (not yet complete) */ #include #include #include #include #include #include #include "glfw/fbg_glfw.h" #include #include #include "luajit.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } // fbg specific LUA code that we add automatically to any loaded LUA scripts // this actually expose a sample of the C fbg library to the LUA script with short function name matching the Processing language const char *fbg_lua_header = "local ffi = require(\"ffi\")\n" "local fbg = ffi.load(\"./libfbg.so\")\n" "ffi.cdef[[\n" "void fbg_background(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b);\n" "void fbg_frect(struct _fbg *fbg, int x, int y, int w, int h);\n" "void fbg_fill(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b);\n" "struct _fbg_img *fbg_loadImage(struct _fbg *fbg, const char *filename);\n" "void fbg_image(struct _fbg *fbg, struct _fbg_img *img, int x, int y);\n" "]]\n" // short function names definition (Processing-like interface) "function background (r, g, b) fbg.fbg_background(C_fbg, r, g, b) end\n" "function rect (x, y, w, h, r, g, b) fbg.fbg_frect(C_fbg, x, y, w, h) end\n" "function fill (r, g, b) fbg.fbg_fill(C_fbg, r, g, b) end\n" "function loadImage (filename) return fbg.fbg_loadImage(C_fbg, filename) end\n" "function image (img, x, y) fbg.fbg_image(C_fbg, img, x, y) end\n" "\n\n"; struct _fragment_user_data { lua_State *lua_state; }; struct _file_data { char *buffer; long numbytes; }; // load a file into a buffer with reserved space for a header struct _file_data *loadFileInBuffer(const char *filename, size_t header_size) { FILE *f = fopen(filename, "r"); if (f == NULL) { return NULL; } fseek(f, 0L, SEEK_END); long numbytes = ftell(f); fseek(f, 0L, SEEK_SET); struct _file_data *fd = (struct _file_data *)malloc(sizeof(struct _file_data)); if (fd == NULL) { fclose(f); return NULL; } fd->numbytes = numbytes; fd->buffer = (char*)calloc(numbytes + header_size, sizeof(char)); if (fd->buffer == NULL) { fclose(f); free(fd); return NULL; } int br = fread(&fd->buffer[header_size], sizeof(char), numbytes, f); if (br != numbytes) { free(fd->buffer); fclose(f); free(fd); return NULL; } fclose(f); return fd; } // load a 'sketch', a lua script that will get evaluated per fragments (dedicated graphics thread) struct _fragment_user_data *loadSketch(const char *sketch_filename) { struct _fragment_user_data *user_data = (struct _fragment_user_data *)calloc(1, sizeof(struct _fragment_user_data)); // we create a new lua state per thread user_data->lua_state = luaL_newstate(); luaL_openlibs(user_data->lua_state); size_t header_size = strlen(fbg_lua_header); // load file in memory struct _file_data *sketch_content = loadFileInBuffer(sketch_filename, header_size); if (sketch_content == NULL) { printf("Couldn't load file: %s\n", lua_tostring(user_data->lua_state, -1)); fflush(stdout); lua_close(user_data->lua_state); free(user_data); return NULL; } // add our fbg specific Lua code memcpy(sketch_content->buffer, fbg_lua_header, header_size); // pass buffer to Lua int status = luaL_loadbuffer(user_data->lua_state, sketch_content->buffer, sketch_content->numbytes + header_size, "sketch_filename"); if (status) { printf("luaL_loadbuffer failed: %s\n", lua_tostring(user_data->lua_state, -1)); fflush(stdout); free(sketch_content->buffer); free(sketch_content); lua_close(user_data->lua_state); free(user_data); return NULL; } // file data no more needed free(sketch_content->buffer); free(sketch_content); // eval script lua_pcall(user_data->lua_state, 0, 0, 0); return user_data; } void freeSketch(struct _fragment_user_data *user_data) { lua_close(user_data->lua_state); free(user_data); } void *fragmentStart(struct _fbg *fbg) { struct _fragment_user_data *sketch = loadSketch("sketch.lua"); if (sketch == NULL) { return NULL; } // register global variables (for fbg context stuff that we will need for our drawing operations) lua_pushlightuserdata(sketch->lua_state, fbg); lua_setglobal(sketch->lua_state, "C_fbg"); lua_pushnumber(sketch->lua_state, fbg->task_id); lua_setglobal(sketch->lua_state, "C_frag_id"); lua_pushnumber(sketch->lua_state, fbg->parallel_tasks); lua_setglobal(sketch->lua_state, "C_frag_len"); lua_pushnumber(sketch->lua_state, fbg->size); lua_setglobal(sketch->lua_state, "C_size"); lua_pushnumber(sketch->lua_state, fbg->width); lua_setglobal(sketch->lua_state, "C_width"); lua_pushnumber(sketch->lua_state, fbg->height); lua_setglobal(sketch->lua_state, "C_height"); return sketch; } void fragment(struct _fbg *fbg, void *user_data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)user_data; if (!ud) { return; } // evaluate sketch draw function lua_getglobal(ud->lua_state, "draw"); lua_pcall(ud->lua_state, 0, 0, 0); } void fragmentStop(struct _fbg *fbg, void *user_data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)user_data; freeSketch(ud); } struct _fragment_user_data *main_sketch = NULL; void fbg_compositing(struct _fbg *fbg, unsigned char *buffer, int task_id) { // this doesn't work yet (the idea is to allow compositing function to be defined from the Lua script) lua_getglobal(main_sketch->lua_state, "compositing"); lua_pcall(main_sketch->lua_state, 0, 0, 0); for (int j = 0; j < fbg->size; j += 1) { fbg->back_buffer[j] = fbg->back_buffer[j] + buffer[j]; } } int program() { struct _fbg *fbg = fbg_glfwSetup(800, 600, 3, "glfw example", 0, 0, 1); if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadImage(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 7); srand(time(NULL)); signal(SIGINT, int_handler); main_sketch = fragmentStart(fbg); do { fbg_glfwClear(); // evaluate sketch draw function lua_getglobal(main_sketch->lua_state, "draw"); lua_pcall(main_sketch->lua_state, 0, 0, 0); //fbg_clear(fbg, 0); for (int j = 0; j < fbg->parallel_tasks; j += 1) { fbg_write(fbg, fbg->fps_char, 2, 2 + j * 10); } fbg_draw(fbg, fbg_compositing); fbg_flip(fbg); } while (keep_running && !fbg_glfwShouldClose(fbg)); fragmentStop(fbg, main_sketch); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); return 0; } int main(int argc, char* argv[]) { return program(); } ================================================ FILE: custom_backend/glfw_parallel.c ================================================ #include #include #include #include #include "glfw/fbg_glfw.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } // user data example struct _fragment_user_data { float offset_x; float offset_y; float velx; float vely; }; void *fragmentStart(struct _fbg *fbg) { struct _fragment_user_data *user_data = (struct _fragment_user_data *)calloc(1, sizeof(struct _fragment_user_data)); user_data->offset_x = fbg->task_id * 32.0f; user_data->offset_y = fbg->task_id * 32.0f; float signx = 1; float signy = 1; if (fbg_randf(0, 1) > 0.5) { signx = -1; } if (fbg_randf(0, 1) > 0.5) { signy = -1; } user_data->velx = fbg_randf(4, 8) * signx; user_data->vely = fbg_randf(4, 8) * signy; return user_data; } void fragment(struct _fbg *fbg, void *user_data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)user_data; float c = (float)fbg->task_id / fbg->parallel_tasks * 255; fbg_recta(fbg, ud->offset_x, ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, fbg->width - ud->offset_x, fbg->height - ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, fbg->width - ud->offset_x, ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, ud->offset_x, fbg->height - ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); ud->offset_x += ud->velx; ud->offset_y += ud->vely; if (ud->offset_x <= 32) { ud->velx = -ud->velx; ud->offset_x = 32; } else if (ud->offset_x > fbg->width - 32) { ud->velx = -ud->velx; ud->offset_x = fbg->width - 32; } if (ud->offset_y <= 32) { ud->vely = -ud->vely; ud->offset_y = 32; } else if (ud->offset_y > fbg->height - 32) { ud->vely = -ud->vely; ud->offset_y = fbg->height - 32; } } void fragmentStop(struct _fbg *fbg, void *data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)data; free(ud); } void fbg_XORMixing(struct _fbg *fbg, unsigned char *buffer, int task_id) { for (int j = 0; j < fbg->size; j += 1) { fbg->back_buffer[j] = fbg->back_buffer[j] ^ buffer[j]; } } int main(int argc, char* argv[]) { struct _fbg *fbg = fbg_glfwSetup(800, 600, 3, "glfw example", 0, 0, 1); if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 7); srand(time(NULL)); signal(SIGINT, int_handler); do { fbg_glfwClear(); fbg_clear(fbg, 0); for (int j = 0; j < fbg->parallel_tasks; j += 1) { fbg_write(fbg, fbg->fps_char, 2, 2 + j * 10); } fbg_draw(fbg, fbg_XORMixing); fbg_flip(fbg); } while (keep_running && !fbg_glfwShouldClose(fbg)); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/opengl_es2/fbg_opengl_es2.c ================================================ #include #include #include "fbg_opengl_es2.h" const GLfloat fbg_gles2Quad[] = { -1.0f, 1.0f, 0.0f, -1.0f, -1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f, 0.0f, // vertices 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f }; // UV const char *fbg_gles2SimpleVs = "attribute vec3 vp; \ attribute vec2 vu; \ varying vec2 uv; \ void main() { \ uv = vu; \ gl_Position = vec4(vp, 1.0); \ }"; const char *fbg_gles2SimpleFs = "precision mediump float; \ varying vec2 uv; \ uniform sampler2D t0; \ void main() { \ gl_FragColor = texture2D(t0, uv); \ }"; void fbg_gles2Draw(struct _fbg *fbg); void fbg_gles2Flip(struct _fbg *fbg); void fbg_gles2Free(struct _fbg *fbg); #ifdef FBG_RPI struct _fbg *fbg_gles2Setup() { bcm_host_init(); #else // fbdev struct _fbg *fbg_gles2Setup(const char *fb_device, int components) { #endif struct _fbg_gles2_context *gles2_context = (struct _fbg_gles2_context *)calloc(1, sizeof(struct _fbg_gles2_context)); if (!gles2_context) { fprintf(stderr, "fbg_gles2Setup: gles2 context calloc failed!\n"); return NULL; } #ifndef FBG_RPI int fd = open(fb_device, O_RDWR); if (fd == -1) { printf("fbg_gles2Setup: cannot open %s device\n", fb_device); free(gles2_context); return NULL; } if (ioctl(fd, FBIOGET_VSCREENINFO, &gles2_context->vinfo)) { printf("fbg_gles2Setup: ioctl FBIOGET_VSCREENINFO failed\n"); free(gles2_context); close(fd); return NULL; } gles2_context->fd = fd; #else static EGL_DISPMANX_WINDOW_T nativewindow; DISPMANX_ELEMENT_HANDLE_T dispman_element; DISPMANX_DISPLAY_HANDLE_T dispman_display; DISPMANX_UPDATE_HANDLE_T dispman_update; VC_RECT_T dst_rect; VC_RECT_T src_rect; #endif //setenv("EGL_PLATFORM", "fbdev", 0); //setenv("FRAMEBUFFER", fb_device, 0); EGLDisplay egl_display; EGLContext egl_context; EGLSurface egl_surface; egl_display = eglGetDisplay(EGL_DEFAULT_DISPLAY); if (egl_display == EGL_NO_DISPLAY) { printf("fbg_gles2Setup: eglGetDisplay failed with EGL_NO_DISPLAY\n"); free(gles2_context); #ifndef FBG_RPI close(fd); #endif return NULL; } if (!eglInitialize(egl_display, NULL, NULL)) { printf("fbg_gles2Setup: eglInitialize failed\n"); free(gles2_context); #ifndef FBG_RPI close(fd); #endif return NULL; } #ifdef FBG_RPI static const EGLint attr[] = { EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_DEPTH_SIZE, 16, EGL_SAMPLES, 0, EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_NONE }; #else static const EGLint attr[] = { /*EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 0, EGL_DEPTH_SIZE, 16, EGL_STENCIL_SIZE, 16,*/ EGL_BUFFER_SIZE, 16, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL_NONE }; #endif EGLConfig eglconf; EGLint num_config; #ifndef FBG_RPI if (!eglChooseConfig(egl_display, attr, &eglconf, 1, &num_config)) { printf("fbg_gles2Setup: eglChooseConfig failed\n"); eglTerminate(egl_display); free(gles2_context); close(fd); return NULL; } #else if (!eglSaneChooseConfigBRCM(egl_display, attr, &eglconf, 1, &num_config)) { printf("fbg_gles2Setup: eglSaneChooseConfigBRCM failed\n"); eglTerminate(egl_display); free(gles2_context); return NULL; } #endif #ifdef FBG_RPI EGLBoolean result = eglBindAPI(EGL_OPENGL_ES_API); if (result == EGL_FALSE || result == EGL_BAD_PARAMETER) { printf("fbg_gles2Setup: eglCreateContext failed with EGL_NO_CONTEXT\n"); eglTerminate(egl_display); free(gles2_context); return NULL; } #endif static const EGLint ctxattr[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; egl_context = eglCreateContext(egl_display, eglconf, EGL_NO_CONTEXT, ctxattr); if (egl_context == EGL_NO_CONTEXT) { printf("fbg_gles2Setup: eglCreateContext failed with EGL_NO_CONTEXT\n"); eglTerminate(egl_display); free(gles2_context); #ifndef FBG_RPI close(fd); #endif return NULL; } uint32_t screen_width, screen_height; uint32_t render_width, render_height; #ifdef FBG_RPI int32_t success = graphics_get_display_size(0 /* LCD */, &screen_width, &screen_height); dst_rect.x = 0; dst_rect.y = 0; dst_rect.width = screen_width; dst_rect.height = screen_height; // change this for custom render size render_width = screen_width; render_height = screen_height; src_rect.x = 0; src_rect.y = 0; src_rect.width = render_width << 16; src_rect.height = render_height << 16; dispman_display = vc_dispmanx_display_open(0 /* LCD */); dispman_update = vc_dispmanx_update_start(0); dispman_element = vc_dispmanx_element_add(dispman_update, dispman_display, 0/*layer*/, &dst_rect, 0/*src*/, &src_rect, DISPMANX_PROTECTION_NONE, 0 /*alpha*/, 0/*clamp*/, 0/*transform*/); nativewindow.element = dispman_element; nativewindow.width = render_width; nativewindow.height = render_height; vc_dispmanx_update_submit_sync(dispman_update); egl_surface = eglCreateWindowSurface(egl_display, eglconf, &nativewindow, NULL); #else const EGLNativeWindowType native_win = (EGLNativeWindowType) NULL; egl_surface = eglCreateWindowSurface(egl_display, eglconf, native_win, NULL); screen_width = render_width = gles2_context->vinfo.xres; screen_height = render_height = gles2_context->vinfo.yres; #endif if (egl_surface == EGL_NO_SURFACE) { printf("fbg_gles2Setup: eglCreateWindowSurface failed with EGL_NO_SURFACE\n"); eglDestroyContext(egl_display, egl_context); eglTerminate(egl_display); free(gles2_context); #ifndef FBG_RPI close(fd); #endif return NULL; } eglMakeCurrent(egl_display, egl_surface, egl_surface, egl_context); gles2_context->egl_display = egl_display; gles2_context->egl_context = egl_context; gles2_context->egl_surface = egl_surface; gles2_context->simple_program = fbg_gles2CreateProgramFromString(fbg_gles2SimpleVs, fbg_gles2SimpleFs); gles2_context->fbg_vbo = fbg_gles2CreateVBOvu(12, &fbg_gles2Quad[0]); gles2_context->fbg_texture = fbg_gles2CreateTexture(render_width, render_height, components == 4 ? GL_RGBA : GL_RGB); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_ALIGNMENT, 1); glViewport(0, 0, screen_width, screen_height); glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); struct _fbg *fbg = fbg_customSetup(render_width, render_height, components, 1, 1, (void *)gles2_context, fbg_gles2Draw, fbg_gles2Flip, NULL, fbg_gles2Free); return fbg; } void fbg_gles2UpdateBuffer(struct _fbg *fbg) { if (fbg->components == 4) { glReadPixels(0, 0, fbg->width, fbg->height, GL_RGBA, GL_UNSIGNED_BYTE, fbg->back_buffer); } else if (fbg->components == 3) { glReadPixels(0, 0, fbg->width, fbg->height, GL_RGB, GL_UNSIGNED_BYTE, fbg->back_buffer); } } void fbg_gles2Clear() { glClear(GL_COLOR_BUFFER_BIT); } void fbg_gles2Draw(struct _fbg *fbg) { struct _fbg_gles2_context *gles2_context = fbg->user_context; glUseProgram(gles2_context->simple_program); glBindBuffer(GL_ARRAY_BUFFER, gles2_context->fbg_vbo); glEnableVertexAttribArray(0); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*)0); glEnableVertexAttribArray(1); glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*) (12 * sizeof(GLfloat))); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, gles2_context->fbg_texture); if (fbg->components == 4) { glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, fbg->width, fbg->height, GL_RGBA, GL_UNSIGNED_BYTE, fbg->back_buffer); } else if (fbg->components == 3) { glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, fbg->width, fbg->height, GL_RGB, GL_UNSIGNED_BYTE, fbg->back_buffer); } glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glBindBuffer(GL_ARRAY_BUFFER, 0); glUseProgram(0); //glFlush(); //glFinish(); } void fbg_gles2Flip(struct _fbg *fbg) { struct _fbg_gles2_context *gles2_context = fbg->user_context; eglSwapBuffers(gles2_context->egl_display, gles2_context->egl_surface); } void fbg_gles2Free(struct _fbg *fbg) { struct _fbg_gles2_context *gles2_context = fbg->user_context; glDeleteTextures(1, &gles2_context->fbg_texture); glDeleteBuffers(1, &gles2_context->fbg_vbo); glDeleteProgram(gles2_context->simple_program); eglDestroyContext(gles2_context->egl_display, gles2_context->egl_context); eglDestroySurface(gles2_context->egl_display, gles2_context->egl_surface); eglTerminate(gles2_context->egl_display); #ifndef FBG_RPI close(gles2_context->fd); #endif free(gles2_context); } GLuint fbg_gles2CreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img) { GLuint texture = fbg_gles2CreateTexture(img->width, img->height, fbg->components == 4 ? GL_RGBA : GL_RGB); if (fbg->components == 4) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, img->width, img->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, img->data); } else if (fbg->components == 3) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, img->width, img->height, 0, GL_RGB, GL_UNSIGNED_BYTE, img->data); } return texture; } GLuint fbg_gles2CreateTexture(GLuint width, GLuint height, GLint internal_format) { GLuint texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glTexImage2D(GL_TEXTURE_2D, 0, internal_format, width, height, 0, internal_format, GL_UNSIGNED_BYTE, 0); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); return texture; } /* // should be ported ? GLuint fbg_gles2CreateFBO(GLuint texture) { GLuint fbo = 0; glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, texture, 0); GLenum drawBuffers[2] = { GL_COLOR_ATTACHMENT0 }; glDrawBuffers(1, drawBuffers); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { fprintf(stderr, "fbg_gles2reateFBO : glCheckFramebufferStatus failed!\n"); } glBindFramebuffer(GL_FRAMEBUFFER, 0); return fbo; } */ GLuint fbg_gles2CreateVBOvu(GLsizeiptr data_count, const GLvoid *data) { GLuint vbo = 0; glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); // Vertices + UV glBufferData(GL_ARRAY_BUFFER, (data_count + (data_count / 3) * 2) * sizeof(GLfloat), data, GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (GLvoid*)0); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, (GLvoid*) (data_count * sizeof(GLfloat))); glBindBuffer(GL_ARRAY_BUFFER, 0); return vbo; } struct _fbg_vbo_data * fbg_gles2CreateVBO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data) { GLuint vbo = 0; GLuint tbo = 0; GLuint ibo = 0; GLuint nbo = 0; GLuint cbo = 0; glGenBuffers(1, &ibo); // Vertices glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, vertices_count * 3 * sizeof(GLfloat), vertices_data, GL_STATIC_DRAW); int attrib_id = 1; // UVs if (texcoords_data) { glGenBuffers(1, &tbo); glBindBuffer(GL_ARRAY_BUFFER, tbo); glBufferData(GL_ARRAY_BUFFER, texcoords_count * 2 * sizeof(GLfloat), texcoords_data, GL_STATIC_DRAW); attrib_id += 1; } // normals if (normals_data) { glGenBuffers(1, &nbo); glBindBuffer(GL_ARRAY_BUFFER, nbo); glBufferData(GL_ARRAY_BUFFER, normals_count * 3 * sizeof(GLfloat), normals_data, GL_STATIC_DRAW); attrib_id += 1; } // colors if (colors_data) { glGenBuffers(1, &cbo); glBindBuffer(GL_ARRAY_BUFFER, cbo); glBufferData(GL_ARRAY_BUFFER, colors_count * 3 * sizeof(GL_UNSIGNED_BYTE), colors_data, GL_STATIC_DRAW); } glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo); glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_count * sizeof_indice_type, indices_data, GL_STATIC_DRAW); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); struct _fbg_vbo_data *vbo_data = (struct _fbg_vbo_data *)calloc(1, sizeof(struct _fbg_vbo_data)); vbo_data->vbo = vbo; vbo_data->tbo = tbo; vbo_data->ibo = ibo; vbo_data->nbo = nbo; vbo_data->cbo = cbo; return vbo_data; } void fbg_gles2FreeVBOData(struct _fbg_vbo_data *vbo_data) { glDeleteBuffers(1, &vbo_data->vbo); glDeleteBuffers(1, &vbo_data->tbo); glDeleteBuffers(1, &vbo_data->ibo); glDeleteBuffers(1, &vbo_data->nbo); glDeleteBuffers(1, &vbo_data->cbo); free(vbo_data); } void fbg_gles2PrintShaderLog(GLuint obj, int type) { static char log[16384]; if (type == 0) { glGetProgramInfoLog(obj, 16384, 0, log); } else if (type == 1) { glGetShaderInfoLog(obj, 16384, 0, log); } log[16383] = 0; fprintf(stderr, "fbg_gles2PrintShaderLog : BEGIN:\n%s\nEND.\n", log); } GLuint fbg_gles2CreateShader(GLenum type, const GLchar *source) { GLuint shader; GLint status; shader = glCreateShader(type); glShaderSource(shader, 1, (const GLchar**)&source, NULL); glCompileShader(shader); glGetShaderiv(shader, GL_COMPILE_STATUS, &status); if (status != GL_TRUE) { fprintf(stderr, "fbg_gles2CreateShader : Failed to compile shader '%s'!\n", source); fbg_gles2PrintShaderLog(shader, 1); glDeleteShader(shader); return 0; } return shader; } GLuint fbg_gles2CreateShaderFromFile(GLenum type, const char *filename) { FILE *file = fopen(filename, "rt"); if (!file) { fprintf(stderr, "fbg_gles2CreateShaderFromFile : Failed to open shader file '%s'!\n", filename); return 0; } fseek(file, 0, SEEK_END); long size = ftell(file); GLchar *source = (GLchar*)malloc(size + 1); if (!source) { fprintf(stderr, "fbg_gles2CreateShaderFromFile : Malloc failed for '%s'!\n", filename); fclose(file); return 0; } fseek(file, 0, SEEK_SET); source[fread(source, 1, size, file)] = 0; fclose(file); GLuint shader = fbg_gles2CreateShader(type, source); free(source); return shader; } GLuint fbg_gles2CreateProgram(GLuint vertex_shader, GLuint fragment_shader) { GLuint program = 0; GLint status; program = glCreateProgram(); if (vertex_shader) { glAttachShader(program, vertex_shader); } if (fragment_shader) { glAttachShader(program, fragment_shader); } glLinkProgram(program); glGetProgramiv(program, GL_LINK_STATUS, &status); if (status != GL_TRUE) { fprintf(stderr, "fbg_gles2CreateProgram : Failed to link program!\n"); fbg_gles2PrintShaderLog(program, 0); glDeleteProgram(program); return 0; } if (vertex_shader) { glDetachShader(program, vertex_shader); } if (fragment_shader) { glDetachShader(program, fragment_shader); } return program; } GLenum fbg_gles2CreateProgramFromFiles(const char *vs, const char *fs) { GLuint id_vs = 0; GLuint id_fs = 0; if (vs) { id_vs = fbg_gles2CreateShaderFromFile(GL_VERTEX_SHADER, vs); } if (fs) { id_fs = fbg_gles2CreateShaderFromFile(GL_FRAGMENT_SHADER, fs); } GLuint program = fbg_gles2CreateProgram(id_vs, id_fs); if (vs) { glDeleteShader(id_vs); } if (fs) { glDeleteShader(id_fs); } return program; } GLenum fbg_gles2CreateProgramFromString(const char *vs, const char *fs) { GLuint id_vs = 0; GLuint id_fs = 0; if (vs) { id_vs = fbg_gles2CreateShader(GL_VERTEX_SHADER, vs); } if (fs) { id_fs = fbg_gles2CreateShader(GL_FRAGMENT_SHADER, fs); } GLuint program = fbg_gles2CreateProgram(id_vs, id_fs); if (vs) { glDeleteShader(id_vs); } if (fs) { glDeleteShader(id_fs); } return program; } ================================================ FILE: custom_backend/opengl_es2/fbg_opengl_es2.h ================================================ /* Copyright (c) 2019, 2020 Julien Verneuil All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the organization nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef FB_GRAPHICS_OPENGL_ES2_H #define FB_GRAPHICS_OPENGL_ES2_H #include #include #include #include #include #include #include #ifdef FBG_RPI #include "bcm_host.h" #endif #include "fbgraphics.h" //! OpenGL ES 2.0 wrapper data structure struct _fbg_gles2_context { #ifndef FBG_RPI //! Framebuffer file descriptor int fd; //! Framebuffer device var. informations struct fb_var_screeninfo vinfo; #endif //! EGL display EGLDisplay egl_display; //! EGL context EGLContext egl_context; //! EGL surface EGLContext egl_surface; //! EGL image void *egl_image; //! Simple GLSL program (screen-aligned textured quad) GLenum simple_program; //! FBG VBO GLuint fbg_vbo; //! FBG texture (updated at each frames) GLuint fbg_texture; //! tell wether fbg_gles2 should update fbg disp_buffer after rendering int update_buffer; }; //! struct which hold usual VBO data for 3D objects struct _fbg_vbo_data { // VBO (vertices) GLuint vbo; // VBO (texcoords) GLuint tbo; // VBO (indices) GLuint ibo; // VBO (normals) GLuint nbo; // VBO (colors) GLuint cbo; }; //! Simple quad geometry (vertices + UV) extern const GLfloat fbg_gles2Quad[]; //! Simple vertex shader (screen quad, vertices + UV) extern const char *fbg_gles2SimpleVs; //! Simple textured fragment shader extern const char *fbg_gles2SimpleFs; //! initialize a FB Graphics OpenGL ES 2 (fbdev or RPI direct) context /*! \param fb_device framebuffer device; example : /dev/fb0 \param components fbg context color components (4 for RGBA or 3 for RGB) \return FBG data structure pointer */ #ifdef FBG_RPI extern struct _fbg *fbg_gles2Setup(int components); #else extern struct _fbg *fbg_gles2Setup(const char *fb_device, int components); #endif //! OpenGL clear extern void fbg_gles2Clear(); //! this update FBG disp_buffer with the actual rendered OpenGL content /*! \param fbg pointer to a FBG context / data structure */ extern void fbg_gles2UpdateBuffer(struct _fbg *fbg); //! Query the user requested (window close etc) close status /*! \param fbg pointer to a FBG context / data structure \return Boolean indicating close status */ extern int fbg_gles2ShouldClose(struct _fbg *fbg); //! create a non-interpolated (NEAREST) GL texture from a FBG image /*! \param fbg pointer to a FBG context / data structure \param img image structure pointer \return GL texture id */ GLuint fbg_gles2CreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img); //-- A SET OF RAW OPENGL UTILITY FUNCTIONS -- //! create an empty non-interpolated (NEAREST) GL texture /*! \param width width of the requested texture \param height height of the requested texture \param internal_format OpenGL format (GL_RGBA etc.) \return GL texture id */ extern GLuint fbg_gles2CreateTexture(GLuint width, GLuint height, GLint internal_format); //! create a VBO from indexed data, support for vertices, UVs, normals and colors /*! \param indices_count indices count \param indices_data data containing indices \param sizeof_indice_type sizeof indice type \param vertices_count vertices count \param vertices_data data containing vertices \param texcoords_count uv count \param texcoords_data data containing uv \param normals_count normals count \param normals_data data containing normals \param colors_count colors count \param colors_data data containing colors \return _fbg_vbo_data data structure containing the VBOs */ extern struct _fbg_vbo_data * fbg_gles2CreateVBO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data); //! free VBO data (created with fbg_gles2CreateVBO) /*! \param vbo_data data structure containing the VBOs */ extern void fbg_gles2FreeVBOData(struct _fbg_vbo_data *vbo_data); //! create a VBO from vertices + UV data packed into a single array /*! \param data_count vertices data count \param data data containing all vertices (set of 3 x float) then all associated UVs (set of 2 x float) \return GL VBO id */ extern GLuint fbg_gles2CreateVBOvu(GLsizeiptr data_count, const GLvoid *data); //! create a FBO /*! \param texture GL texture id \return GL FBO id */ //extern GLuint fbg_gles2CreateFBO(GLuint texture); //! create a single shader /*! \param type GL shader type \param source shader code \return GL shader id */ extern GLuint fbg_gles2CreateShader(GLenum type, const GLchar *source); //! create a shader from the content of a file /*! \param type GL shader type \param filename file to load \return GL shader id */ extern GLuint fbg_gles2CreateShaderFromFile(GLenum type, const char *filename); //! create a vertex and/or fragment program /*! \param vertex_shader vertex shader id, can be 0 \param fragment_shader fragment shader id, can be 0 \return GL shader id */ extern GLuint fbg_gles2CreateProgram(GLuint vertex_shader, GLuint fragment_shader); //! create a vertex and/or fragment/geometry program from a file /*! \param vs vertex shader file \param fs fragment shader file \return GL shader id */ extern GLenum fbg_gles2CreateProgramFromFiles(const char *vs, const char *fs); //! create a vertex and/or fragment/geometry program from a string /*! \param vs vertex shader string \param fs fragment shader string \return GL shader id */ extern GLenum fbg_gles2CreateProgramFromString(const char *vs, const char *fs); #endif ================================================ FILE: custom_backend/opengl_es2_example.c ================================================ #include #include #include #include #include "opengl_es2/fbg_opengl_es2.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } int main(int argc, char* argv[]) { // fbdev version #ifdef FBG_FBDEV struct _fbg *fbg = fbg_gles2Setup("/dev/fb0", 3); #else // rpi version struct _fbg *fbg = fbg_gles2Setup(3); #endif if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); float x = 0, y = 0, velx = 3.4, vely = 3.425; signal(SIGINT, int_handler); do { fbg_gles2Clear(); fbg_clear(fbg, 128); fbg_rect(fbg, x, y, 40, 40, 255, 0, 0); fbg_write(fbg, fbg->fps_char, 2, 2); fbg_draw(fbg); fbg_flip(fbg); x += velx; y += vely; if (x <= 0 || x > fbg->width - 40) { velx = -velx; } if (y <= 0 || y > fbg->height - 40) { vely = -vely; } } while (keep_running); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/opengl_es2_parallel.c ================================================ #include #include #include #include #include "opengl_es2/fbg_opengl_es2.h" int keep_running = 1; void int_handler(int dummy) { keep_running = 0; } // user data example struct _fragment_user_data { float offset_x; float offset_y; float velx; float vely; }; void *fragmentStart(struct _fbg *fbg) { struct _fragment_user_data *user_data = (struct _fragment_user_data *)calloc(1, sizeof(struct _fragment_user_data)); user_data->offset_x = fbg->task_id * 32.0f; user_data->offset_y = fbg->task_id * 32.0f; float signx = 1; float signy = 1; if (fbg_randf(0, 1) > 0.5) { signx = -1; } if (fbg_randf(0, 1) > 0.5) { signy = -1; } user_data->velx = fbg_randf(4, 8) * signx; user_data->vely = fbg_randf(4, 8) * signy; return user_data; } void fragment(struct _fbg *fbg, void *user_data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)user_data; float c = (float)fbg->task_id / fbg->parallel_tasks * 255; fbg_recta(fbg, ud->offset_x, ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, fbg->width - ud->offset_x, fbg->height - ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, fbg->width - ud->offset_x, ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); fbg_recta(fbg, ud->offset_x, fbg->height - ud->offset_y, 32, 32, c, 255 - c, abs(128 - c), fbg_randf(0, 255)); ud->offset_x += ud->velx; ud->offset_y += ud->vely; if (ud->offset_x <= 32) { ud->velx = -ud->velx; ud->offset_x = 32; } else if (ud->offset_x > fbg->width - 32) { ud->velx = -ud->velx; ud->offset_x = fbg->width - 32; } if (ud->offset_y <= 32) { ud->vely = -ud->vely; ud->offset_y = 32; } else if (ud->offset_y > fbg->height - 32) { ud->vely = -ud->vely; ud->offset_y = fbg->height - 32; } } void fragmentStop(struct _fbg *fbg, void *data) { struct _fragment_user_data *ud = (struct _fragment_user_data *)data; free(ud); } void fbg_XORMixing(struct _fbg *fbg, unsigned char *buffer, int task_id) { for (int j = 0; j < fbg->size; j += 1) { fbg->back_buffer[j] = fbg->back_buffer[j] ^ buffer[j]; } } int main(int argc, char* argv[]) { // fbdev version #ifdef FBG_FBDEV struct _fbg *fbg = fbg_gles2Setup("/dev/fb0"3, ); #else // rpi version struct _fbg *fbg = fbg_gles2Setup(3); #endif if (fbg == NULL) { return 0; } struct _fbg_img *bb_font_img = fbg_loadPNG(fbg, "../examples/bbmode1_8x8.png"); struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33); fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 3); srand(time(NULL)); signal(SIGINT, int_handler); do { fbg_gles2Clear(); fbg_clear(fbg, 0); fbg_draw(fbg, fbg_XORMixing); for (int j = 0; j < fbg->parallel_tasks; j += 1) { fbg_write(fbg, fbg->fps_char, 2, 2 + j * 10); } fbg_flip(fbg); } while (keep_running); fbg_freeImage(bb_font_img); fbg_freeFont(bbfont); fbg_close(fbg); } ================================================ FILE: custom_backend/sketch.lua ================================================ -- a simple multithreaded example which use 8 cores, each displaying their own rectangle on screen (see glfw_lua.c) local x = 0 local velx = 8 function draw () background(0, 0, 0) fill(255, 0, 0) -- 'C_frag_id' is a C variable related to the current fragment (a fragment is a thread related to graphical tasks) rect(x, 64 + C_frag_id * 17, 16, 16) x = x + velx if x < 1 or x >= C_width - 16 then velx = -velx end end function compositing () end ================================================ FILE: docs/README_8md.html ================================================ FB Graphics: README.md File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
README.md File Reference
================================================ FILE: docs/README_8md_source.html ================================================ FB Graphics: README.md Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
README.md
Go to the documentation of this file.
1 FBGraphics : Lightweight C 2D graphics API agnostic library with parallelism support
2 =====
3 
4 FBGraphics (FBG) is a simple C 24, 32 bpp (internal format) graphics library with parallelism and custom rendering backend support (graphics API agnostic).
5 
6 The library is only two .c files on most use cases, the renderer agnostic library `fbgraphics.c` and one of the rendering backend found in `custom_backend` directory.
7 
8 The library come with five backend (see `custom_backend` folder) :
9  * a Linux framebuffer rendering backend (with 16 bpp support through 24/32 bpp conversion)
10  * OpenGL backend which use the [GLFW](http://www.glfw.org/) library
11  * OpenGL ES 2.0 backend for fbdev or Raspberry PI
12  * fast dispmanx backend (Video Core IV; Raspberry PI)
13  * GBA backend (slow due to 24/32 bpp -> 16 bpp support, mostly done as a proof of concept for portability on low memory hardware)
14 
15 Features :
16 
17  * Easy to write / use custom rendering backend support flexible enough to target low memory hardware!
18  * Cross-platform with the GLFW backend (some examples may need to be adapted to the target OS)
19  * Linux framebuffer (fbdev) rendering backend support
20  * Double buffering (with optional page flipping mechanism)
21  * 16, 24 (BGR/RGB), 32 bpp support
22  * GBA rendering backend
23  * OpenGL rendering backend through GLFW
24  * OpenGL ES 2.0 rendering backend for Raspberry PI or through fbdev (tested on Nano PI Fire 3 board)
25  * dispmanx rendering backend (Video Core IV; Raspberry PI)
26  * Optional : Full parallelism, execute graphics code on multiple CPU cores **with a single function**
27  * PNG/JPEG images loading (provided by [LodePNG](https://lodev.org/lodepng/) and [NanoJPEG](http://keyj.emphy.de/nanojpeg/))
28  * Bitmap fonts for drawing texts
29  * Bare-metal graphics primitive (pixels, rectangles, lines, polygon)
30  * Easy to do fading, clipping and screen-clearing related effects (motion blur etc.)
31  * Drawing calls can be used to render into a specified target buffer such as fbg_image etc.
32  * Framerate tracking & display for all cores
33  * Lightweight enough to be hackable; adapt to all kinds of needs (and still support parallelism easily)
34 
35 The library is generic, most functions (including parallel ones) only manipulate buffers and you can build a custom rendering backend pretty easily with few functions call, see the `custom_backend` folder.
36 
37 Table of Contents
38 =================
39 
40 * FBGraphics
41  * [About](#about)
42  * [Quickstart](#quickstart)
43  * [Parallelism](#parallelism)
44  * [Technical implementation](#technical-implementation)
45  * [Benchmark](#benchmark)
46  * [Documentation](#documentation)
47  * [Building](#building)
48  * [Rendering backend](#Rendering-backend)
49  * [GLFW backend](#GLFW-backend)
50  * [OpenGL ES 2.0 backend](#OpenGL-ES-2-backend)
51  * [Screenshots](#screenshots)
52  * [License](#license)
53 
54 ## About
55 
56 FBGraphics was built to produce fullscreen pixels effects easily (think of Processing-like creative coding etc.) with non-accelerated framebuffer by leveraging multi-core processors, it is a bit like a software GPU but much less complex and featured, the initial target platform was a Raspberry PI 3B / NanoPI.
57 
58 FBGraphics was extended to support any numbers of custom rendering backend; all graphics calls manipulate internal buffers and a simple interface allow to draw the result the way you want to.
59 
60 FBGraphics can support low memory hardware such as GBA. It should be noted that all internal buffers are manipulated in 24/32 bpp so it has to convert to 16bpp on GBA.
61 
62 An OpenGL rendering backend which use the [GLFW library](http://www.glfw.org/) was created to demonstrate the custom backend feature, it allow to draw the non-accelerated FB Graphics buffer into an OpenGL context through a texture and thus allow to interwine 3D or 2D graphics produced with standard OpenGL calls with CPU-only graphics produced by FBGraphics draw calls.
63 
64 An OpenGL ES 2.0 backend is also available with similar features, it target platforms with support for OpenGL ES 2.0 through fbdev (tested on Nano PI Fire 3 SBC) or Raspberry PI dispmanx and similar platforms, it wouldn't be hard to extend this for more OpenGL ES 2.0 platforms...
65 
66 There is also a dispmanx backend targeting Raspberry PI, it have better performances than the OpenGL ES 2 backend on this platform and is recommended if you don't need 3D stuff.
67 
68 FBGraphics was built so that it is possible to create any number of rendering context using different backend running at the same time while exploiting multi-core processors... the content of any rendering context can be transfered into other context through images when calling `fbg_drawInto`
69 
70 FBGraphics framebuffer settings support 16, 24 (BGR/RGB), 32 bpp, 16 bpp mode is handled by converting from 24 bpp to 16 bpp upon drawing, page flipping mechanism is disabled in 16 bpp mode, **24 bpp is the fastest mode**.
71 
72 FBGraphics is lightweight and does not intend to be a fully featured graphics library, it provide a limited set of graphics primitive and a small set of useful functions to start doing computer graphics anywhere right away with or without multi-core support.
73 
74 If you want to use the parallelism features with advanced graphics primitives, take a look at great libraries such as [libgd](http://libgd.github.io/), [Adafruit GFX library](https://github.com/adafruit/Adafruit-GFX-Library) or even [ImageMagick](https://imagemagick.org) which should be easy to integrate.
75 
76 FBGraphics is fast but should be used with caution, display bounds checking is not implemented on most primitives, this allow raw performances at the cost of crashs if not careful.
77 
78 Multi-core support is optional and is only enabled when `FBG_PARALLEL` C definition is present.
79 
80 FBGraphics framebuffer backend support a mechanism known as page flipping, it allow fast double buffering by doubling the framebuffer virtual area, it is disabled by default because it is actually slower on some devices. You can enable it with a `fbg_fbdevSetup` call.
81 
82 VSync is automatically enabled if supported.
83 
84 **Note** : FBGraphics framebuffer backend does not let you setup the framebuffer, it expect the framebuffer to be configured prior launch with a command such as :
85 
86 ```
87 fbset -fb /dev/fb0 -g 512 240 512 240 24 -vsync high
88 setterm -cursor off > /dev/tty0
89 ```
90 
91 `fbset` should be available in your package manager.
92 
93 ### Framebuffer Quickstart
94 
95 The simplest example (no parallelism, without texts and images) :
96 
97 ```c
98 #include <sys/stat.h>
99 #include <signal.h>
100 
101 #include "fbg_fbdev.h"
102 #include "fbgraphics.h"
103 
104 int keep_running = 1;
105 
106 void int_handler(int dummy) {
107  keep_running = 0;
108 }
109 
110 int main(int argc, char* argv[]) {
111  signal(SIGINT, int_handler);
112 
113  struct _fbg *fbg = fbg_fbdevSetup("/dev/fb0", 0); // you can also directly use fbg_fbdevInit(); for "/dev/fb0", last argument mean that will not use page flipping mechanism for double buffering (it is actually slower on some devices!)
114 
115  do {
116  fbg_clear(fbg, 0); // can also be replaced by fbg_fill(fbg, 0, 0, 0);
117 
118  fbg_draw(fbg);
119 
120  fbg_rect(fbg, fbg->width / 2 - 32, fbg->height / 2 - 32, 16, 16, 0, 255, 0);
121 
122  fbg_pixel(fbg, fbg->width / 2, fbg->height / 2, 255, 0, 0);
123 
124  fbg_flip(fbg);
125 
126  } while (keep_running);
127 
128  fbg_close(fbg);
129 
130  return 0;
131 }
132 
133 ```
134 
135 A simple quickstart example with most features (but no parallelism, see below) :
136 
137 ```c
138 #include <sys/stat.h>
139 #include <signal.h>
140 
141 #include "fbg_fbdev.h"
142 #include "fbgraphics.h"
143 
144 int keep_running = 1;
145 
146 void int_handler(int dummy) {
147  keep_running = 0;
148 }
149 
150 int main(int argc, char* argv[]) {
151  signal(SIGINT, int_handler);
152 
153  struct _fbg *fbg = fbg_fbdevInit();
154 
155  struct _fbg_img *texture = fbg_loadImage(fbg, "texture.png");
156  struct _fbg_img *bb_font_img = fbg_loadImage(fbg, "bbmode1_8x8.png");
157 
158  struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33);
159 
160  do {
161  fbg_clear(fbg, 0);
162 
163  fbg_draw(fbg);
164 
165  // you can also use fbg_image(fbg, texture, 0, 0)
166  // but you must be sure that your image size fit on the display
167  fbg_imageClip(fbg, texture, 0, 0, 0, 0, fbg->width, fbg->height);
168 
169  fbg_write(fbg, "Quickstart example\nFPS:", 4, 2);
170  fbg_write(fbg, fbg->fps_char, 32 + 8, 2 + 8);
171 
172  fbg_rect(fbg, fbg->width / 2 - 32, fbg->height / 2 - 32, 16, 16, 0, 255, 0);
173 
174  fbg_pixel(fbg, fbg->width / 2, fbg->height / 2, 255, 0, 0);
175 
176  fbg_flip(fbg);
177 
178  } while (keep_running);
179 
180  fbg_freeImage(texture);
181  fbg_freeImage(bb_font_img);
182  fbg_freeFont(bbfont);
183 
184  fbg_close(fbg);
185 
186  return 0;
187 }
188 ```
189 
190 **Note** : Functions like `fbg_clear` or `fbg_fpixel` are fast functions, there is slower equivalent (but more parametrable) such as `fbg_background` or `fbg_pixel`, some functions variant also support transparency such as ``fbg_pixela` or `fbg_recta`.
191 
192 **Note** : You can generate monospace bitmap fonts to be used with `fbg_createFont` function by using my [monoBitmapFontCreator](https://github.com/grz0zrg/monoBitmapFontCreator) tool available [here](https://fbg-bitmap-font-creator.netlify.com/)
193 
194 ### Parallelism
195 
196 Exploiting multiple cores with FBGraphics is really easy, first you have to prepare 3 functions (of which two are optional if you don't have any allocations to do) of the following definition :
197 
198 ```c
199 // optional function
200 void *fragmentStart(struct _fbg *fbg) {
201  // typically used to allocate your per-thread data
202  // see full_example.c for more informations
203 
204  return NULL; // return your user data here
205 }
206 ```
207 
208 ```c
209 void fragment(struct _fbg *fbg, struct _fragment_user_data *user_data) {
210  // this function will be executed by each threads
211  // you are free to call any FBG graphics primitive here
212 
213  fbg_clear(fbg, 0);
214 
215  // you are also free to fill each threads back buffer the way you want to
216  // fbg->task_id : thread identifier (starting at 1, 0 is reserved for the main thread)
217  // each threads will draw an horizontal line, the shade of the blue color will change based on the thread it is drawn from
218  int x = 0, y = 0;
219  for (y = fbg->task_id; y < fbg->height; y += 4) {
220  for (x = 0; x < fbg->width; x += 1) {
221  int i = (x + y * fbg->width) * 3;
222  fbg->back_buffer[i] = fbg->task_id * 85; // note : BGR format
223  fbg->back_buffer[i + 1] = 0;
224  fbg->back_buffer[i + 2] = 0;
225  }
226  }
227 
228  // simple graphics primitive (4 blue rectangle which will be handled by different threads in parallel)
229  fbg_rect(fbg, fbg->task_id * 32, 0, 32, 32, 0, 0, 255);
230 }
231 ```
232 
233 ```c
234 // optional function
235 void fragmentStop(struct _fbg *fbg, struct _fragment_user_data *data) {
236  // typically used to free your per-thread data
237  // see full_example.c for more informations
238 }
239 ```
240 
241 Then you have to create a 'Fragment' which is a FBG multi-core task :
242 
243 ```c
244 fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 3);
245 ```
246 
247 Where :
248 
249 * `fbg` is the main library data structure returned by `fbg_customSetup` and any backend `fbg_backendnameSetup` calls (see available backends in `custom_backend` directory)
250 * `fragmentStart`is a C function which will be executed when the thread start (can be NULL)
251 * `fragment`is a C function which will be executed indefinitly for each threads and where all the draw code will happen
252 * `fragmentStop` is a C function which will be executed when the thread end (can be NULL)
253 * `3`is the number of parallel tasks (this will launch 3 threads)
254 
255 And finally you just have to make a call to your fragment function in your drawing loop and call `fbg_draw`!
256 
257 ```c
258 fragment(fbg, NULL);
259 fbg_draw(fbg, NULL);
260 ```
261 
262 `fbg_draw` will wait until all the data are received from all the threads then draw to screen
263 
264 **Note** : This example will use 4 threads (including your app one) for drawing things on the screen but calling the fragment function in your drawing loop is totally optional, you could for example make use of threads for intensive drawing tasks and just use the main thread to draw the GUI or the inverse etc. it is up to you!
265 
266 And that is all you have to do!
267 
268 See `simple_parallel_example.c` and `full_example.c` for more informations.
269 
270 **Note** : By default, the resulting buffer of each tasks are additively mixed into the main back buffer, you can override this behavior by specifying a mixing function as the last argument of `fbg_draw` such as :
271 
272 ```c
273 // function called for each tasks in the fbg_draw function
274 void selectiveMixing(struct _fbg *fbg, unsigned char *buffer, int task_id) {
275  // fbg is the main fbg structure returned by fbg_customSetup calls and any backend setup calls
276  // buffer is the current task buffer
277  // task_id is the current task id
278  int j = 0;
279  for (j = 0; j < fbg->size; j += 1) {
280  fbg->back_buffer[j] = (fbg->back_buffer[j] > buffer[j]) ? fbg->back_buffer[j] : buffer[j];
281  }
282 }
283 ```
284 
285 Then you just have to specify it to the `fbg_draw` function :
286 
287 ```c
288 fbg_draw(fbg, additiveMixing);
289 ```
290 
291 By using the mixing function, you can have different layers handled by different cores with different compositing rule, see `compositing.c` for an example of alpha blending compositing 2 layers running on their own cores.
292 
293 **Note** : You can only create one Fragment per fbg instance, another call to `fbg_createFragment` will stop all tasks for the passed fbg context and will create a new set of tasks.
294 
295 **Note** : On low performances platforms you may encounter performance issues at high resolution and with a high number of fragments, this is because all the threads buffer need to be mixed back onto the main thread before being displayed and at high resolution / threads count that is alot of pixels to process! You can see an alternative implementation using pure pthread in the `custom_backend` folder and `dispmanx_pure_parallel.c` but it doesn't have compositing. If your platform support some sort of SIMD instructions you could also do all the compositing using SIMD which should result in a 5x or more speed increase!
296 
297 ### Technical implementation
298 
299 FBGraphics threads come with their own fbg context data which is essentialy a copy of the actual fbg context, they make use of C atomic types.
300 
301 Initially parallelism was implemented using [liblfds](http://liblfds.org/) library for its Ringbuffer and Freelist data structure.
302 
303 Now parallelism has two implementation, liblfds and a custom synchronization mechanism which has the advantage to not require additional libraries and thus execute on more platforms.
304 
305 You can still use the liblfds implementation using the `FBG_LFDS` define, it may be faster.
306 
307 #### With liblfds
308 
309 Each threads begin by fetching a pre-allocated buffer from a freelist, then the fragment function is called to fill that buffer, the thread then place the buffer into a ringbuffer data structure which will be fetched upon calling `fbg_draw`, the buffers are then mixed into the main back buffer and put back into the freelist.
310 
311 #### Without liblfds
312 
313 Each threads fragment function is called to fill the local buffer, each threads then wait till that buffer is consumed by the main thread upon calling `fbg_draw`, the buffers are then mixed into the main back buffer and `fbg_draw` wake up all threads.
314 
315 ## Benchmark (framebuffer)
316 
317 A simple unoptimized per pixels screen clearing with 4 cores on a Raspberry PI 3B : 30 FPS @ 1280x768 and 370 FPS @ 320x240
318 
319 Note : Using the dispmanx backend a screen clearing + rectangle moving on a Raspberry PI 3B : 60 FPS @ 1920x1080
320 
321 ### Full example
322 
323 Fullscreen per pixels perlin noise with texture mapping and scrolling (unoptimized)
324 
325 **Device** : Raspberry PI 3B ( Quad Core 1.2GHz )
326 
327 **Settings** : 320x240
328 
329 | Cores used to draw graphics | FPS |
330 | :-------------------------- | :------ |
331 | 1 | 42 FPS |
332 | 2 | 81 FPS |
333 | 3 | 120 FPS |
334 
335 See screenshots below.
336 
337 ### Tunnel example
338 
339 Fullscreen texture-mapped and animated tunnel made of 40800 2px rectangles with motion blur (unoptimized)
340 
341 **Device** : Raspberry PI 3B ( Quad Core 1.2GHz )
342 
343 **Settings** : 320x240
344 
345 | Cores used to draw graphics | FPS |
346 | :-------------------------- | :------ |
347 | 1 | 36 FPS |
348 | 2 | 69 FPS |
349 | 3 | 99 FPS |
350 | 4 | 66 FPS |
351 
352 Note : The framerate drop with 4 cores is due to the main thread being too busy which make all the other threads follow due to the synchronization.
353 
354 See screenshots below.
355 
356 ## Documentation
357 
358 All usable functions and structures are documented in the `fbgraphics.h` file with [Doxygen](http://www.stack.nl/~dimitri/doxygen/)
359 
360 The HTML documentation can be found in the `docs` directory.
361 
362 Examples demonstrating all features are available in the `examples` directory.
363 
364 Some effects come from [my Open Processing sketches](https://www.openprocessing.org/user/130883#sketches)
365 
366 ## Building
367 
368 C11 standard should be supported by the C compiler.
369 
370 All examples found in `examples` directory make use of the framebuffer device `/dev/fb0` and can be built by typing `make` into the examples directory then run them by typing `./run_quickstart` for example (this handle the framebuffer setup prior launch), you will need to compile liblfds for the parallelism features. (see below)
371 
372 All examples were tested on a Raspberry PI 3B with framebuffer settings : 320x240 24 bpp
373 
374 For the default build (no parallelism), FBGraphics come with a header file `fbgraphics.h` and a C file `fbgraphics.c` to be included / compiled / linked with your program plus one of the rendering backend found in `custom_backend` directory, you will also need to compile the `lodepng.c` library and `nanojpeg.c` library, see the examples directory for examples of Makefile.
375 
376 For parallelism support, `FBG_PARALLEL` need to be defined.
377 
378 If you need to use the slightly different parallelism implementation (see technical implementation section) you will need the [liblfds](http://liblfds.org/) library :
379 
380  * Get latest liblfds 7.1.1 package on the official website
381  * uncompress, go into the directory `liblfds711`
382  * go into the directory `build/gcc_gnumake`
383  * type `make` in a terminal
384  * `liblfds711.a` can now be found in the `bin` directory, you need to link against it when compiling (see examples)
385 
386 To compile liblfds parallel examples, just copy `liblfds711.a` / `liblfds711.h` file and `liblfds711` directory into the `examples` directory then type `make lfds711`.
387 
388 **Note** : FBGraphics with liblfds work on ARM64 platforms but you will need liblfds720 which is not yet released.
389 
390 ### Executable size optimization
391 
392 This library may be used for size optimized executable for things like [demos](https://en.wikipedia.org/wiki/Demoscene)
393 
394 PNG and JPEG support can be disabled with the `WITHOUT_JPEG` and `WITHOUT_PNG` define.
395 
396 See `tiny` makefile rule inside the `custom_backend` or `examples` folder for some compiler optimizations related to executable size.
397 
398 Under Linux [sstrip](https://github.com/BR903/ELFkickers/tree/master/sstrip) and [UPX](https://upx.github.io/) can be used to bring the size down even futher.
399 
400 ## Rendering backend
401 
402 See `README` into `custom_backend` folder
403 
404 ## GLFW backend
405 
406 See `README` into `custom_backend` folder
407 
408 The GLFW backend was made to demonstrate how to write a backend but it is complete enough to be used by default.
409 
410 The GLFW backend has a cool lightweight Lua example which setup a Processing-like environment making use of the parallelism feature of the library, allowing the user to prototype multithreaded graphical stuff without C code compilation through the Lua language.
411 
412 ## OpenGL ES 2 backend
413 
414 See `README` into `custom_backend` folder
415 
416 ## GBA backend
417 
418 See `README` into `custom_backend` folder
419 
420 ## Screenshots
421 
422 ![Full example screenshot with three threads](/screenshot1.png?raw=true "Full example screenshot with three threads")
423 
424 ![Tunnel with four threads](/screenshot2.png?raw=true "Tunnel with four threads")
425 
426 ![Earth with four threads](/screenshot3.png?raw=true "Earth with four threads")
427 
428 ![Flags of the world with four threads](/screenshot4.png?raw=true "Flags of the world with four threads")
429 
430 ![Compositing with three threads](/screenshot5.png?raw=true "Compositing with three threads")
431 
432 ## License
433 
434 BSD, see LICENSE file
================================================ FILE: docs/annotated.html ================================================ FB Graphics: Data Structures
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
Data Structures
Here are the data structures with brief descriptions:
 C_fbgFB Graphics context data structure
 C_fbg_dispmanx_contextDispmanx wrapper data structure
 C_fbg_fbdev_contextFbdev wrapper data structure
 C_fbg_fontBitmap font data structure
 C_fbg_gba_contextFbdev wrapper data structure
 C_fbg_gles2_contextOpenGL ES 2.0 wrapper data structure
 C_fbg_glfw_contextGLFW wrapper data structure
 C_fbg_hslHSL color data structure
 C_fbg_imgImage data structure
 C_fbg_rgbRGBA color data structure
 C_fbg_vbo_dataStruct which hold usual VBO data for 3D objects
================================================ FILE: docs/annotated_dup.js ================================================ var annotated_dup = [ [ "_fbg", "struct__fbg.html", "struct__fbg" ], [ "_fbg_dispmanx_context", "struct__fbg__dispmanx__context.html", "struct__fbg__dispmanx__context" ], [ "_fbg_fbdev_context", "fbg__fbdev_8h.html#struct__fbg__fbdev__context", "fbg__fbdev_8h_struct__fbg__fbdev__context" ], [ "_fbg_font", "fbgraphics_8h.html#struct__fbg__font", "fbgraphics_8h_struct__fbg__font" ], [ "_fbg_gba_context", "fbg__gba_8h.html#struct__fbg__gba__context", "fbg__gba_8h_struct__fbg__gba__context" ], [ "_fbg_gles2_context", "fbg__opengl__es2_8h.html#struct__fbg__gles2__context", "fbg__opengl__es2_8h_struct__fbg__gles2__context" ], [ "_fbg_glfw_context", "fbg__glfw_8h.html#struct__fbg__glfw__context", "fbg__glfw_8h_struct__fbg__glfw__context" ], [ "_fbg_hsl", "fbgraphics_8h.html#struct__fbg__hsl", "fbgraphics_8h_struct__fbg__hsl" ], [ "_fbg_img", "fbgraphics_8h.html#struct__fbg__img", "fbgraphics_8h_struct__fbg__img" ], [ "_fbg_rgb", "fbgraphics_8h.html#struct__fbg__rgb", "fbgraphics_8h_struct__fbg__rgb" ], [ "_fbg_vbo_data", "fbg__opengl__es2_8h.html#struct__fbg__vbo__data", "fbg__opengl__es2_8h_struct__fbg__vbo__data" ] ]; ================================================ FILE: docs/classes.html ================================================ FB Graphics: Data Structure Index
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
Data Structure Index
================================================ FILE: docs/dir_2665f63191f4afb0d340db1cd0753229.html ================================================ FB Graphics: glfw Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
glfw Directory Reference

Files

file  fbg_glfw.h [code]
 
================================================ FILE: docs/dir_306cfb62d1d3531b68bf1f0f292c4744.html ================================================ FB Graphics: dispmanx Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
dispmanx Directory Reference

Files

file  fbg_dispmanx.h [code]
 
================================================ FILE: docs/dir_30a16d91d70e9988af00af0764afdb22.html ================================================ FB Graphics: custom_backend Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
custom_backend Directory Reference

Directories

directory  dispmanx
 
directory  fbdev
 
directory  gba
 
directory  glfw
 
directory  opengl_es2
 
================================================ FILE: docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html ================================================ FB Graphics: src Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
src Directory Reference

Files

file  fbgraphics.h [code]
 
================================================ FILE: docs/dir_cd6eaa540ed8d7f18047d0dfe0a4f94a.html ================================================ FB Graphics: fbdev Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbdev Directory Reference

Files

file  fbg_fbdev.h [code]
 
================================================ FILE: docs/dir_ef37642b6b64fd185f53d45d9625a884.html ================================================ FB Graphics: opengl_es2 Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
opengl_es2 Directory Reference

Files

file  fbg_opengl_es2.h [code]
 
================================================ FILE: docs/dir_f87af8b164f0cd63cd64846525e0544b.html ================================================ FB Graphics: gba Directory Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
gba Directory Reference

Files

file  fbg_gba.h [code]
 
================================================ FILE: docs/doxygen.css ================================================ /* The standard CSS for doxygen 1.8.13 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } p.reference, p.definition { font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ h1.groupheader { font-size: 150%; } .title { font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } h2.groupheader { border-bottom: 1px solid #879ECB; color: #354C7B; font-size: 150%; font-weight: normal; margin-top: 1.75em; padding-top: 8px; padding-bottom: 4px; width: 100%; } h3.groupheader { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd { margin-top: 2px; } p.starttd { margin-top: 0px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 0px; margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } div.line:after { content:"\000A"; white-space: pre; } div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } .lineno { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } div.ah, span.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); } div.classindex ul { list-style: none; padding-left: 0; } div.classindex span.ai { display: inline-block; } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .memberdecls td, .fieldtable tr { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memSeparator { border-bottom: 1px solid #DEE4F0; line-height: 1px; margin: 0px; padding: 0px; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; font-size: 80%; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtitle { padding: 8px; border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; background-image: url('nav_f.png'); background-repeat: repeat-x; background-color: #E2E8F2; line-height: 1.25; font-weight: 300; float:left; } .permalink { font-size: 65%; display: inline-block; vertical-align: middle; } .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; display: table !important; width: 100%; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: 400; margin-left: 6px; } .memname td { vertical-align: bottom; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-color: #DFE5F1; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; } .overload { font-family: "courier new",courier,monospace; font-size: 65%; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .paramname code { line-height: 14px; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; vertical-align: middle; } /* @end */ /* these are for tree view inside a (index) page */ div.directory { margin: 10px 0px; border-top: 1px solid #9CAFD4; border-bottom: 1px solid #9CAFD4; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; padding-top: 3px; } .directory td.entry a { outline:none; } .directory td.entry a img { border: none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } .arrow { color: #9CAFD4; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; font-size: 80%; display: inline-block; width: 16px; height: 22px; } .icon { font-family: Arial, Helvetica; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; background-color: #728DC1; color: white; text-align: center; border-radius: 4px; margin-left: 2px; margin-right: 2px; } .icona { width: 24px; height: 22px; display: inline-block; } .iconfopen { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('folderopen.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } .iconfclosed { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('folderclosed.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } .icondoc { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('doc.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } table.directory { font: 400 14px Roboto,sans-serif; } /* @end */ div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable caption { caption-side: top; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { /*width: 100%;*/ margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fieldname { padding-top: 3px; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; /*width: 100%;*/ } .fieldtable td.fielddoc p:first-child { margin-top: 0px; } .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; color: #283A5D; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } table.classindex { margin: 10px; white-space: nowrap; margin-left: 3%; margin-right: 3%; width: 94%; border: 0; border-spacing: 0; padding: 0; } div.ingroups { font-size: 8pt; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } dl { padding: 0 0 0 10px; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { margin-left: 0px; padding-left: 0px; } dl.note { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00D000; } dl.deprecated { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #505050; } dl.todo { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00C0E0; } dl.test { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #3030E0; } dl.bug { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectalign { vertical-align: middle; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .plantumlgraph { text-align: center; } .diagraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 8px 10px 10px; width: 200px; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } /* tooltip related style info */ .ttc { position: absolute; display: none; } #powerTip { cursor: default; white-space: nowrap; background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; box-shadow: 1px 1px 7px gray; display: none; font-size: smaller; max-width: 80%; opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { color: grey; font-style: italic; } #powerTip div.ttname a { font-weight: bold; } #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { color: #006318; } #powerTip div { margin: 0px; padding: 0px; font: 12px/16px Roboto,sans-serif; } #powerTip:before, #powerTip:after { content: ""; position: absolute; margin: 0px; } #powerTip.n:after, #powerTip.n:before, #powerTip.s:after, #powerTip.s:before, #powerTip.w:after, #powerTip.w:before, #powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { border: solid transparent; content: " "; height: 0; width: 0; position: absolute; } #powerTip.n:after, #powerTip.s:after, #powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { border-color: rgba(255, 255, 255, 0); } #powerTip.n:before, #powerTip.s:before, #powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { border-color: rgba(128, 128, 128, 0); } #powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { border-top-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.n:before { border-top-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { left: 50%; } #powerTip.nw:after, #powerTip.nw:before { right: 14px; } #powerTip.ne:after, #powerTip.ne:before { left: 14px; } #powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { border-bottom-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { border-bottom-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { left: 50%; } #powerTip.sw:after, #powerTip.sw:before { right: 14px; } #powerTip.se:after, #powerTip.se:before { left: 14px; } #powerTip.e:after, #powerTip.e:before { left: 100%; } #powerTip.e:after { border-left-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { border-left-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { right: 100%; } #powerTip.w:after { border-right-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { border-right-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } } /* @group Markdown */ /* table.markdownTable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.markdownTableHead tr { } table.markdownTableBodyLeft td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } th.markdownTableHeadLeft { text-align: left } th.markdownTableHeadRight { text-align: right } th.markdownTableHeadCenter { text-align: center } */ table.markdownTable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } th.markdownTableHeadLeft, td.markdownTableBodyLeft { text-align: left } th.markdownTableHeadRight, td.markdownTableBodyRight { text-align: right } th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } /* @end */ ================================================ FILE: docs/dynsections.js ================================================ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); var summary = $('#'+base+'-summary'); var content = $('#'+base+'-content'); var trigger = $('#'+base+'-trigger'); var src=$(trigger).attr('src'); if (content.is(':visible')===true) { content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; } function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } function toggleLevel(level) { $('table.directory tr').each(function() { var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l FB Graphics: fbg_dispmanx.h File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_dispmanx.h File Reference
#include <sys/ioctl.h>
#include <linux/fb.h>
#include <unistd.h>
#include <fcntl.h>
#include <GLES2/gl2.h>
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include "bcm_host.h"
#include "fbgraphics.h"

Go to the source code of this file.

Data Structures

struct  _fbg_dispmanx_context
 dispmanx wrapper data structure More...
 

Functions

struct _fbgfbg_dispmanxSetup (uint32_t displayNumber)
 initialize a FB Graphics dispmanx context More...
 
void fbg_dispmanxOnFlip (struct _fbg *fbg, void(*opt_flip)(struct _fbg *fbg))
 add additional flip content (will be executed between dispmanx start / sync) More...
 

Function Documentation

◆ fbg_dispmanxOnFlip()

void fbg_dispmanxOnFlip ( struct _fbg fbg,
void(*)(struct _fbg *fbg)  opt_flip 
)

add additional flip content (will be executed between dispmanx start / sync)

Parameters
fbgFBG data structure pointer
opt_flipflip function executed between dispmanx start / sync upong fbg_flip() call

◆ fbg_dispmanxSetup()

struct _fbg* fbg_dispmanxSetup ( uint32_t  displayNumber)

initialize a FB Graphics dispmanx context

Parameters
displayNumberdispmanx display number
Returns
FBG data structure pointer
================================================ FILE: docs/fbg__dispmanx_8h.js ================================================ var fbg__dispmanx_8h = [ [ "_fbg_dispmanx_context", "struct__fbg__dispmanx__context.html", "struct__fbg__dispmanx__context" ], [ "fbg_dispmanxOnFlip", "fbg__dispmanx_8h.html#ac0a4c6e0821a33671fae87e7c5fb7fe2", null ], [ "fbg_dispmanxSetup", "fbg__dispmanx_8h.html#a84447aff22c0387208aa478eafd983f7", null ] ]; ================================================ FILE: docs/fbg__dispmanx_8h_source.html ================================================ FB Graphics: fbg_dispmanx.h Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_dispmanx.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2019, 2020 Julien Verneuil
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the organization nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY
20  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FB_GRAPHICS_DISPMANX_H
29 #define FB_GRAPHICS_DISPMANX_H
30 
31  #include <sys/ioctl.h>
32  #include <linux/fb.h>
33  #include <unistd.h>
34  #include <fcntl.h>
35 
36  #include <GLES2/gl2.h>
37  #include <EGL/egl.h>
38  #include <EGL/eglext.h>
39 
40  #include "bcm_host.h"
41 
42  #include "fbgraphics.h"
43 
44 #ifdef FBG_MMAL
45  #include <interface/mmal/mmal.h>
46  #include <interface/mmal/util/mmal_util.h>
47  #include <interface/mmal/util/mmal_connection.h>
48  #include <interface/mmal/util/mmal_util_params.h>
49 #endif
50 
53 #ifdef FBG_MMAL
54  MMAL_COMPONENT_T *render;
57  MMAL_PORT_T *input;
59  MMAL_POOL_T *pool;
60 #endif
61  DISPMANX_DISPLAY_HANDLE_T display;
64  DISPMANX_RESOURCE_HANDLE_T back_resource;
66  DISPMANX_RESOURCE_HANDLE_T front_resource;
68  DISPMANX_ELEMENT_HANDLE_T elem;
70  VC_IMAGE_TYPE_T resource_type;
72  DISPMANX_UPDATE_HANDLE_T update;
74  VC_RECT_T *src_rect;
76  VC_RECT_T *dst_rect;
77 
79  void (*opt_flip)(struct _fbg *fbg);
80 
82  int pitch;
83  };
84 
86 
90  extern struct _fbg *fbg_dispmanxSetup(uint32_t displayNumber);
91 
93 
97  extern void fbg_dispmanxOnFlip(struct _fbg *fbg, void (*opt_flip)(struct _fbg *fbg));
98 
99 #endif
VC_IMAGE_TYPE_T resource_type
dispmanx image type (RGB888)
Definition: fbg_dispmanx.h:70
DISPMANX_RESOURCE_HANDLE_T back_resource
dispmanx back resource
Definition: fbg_dispmanx.h:64
VC_RECT_T * dst_rect
dispmanx src rect
Definition: fbg_dispmanx.h:76
DISPMANX_UPDATE_HANDLE_T update
dispmanx update
Definition: fbg_dispmanx.h:72
dispmanx wrapper data structure
Definition: fbg_dispmanx.h:52
DISPMANX_DISPLAY_HANDLE_T display
dispmanx display
Definition: fbg_dispmanx.h:62
VC_RECT_T * src_rect
dispmanx src rect
Definition: fbg_dispmanx.h:74
DISPMANX_ELEMENT_HANDLE_T elem
dispmanx elem
Definition: fbg_dispmanx.h:68
void(* opt_flip)(struct _fbg *fbg)
optional flip content (will be executed between dispmanx start / sync)
Definition: fbg_dispmanx.h:79
DISPMANX_RESOURCE_HANDLE_T front_resource
dispmanx front resource
Definition: fbg_dispmanx.h:66
FB Graphics context data structure.
Definition: fbgraphics.h:123
int pitch
fbg->width * 3
Definition: fbg_dispmanx.h:82
struct _fbg * fbg_dispmanxSetup(uint32_t displayNumber)
initialize a FB Graphics dispmanx context
void fbg_dispmanxOnFlip(struct _fbg *fbg, void(*opt_flip)(struct _fbg *fbg))
add additional flip content (will be executed between dispmanx start / sync)
================================================ FILE: docs/fbg__fbdev_8h.html ================================================ FB Graphics: fbg_fbdev.h File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_fbdev.h File Reference
#include <linux/fb.h>
#include "fbgraphics.h"

Go to the source code of this file.

Data Structures

struct  _fbg_fbdev_context
 fbdev wrapper data structure More...
 

Macros

#define fbg_fbdevInit()   fbg_fbdevSetup(NULL, 0)
 initialize a FB Graphics context with '/dev/fb0' as framebuffer device and no page flipping More...
 

Functions

struct _fbgfbg_fbdevSetup (char *fb_device, int page_flipping)
 initialize a FB Graphics context (framebuffer) More...
 

Data Structure Documentation

◆ _fbg_fbdev_context

struct _fbg_fbdev_context

fbdev wrapper data structure

Definition at line 35 of file fbg_fbdev.h.

Data Fields
unsigned char * buffer Memory-mapped framebuffer.
int fd Framebuffer device file descriptor.
struct fb_fix_screeninfo finfo Framebuffer device fix. informations.
int page_flipping Flag indicating that page flipping is enabled.
struct fb_var_screeninfo vinfo Framebuffer device var. informations.

Macro Definition Documentation

◆ fbg_fbdevInit

#define fbg_fbdevInit ( )    fbg_fbdevSetup(NULL, 0)

initialize a FB Graphics context with '/dev/fb0' as framebuffer device and no page flipping

Definition at line 60 of file fbg_fbdev.h.

Function Documentation

◆ fbg_fbdevSetup()

struct _fbg* fbg_fbdevSetup ( char *  fb_device,
int  page_flipping 
)

initialize a FB Graphics context (framebuffer)

Parameters
fb_deviceframebuffer device (example : /dev/fb0)
page_flippingwether to use page flipping mechanism for double buffering (slow on some devices)
Returns
_fbg structure pointer to pass to any FBG library functions
================================================ FILE: docs/fbg__fbdev_8h.js ================================================ var fbg__fbdev_8h = [ [ "_fbg_fbdev_context", "fbg__fbdev_8h.html#struct__fbg__fbdev__context", [ [ "buffer", "fbg__fbdev_8h.html#ab55635eae34af7a431d2bc1e811ce708", null ], [ "fd", "fbg__fbdev_8h.html#a1bc9cdf0319e87ed2e4f4b7a32397da1", null ], [ "finfo", "fbg__fbdev_8h.html#adff746dbaa8d0ff15492a3003a6ccd4c", null ], [ "page_flipping", "fbg__fbdev_8h.html#a895ef3bfc6f4797eb2812371f8b69b43", null ], [ "vinfo", "fbg__fbdev_8h.html#ae522c89dc6af43b8500741f0f7e8f34f", null ] ] ], [ "fbg_fbdevInit", "fbg__fbdev_8h.html#a8ebf35a2c6451e36bd33e3e985f418dc", null ], [ "fbg_fbdevSetup", "fbg__fbdev_8h.html#a038c291213ab0fa68de9fadd0fb2d31e", null ] ]; ================================================ FILE: docs/fbg__fbdev_8h_source.html ================================================ FB Graphics: fbg_fbdev.h Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_fbdev.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2019, 2020 Julien Verneuil
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the organization nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY
20  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FB_GRAPHICS_FBDEV_H
29 #define FB_GRAPHICS_FBDEV_H
30 
31  #include <linux/fb.h>
32  #include "fbgraphics.h"
33 
37  int fd;
38 
40  unsigned char *buffer;
41 
43  struct fb_var_screeninfo vinfo;
45  struct fb_fix_screeninfo finfo;
46 
49  };
50 
52 
57  extern struct _fbg *fbg_fbdevSetup(char *fb_device, int page_flipping);
58 
60  #define fbg_fbdevInit() fbg_fbdevSetup(NULL, 0)
61 #endif
struct _fbg * fbg_fbdevSetup(char *fb_device, int page_flipping)
initialize a FB Graphics context (framebuffer)
int page_flipping
Flag indicating that page flipping is enabled.
Definition: fbg_fbdev.h:48
fbdev wrapper data structure
Definition: fbg_fbdev.h:35
unsigned char * buffer
Memory-mapped framebuffer.
Definition: fbg_fbdev.h:40
int fd
Framebuffer device file descriptor.
Definition: fbg_fbdev.h:37
struct fb_var_screeninfo vinfo
Framebuffer device var. informations.
Definition: fbg_fbdev.h:43
struct fb_fix_screeninfo finfo
Framebuffer device fix. informations.
Definition: fbg_fbdev.h:45
FB Graphics context data structure.
Definition: fbgraphics.h:123
================================================ FILE: docs/fbg__fbdev_8h_struct__fbg__fbdev__context.js ================================================ var fbg__fbdev_8h_struct__fbg__fbdev__context = [ [ "buffer", "fbg__fbdev_8h.html#ab55635eae34af7a431d2bc1e811ce708", null ], [ "fd", "fbg__fbdev_8h.html#a1bc9cdf0319e87ed2e4f4b7a32397da1", null ], [ "finfo", "fbg__fbdev_8h.html#adff746dbaa8d0ff15492a3003a6ccd4c", null ], [ "page_flipping", "fbg__fbdev_8h.html#a895ef3bfc6f4797eb2812371f8b69b43", null ], [ "vinfo", "fbg__fbdev_8h.html#ae522c89dc6af43b8500741f0f7e8f34f", null ] ]; ================================================ FILE: docs/fbg__gba_8h.html ================================================ FB Graphics: fbg_gba.h File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_gba.h File Reference
#include "fbgraphics.h"

Go to the source code of this file.

Data Structures

struct  _fbg_gba_context
 fbdev wrapper data structure More...
 

Functions

struct _fbgfbg_gbaSetup (int mode)
 initialize a FB Graphics context More...
 

Data Structure Documentation

◆ _fbg_gba_context

struct _fbg_gba_context

fbdev wrapper data structure

Definition at line 34 of file fbg_gba.h.

Data Fields
unsigned short * buffer
int mode

Function Documentation

◆ fbg_gbaSetup()

struct _fbg* fbg_gbaSetup ( int  mode)

initialize a FB Graphics context

Parameters
modeGBA bitmap modes (3 = 240x160x16, 4 = 240x160x8 page flip, 5 = 160x128x16 page flip)
Returns
_fbg structure pointer to pass to any FBG library functions
================================================ FILE: docs/fbg__gba_8h.js ================================================ var fbg__gba_8h = [ [ "_fbg_gba_context", "fbg__gba_8h.html#struct__fbg__gba__context", [ [ "buffer", "fbg__gba_8h.html#aed8228182579172a6666619ee05e4dfe", null ], [ "mode", "fbg__gba_8h.html#abfb08c9ec453d0a38e1b4f78f0894faf", null ] ] ], [ "fbg_gbaSetup", "fbg__gba_8h.html#a6679b30ad162111859a3276397324a83", null ] ]; ================================================ FILE: docs/fbg__gba_8h_source.html ================================================ FB Graphics: fbg_gba.h Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_gba.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2019, 2020 Julien Verneuil
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the organization nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY
20  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FB_GRAPHICS_GBA_H
29 #define FB_GRAPHICS_GBA_H
30 
31  #include "fbgraphics.h"
32 
35  int mode;
36 
37  unsigned short *buffer;
38  };
39 
41 
45  extern struct _fbg *fbg_gbaSetup(int mode);
46 #endif
struct _fbg * fbg_gbaSetup(int mode)
initialize a FB Graphics context
unsigned short * buffer
Definition: fbg_gba.h:37
FB Graphics context data structure.
Definition: fbgraphics.h:123
fbdev wrapper data structure
Definition: fbg_gba.h:34
================================================ FILE: docs/fbg__gba_8h_struct__fbg__gba__context.js ================================================ var fbg__gba_8h_struct__fbg__gba__context = [ [ "buffer", "fbg__gba_8h.html#aed8228182579172a6666619ee05e4dfe", null ], [ "mode", "fbg__gba_8h.html#abfb08c9ec453d0a38e1b4f78f0894faf", null ] ]; ================================================ FILE: docs/fbg__glfw_8h.html ================================================ FB Graphics: fbg_glfw.h File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_glfw.h File Reference
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include "fbgraphics.h"

Go to the source code of this file.

Data Structures

struct  _fbg_glfw_context
 GLFW wrapper data structure. More...
 

Functions

struct _fbgfbg_glfwSetup (int width, int height, int components, const char *title, int monitor, int fullscreen)
 initialize a FB Graphics OpenGL context (GLFW library) More...
 
void fbg_glfwClear ()
 OpenGL clear. More...
 
void fbg_glfwUpdateBuffer (struct _fbg *fbg)
 this update FBG disp_buffer with the actual rendered OpenGL content More...
 
int fbg_glfwShouldClose (struct _fbg *fbg)
 Query the user requested (window close etc) close status. More...
 
void fbg_glfwFullscreen (struct _fbg *fbg, int enable)
 Switch to fullscreen or windowed mode. More...
 
void fbg_glfwResize (struct _fbg *fbg, unsigned int new_width, unsigned new_height)
 Display resize. More...
 
GLuint fbg_glfwCreateTextureFromImage (struct _fbg *fbg, struct _fbg_img *img)
 create a non-interpolated (NEAREST) GL texture from a FBG image More...
 
GLuint fbg_glfwCreateTexture (GLuint width, GLuint height, GLint internal_format)
 create an empty non-interpolated (NEAREST) GL texture More...
 
GLuint fbg_glfwCreateVAO (GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data)
 create a VAO from indexed data, support for vertices, UVs, normals and colors More...
 
GLuint fbg_glfwCreateVAOvu (GLsizeiptr data_count, const GLvoid *data)
 create a VAO from vertices + UV data packed into a single array More...
 
GLuint fbg_glfwCreateFBO (GLuint texture)
 create a FBO More...
 
GLuint fbg_glfwCreateShader (GLenum type, const GLchar *source)
 create a single shader More...
 
GLuint fbg_glfwCreateShaderFromFile (GLenum type, const char *filename)
 create a shader from the content of a file More...
 
GLuint fbg_glfwCreateProgram (GLuint vertex_shader, GLuint fragment_shader, GLuint geometry_shader)
 create a vertex and/or fragment program More...
 
GLenum fbg_glfwCreateProgramFromFiles (const char *vs, const char *fs, const char *gs)
 create a vertex and/or fragment/geometry program from a file More...
 
GLenum fbg_glfwCreateProgramFromString (const char *vs, const char *fs, const char *gs)
 create a vertex and/or fragment/geometry program from a string More...
 

Variables

const GLfloat fbg_glfwQuad []
 Simple quad geometry (vertices + UV) More...
 
const char * fbg_glfwSimpleVs
 Simple vertex shader (screen quad, vertices + UV) More...
 
const char * fbg_glfwSimpleFs
 Simple textured fragment shader. More...
 

Data Structure Documentation

◆ _fbg_glfw_context

struct _fbg_glfw_context

GLFW wrapper data structure.

Definition at line 37 of file fbg_glfw.h.

Data Fields
GLuint fbg_texture FBG texture (updated at each frames)
GLuint fbg_vao FBG VAO.
GLFWmonitor * monitor GLFW monitor.
GLenum simple_program Simple GLSL program (screen-aligned textured quad)
int update_buffer tell wether fbg_glfw should update fbg disp_buffer after rendering
GLFWwindow * window GLFW window.

Function Documentation

◆ fbg_glfwClear()

void fbg_glfwClear ( )

OpenGL clear.

◆ fbg_glfwCreateFBO()

GLuint fbg_glfwCreateFBO ( GLuint  texture)

create a FBO

Parameters
textureGL texture id
Returns
GL FBO id

◆ fbg_glfwCreateProgram()

GLuint fbg_glfwCreateProgram ( GLuint  vertex_shader,
GLuint  fragment_shader,
GLuint  geometry_shader 
)

create a vertex and/or fragment program

Parameters
vertex_shadervertex shader id, can be 0
fragment_shaderfragment shader id, can be 0
geometry_shadergeometry shader id, can be 0
Returns
GL shader id

◆ fbg_glfwCreateProgramFromFiles()

GLenum fbg_glfwCreateProgramFromFiles ( const char *  vs,
const char *  fs,
const char *  gs 
)

create a vertex and/or fragment/geometry program from a file

Parameters
vsvertex shader file
fsfragment shader file
gsgeometry shader file
Returns
GL shader id

◆ fbg_glfwCreateProgramFromString()

GLenum fbg_glfwCreateProgramFromString ( const char *  vs,
const char *  fs,
const char *  gs 
)

create a vertex and/or fragment/geometry program from a string

Parameters
vsvertex shader string
fsfragment shader string
gsgeometry shader string
Returns
GL shader id

◆ fbg_glfwCreateShader()

GLuint fbg_glfwCreateShader ( GLenum  type,
const GLchar *  source 
)

create a single shader

Parameters
typeGL shader type
sourceshader code
Returns
GL shader id

◆ fbg_glfwCreateShaderFromFile()

GLuint fbg_glfwCreateShaderFromFile ( GLenum  type,
const char *  filename 
)

create a shader from the content of a file

Parameters
typeGL shader type
filenamefile to load
Returns
GL shader id

◆ fbg_glfwCreateTexture()

GLuint fbg_glfwCreateTexture ( GLuint  width,
GLuint  height,
GLint  internal_format 
)

create an empty non-interpolated (NEAREST) GL texture

Parameters
widthwidth of the requested texture
heightheight of the requested texture
internal_formatOpenGL format (GL_RGBA etc.)
Returns
GL texture id

◆ fbg_glfwCreateTextureFromImage()

GLuint fbg_glfwCreateTextureFromImage ( struct _fbg fbg,
struct _fbg_img img 
)

create a non-interpolated (NEAREST) GL texture from a FBG image

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
Returns
GL texture id

◆ fbg_glfwCreateVAO()

GLuint fbg_glfwCreateVAO ( GLsizeiptr  indices_count,
const GLvoid *  indices_data,
size_t  sizeof_indice_type,
GLsizeiptr  vertices_count,
const GLvoid *  vertices_data,
GLsizeiptr  texcoords_count,
const GLvoid *  texcoords_data,
GLsizeiptr  normals_count,
const GLvoid *  normals_data,
GLsizeiptr  colors_count,
const GLvoid *  colors_data 
)

create a VAO from indexed data, support for vertices, UVs, normals and colors

Parameters
indices_countindices count
indices_datadata containing indices
sizeof_indice_typesizeof indice type
vertices_countvertices count
vertices_datadata containing vertices
texcoords_countuv count
texcoords_datadata containing uv
normals_countnormals count
normals_datadata containing normals
colors_countcolors count
colors_datadata containing colors
Returns
GL VAO id

◆ fbg_glfwCreateVAOvu()

GLuint fbg_glfwCreateVAOvu ( GLsizeiptr  data_count,
const GLvoid *  data 
)

create a VAO from vertices + UV data packed into a single array

Parameters
data_countvertices data count
datadata containing all vertices (set of 3 x float) then all associated UVs (set of 2 x float)
Returns
GL VAO id

◆ fbg_glfwFullscreen()

void fbg_glfwFullscreen ( struct _fbg fbg,
int  enable 
)

Switch to fullscreen or windowed mode.

Parameters
fbgpointer to a FBG context / data structure
enableBoolean indicating windowed or fullscreen

◆ fbg_glfwResize()

void fbg_glfwResize ( struct _fbg fbg,
unsigned int  new_width,
unsigned  new_height 
)

Display resize.

Parameters
fbgpointer to a FBG context / data structure
new_widthnew display width
new_heightnew display height

◆ fbg_glfwSetup()

struct _fbg* fbg_glfwSetup ( int  width,
int  height,
int  components,
const char *  title,
int  monitor,
int  fullscreen 
)

initialize a FB Graphics OpenGL context (GLFW library)

Parameters
widthwindow width
heightwindow height
componentsfbg context color components (4 for RGBA or 3 for RGB)
titlewindow title
monitormonitor id (0 = primary display)
fullscreen0 = windowed, 1 = fullscreen, 2 = windowed full screen
Returns
FBG data structure pointer

◆ fbg_glfwShouldClose()

int fbg_glfwShouldClose ( struct _fbg fbg)

Query the user requested (window close etc) close status.

Parameters
fbgpointer to a FBG context / data structure
Returns
Boolean indicating close status

◆ fbg_glfwUpdateBuffer()

void fbg_glfwUpdateBuffer ( struct _fbg fbg)

this update FBG disp_buffer with the actual rendered OpenGL content

Parameters
fbgpointer to a FBG context / data structure

Variable Documentation

◆ fbg_glfwQuad

const GLfloat fbg_glfwQuad[]

Simple quad geometry (vertices + UV)

◆ fbg_glfwSimpleFs

const char* fbg_glfwSimpleFs

Simple textured fragment shader.

◆ fbg_glfwSimpleVs

const char* fbg_glfwSimpleVs

Simple vertex shader (screen quad, vertices + UV)

================================================ FILE: docs/fbg__glfw_8h.js ================================================ var fbg__glfw_8h = [ [ "_fbg_glfw_context", "fbg__glfw_8h.html#struct__fbg__glfw__context", [ [ "fbg_texture", "fbg__glfw_8h.html#ab9766ea45a75dae87a27b93097849e29", null ], [ "fbg_vao", "fbg__glfw_8h.html#ae65b56bcf995bc599bc98d6a6d81072a", null ], [ "monitor", "fbg__glfw_8h.html#a0377751d89c499aaa9d3a8b75c6724bb", null ], [ "simple_program", "fbg__glfw_8h.html#ab95a2f530b32939e45f3ee7f453acf36", null ], [ "update_buffer", "fbg__glfw_8h.html#a368de6aed34d9828a84ad7d629a8f96c", null ], [ "window", "fbg__glfw_8h.html#ae249286407780f32b8c65bce835475f4", null ] ] ], [ "fbg_glfwClear", "fbg__glfw_8h.html#a17dd8947f781a20136c59eb9579edf2f", null ], [ "fbg_glfwCreateFBO", "fbg__glfw_8h.html#ae16afafa7eec0ed48b8a8fb38bb83ac4", null ], [ "fbg_glfwCreateProgram", "fbg__glfw_8h.html#a45cf81b5b25c6ef69025693650c9bcb8", null ], [ "fbg_glfwCreateProgramFromFiles", "fbg__glfw_8h.html#aeb42580d7148df3ffbbb590bbf0028a8", null ], [ "fbg_glfwCreateProgramFromString", "fbg__glfw_8h.html#a9454484e4d9b5d484a1b46f35a2ed64b", null ], [ "fbg_glfwCreateShader", "fbg__glfw_8h.html#a3ed78e4ad11ac7e2a021e1747eb59aa8", null ], [ "fbg_glfwCreateShaderFromFile", "fbg__glfw_8h.html#ab156d8b8da0ef3135888942c054bbbeb", null ], [ "fbg_glfwCreateTexture", "fbg__glfw_8h.html#ac328fff77bfd3e7ddafb2dfdf5d6b4b0", null ], [ "fbg_glfwCreateTextureFromImage", "fbg__glfw_8h.html#aca78bdcc45f25aeb9ae74a3d6ef136d1", null ], [ "fbg_glfwCreateVAO", "fbg__glfw_8h.html#a49073f43825b79bdf11b7a20cabac56b", null ], [ "fbg_glfwCreateVAOvu", "fbg__glfw_8h.html#af9d4876755370dc34cb76b9209ff8b6c", null ], [ "fbg_glfwFullscreen", "fbg__glfw_8h.html#ab1e510fded4ac300b4a21efd577604f3", null ], [ "fbg_glfwResize", "fbg__glfw_8h.html#af724a4a5f9f195765ef6b11255851848", null ], [ "fbg_glfwSetup", "fbg__glfw_8h.html#a41d8a89a2bf7c6d2310d07eae206faa9", null ], [ "fbg_glfwShouldClose", "fbg__glfw_8h.html#a723385d297914375f9c5269492b05b50", null ], [ "fbg_glfwUpdateBuffer", "fbg__glfw_8h.html#a88a6523e8ce117e334bad1220bfbc55b", null ], [ "fbg_glfwQuad", "fbg__glfw_8h.html#a06771c76a305bf753611309286e73c07", null ], [ "fbg_glfwSimpleFs", "fbg__glfw_8h.html#a9fd4455e8dddd7c55fb5fb3e5d973f36", null ], [ "fbg_glfwSimpleVs", "fbg__glfw_8h.html#a998669be4cb45dda77c48cb23891fc4e", null ] ]; ================================================ FILE: docs/fbg__glfw_8h_source.html ================================================ FB Graphics: fbg_glfw.h Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_glfw.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2018, Julien Verneuil
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the organization nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY
20  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FB_GRAPHICS_GLFW_H
29 #define FB_GRAPHICS_GLFW_H
30 
31  #include <GL/glew.h>
32  #include <GLFW/glfw3.h>
33 
34  #include "fbgraphics.h"
35 
39  GLFWwindow *window;
41  GLFWmonitor *monitor;
45  GLuint fbg_vao;
47  GLuint fbg_texture;
50  };
51 
53  extern const GLfloat fbg_glfwQuad[];
54 
56  extern const char *fbg_glfwSimpleVs;
57 
59  extern const char *fbg_glfwSimpleFs;
60 
62 
71  extern struct _fbg *fbg_glfwSetup(int width, int height, int components, const char *title, int monitor, int fullscreen);
72 
74  extern void fbg_glfwClear();
75 
77 
80  extern void fbg_glfwUpdateBuffer(struct _fbg *fbg);
81 
83 
87  extern int fbg_glfwShouldClose(struct _fbg *fbg);
88 
90 
94  extern void fbg_glfwFullscreen(struct _fbg *fbg, int enable);
95 
97 
102  extern void fbg_glfwResize(struct _fbg *fbg, unsigned int new_width, unsigned new_height);
103 
105 
110  GLuint fbg_glfwCreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img);
111 
112  //-- A SET OF RAW OPENGL UTILITY FUNCTIONS --
114 
120  extern GLuint fbg_glfwCreateTexture(GLuint width, GLuint height, GLint internal_format);
121 
123 
137  extern GLuint fbg_glfwCreateVAO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type,
138  GLsizeiptr vertices_count, const GLvoid *vertices_data,
139  GLsizeiptr texcoords_count, const GLvoid *texcoords_data,
140  GLsizeiptr normals_count, const GLvoid *normals_data,
141  GLsizeiptr colors_count, const GLvoid *colors_data);
142 
144 
149  extern GLuint fbg_glfwCreateVAOvu(GLsizeiptr data_count, const GLvoid *data);
150 
152 
156  extern GLuint fbg_glfwCreateFBO(GLuint texture);
157 
159 
164  extern GLuint fbg_glfwCreateShader(GLenum type, const GLchar *source);
165 
167 
172  extern GLuint fbg_glfwCreateShaderFromFile(GLenum type, const char *filename);
173 
175 
181  extern GLuint fbg_glfwCreateProgram(GLuint vertex_shader, GLuint fragment_shader, GLuint geometry_shader);
182 
184 
190  extern GLenum fbg_glfwCreateProgramFromFiles(const char *vs, const char *fs, const char *gs);
191 
193 
199  extern GLenum fbg_glfwCreateProgramFromString(const char *vs, const char *fs, const char *gs);
200 
201 #endif
GLuint fbg_glfwCreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img)
create a non-interpolated (NEAREST) GL texture from a FBG image
GLFWmonitor * monitor
GLFW monitor.
Definition: fbg_glfw.h:41
void fbg_glfwResize(struct _fbg *fbg, unsigned int new_width, unsigned new_height)
Display resize.
int components
Display components amount (3 = 24 BPP / 4 = 32 BPP)
Definition: fbgraphics.h:176
GLuint fbg_texture
FBG texture (updated at each frames)
Definition: fbg_glfw.h:47
int update_buffer
tell wether fbg_glfw should update fbg disp_buffer after rendering
Definition: fbg_glfw.h:49
void fbg_glfwUpdateBuffer(struct _fbg *fbg)
this update FBG disp_buffer with the actual rendered OpenGL content
GLuint fbg_glfwCreateVAO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data)
create a VAO from indexed data, support for vertices, UVs, normals and colors
struct _fbg * fbg_glfwSetup(int width, int height, int components, const char *title, int monitor, int fullscreen)
initialize a FB Graphics OpenGL context (GLFW library)
int width
Display width in pixels.
Definition: fbgraphics.h:170
int new_width
Requested new display width (resize event)
Definition: fbgraphics.h:183
int new_height
Requested new display height (resize event)
Definition: fbgraphics.h:185
GLFW wrapper data structure.
Definition: fbg_glfw.h:37
GLenum fbg_glfwCreateProgramFromString(const char *vs, const char *fs, const char *gs)
create a vertex and/or fragment/geometry program from a string
const char * fbg_glfwSimpleFs
Simple textured fragment shader.
const GLfloat fbg_glfwQuad[]
Simple quad geometry (vertices + UV)
int height
Display height in pixels.
Definition: fbgraphics.h:172
int fbg_glfwShouldClose(struct _fbg *fbg)
Query the user requested (window close etc) close status.
GLenum fbg_glfwCreateProgramFromFiles(const char *vs, const char *fs, const char *gs)
create a vertex and/or fragment/geometry program from a file
const char * fbg_glfwSimpleVs
Simple vertex shader (screen quad, vertices + UV)
GLFWwindow * window
GLFW window.
Definition: fbg_glfw.h:39
GLuint fbg_glfwCreateTexture(GLuint width, GLuint height, GLint internal_format)
create an empty non-interpolated (NEAREST) GL texture
GLenum simple_program
Simple GLSL program (screen-aligned textured quad)
Definition: fbg_glfw.h:43
GLuint fbg_glfwCreateVAOvu(GLsizeiptr data_count, const GLvoid *data)
create a VAO from vertices + UV data packed into a single array
GLuint fbg_vao
FBG VAO.
Definition: fbg_glfw.h:45
GLuint fbg_glfwCreateShaderFromFile(GLenum type, const char *filename)
create a shader from the content of a file
FB Graphics context data structure.
Definition: fbgraphics.h:123
void fbg_glfwClear()
OpenGL clear.
GLuint fbg_glfwCreateFBO(GLuint texture)
create a FBO
GLuint fbg_glfwCreateProgram(GLuint vertex_shader, GLuint fragment_shader, GLuint geometry_shader)
create a vertex and/or fragment program
Image data structure.
Definition: fbgraphics.h:91
void fbg_glfwFullscreen(struct _fbg *fbg, int enable)
Switch to fullscreen or windowed mode.
GLuint fbg_glfwCreateShader(GLenum type, const GLchar *source)
create a single shader
================================================ FILE: docs/fbg__glfw_8h_struct__fbg__glfw__context.js ================================================ var fbg__glfw_8h_struct__fbg__glfw__context = [ [ "fbg_texture", "fbg__glfw_8h.html#ab9766ea45a75dae87a27b93097849e29", null ], [ "fbg_vao", "fbg__glfw_8h.html#ae65b56bcf995bc599bc98d6a6d81072a", null ], [ "monitor", "fbg__glfw_8h.html#a0377751d89c499aaa9d3a8b75c6724bb", null ], [ "simple_program", "fbg__glfw_8h.html#ab95a2f530b32939e45f3ee7f453acf36", null ], [ "update_buffer", "fbg__glfw_8h.html#a368de6aed34d9828a84ad7d629a8f96c", null ], [ "window", "fbg__glfw_8h.html#ae249286407780f32b8c65bce835475f4", null ] ]; ================================================ FILE: docs/fbg__opengl__es2_8h.html ================================================ FB Graphics: fbg_opengl_es2.h File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_opengl_es2.h File Reference
#include <sys/ioctl.h>
#include <linux/fb.h>
#include <unistd.h>
#include <fcntl.h>
#include <GLES2/gl2.h>
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include "fbgraphics.h"

Go to the source code of this file.

Data Structures

struct  _fbg_gles2_context
 OpenGL ES 2.0 wrapper data structure. More...
 
struct  _fbg_vbo_data
 struct which hold usual VBO data for 3D objects More...
 

Functions

struct _fbgfbg_gles2Setup (const char *fb_device, int components)
 initialize a FB Graphics OpenGL ES 2 (fbdev or RPI direct) context More...
 
void fbg_gles2Clear ()
 OpenGL clear. More...
 
void fbg_gles2UpdateBuffer (struct _fbg *fbg)
 this update FBG disp_buffer with the actual rendered OpenGL content More...
 
int fbg_gles2ShouldClose (struct _fbg *fbg)
 Query the user requested (window close etc) close status. More...
 
GLuint fbg_gles2CreateTextureFromImage (struct _fbg *fbg, struct _fbg_img *img)
 create a non-interpolated (NEAREST) GL texture from a FBG image More...
 
GLuint fbg_gles2CreateTexture (GLuint width, GLuint height, GLint internal_format)
 create an empty non-interpolated (NEAREST) GL texture More...
 
struct _fbg_vbo_datafbg_gles2CreateVBO (GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data)
 create a VBO from indexed data, support for vertices, UVs, normals and colors More...
 
void fbg_gles2FreeVBOData (struct _fbg_vbo_data *vbo_data)
 free VBO data (created with fbg_gles2CreateVBO) More...
 
GLuint fbg_gles2CreateVBOvu (GLsizeiptr data_count, const GLvoid *data)
 create a VBO from vertices + UV data packed into a single array More...
 
GLuint fbg_gles2CreateShader (GLenum type, const GLchar *source)
 create a FBO More...
 
GLuint fbg_gles2CreateShaderFromFile (GLenum type, const char *filename)
 create a shader from the content of a file More...
 
GLuint fbg_gles2CreateProgram (GLuint vertex_shader, GLuint fragment_shader)
 create a vertex and/or fragment program More...
 
GLenum fbg_gles2CreateProgramFromFiles (const char *vs, const char *fs)
 create a vertex and/or fragment/geometry program from a file More...
 
GLenum fbg_gles2CreateProgramFromString (const char *vs, const char *fs)
 create a vertex and/or fragment/geometry program from a string More...
 

Variables

const GLfloat fbg_gles2Quad []
 Simple quad geometry (vertices + UV) More...
 
const char * fbg_gles2SimpleVs
 Simple vertex shader (screen quad, vertices + UV) More...
 
const char * fbg_gles2SimpleFs
 Simple textured fragment shader. More...
 

Data Structure Documentation

◆ _fbg_gles2_context

struct _fbg_gles2_context

OpenGL ES 2.0 wrapper data structure.

Definition at line 47 of file fbg_opengl_es2.h.

Data Fields
EGLContext egl_context EGL context.
EGLDisplay egl_display EGL display.
void * egl_image EGL image.
EGLContext egl_surface EGL surface.
GLuint fbg_texture FBG texture (updated at each frames)
GLuint fbg_vbo FBG VBO.
int fd Framebuffer file descriptor.
GLenum simple_program Simple GLSL program (screen-aligned textured quad)
int update_buffer tell wether fbg_gles2 should update fbg disp_buffer after rendering
struct fb_var_screeninfo vinfo Framebuffer device var. informations.

◆ _fbg_vbo_data

struct _fbg_vbo_data

struct which hold usual VBO data for 3D objects

Definition at line 73 of file fbg_opengl_es2.h.

Data Fields
GLuint cbo
GLuint ibo
GLuint nbo
GLuint tbo
GLuint vbo

Function Documentation

◆ fbg_gles2Clear()

void fbg_gles2Clear ( )

OpenGL clear.

◆ fbg_gles2CreateProgram()

GLuint fbg_gles2CreateProgram ( GLuint  vertex_shader,
GLuint  fragment_shader 
)

create a vertex and/or fragment program

Parameters
vertex_shadervertex shader id, can be 0
fragment_shaderfragment shader id, can be 0
Returns
GL shader id

◆ fbg_gles2CreateProgramFromFiles()

GLenum fbg_gles2CreateProgramFromFiles ( const char *  vs,
const char *  fs 
)

create a vertex and/or fragment/geometry program from a file

Parameters
vsvertex shader file
fsfragment shader file
Returns
GL shader id

◆ fbg_gles2CreateProgramFromString()

GLenum fbg_gles2CreateProgramFromString ( const char *  vs,
const char *  fs 
)

create a vertex and/or fragment/geometry program from a string

Parameters
vsvertex shader string
fsfragment shader string
Returns
GL shader id

◆ fbg_gles2CreateShader()

GLuint fbg_gles2CreateShader ( GLenum  type,
const GLchar *  source 
)

create a FBO

Parameters
textureGL texture id
Returns
GL FBO idcreate a single shader
Parameters
typeGL shader type
sourceshader code
Returns
GL shader id

◆ fbg_gles2CreateShaderFromFile()

GLuint fbg_gles2CreateShaderFromFile ( GLenum  type,
const char *  filename 
)

create a shader from the content of a file

Parameters
typeGL shader type
filenamefile to load
Returns
GL shader id

◆ fbg_gles2CreateTexture()

GLuint fbg_gles2CreateTexture ( GLuint  width,
GLuint  height,
GLint  internal_format 
)

create an empty non-interpolated (NEAREST) GL texture

Parameters
widthwidth of the requested texture
heightheight of the requested texture
internal_formatOpenGL format (GL_RGBA etc.)
Returns
GL texture id

◆ fbg_gles2CreateTextureFromImage()

GLuint fbg_gles2CreateTextureFromImage ( struct _fbg fbg,
struct _fbg_img img 
)

create a non-interpolated (NEAREST) GL texture from a FBG image

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
Returns
GL texture id

◆ fbg_gles2CreateVBO()

struct _fbg_vbo_data* fbg_gles2CreateVBO ( GLsizeiptr  indices_count,
const GLvoid *  indices_data,
size_t  sizeof_indice_type,
GLsizeiptr  vertices_count,
const GLvoid *  vertices_data,
GLsizeiptr  texcoords_count,
const GLvoid *  texcoords_data,
GLsizeiptr  normals_count,
const GLvoid *  normals_data,
GLsizeiptr  colors_count,
const GLvoid *  colors_data 
)

create a VBO from indexed data, support for vertices, UVs, normals and colors

Parameters
indices_countindices count
indices_datadata containing indices
sizeof_indice_typesizeof indice type
vertices_countvertices count
vertices_datadata containing vertices
texcoords_countuv count
texcoords_datadata containing uv
normals_countnormals count
normals_datadata containing normals
colors_countcolors count
colors_datadata containing colors
Returns
_fbg_vbo_data data structure containing the VBOs

◆ fbg_gles2CreateVBOvu()

GLuint fbg_gles2CreateVBOvu ( GLsizeiptr  data_count,
const GLvoid *  data 
)

create a VBO from vertices + UV data packed into a single array

Parameters
data_countvertices data count
datadata containing all vertices (set of 3 x float) then all associated UVs (set of 2 x float)
Returns
GL VBO id

◆ fbg_gles2FreeVBOData()

void fbg_gles2FreeVBOData ( struct _fbg_vbo_data vbo_data)

free VBO data (created with fbg_gles2CreateVBO)

Parameters
vbo_datadata structure containing the VBOs

◆ fbg_gles2Setup()

struct _fbg* fbg_gles2Setup ( const char *  fb_device,
int  components 
)

initialize a FB Graphics OpenGL ES 2 (fbdev or RPI direct) context

Parameters
fb_deviceframebuffer device; example : /dev/fb0
componentsfbg context color components (4 for RGBA or 3 for RGB)
Returns
FBG data structure pointer

◆ fbg_gles2ShouldClose()

int fbg_gles2ShouldClose ( struct _fbg fbg)

Query the user requested (window close etc) close status.

Parameters
fbgpointer to a FBG context / data structure
Returns
Boolean indicating close status

◆ fbg_gles2UpdateBuffer()

void fbg_gles2UpdateBuffer ( struct _fbg fbg)

this update FBG disp_buffer with the actual rendered OpenGL content

Parameters
fbgpointer to a FBG context / data structure

Variable Documentation

◆ fbg_gles2Quad

const GLfloat fbg_gles2Quad[]

Simple quad geometry (vertices + UV)

◆ fbg_gles2SimpleFs

const char* fbg_gles2SimpleFs

Simple textured fragment shader.

◆ fbg_gles2SimpleVs

const char* fbg_gles2SimpleVs

Simple vertex shader (screen quad, vertices + UV)

================================================ FILE: docs/fbg__opengl__es2_8h.js ================================================ var fbg__opengl__es2_8h = [ [ "_fbg_gles2_context", "fbg__opengl__es2_8h.html#struct__fbg__gles2__context", [ [ "egl_context", "fbg__opengl__es2_8h.html#a2ca2f4f23e8b651ec11708d211ed765b", null ], [ "egl_display", "fbg__opengl__es2_8h.html#affc02efb9ec2cda13d822b275e596f74", null ], [ "egl_image", "fbg__opengl__es2_8h.html#a0937c99d8efac543926d5cee7708b147", null ], [ "egl_surface", "fbg__opengl__es2_8h.html#a82a71c25f8b378ca6d50bcfe9bde2228", null ], [ "fbg_texture", "fbg__opengl__es2_8h.html#af1ab819f45eb1407455cba90991c11e0", null ], [ "fbg_vbo", "fbg__opengl__es2_8h.html#ad91d53fa2f501b5ca598e7dfaef6c7a2", null ], [ "fd", "fbg__opengl__es2_8h.html#af4aca9e8f28ec07109a8c850d9e941f4", null ], [ "simple_program", "fbg__opengl__es2_8h.html#a6dbba5982fbf4db17d85f5587ee2afd4", null ], [ "update_buffer", "fbg__opengl__es2_8h.html#a2af2636ae98239c2cd1072e3cf9a5e26", null ], [ "vinfo", "fbg__opengl__es2_8h.html#adb624ccb30f3d6a3a4aea5c1cdb03592", null ] ] ], [ "_fbg_vbo_data", "fbg__opengl__es2_8h.html#struct__fbg__vbo__data", [ [ "cbo", "fbg__opengl__es2_8h.html#a14d3420112271942e23d0de0d3b53b20", null ], [ "ibo", "fbg__opengl__es2_8h.html#ad3d86948330c3e3887733228f8369a1d", null ], [ "nbo", "fbg__opengl__es2_8h.html#a795cc9acb2bec510a4681aa824fe2560", null ], [ "tbo", "fbg__opengl__es2_8h.html#ab4bd72ffd8ed50a3153ce8458eec0498", null ], [ "vbo", "fbg__opengl__es2_8h.html#a8b13e18bbdd0085855c8bbfae453bdeb", null ] ] ], [ "fbg_gles2Clear", "fbg__opengl__es2_8h.html#a56535b156300a90cf5aa817fc4fdfe95", null ], [ "fbg_gles2CreateProgram", "fbg__opengl__es2_8h.html#a99da9de6f427c8dfa282479526cab0d8", null ], [ "fbg_gles2CreateProgramFromFiles", "fbg__opengl__es2_8h.html#aa40dcfe49b117e0cc56f0e37136d2e14", null ], [ "fbg_gles2CreateProgramFromString", "fbg__opengl__es2_8h.html#a31d962efec67e4646f4e4d783f771f5b", null ], [ "fbg_gles2CreateShader", "fbg__opengl__es2_8h.html#a6fecc8d59fce8fde2aa583d14d40e6c7", null ], [ "fbg_gles2CreateShaderFromFile", "fbg__opengl__es2_8h.html#a1e9bdd02d2bd4d842a037d89f160c97d", null ], [ "fbg_gles2CreateTexture", "fbg__opengl__es2_8h.html#a78b04688484a4ff7ec9651f872d6d7c4", null ], [ "fbg_gles2CreateTextureFromImage", "fbg__opengl__es2_8h.html#a40a597d6ce20e0bbcd1009ae9fe7328e", null ], [ "fbg_gles2CreateVBO", "fbg__opengl__es2_8h.html#ab7c677445f8e1853931f0d58bd53a9c0", null ], [ "fbg_gles2CreateVBOvu", "fbg__opengl__es2_8h.html#ad5ee72a7f71de24bdee26e09816c51a9", null ], [ "fbg_gles2FreeVBOData", "fbg__opengl__es2_8h.html#a3ac6ebf34ab696d79368321eb231336e", null ], [ "fbg_gles2Setup", "fbg__opengl__es2_8h.html#aa6d3bab630c17f240843c2872b05d18a", null ], [ "fbg_gles2ShouldClose", "fbg__opengl__es2_8h.html#a182413439943678ce07ca310ccfded33", null ], [ "fbg_gles2UpdateBuffer", "fbg__opengl__es2_8h.html#a74b92a4aab0207a1c15d7e8fc1b723dc", null ], [ "fbg_gles2Quad", "fbg__opengl__es2_8h.html#a9629d95895432370d9f324880289ad4d", null ], [ "fbg_gles2SimpleFs", "fbg__opengl__es2_8h.html#a6986e3484c0e218fd9d527643b74fe54", null ], [ "fbg_gles2SimpleVs", "fbg__opengl__es2_8h.html#a03be1f1cb0a92af8c8c6dc6fcd990b68", null ] ]; ================================================ FILE: docs/fbg__opengl__es2_8h_source.html ================================================ FB Graphics: fbg_opengl_es2.h Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbg_opengl_es2.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2019, 2020 Julien Verneuil
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the organization nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY
20  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FB_GRAPHICS_OPENGL_ES2_H
29 #define FB_GRAPHICS_OPENGL_ES2_H
30 
31  #include <sys/ioctl.h>
32  #include <linux/fb.h>
33  #include <unistd.h>
34  #include <fcntl.h>
35 
36  #include <GLES2/gl2.h>
37  #include <EGL/egl.h>
38  #include <EGL/eglext.h>
39 
40 #ifdef FBG_RPI
41  #include "bcm_host.h"
42 #endif
43 
44  #include "fbgraphics.h"
45 
48 #ifndef FBG_RPI
49  int fd;
52  struct fb_var_screeninfo vinfo;
53 #endif
54  EGLDisplay egl_display;
57  EGLContext egl_context;
59  EGLContext egl_surface;
61  void *egl_image;
65  GLuint fbg_vbo;
67  GLuint fbg_texture;
70  };
71 
73  struct _fbg_vbo_data {
74  // VBO (vertices)
75  GLuint vbo;
76  // VBO (texcoords)
77  GLuint tbo;
78  // VBO (indices)
79  GLuint ibo;
80  // VBO (normals)
81  GLuint nbo;
82  // VBO (colors)
83  GLuint cbo;
84  };
85 
87  extern const GLfloat fbg_gles2Quad[];
88 
90  extern const char *fbg_gles2SimpleVs;
91 
93  extern const char *fbg_gles2SimpleFs;
94 
96 
101 #ifdef FBG_RPI
102  extern struct _fbg *fbg_gles2Setup(int components);
103 #else
104  extern struct _fbg *fbg_gles2Setup(const char *fb_device, int components);
105 #endif
106 
108  extern void fbg_gles2Clear();
109 
111 
114  extern void fbg_gles2UpdateBuffer(struct _fbg *fbg);
115 
117 
121  extern int fbg_gles2ShouldClose(struct _fbg *fbg);
122 
124 
129  GLuint fbg_gles2CreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img);
130 
131  //-- A SET OF RAW OPENGL UTILITY FUNCTIONS --
133 
139  extern GLuint fbg_gles2CreateTexture(GLuint width, GLuint height, GLint internal_format);
140 
142 
156  extern struct _fbg_vbo_data * fbg_gles2CreateVBO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type,
157  GLsizeiptr vertices_count, const GLvoid *vertices_data,
158  GLsizeiptr texcoords_count, const GLvoid *texcoords_data,
159  GLsizeiptr normals_count, const GLvoid *normals_data,
160  GLsizeiptr colors_count, const GLvoid *colors_data);
161 
163 
166  extern void fbg_gles2FreeVBOData(struct _fbg_vbo_data *vbo_data);
167 
169 
174  extern GLuint fbg_gles2CreateVBOvu(GLsizeiptr data_count, const GLvoid *data);
175 
177 
181  //extern GLuint fbg_gles2CreateFBO(GLuint texture);
182 
184 
189  extern GLuint fbg_gles2CreateShader(GLenum type, const GLchar *source);
190 
192 
197  extern GLuint fbg_gles2CreateShaderFromFile(GLenum type, const char *filename);
198 
200 
205  extern GLuint fbg_gles2CreateProgram(GLuint vertex_shader, GLuint fragment_shader);
206 
208 
213  extern GLenum fbg_gles2CreateProgramFromFiles(const char *vs, const char *fs);
214 
216 
221  extern GLenum fbg_gles2CreateProgramFromString(const char *vs, const char *fs);
222 
223 #endif
struct which hold usual VBO data for 3D objects
int components
Display components amount (3 = 24 BPP / 4 = 32 BPP)
Definition: fbgraphics.h:176
EGLContext egl_surface
EGL surface.
EGLDisplay egl_display
EGL display.
void * egl_image
EGL image.
GLuint fbg_texture
FBG texture (updated at each frames)
int fd
Framebuffer file descriptor.
struct _fbg * fbg_gles2Setup(const char *fb_device, int components)
initialize a FB Graphics OpenGL ES 2 (fbdev or RPI direct) context
GLuint fbg_gles2CreateTexture(GLuint width, GLuint height, GLint internal_format)
create an empty non-interpolated (NEAREST) GL texture
GLuint fbg_gles2CreateTextureFromImage(struct _fbg *fbg, struct _fbg_img *img)
create a non-interpolated (NEAREST) GL texture from a FBG image
int update_buffer
tell wether fbg_gles2 should update fbg disp_buffer after rendering
const char * fbg_gles2SimpleVs
Simple vertex shader (screen quad, vertices + UV)
int width
Display width in pixels.
Definition: fbgraphics.h:170
GLuint fbg_gles2CreateVBOvu(GLsizeiptr data_count, const GLvoid *data)
create a VBO from vertices + UV data packed into a single array
int fbg_gles2ShouldClose(struct _fbg *fbg)
Query the user requested (window close etc) close status.
int height
Display height in pixels.
Definition: fbgraphics.h:172
const GLfloat fbg_gles2Quad[]
Simple quad geometry (vertices + UV)
void fbg_gles2UpdateBuffer(struct _fbg *fbg)
this update FBG disp_buffer with the actual rendered OpenGL content
GLuint fbg_gles2CreateShader(GLenum type, const GLchar *source)
create a FBO
GLuint fbg_vbo
FBG VBO.
struct _fbg_vbo_data * fbg_gles2CreateVBO(GLsizeiptr indices_count, const GLvoid *indices_data, size_t sizeof_indice_type, GLsizeiptr vertices_count, const GLvoid *vertices_data, GLsizeiptr texcoords_count, const GLvoid *texcoords_data, GLsizeiptr normals_count, const GLvoid *normals_data, GLsizeiptr colors_count, const GLvoid *colors_data)
create a VBO from indexed data, support for vertices, UVs, normals and colors
GLenum simple_program
Simple GLSL program (screen-aligned textured quad)
const char * fbg_gles2SimpleFs
Simple textured fragment shader.
void fbg_gles2FreeVBOData(struct _fbg_vbo_data *vbo_data)
free VBO data (created with fbg_gles2CreateVBO)
GLuint fbg_gles2CreateShaderFromFile(GLenum type, const char *filename)
create a shader from the content of a file
FB Graphics context data structure.
Definition: fbgraphics.h:123
void fbg_gles2Clear()
OpenGL clear.
OpenGL ES 2.0 wrapper data structure.
struct fb_var_screeninfo vinfo
Framebuffer device var. informations.
GLuint fbg_gles2CreateProgram(GLuint vertex_shader, GLuint fragment_shader)
create a vertex and/or fragment program
GLenum fbg_gles2CreateProgramFromFiles(const char *vs, const char *fs)
create a vertex and/or fragment/geometry program from a file
Image data structure.
Definition: fbgraphics.h:91
EGLContext egl_context
EGL context.
GLenum fbg_gles2CreateProgramFromString(const char *vs, const char *fs)
create a vertex and/or fragment/geometry program from a string
================================================ FILE: docs/fbg__opengl__es2_8h_struct__fbg__gles2__context.js ================================================ var fbg__opengl__es2_8h_struct__fbg__gles2__context = [ [ "egl_context", "fbg__opengl__es2_8h.html#a2ca2f4f23e8b651ec11708d211ed765b", null ], [ "egl_display", "fbg__opengl__es2_8h.html#affc02efb9ec2cda13d822b275e596f74", null ], [ "egl_image", "fbg__opengl__es2_8h.html#a0937c99d8efac543926d5cee7708b147", null ], [ "egl_surface", "fbg__opengl__es2_8h.html#a82a71c25f8b378ca6d50bcfe9bde2228", null ], [ "fbg_texture", "fbg__opengl__es2_8h.html#af1ab819f45eb1407455cba90991c11e0", null ], [ "fbg_vbo", "fbg__opengl__es2_8h.html#ad91d53fa2f501b5ca598e7dfaef6c7a2", null ], [ "fd", "fbg__opengl__es2_8h.html#af4aca9e8f28ec07109a8c850d9e941f4", null ], [ "simple_program", "fbg__opengl__es2_8h.html#a6dbba5982fbf4db17d85f5587ee2afd4", null ], [ "update_buffer", "fbg__opengl__es2_8h.html#a2af2636ae98239c2cd1072e3cf9a5e26", null ], [ "vinfo", "fbg__opengl__es2_8h.html#adb624ccb30f3d6a3a4aea5c1cdb03592", null ] ]; ================================================ FILE: docs/fbg__opengl__es2_8h_struct__fbg__vbo__data.js ================================================ var fbg__opengl__es2_8h_struct__fbg__vbo__data = [ [ "cbo", "fbg__opengl__es2_8h.html#a14d3420112271942e23d0de0d3b53b20", null ], [ "ibo", "fbg__opengl__es2_8h.html#ad3d86948330c3e3887733228f8369a1d", null ], [ "nbo", "fbg__opengl__es2_8h.html#a795cc9acb2bec510a4681aa824fe2560", null ], [ "tbo", "fbg__opengl__es2_8h.html#ab4bd72ffd8ed50a3153ce8458eec0498", null ], [ "vbo", "fbg__opengl__es2_8h.html#a8b13e18bbdd0085855c8bbfae453bdeb", null ] ]; ================================================ FILE: docs/fbgraphics_8h.html ================================================ FB Graphics: fbgraphics.h File Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbgraphics.h File Reference
#include <time.h>
#include <sys/time.h>
#include <stdint.h>
#include <math.h>

Go to the source code of this file.

Data Structures

struct  _fbg_rgb
 RGBA color data structure. More...
 
struct  _fbg_hsl
 HSL color data structure. More...
 
struct  _fbg_img
 Image data structure. More...
 
struct  _fbg_font
 Bitmap font data structure. More...
 
struct  _fbg
 FB Graphics context data structure. More...
 

Macros

#define fbg_fade(fbg, fade_amount)   fbg_fadeDown(fbg, fade_amount)
 background fade to black with controllable factor More...
 
#define fbg_write(fbg, text, x, y)   fbg_text(fbg, &fbg->current_font, text, x, y, fbg->text_color.r, fbg->text_color.g, fbg->text_color.b)
 draw a text by using the current font and the current color More...
 
#define fbg_imageScale(fbg, img, x, y, sx, sy)   fbg_imageEx(fbg, img, x, y, sx, sy, 0, 0, img->width, img->height)
 draw a scaled image (Nearest-neighbor algorithm) More...
 
#define _FBG_MAX(a, b)   ((a) > (b) ? a : b)
 integer MAX Math function More...
 
#define _FBG_MIN(a, b)   ((a) < (b) ? a : b)
 integer MIN Math function More...
 
#define _FBG_SGN(x)   ((x<0)?-1:((x>0)?1:0))
 integer SIGN function More...
 
#define _FBG_DEGTORAD(angle_degree)   ((angle_degree) * M_PI / 180.0)
 convert a degree angle to radians More...
 
#define _FBG_RADTODEG(angle_radians)   ((angle_radians) * 180.0 / M_PI)
 convert a radian angle to degree More...
 
#define _FBG_SOURCE_OVER(a, b, c)   (c * a + b * (1.f - a))
 

Functions

struct _fbgfbg_customSetup (int width, int height, int components, int initialize_buffers, int allow_resizing, void *user_context, void(*user_draw)(struct _fbg *fbg), void(*user_flip)(struct _fbg *fbg), void(*backend_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height), void(*user_free)(struct _fbg *fbg))
 initialize a FB Graphics context (typically used by a custom rendering backend) More...
 
void fbg_close (struct _fbg *fbg)
 free up the memory associated with a FB Graphics context and close the framebuffer device More...
 
void fbg_setResizeCallback (struct _fbg *fbg, void(*user_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height))
 register a user resize callback More...
 
void fbg_resize (struct _fbg *fbg, int new_width, int new_height)
 
void fbg_pushResize (struct _fbg *fbg, int new_width, int new_height)
 
void fbg_fadeDown (struct _fbg *fbg, unsigned char rgb_fade_amount)
 background fade to black with controllable factor More...
 
void fbg_fadeUp (struct _fbg *fbg, unsigned char rgb_fade_amount)
 background fade to white with controllable factor More...
 
void fbg_clear (struct _fbg *fbg, unsigned char brightness)
 fast grayscale background clearing More...
 
void fbg_fill (struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b)
 set the filling color for fast drawing operations More...
 
void fbg_getPixel (struct _fbg *fbg, int x, int y, struct _fbg_rgb *color)
 get the RGB value of a pixel More...
 
void fbg_pixel (struct _fbg *fbg, int x, int y, unsigned char r, unsigned char g, unsigned char b)
 draw a pixel More...
 
void fbg_pixela (struct _fbg *fbg, int x, int y, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 draw a pixel with alpha component (alpha blending) More...
 
void fbg_fpixel (struct _fbg *fbg, int x, int y)
 fast pixel drawing which use the fill color set by fbg_fill() More...
 
void fbg_plot (struct _fbg *fbg, int index, unsigned char value)
 direct pixel access from index value More...
 
void fbg_rect (struct _fbg *fbg, int x, int y, int w, int h, unsigned char r, unsigned char g, unsigned char b)
 draw a rectangle More...
 
void fbg_recta (struct _fbg *fbg, int x, int y, int w, int h, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 draw a rectangle with alpha transparency More...
 
void fbg_frect (struct _fbg *fbg, int x, int y, int w, int h)
 fast rectangle drawing which use the fill color set by fbg_fill() More...
 
void fbg_hline (struct _fbg *fbg, int x, int y, int w, unsigned char r, unsigned char g, unsigned char b)
 draw a horizontal line More...
 
void fbg_vline (struct _fbg *fbg, int x, int y, int h, unsigned char r, unsigned char g, unsigned char b)
 draw a vertical line More...
 
void fbg_line (struct _fbg *fbg, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)
 draw a line from two points (Bresenham algorithm) More...
 
void fbg_polygon (struct _fbg *fbg, int num_vertices, int *vertices, unsigned char r, unsigned char g, unsigned char b)
 draw a polygon More...
 
void fbg_background (struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b)
 clear the background with a color More...
 
void fbg_hslToRGB (struct _fbg_rgb *color, float h, float s, float l)
 convert HSL values to RGB color More...
 
void fbg_rgbToHsl (struct _fbg_hsl *color, float r, float g, float b)
 convert RGB values to HSL color More...
 
void fbg_draw (struct _fbg *fbg)
 draw to the screen More...
 
void fbg_flip (struct _fbg *fbg)
 flip the buffers More...
 
struct _fbg_imgfbg_createImage (struct _fbg *fbg, unsigned int width, unsigned int height)
 create an empty image More...
 
struct _fbg_imgfbg_loadPNG (struct _fbg *fbg, const char *filename)
 load a PNG image from a file (lodePNG library) More...
 
struct _fbg_imgfbg_loadJPEG (struct _fbg *fbg, const char *filename)
 load a JPEG image from a file (NanoJPEG library) More...
 
struct _fbg_imgfbg_loadImage (struct _fbg *fbg, const char *filename)
 load an image (PNG or JPEG) More...
 
void fbg_image (struct _fbg *fbg, struct _fbg_img *img, int x, int y)
 draw an image More...
 
void fbg_imageColorkey (struct _fbg *fbg, struct _fbg_img *img, int x, int y, int cr, int cg, int cb)
 draw an image with colorkeying support (image colorkey value will be ignored) More...
 
void fbg_imageClip (struct _fbg *fbg, struct _fbg_img *img, int x, int y, int cx, int cy, int cw, int ch)
 draw a clipped image More...
 
void fbg_imageFlip (struct _fbg_img *img)
 flip an image vertically More...
 
void fbg_imageEx (struct _fbg *fbg, struct _fbg_img *img, int x, int y, float sx, float sy, int cx, int cy, int cw, int ch)
 draw an image with support for clipping and scaling (Nearest-neighbor algorithm) More...
 
void fbg_freeImage (struct _fbg_img *img)
 free the memory associated with an image More...
 
struct _fbg_fontfbg_createFont (struct _fbg *fbg, struct _fbg_img *img, int glyph_width, int glyph_height, unsigned char first_char)
 create a bitmap font from an image More...
 
void fbg_textFont (struct _fbg *fbg, struct _fbg_font *font)
 set the current font More...
 
void fbg_textColor (struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b)
 set the current text color More...
 
void fbg_textBackground (struct _fbg *fbg, int r, int g, int b, int a)
 set the current text background color (based on colorkey value!) More...
 
void fbg_textColorKey (struct _fbg *fbg, unsigned char v)
 set the current text color key More...
 
void fbg_text (struct _fbg *fbg, struct _fbg_font *fnt, char *text, int x, int y, int r, int g, int b)
 draw a text More...
 
void fbg_freeFont (struct _fbg_font *font)
 free the memory associated with a font More...
 
void fbg_drawFramerate (struct _fbg *fbg, struct _fbg_font *fnt, int task, int x, int y, int r, int g, int b)
 draw the framerate of a particular parallel task More...
 
int fbg_getFramerate (struct _fbg *fbg, int task)
 get the framerate of a particular task More...
 
void fbg_drawInto (struct _fbg *fbg, unsigned char *buffer)
 set an offscreen target for all subsequent fbg context draw calls, it is important to reset back to display target once done by calling fbg_drawInto(NULL) otherwise you may have segfaults / memory leaks upon resizing and other actions More...
 
float fbg_randf (float min, float max)
 pseudo random number between min / max More...
 

Data Structure Documentation

◆ _fbg_rgb

struct _fbg_rgb

RGBA color data structure.

Hold RGBA components [0,255]

Definition at line 74 of file fbgraphics.h.

Data Fields
unsigned char a
unsigned char b
unsigned char g
unsigned char r

◆ _fbg_hsl

struct _fbg_hsl

HSL color data structure.

Hold HSL components S/L [0,1], HUE [0, 360]

Definition at line 83 of file fbgraphics.h.

Data Fields
int h
float l
float s

◆ _fbg_img

struct _fbg_img

Image data structure.

Hold images informations and data

Definition at line 91 of file fbgraphics.h.

Data Fields
unsigned char * data RGB image data (bpp depend on framebuffer settings)
unsigned int height Image height in pixels.
unsigned int width Image width in pixels.

◆ _fbg_font

struct _fbg_font

Bitmap font data structure.

Hold bitmap font informations and associated image

Definition at line 103 of file fbgraphics.h.

Data Fields
struct _fbg_img * bitmap Associated font image data structure.
unsigned char first_char First ASCII character of the bitmap font file.
int * glyph_coord_x Pre-computed X glyphs coordinates.
int * glyph_coord_y Pre-computed Y glyphs coordinates.
int glyph_height Height of a glyph.
int glyph_width Width of a glyph.

Macro Definition Documentation

◆ _FBG_DEGTORAD

#define _FBG_DEGTORAD (   angle_degree)    ((angle_degree) * M_PI / 180.0)

convert a degree angle to radians

Definition at line 851 of file fbgraphics.h.

◆ _FBG_MAX

#define _FBG_MAX (   a,
 
)    ((a) > (b) ? a : b)

integer MAX Math function

Definition at line 844 of file fbgraphics.h.

◆ _FBG_MIN

#define _FBG_MIN (   a,
 
)    ((a) < (b) ? a : b)

integer MIN Math function

Definition at line 846 of file fbgraphics.h.

◆ _FBG_RADTODEG

#define _FBG_RADTODEG (   angle_radians)    ((angle_radians) * 180.0 / M_PI)

convert a radian angle to degree

Definition at line 853 of file fbgraphics.h.

◆ _FBG_SGN

#define _FBG_SGN (   x)    ((x<0)?-1:((x>0)?1:0))

integer SIGN function

Definition at line 848 of file fbgraphics.h.

◆ _FBG_SOURCE_OVER

#define _FBG_SOURCE_OVER (   a,
  b,
 
)    (c * a + b * (1.f - a))

Definition at line 855 of file fbgraphics.h.

◆ fbg_fade

#define fbg_fade (   fbg,
  fade_amount 
)    fbg_fadeDown(fbg, fade_amount)

background fade to black with controllable factor

Parameters
fbgpointer to a FBG context / data structure
fade_amountfade amount
See also
fbg_fadeUp(), fbg_fadeDown()

Definition at line 819 of file fbgraphics.h.

◆ fbg_imageScale

#define fbg_imageScale (   fbg,
  img,
  x,
  y,
  sx,
  sy 
)    fbg_imageEx(fbg, img, x, y, sx, sy, 0, 0, img->width, img->height)

draw a scaled image (Nearest-neighbor algorithm)

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
ximage X position (upper left coordinate)
yimage Y position (upper left coordinate)
sxThe X scale factor
syThe Y scale factor
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage(), fbg_imageClip(), fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_imageEx()

Definition at line 841 of file fbgraphics.h.

◆ fbg_write

#define fbg_write (   fbg,
  text,
  x,
 
)    fbg_text(fbg, &fbg->current_font, text, x, y, fbg->text_color.r, fbg->text_color.g, fbg->text_color.b)

draw a text by using the current font and the current color

Parameters
fbgpointer to a FBG context / data structure
textthe text to draw ('
' and ' ' are treated automatically)
x
y
See also
fbg_textFont(), fbg_textColor(), fbg_text(), fbg_textColorkey(), fbg_textBackground()

Definition at line 829 of file fbgraphics.h.

Function Documentation

◆ fbg_background()

void fbg_background ( struct _fbg fbg,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

clear the background with a color

Parameters
fbgpointer to a FBG context / data structure
r
g
b
See also
fbg_clear()

◆ fbg_clear()

void fbg_clear ( struct _fbg fbg,
unsigned char  brightness 
)

fast grayscale background clearing

Parameters
fbgpointer to a FBG context / data structure
brightnesspixel brightness (grayscale)
See also
fbg_background()

◆ fbg_close()

void fbg_close ( struct _fbg fbg)

free up the memory associated with a FB Graphics context and close the framebuffer device

Parameters
fbgpointer to a FBG context / data structure
See also
fbg_customSetup()

◆ fbg_createFont()

struct _fbg_font* fbg_createFont ( struct _fbg fbg,
struct _fbg_img img,
int  glyph_width,
int  glyph_height,
unsigned char  first_char 
)

create a bitmap font from an image

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
glyph_widthglyph / character width
glyph_heightglyph / character height
first_charthe first character of the bitmap font
Returns
_fbg_font structure pointer
See also
fbg_freeFont(), fbg_textFont(), fbg_text(), fbg_write(), fbg_drawFramerate()

◆ fbg_createImage()

struct _fbg_img* fbg_createImage ( struct _fbg fbg,
unsigned int  width,
unsigned int  height 
)

create an empty image

Parameters
fbgpointer to a FBG context / data structure
widthimage width
heightimage height
Returns
_fbg_img data structure pointer
See also
fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_createFont()

◆ fbg_customSetup()

struct _fbg* fbg_customSetup ( int  width,
int  height,
int  components,
int  initialize_buffers,
int  allow_resizing,
void *  user_context,
void(*)(struct _fbg *fbg)  user_draw,
void(*)(struct _fbg *fbg)  user_flip,
void(*)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height)  backend_resize,
void(*)(struct _fbg *fbg)  user_free 
)

initialize a FB Graphics context (typically used by a custom rendering backend)

Parameters
widthrender width
heightrender height
componentsimage components (3 = RGB, 4 = RGBA etc.)
initialize_bufferswether internal buffers should be allocated / freed
allow_resizingwether to allow internal context resize (any registered callbacks will still be called)
user_contextuser rendering data storage (things like window context etc.)
user_drawfunction to call upon fbg_draw()
user_flipfunction to call upon fbg_flip()
backend_resizefunction to call upon fbg_resize()
user_freefunction to call upon fbg_close()
Returns
_fbg structure pointer to pass to any FBG library functions
See also
fbg_close()

◆ fbg_draw()

void fbg_draw ( struct _fbg fbg)

draw to the screen

Parameters
fbgpointer to a FBG context / data structure

◆ fbg_drawFramerate()

void fbg_drawFramerate ( struct _fbg fbg,
struct _fbg_font fnt,
int  task,
int  x,
int  y,
int  r,
int  g,
int  b 
)

draw the framerate of a particular parallel task

Parameters
fbgpointer to a FBG context / data structure
fnt_fbg_font structure pointer
taskthe task id
x
y
r
g
b

◆ fbg_drawInto()

void fbg_drawInto ( struct _fbg fbg,
unsigned char *  buffer 
)

set an offscreen target for all subsequent fbg context draw calls, it is important to reset back to display target once done by calling fbg_drawInto(NULL) otherwise you may have segfaults / memory leaks upon resizing and other actions

Parameters
fbgpointer to a FBG context / data structure
buffera buffer to render to, it should be the format of the display, target is the display if NULL

◆ fbg_fadeDown()

void fbg_fadeDown ( struct _fbg fbg,
unsigned char  rgb_fade_amount 
)

background fade to black with controllable factor

Parameters
fbgpointer to a FBG context / data structure
rgb_fade_amountfade amount
See also
fbg_fade(), fbg_fadeUp()

◆ fbg_fadeUp()

void fbg_fadeUp ( struct _fbg fbg,
unsigned char  rgb_fade_amount 
)

background fade to white with controllable factor

Parameters
fbgpointer to a FBG context / data structure
rgb_fade_amountfade amount
See also
fbg_fadeDown()

◆ fbg_fill()

void fbg_fill ( struct _fbg fbg,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

set the filling color for fast drawing operations

Parameters
fbgpointer to a FBG context / data structure
r
g
b
See also
fbg_fpixel(), fbg_frect()

◆ fbg_flip()

void fbg_flip ( struct _fbg fbg)

flip the buffers

Parameters
fbgpointer to a FBG context / data structure

◆ fbg_fpixel()

void fbg_fpixel ( struct _fbg fbg,
int  x,
int  y 
)

fast pixel drawing which use the fill color set by fbg_fill()

Parameters
fbgpointer to a FBG context / data structure
xpixel X position (upper left coordinate)
ypixel Y position (upper left coordinate)
See also
fbg_pixel(), fbg_fill(), fbg_pixela()

◆ fbg_frect()

void fbg_frect ( struct _fbg fbg,
int  x,
int  y,
int  w,
int  h 
)

fast rectangle drawing which use the fill color set by fbg_fill()

Parameters
fbgpointer to a FBG context / data structure
xrectangle X position (upper left coordinate)
yrectangle Y position (upper left coordinate)
wrectangle width
hrectangle height
See also
fbg_fill, fbg_rect(), fbg_recta()

◆ fbg_freeFont()

void fbg_freeFont ( struct _fbg_font font)

free the memory associated with a font

Parameters
font_fbg_font structure pointer
See also
fbg_createFont()

◆ fbg_freeImage()

void fbg_freeImage ( struct _fbg_img img)

free the memory associated with an image

Parameters
imgimage structure pointer
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage()

◆ fbg_getFramerate()

int fbg_getFramerate ( struct _fbg fbg,
int  task 
)

get the framerate of a particular task

Parameters
fbgpointer to a FBG context / data structure
taskthe task id
Returns
task framerate

◆ fbg_getPixel()

void fbg_getPixel ( struct _fbg fbg,
int  x,
int  y,
struct _fbg_rgb color 
)

get the RGB value of a pixel

Parameters
fbgpointer to a FBG context / data structure
x
y
colora pointer to a _fbg_rgb data structure

◆ fbg_hline()

void fbg_hline ( struct _fbg fbg,
int  x,
int  y,
int  w,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

draw a horizontal line

Parameters
fbgpointer to a FBG context / data structure
xline X position (upper left coordinate)
yline Y position (upper left coordinate)
wline width
r
g
b
See also
fbg_vline, fbg_line()

◆ fbg_hslToRGB()

void fbg_hslToRGB ( struct _fbg_rgb color,
float  h,
float  s,
float  l 
)

convert HSL values to RGB color

Parameters
colorpointer to a _fbg_rgb data structure
hthe hue
sthe saturation
lthe lightness
See also
rgbToHsl()

◆ fbg_image()

void fbg_image ( struct _fbg fbg,
struct _fbg_img img,
int  x,
int  y 
)

draw an image

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
ximage X position (upper left coordinate)
yimage Y position (upper left coordinate)
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage(), fbg_imageClip(), fbg_freeImage(), fbg_imageFlip(), fbg_imageEx(), fbg_imageScale(), fbg_imageColorkey()

◆ fbg_imageClip()

void fbg_imageClip ( struct _fbg fbg,
struct _fbg_img img,
int  x,
int  y,
int  cx,
int  cy,
int  cw,
int  ch 
)

draw a clipped image

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
ximage X position (upper left coordinate)
yimage Y position (upper left coordinate)
cxThe X coordinate where to start clipping
cyThe Y coordinate where to start clipping
cwThe width of the clipped image (from cx)
chThe height of the clipped image (from cy)
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage(), fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_imageEx(), fbg_imageScale(), fbg_imageColorkey()

◆ fbg_imageColorkey()

void fbg_imageColorkey ( struct _fbg fbg,
struct _fbg_img img,
int  x,
int  y,
int  cr,
int  cg,
int  cb 
)

draw an image with colorkeying support (image colorkey value will be ignored)

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
ximage X position (upper left coordinate)
yimage Y position (upper left coordinate)
crcolorkey red component
cgcolorkey green component
cbcolorkey blue component
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage(), fbg_imageClip(), fbg_freeImage(), fbg_imageFlip(), fbg_imageEx(), fbg_imageScale(), fbg_image()

◆ fbg_imageEx()

void fbg_imageEx ( struct _fbg fbg,
struct _fbg_img img,
int  x,
int  y,
float  sx,
float  sy,
int  cx,
int  cy,
int  cw,
int  ch 
)

draw an image with support for clipping and scaling (Nearest-neighbor algorithm)

Parameters
fbgpointer to a FBG context / data structure
imgimage structure pointer
ximage X position (upper left coordinate)
yimage Y position (upper left coordinate)
sxThe X scale factor
syThe Y scale factor
cxThe X coordinate where to start clipping
cyThe Y coordinate where to start clipping
cwThe width of the clipped image (from cx)
chThe height of the clipped image (from cy)
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage(), fbg_imageClip(), fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_imageScale(), fbg_imageColorkey()

◆ fbg_imageFlip()

void fbg_imageFlip ( struct _fbg_img img)

flip an image vertically

Parameters
imgimage structure pointer
See also
fbg_createImage(), fbg_loadPNG(), fbg_loadJPEG(), fbg_loadImage()

◆ fbg_line()

void fbg_line ( struct _fbg fbg,
int  x1,
int  y1,
int  x2,
int  y2,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

draw a line from two points (Bresenham algorithm)

Parameters
fbgpointer to a FBG context / data structure
x1point 1 X position (upper left coordinate)
y1point 1 Y position (upper left coordinate)
x2point 2 X position (upper left coordinate)
y2point 2 Y position (upper left coordinate)
r
g
b
See also
fbg_hline(), fbg_vline(), fbg_polygon()

◆ fbg_loadImage()

struct _fbg_img* fbg_loadImage ( struct _fbg fbg,
const char *  filename 
)

load an image (PNG or JPEG)

Parameters
fbgpointer to a FBG context / data structure
filenameJPEG/PNG image filename
Returns
_fbg_img data structure pointer
See also
fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_createFont(), fbg_imageClip(), fbg_loadPNG(), fbg_loadJPEG(), fbg_imageEx(), fbg_imageScale(), fbg_imageColorkey()

◆ fbg_loadJPEG()

struct _fbg_img* fbg_loadJPEG ( struct _fbg fbg,
const char *  filename 
)

load a JPEG image from a file (NanoJPEG library)

Parameters
fbgpointer to a FBG context / data structure
filenameJPEG image filename
Returns
_fbg_img data structure pointer
See also
fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_createFont(), fbg_imageClip(), fbg_loadPNG(), fbg_loadImage(), fbg_imageEx(), fbg_imageScale(), fbg_imageColorkey()

◆ fbg_loadPNG()

struct _fbg_img* fbg_loadPNG ( struct _fbg fbg,
const char *  filename 
)

load a PNG image from a file (lodePNG library)

Parameters
fbgpointer to a FBG context / data structure
filenamePNG image filename
Returns
_fbg_img data structure pointer
See also
fbg_freeImage(), fbg_image(), fbg_imageFlip(), fbg_createFont(), fbg_imageClip(), fbg_loadJPEG(), fbg_loadImage(), fbg_imageEx(), fbg_imageScale(), fbg_imageColorkey()

◆ fbg_pixel()

void fbg_pixel ( struct _fbg fbg,
int  x,
int  y,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

draw a pixel

Parameters
fbgpointer to a FBG context / data structure
xpixel X position (upper left coordinate)
ypixel Y position (upper left coordinate)
r
g
b
See also
fbg_fpixel(), fbg_pixela()

◆ fbg_pixela()

void fbg_pixela ( struct _fbg fbg,
int  x,
int  y,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)

draw a pixel with alpha component (alpha blending)

Parameters
fbgpointer to a FBG context / data structure
xpixel X position (upper left coordinate)
ypixel Y position (upper left coordinate)
r
g
b
a
See also
fbg_fpixel(), fbg_pixel()

◆ fbg_plot()

void fbg_plot ( struct _fbg fbg,
int  index,
unsigned char  value 
)

direct pixel access from index value

Parameters
fbgpointer to a FBG context / data structure
indexpixel index in the buffer
valuecolor value
See also
fbg_pixel(), fbg_fill(), fbg_pixela()

◆ fbg_polygon()

void fbg_polygon ( struct _fbg fbg,
int  num_vertices,
int *  vertices,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

draw a polygon

Parameters
fbgpointer to a FBG context / data structure
num_verticesthe number of vertices
verticespointer to a list of vertices (a list of X/Y points)
r
g
b

◆ fbg_pushResize()

void fbg_pushResize ( struct _fbg fbg,
int  new_width,
int  new_height 
)

push a resize event for the FB Graphics context note : the resize event is processed into the fbg_draw function note : resizing is not yet allowed in framebuffer mode note : if you want to immediately resize the context, see fbg_resize

Parameters
fbgpointer to a FBG context / data structure
new_widthnew render width
new_heightnew render height
See also
fbg_resize(), fbg_setResizeCallback()

◆ fbg_randf()

float fbg_randf ( float  min,
float  max 
)

pseudo random number between min / max

Parameters
min
max
Returns
pseudo random number between min / max

◆ fbg_rect()

void fbg_rect ( struct _fbg fbg,
int  x,
int  y,
int  w,
int  h,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

draw a rectangle

Parameters
fbgpointer to a FBG context / data structure
xrectangle X position (upper left coordinate)
yrectangle Y position (upper left coordinate)
wrectangle width
hrectangle height
r
g
b
See also
fbg_frect(), fbg_recta()

◆ fbg_recta()

void fbg_recta ( struct _fbg fbg,
int  x,
int  y,
int  w,
int  h,
unsigned char  r,
unsigned char  g,
unsigned char  b,
unsigned char  a 
)

draw a rectangle with alpha transparency

Parameters
fbgpointer to a FBG context / data structure
xrectangle X position (upper left coordinate)
yrectangle Y position (upper left coordinate)
wrectangle width
hrectangle height
r
g
b
a
See also
fbg_frect(), fbg_rect()

◆ fbg_resize()

void fbg_resize ( struct _fbg fbg,
int  new_width,
int  new_height 
)

resize the FB Graphics context immediately note : prefer the usage of fbg_pushResize when integrating the resize event of a custom backend (fbg_pushResize is thread safe all the time) note : resizing is not yet allowed in framebuffer mode

Parameters
fbgpointer to a FBG context / data structure
new_widthnew render width
new_heightnew render height
See also
fbg_pushResize(), fbg_setResizeCallback()

◆ fbg_rgbToHsl()

void fbg_rgbToHsl ( struct _fbg_hsl color,
float  r,
float  g,
float  b 
)

convert RGB values to HSL color

Parameters
colorpointer to a _fbg_hsl data structure
r
g
b
See also
fbg_hslToRGB()

◆ fbg_setResizeCallback()

void fbg_setResizeCallback ( struct _fbg fbg,
void(*)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height)  user_resize 
)

register a user resize callback

Parameters
fbgpointer to a FBG context / data structure
user_resizeresize function
See also
fbg_resize(), fbg_pushResize()

◆ fbg_text()

void fbg_text ( struct _fbg fbg,
struct _fbg_font fnt,
char *  text,
int  x,
int  y,
int  r,
int  g,
int  b 
)

draw a text

Parameters
fbgpointer to a FBG context / data structure
fnt_fbg_font structure pointer
textthe text to draw ('
' and ' ' are treated automatically)
x
y
r
g
b
See also
fbg_createFont(), fbg_write(), fbg_textColorkey(), fbg_textBackground()

◆ fbg_textBackground()

void fbg_textBackground ( struct _fbg fbg,
int  r,
int  g,
int  b,
int  a 
)

set the current text background color (based on colorkey value!)

Parameters
fbgpointer to a FBG context / data structure
r
g
b
a0 = transparent background (based on colorkey), 255 = full text background
See also
fbg_createFont(), fbg_write(), fbg_textColorKey(), fbg_textColor()

◆ fbg_textColor()

void fbg_textColor ( struct _fbg fbg,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

set the current text color

Parameters
fbgpointer to a FBG context / data structure
r
g
b
See also
fbg_createFont(), fbg_write(), fbg_textColorKey(), fbg_textBackground()

◆ fbg_textColorKey()

void fbg_textColorKey ( struct _fbg fbg,
unsigned char  v 
)

set the current text color key

Parameters
fbgpointer to a FBG context / data structure
vgrayscale value
See also
fbg_createFont(), fbg_write(), fbg_textColor()

◆ fbg_textFont()

void fbg_textFont ( struct _fbg fbg,
struct _fbg_font font 
)

set the current font

Parameters
fbgpointer to a FBG context / data structure
font_fbg_font structure pointer
See also
fbg_createFont(), fbg_text(), fbg_write(), fbg_drawFramerate()

◆ fbg_vline()

void fbg_vline ( struct _fbg fbg,
int  x,
int  y,
int  h,
unsigned char  r,
unsigned char  g,
unsigned char  b 
)

draw a vertical line

Parameters
fbgpointer to a FBG context / data structure
xline X position (upper left coordinate)
yline Y position (upper left coordinate)
hline height
r
g
b
See also
fbg_hline, fbg_line()
================================================ FILE: docs/fbgraphics_8h.js ================================================ var fbgraphics_8h = [ [ "_fbg_rgb", "fbgraphics_8h.html#struct__fbg__rgb", [ [ "a", "fbgraphics_8h.html#a683be8ec38b9931754fe8501c4df3019", null ], [ "b", "fbgraphics_8h.html#a5eb0caaedd56ed29a1ef1f7941f414d7", null ], [ "g", "fbgraphics_8h.html#a73d04c86a962adfeac115c18c231eae1", null ], [ "r", "fbgraphics_8h.html#a3974f2dce77af4058a1ae585f55c5bb8", null ] ] ], [ "_fbg_hsl", "fbgraphics_8h.html#struct__fbg__hsl", [ [ "h", "fbgraphics_8h.html#a7246517249c3b27ed57f82a11da3c7d3", null ], [ "l", "fbgraphics_8h.html#a405724441abc0190dea559bf11b8b174", null ], [ "s", "fbgraphics_8h.html#a22a62f07da21ac2ef92365718104348f", null ] ] ], [ "_fbg_img", "fbgraphics_8h.html#struct__fbg__img", [ [ "data", "fbgraphics_8h.html#ab996d65bce285a78c8a8f3ac99b40658", null ], [ "height", "fbgraphics_8h.html#ac6293cb3d118f0ccdde38c13cbefa9db", null ], [ "width", "fbgraphics_8h.html#a6e666c23aea3d07ee2c8c9f83f25eed2", null ] ] ], [ "_fbg_font", "fbgraphics_8h.html#struct__fbg__font", [ [ "bitmap", "fbgraphics_8h.html#a0e7995b285b04f41d883165b0e7e387f", null ], [ "first_char", "fbgraphics_8h.html#a05730637b297339a1fe39db736335cff", null ], [ "glyph_coord_x", "fbgraphics_8h.html#a1a9dc1b888e744c8e8d69f1a39d7a0b3", null ], [ "glyph_coord_y", "fbgraphics_8h.html#a929f320fae39630e84bd1c949b9d845d", null ], [ "glyph_height", "fbgraphics_8h.html#a3b11d9dc4724e8b789509882d4cff87e", null ], [ "glyph_width", "fbgraphics_8h.html#a279be685895357ebda19f155ed405efc", null ] ] ], [ "_fbg", "struct__fbg.html", "struct__fbg" ], [ "_FBG_DEGTORAD", "fbgraphics_8h.html#aee61fffe4a48a3b1e5697eff6f5bbaf1", null ], [ "_FBG_MAX", "fbgraphics_8h.html#af424bd0f275b38651aabf1a7e3e34de3", null ], [ "_FBG_MIN", "fbgraphics_8h.html#add101b7a583f64094141ce1de49f92a7", null ], [ "_FBG_RADTODEG", "fbgraphics_8h.html#ab377dd49e23e56f2325559991ac85347", null ], [ "_FBG_SGN", "fbgraphics_8h.html#a1e3a69cf9aa6b9d50ac0dad1abb42390", null ], [ "_FBG_SOURCE_OVER", "fbgraphics_8h.html#a17b79968958984d51750cae2ac7bea8f", null ], [ "fbg_fade", "fbgraphics_8h.html#a4f15c1c2215c201e644c4c3de812f16f", null ], [ "fbg_imageScale", "fbgraphics_8h.html#a110e7e4228a6350bebc68b6bdfd6d24a", null ], [ "fbg_write", "fbgraphics_8h.html#a45d1d295d53d80013ca6d55487c02fa0", null ], [ "fbg_background", "fbgraphics_8h.html#a1622b4cd13f223d161cd234ea1fe6125", null ], [ "fbg_clear", "fbgraphics_8h.html#aab50cccf3eceac81bda220a0c09e38e0", null ], [ "fbg_close", "fbgraphics_8h.html#a390cd3fb535cbad76856700a035ed401", null ], [ "fbg_createFont", "fbgraphics_8h.html#afdcb72ae08437471569c4880fb43f20c", null ], [ "fbg_createImage", "fbgraphics_8h.html#a1e3ebfcc75e055a24f1a0f5765936d16", null ], [ "fbg_customSetup", "fbgraphics_8h.html#a8c36c8bfbfa3e589ea445d3197923823", null ], [ "fbg_draw", "fbgraphics_8h.html#a2dfb2f17bc31e161868e6baf1c391816", null ], [ "fbg_drawFramerate", "fbgraphics_8h.html#a112e427410882007fbcea78b0657c5f1", null ], [ "fbg_drawInto", "fbgraphics_8h.html#adda2a3ebc3a63cc275c78c61e62ce437", null ], [ "fbg_fadeDown", "fbgraphics_8h.html#ab18823ca0e95ca51c5d6c69a48af8d0e", null ], [ "fbg_fadeUp", "fbgraphics_8h.html#a19d56a111248b7f7d52f4bc6392d3743", null ], [ "fbg_fill", "fbgraphics_8h.html#a224b9ae07cc8fcd8c497b1d5f7007b66", null ], [ "fbg_flip", "fbgraphics_8h.html#aedfec23bc4c51ff5ffb843bb289d448b", null ], [ "fbg_fpixel", "fbgraphics_8h.html#a5f656e76477d51b8faf039dd5baea65c", null ], [ "fbg_frect", "fbgraphics_8h.html#a543755814e43b77b0beebea7a08457db", null ], [ "fbg_freeFont", "fbgraphics_8h.html#aae823fe76a206cbc1fdd405c13d26830", null ], [ "fbg_freeImage", "fbgraphics_8h.html#a737482b6170ea3273d6679fdca63a27c", null ], [ "fbg_getFramerate", "fbgraphics_8h.html#a8125b5b37979f803c4640d9864fadbab", null ], [ "fbg_getPixel", "fbgraphics_8h.html#a416971e772c114423b6c037f81d6f5ea", null ], [ "fbg_hline", "fbgraphics_8h.html#a0558e4513da1d844526d54afea4d1531", null ], [ "fbg_hslToRGB", "fbgraphics_8h.html#ac037925696a8bfab4163e011731a76a4", null ], [ "fbg_image", "fbgraphics_8h.html#a600d896c04feec33d001662ca23e50ad", null ], [ "fbg_imageClip", "fbgraphics_8h.html#a3610bf730319af99045283ea66955741", null ], [ "fbg_imageColorkey", "fbgraphics_8h.html#a8ba2088b60304afa9ee7ce1b39bff114", null ], [ "fbg_imageEx", "fbgraphics_8h.html#ad0c3a773dcab62f514726b03e54ad692", null ], [ "fbg_imageFlip", "fbgraphics_8h.html#a728d5bc6d1ee11e127db8722fe3cbc18", null ], [ "fbg_line", "fbgraphics_8h.html#a46f7354a04a7bfb7467d25394ce38303", null ], [ "fbg_loadImage", "fbgraphics_8h.html#a731ce4c5439d16555aa6ec48751ecea6", null ], [ "fbg_loadJPEG", "fbgraphics_8h.html#ad05affc24eed0b9f906d6926b8f02fec", null ], [ "fbg_loadPNG", "fbgraphics_8h.html#a4be92c5b1376fb7f06de1529b0a43f7f", null ], [ "fbg_pixel", "fbgraphics_8h.html#a7d81b1ddf54b0d4da0f30e36d7e2f3bb", null ], [ "fbg_pixela", "fbgraphics_8h.html#a08c6a08afcb5bd07793801554b8f0bfe", null ], [ "fbg_plot", "fbgraphics_8h.html#a990acac7dcc899656dc87c98404af777", null ], [ "fbg_polygon", "fbgraphics_8h.html#a2a5a2ef48f5b26794473c51082fb75ab", null ], [ "fbg_pushResize", "fbgraphics_8h.html#a3604f59f02b47730a47a2fc15644d61e", null ], [ "fbg_randf", "fbgraphics_8h.html#aedca9d7bf294d143f860d2f0ddcd528c", null ], [ "fbg_rect", "fbgraphics_8h.html#ad208d61ec4f50a5fd13f2cc8dd2ee0e5", null ], [ "fbg_recta", "fbgraphics_8h.html#a83a99e5c8d44e2acf52cad38519ececf", null ], [ "fbg_resize", "fbgraphics_8h.html#a00509b4956e358ae3f9135151c1e524a", null ], [ "fbg_rgbToHsl", "fbgraphics_8h.html#aaf344cf56286931ee7a4a0e5fce920fc", null ], [ "fbg_setResizeCallback", "fbgraphics_8h.html#a70e747dee4eda4a434b746e2bbd14386", null ], [ "fbg_text", "fbgraphics_8h.html#a3233e3de8fc3ad06391641241c77a1ea", null ], [ "fbg_textBackground", "fbgraphics_8h.html#a2e82acd949a5c12a1fa494fb4c028ff1", null ], [ "fbg_textColor", "fbgraphics_8h.html#acae7a4ff39407371a52ebf9ae4c260c1", null ], [ "fbg_textColorKey", "fbgraphics_8h.html#a7165bceebbbe11332256d1bd4e179489", null ], [ "fbg_textFont", "fbgraphics_8h.html#ac1ccfb0069d4567313391dc819ada76b", null ], [ "fbg_vline", "fbgraphics_8h.html#a3c4fb5fa694646ec66b50a32eaf38557", null ] ]; ================================================ FILE: docs/fbgraphics_8h_source.html ================================================ FB Graphics: fbgraphics.h Source File
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
fbgraphics.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2018, 2019, 2020 Julien Verneuil
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of the organization nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  DISCLAIMED. IN NO EVENT SHALL Julien Verneuil BE LIABLE FOR ANY
20  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27 
28 #ifndef FB_GRAPHICS_H
29 #define FB_GRAPHICS_H
30 
31  #include <time.h>
32  #include <sys/time.h>
33  #include <stdint.h>
34  #include <math.h>
35 
36 #ifdef FBG_PARALLEL
37  #include <stdatomic.h>
38  #include <pthread.h>
39 
40 // compatibility layer for liblfds 711 version (because 720 was unreleased at the time of writing this)
41 #ifdef FBG_LFDS
42 #ifdef LFDS711
43  #include "liblfds711.h"
44 
45  #define lfds720_freelist_n_element lfds711_freelist_element
46  #define lfds720_ringbuffer_n_element lfds711_ringbuffer_element
47  #define lfds720_ringbuffer_n_state lfds711_ringbuffer_state
48  #define lfds720_freelist_n_state lfds711_freelist_state
49  #define LFDS720_PAL_ATOMIC_ISOLATION_LENGTH_IN_BYTES LFDS711_PAL_ATOMIC_ISOLATION_IN_BYTES
50  #define lfds720_ringbuffer_n_init_valid_on_current_logical_core lfds711_ringbuffer_init_valid_on_current_logical_core
51  #define lfds720_freelist_n_init_valid_on_current_logical_core lfds711_freelist_init_valid_on_current_logical_core
52  #define LFDS720_FREELIST_N_SET_VALUE_IN_ELEMENT LFDS711_FREELIST_SET_VALUE_IN_ELEMENT
53  #define LFDS720_FREELIST_N_GET_VALUE_FROM_ELEMENT LFDS711_FREELIST_GET_VALUE_FROM_ELEMENT
54  #define lfds720_freelist_n_threadsafe_push lfds711_freelist_push
55  #define lfds720_freelist_n_threadsafe_pop lfds711_freelist_pop
56  #define lfds720_ringbuffer_n_cleanup lfds711_ringbuffer_cleanup
57  #define lfds720_freelist_n_cleanup lfds711_freelist_cleanup
58  #define lfds720_ringbuffer_n_read lfds711_ringbuffer_read
59  #define lfds720_ringbuffer_n_write lfds711_ringbuffer_write
60  #define lfds720_misc_flag lfds711_misc_flag
61  #define LFDS720_MISC_FLAG_RAISED LFDS711_MISC_FLAG_RAISED
62  #define LFDS720_MISC_MAKE_VALID_ON_CURRENT_LOGICAL_CORE_INITS_COMPLETED_BEFORE_NOW_ON_ANY_OTHER_PHYSICAL_CORE LFDS711_MISC_MAKE_VALID_ON_CURRENT_LOGICAL_CORE_INITS_COMPLETED_BEFORE_NOW_ON_ANY_OTHER_LOGICAL_CORE
63  #define lfds720_pal_uint_t lfds711_pal_uint_t
64 #else
65  #include "liblfds720.h"
66 #endif
67 #endif
68 #endif
69 
70 // ### Library structures
71 
73 
74  struct _fbg_rgb {
75  unsigned char r;
76  unsigned char g;
77  unsigned char b;
78  unsigned char a;
79  };
80 
82 
83  struct _fbg_hsl {
84  int h;
85  float s;
86  float l;
87  };
88 
90 
91  struct _fbg_img {
93  unsigned char *data;
94 
96  unsigned int width;
98  unsigned int height;
99  };
100 
102 
103  struct _fbg_font {
108 
113 
115  unsigned char first_char;
116 
118  struct _fbg_img *bitmap;
119  };
120 
122 
123  struct _fbg {
125  int size;
126 
128  unsigned char *disp_buffer;
130 
131  unsigned char *back_buffer;
133  unsigned char *temp_buffer;
134 
137 
140 
142 
143  struct _fbg_rgb fill_color;
144 
146 
147  struct _fbg_rgb text_color;
148 
150 
151  struct _fbg_rgb text_background;
152 
154 
155  unsigned char text_colorkey;
156 
158 
160 
162 
163  struct _fbg_font current_font;
164 
166 
168 
170  int width;
172  int height;
181 
186 
188 #ifdef FBG_PARALLEL
189  atomic_uint_fast16_t fps;
190 #else
191  int16_t fps;
192 #endif
193 
195  char fps_char[10];
196 
198  struct timeval fps_start;
200  struct timeval fps_stop;
201 
203  int frame;
204 
206  int bgr;
207 
209  void (*backend_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height);
211  void (*user_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height);
213  void (*user_flip)(struct _fbg *fbg);
215  void (*user_draw)(struct _fbg *fbg);
217  void (*user_free)(struct _fbg *fbg);
220 
222  //unsigned char *curr_task_buffer;
223 
224 #ifdef FBG_PARALLEL
225  unsigned int parallel_tasks;
227 
229  pthread_t *tasks;
230 
232  struct _fbg_fragment **fragments;
233 
235  pthread_barrier_t *sync_barrier;
236 
238  int task_id;
239 
241  atomic_int state;
242 
245  unsigned int fragment_queue_size;
246 #endif
247  };
248 
249 #ifdef FBG_PARALLEL
250 #ifdef FBG_LFDS
251 
253  struct _fbg_freelist_data {
254  struct lfds720_freelist_n_element freelist_element;
255 
256  unsigned char *buffer;
257  };
258  #endif
259 
261 
262  struct _fbg_fragment {
264  atomic_int state;
265 
267  struct _fbg *fbg;
268 
269 #ifdef FBG_LFDS
270  struct lfds720_ringbuffer_n_element *ringbuffer_element;
273  struct lfds720_ringbuffer_n_state *ringbuffer_state;
274 
276  struct lfds720_freelist_n_state *freelist_state;
277 
279  struct _fbg_freelist_data *fbg_freelist_data;
280 
282  struct _fbg_freelist_data *tmp_fbg_freelist_data;
283 #endif
284 
286  atomic_int sync_wait;
287 
289  void *(*user_fragment_start)(struct _fbg *fbg);
291  void (*user_fragment)(struct _fbg *fbg, void *user_data);
293  void (*user_fragment_stop)(struct _fbg *fbg, void *user_data);
294 
296  void *user_data;
297  };
298 #endif
299 
300 // ### Library functions
301 
303 
317  extern struct _fbg *fbg_customSetup(int width, int height, int components, int initialize_buffers, int allow_resizing, void *user_context, void (*user_draw)(struct _fbg *fbg), void (*user_flip)(struct _fbg *fbg), void (*backend_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height), void (*user_free)(struct _fbg *fbg));
318 
320 
324  extern void fbg_close(struct _fbg *fbg);
325 
327 
332  void fbg_setResizeCallback(struct _fbg *fbg, void (*user_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height));
333 
337 
343  extern void fbg_resize(struct _fbg *fbg, int new_width, int new_height);
344 
349 
355  extern void fbg_pushResize(struct _fbg *fbg, int new_width, int new_height);
356 
358 
363  extern void fbg_fadeDown(struct _fbg *fbg, unsigned char rgb_fade_amount);
364 
366 
371  extern void fbg_fadeUp(struct _fbg *fbg, unsigned char rgb_fade_amount);
372 
374 
379  extern void fbg_clear(struct _fbg *fbg, unsigned char brightness);
380 
382 
389  extern void fbg_fill(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b);
390 
392 
398  extern void fbg_getPixel(struct _fbg *fbg, int x, int y, struct _fbg_rgb *color);
399 
401 
410  extern void fbg_pixel(struct _fbg *fbg, int x, int y, unsigned char r, unsigned char g, unsigned char b);
411 
413 
423  extern void fbg_pixela(struct _fbg *fbg, int x, int y, unsigned char r, unsigned char g, unsigned char b, unsigned char a);
424 
426 
432  extern void fbg_fpixel(struct _fbg *fbg, int x, int y);
433 
435 
441  extern void fbg_plot(struct _fbg *fbg, int index, unsigned char value);
442 
444 
455  extern void fbg_rect(struct _fbg *fbg, int x, int y, int w, int h, unsigned char r, unsigned char g, unsigned char b);
456 
458 
470  extern void fbg_recta(struct _fbg *fbg, int x, int y, int w, int h, unsigned char r, unsigned char g, unsigned char b, unsigned char a);
471 
473 
481  extern void fbg_frect(struct _fbg *fbg, int x, int y, int w, int h);
482 
484 
494  extern void fbg_hline(struct _fbg *fbg, int x, int y, int w, unsigned char r, unsigned char g, unsigned char b);
495 
497 
507  extern void fbg_vline(struct _fbg *fbg, int x, int y, int h, unsigned char r, unsigned char g, unsigned char b);
508 
510 
521  extern void fbg_line(struct _fbg *fbg, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b);
522 
524 
532  extern void fbg_polygon(struct _fbg *fbg, int num_vertices, int *vertices, unsigned char r, unsigned char g, unsigned char b);
533 
535 
542  extern void fbg_background(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b);
543 
545 
552  extern void fbg_hslToRGB(struct _fbg_rgb *color, float h, float s, float l);
553 
555 
562  extern void fbg_rgbToHsl(struct _fbg_hsl *color, float r, float g, float b);
563 
564 #ifdef FBG_PARALLEL
565 
571  extern void fbg_draw(struct _fbg *fbg, void (*user_mixing)(struct _fbg *fbg, unsigned char *buffer, int task_id));
572 #else
573 
577  extern void fbg_draw(struct _fbg *fbg);
578 #endif
579 
581 
584  extern void fbg_flip(struct _fbg *fbg);
585 
587 
594  extern struct _fbg_img *fbg_createImage(struct _fbg *fbg, unsigned int width, unsigned int height);
595 
597 
603 #ifndef WITHOUT_PNG
604  extern struct _fbg_img *fbg_loadPNG(struct _fbg *fbg, const char *filename);
605 #endif
606 
608 
614 #ifndef WITHOUT_JPEG
615  extern struct _fbg_img *fbg_loadJPEG(struct _fbg *fbg, const char *filename);
616 #endif
617 
619 
625  extern struct _fbg_img *fbg_loadImage(struct _fbg *fbg, const char *filename);
626 
628 
635  extern void fbg_image(struct _fbg *fbg, struct _fbg_img *img, int x, int y);
636 
638 
648  extern void fbg_imageColorkey(struct _fbg *fbg, struct _fbg_img *img, int x, int y, int cr, int cg, int cb);
649 
651 
662  extern void fbg_imageClip(struct _fbg *fbg, struct _fbg_img *img, int x, int y, int cx, int cy, int cw, int ch);
663 
665 
669  extern void fbg_imageFlip(struct _fbg_img *img);
670 
672 
685  extern void fbg_imageEx(struct _fbg *fbg, struct _fbg_img *img, int x, int y, float sx, float sy, int cx, int cy, int cw, int ch);
686 
688 
692  extern void fbg_freeImage(struct _fbg_img *img);
693 
695 
704  extern struct _fbg_font *fbg_createFont(struct _fbg *fbg, struct _fbg_img *img, int glyph_width, int glyph_height, unsigned char first_char);
705 
707 
712  extern void fbg_textFont(struct _fbg *fbg, struct _fbg_font *font);
713 
715 
722  extern void fbg_textColor(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b);
723 
725 
733  extern void fbg_textBackground(struct _fbg *fbg, int r, int g, int b, int a);
734 
736 
741  extern void fbg_textColorKey(struct _fbg *fbg, unsigned char v);
742 
744 
755  extern void fbg_text(struct _fbg *fbg, struct _fbg_font *fnt, char *text, int x, int y, int r, int g, int b);
756 
758 
762  extern void fbg_freeFont(struct _fbg_font *font);
763 
765 
775  extern void fbg_drawFramerate(struct _fbg *fbg, struct _fbg_font *fnt, int task, int x, int y, int r, int g, int b);
776 
778 
783  extern int fbg_getFramerate(struct _fbg *fbg, int task);
784 
786 
790  extern void fbg_drawInto(struct _fbg *fbg, unsigned char *buffer);
791 
793 
798  extern float fbg_randf(float min, float max);
799 
800 #ifdef FBG_PARALLEL
801 
809  extern void fbg_createFragment(struct _fbg *fbg, void *(*fragment_start)(struct _fbg *fbg), void (*fragment)(struct _fbg *fbg, void *user_data), void (*fragment_stop)(struct _fbg *fbg, void *user_data), unsigned int parallel_tasks);
810 #endif
811 
812 // ### Helper functions
814 
819  #define fbg_fade(fbg, fade_amount) fbg_fadeDown(fbg, fade_amount)
820 
822 
829  #define fbg_write(fbg, text, x, y) fbg_text(fbg, &fbg->current_font, text, x, y, fbg->text_color.r, fbg->text_color.g, fbg->text_color.b)
830 
832 
841  #define fbg_imageScale(fbg, img, x, y, sx, sy) fbg_imageEx(fbg, img, x, y, sx, sy, 0, 0, img->width, img->height)
842 
844  #define _FBG_MAX(a,b) ((a) > (b) ? a : b)
845  #define _FBG_MIN(a,b) ((a) < (b) ? a : b)
847  #define _FBG_SGN(x) ((x<0)?-1:((x>0)?1:0))
849 
851  #define _FBG_DEGTORAD(angle_degree) ((angle_degree) * M_PI / 180.0)
852  #define _FBG_RADTODEG(angle_radians) ((angle_radians) * 180.0 / M_PI)
854 
855  #define _FBG_SOURCE_OVER(a,b,c) (c * a + b * (1.f - a))
856 #endif
unsigned char b
Definition: fbgraphics.h:77
void fbg_text(struct _fbg *fbg, struct _fbg_font *fnt, char *text, int x, int y, int r, int g, int b)
draw a text
void fbg_imageClip(struct _fbg *fbg, struct _fbg_img *img, int x, int y, int cx, int cy, int cw, int ch)
draw a clipped image
struct _fbg_font * fbg_createFont(struct _fbg *fbg, struct _fbg_img *img, int glyph_width, int glyph_height, unsigned char first_char)
create a bitmap font from an image
unsigned char first_char
First ASCII character of the bitmap font file.
Definition: fbgraphics.h:115
int text_alpha
Text background alpha value.
Definition: fbgraphics.h:159
void fbg_setResizeCallback(struct _fbg *fbg, void(*user_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height))
register a user resize callback
void(* user_draw)(struct _fbg *fbg)
User-defined draw function.
Definition: fbgraphics.h:215
int initialize_buffers
Wether to allow FBG to allocate its internal buffers.
Definition: fbgraphics.h:139
int components
Display components amount (3 = 24 BPP / 4 = 32 BPP)
Definition: fbgraphics.h:176
unsigned char * back_buffer
Back buffer.
Definition: fbgraphics.h:131
void fbg_drawFramerate(struct _fbg *fbg, struct _fbg_font *fnt, int task, int x, int y, int r, int g, int b)
draw the framerate of a particular parallel task
int glyph_width
Width of a glyph.
Definition: fbgraphics.h:110
void fbg_imageFlip(struct _fbg_img *img)
flip an image vertically
struct _fbg_img * fbg_loadImage(struct _fbg *fbg, const char *filename)
load an image (PNG or JPEG)
RGBA color data structure.
Definition: fbgraphics.h:74
unsigned char a
Definition: fbgraphics.h:78
void fbg_clear(struct _fbg *fbg, unsigned char brightness)
fast grayscale background clearing
void fbg_textColorKey(struct _fbg *fbg, unsigned char v)
set the current text color key
struct _fbg_img * fbg_loadPNG(struct _fbg *fbg, const char *filename)
load a PNG image from a file (lodePNG library)
struct _fbg * fbg_customSetup(int width, int height, int components, int initialize_buffers, int allow_resizing, void *user_context, void(*user_draw)(struct _fbg *fbg), void(*user_flip)(struct _fbg *fbg), void(*backend_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height), void(*user_free)(struct _fbg *fbg))
initialize a FB Graphics context (typically used by a custom rendering backend)
int size
Framebuffer real data length (with BPP)
Definition: fbgraphics.h:125
void fbg_textColor(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b)
set the current text color
unsigned char r
Definition: fbgraphics.h:75
void fbg_rect(struct _fbg *fbg, int x, int y, int w, int h, unsigned char r, unsigned char g, unsigned char b)
draw a rectangle
int width
Display width in pixels.
Definition: fbgraphics.h:170
void fbg_fpixel(struct _fbg *fbg, int x, int y)
fast pixel drawing which use the fill color set by fbg_fill()
int new_width
Requested new display width (resize event)
Definition: fbgraphics.h:183
int new_height
Requested new display height (resize event)
Definition: fbgraphics.h:185
void(* user_flip)(struct _fbg *fbg)
User-defined flip function.
Definition: fbgraphics.h:213
int allow_resizing
Wether to allow context resize.
Definition: fbgraphics.h:136
void fbg_fadeDown(struct _fbg *fbg, unsigned char rgb_fade_amount)
background fade to black with controllable factor
int line_length
Internal buffers line length.
Definition: fbgraphics.h:180
int width_n_height
Display lenght in pixels (width * height)
Definition: fbgraphics.h:174
void fbg_background(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b)
clear the background with a color
int height
Display height in pixels.
Definition: fbgraphics.h:172
void fbg_recta(struct _fbg *fbg, int x, int y, int w, int h, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
draw a rectangle with alpha transparency
unsigned char * data
RGB image data (bpp depend on framebuffer settings)
Definition: fbgraphics.h:93
void(* user_free)(struct _fbg *fbg)
User-defined free function.
Definition: fbgraphics.h:217
unsigned char * temp_buffer
Temporary buffer.
Definition: fbgraphics.h:133
void fbg_imageColorkey(struct _fbg *fbg, struct _fbg_img *img, int x, int y, int cr, int cg, int cb)
draw an image with colorkeying support (image colorkey value will be ignored)
void(* backend_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height)
Backend resize function.
Definition: fbgraphics.h:209
void fbg_rgbToHsl(struct _fbg_hsl *color, float r, float g, float b)
convert RGB values to HSL color
void fbg_pushResize(struct _fbg *fbg, int new_width, int new_height)
void fbg_flip(struct _fbg *fbg)
flip the buffers
void fbg_close(struct _fbg *fbg)
free up the memory associated with a FB Graphics context and close the framebuffer device ...
void fbg_polygon(struct _fbg *fbg, int num_vertices, int *vertices, unsigned char r, unsigned char g, unsigned char b)
draw a polygon
void fbg_image(struct _fbg *fbg, struct _fbg_img *img, int x, int y)
draw an image
int fbg_getFramerate(struct _fbg *fbg, int task)
get the framerate of a particular task
void fbg_textFont(struct _fbg *fbg, struct _fbg_font *font)
set the current font
int * glyph_coord_y
Pre-computed Y glyphs coordinates.
Definition: fbgraphics.h:107
void fbg_pixel(struct _fbg *fbg, int x, int y, unsigned char r, unsigned char g, unsigned char b)
draw a pixel
struct _fbg_img * bitmap
Associated font image data structure.
Definition: fbgraphics.h:118
void fbg_draw(struct _fbg *fbg)
draw to the screen
float s
Definition: fbgraphics.h:85
void fbg_fadeUp(struct _fbg *fbg, unsigned char rgb_fade_amount)
background fade to white with controllable factor
void * user_context
User-defined context structure.
Definition: fbgraphics.h:219
void fbg_freeImage(struct _fbg_img *img)
free the memory associated with an image
void(* user_resize)(struct _fbg *fbg, unsigned int new_width, unsigned int new_height)
User-defined resize function.
Definition: fbgraphics.h:211
float l
Definition: fbgraphics.h:86
void fbg_fill(struct _fbg *fbg, unsigned char r, unsigned char g, unsigned char b)
set the filling color for fast drawing operations
unsigned int height
Image height in pixels.
Definition: fbgraphics.h:98
int glyph_height
Height of a glyph.
Definition: fbgraphics.h:112
void fbg_freeFont(struct _fbg_font *font)
free the memory associated with a font
unsigned char text_colorkey
Current text color key.
Definition: fbgraphics.h:155
struct _fbg_img * fbg_loadJPEG(struct _fbg *fbg, const char *filename)
load a JPEG image from a file (NanoJPEG library)
void fbg_hslToRGB(struct _fbg_rgb *color, float h, float s, float l)
convert HSL values to RGB color
int comp_offset
Offset to add in case of 32 BPP.
Definition: fbgraphics.h:178
FB Graphics context data structure.
Definition: fbgraphics.h:123
void fbg_pixela(struct _fbg *fbg, int x, int y, unsigned char r, unsigned char g, unsigned char b, unsigned char a)
draw a pixel with alpha component (alpha blending)
void fbg_drawInto(struct _fbg *fbg, unsigned char *buffer)
set an offscreen target for all subsequent fbg context draw calls, it is important to reset back to d...
float fbg_randf(float min, float max)
pseudo random number between min / max
unsigned char g
Definition: fbgraphics.h:76
int16_t fps
Current FPS.
Definition: fbgraphics.h:191
unsigned int width
Image width in pixels.
Definition: fbgraphics.h:96
Bitmap font data structure.
Definition: fbgraphics.h:103
void fbg_vline(struct _fbg *fbg, int x, int y, int h, unsigned char r, unsigned char g, unsigned char b)
draw a vertical line
void fbg_textBackground(struct _fbg *fbg, int r, int g, int b, int a)
set the current text background color (based on colorkey value!)
struct _fbg_img * fbg_createImage(struct _fbg *fbg, unsigned int width, unsigned int height)
create an empty image
HSL color data structure.
Definition: fbgraphics.h:83
int bgr
Flag indicating a BGR framebuffer.
Definition: fbgraphics.h:206
unsigned char * disp_buffer
Front / display buffer.
Definition: fbgraphics.h:128
void fbg_plot(struct _fbg *fbg, int index, unsigned char value)
direct pixel access from index value
Image data structure.
Definition: fbgraphics.h:91
void fbg_imageEx(struct _fbg *fbg, struct _fbg_img *img, int x, int y, float sx, float sy, int cx, int cy, int cw, int ch)
draw an image with support for clipping and scaling (Nearest-neighbor algorithm)
void fbg_hline(struct _fbg *fbg, int x, int y, int w, unsigned char r, unsigned char g, unsigned char b)
draw a horizontal line
void fbg_resize(struct _fbg *fbg, int new_width, int new_height)
void fbg_getPixel(struct _fbg *fbg, int x, int y, struct _fbg_rgb *color)
get the RGB value of a pixel
void fbg_line(struct _fbg *fbg, int x1, int y1, int x2, int y2, unsigned char r, unsigned char g, unsigned char b)
draw a line from two points (Bresenham algorithm)
int compositing
Compositing method (only used with fbg_drawImage for now)
Definition: fbgraphics.h:167
int * glyph_coord_x
Pre-computed X glyphs coordinates.
Definition: fbgraphics.h:105
int frame
Frame counter for the current second.
Definition: fbgraphics.h:203
void fbg_frect(struct _fbg *fbg, int x, int y, int w, int h)
fast rectangle drawing which use the fill color set by fbg_fill()
================================================ FILE: docs/fbgraphics_8h_struct__fbg__font.js ================================================ var fbgraphics_8h_struct__fbg__font = [ [ "bitmap", "fbgraphics_8h.html#a0e7995b285b04f41d883165b0e7e387f", null ], [ "first_char", "fbgraphics_8h.html#a05730637b297339a1fe39db736335cff", null ], [ "glyph_coord_x", "fbgraphics_8h.html#a1a9dc1b888e744c8e8d69f1a39d7a0b3", null ], [ "glyph_coord_y", "fbgraphics_8h.html#a929f320fae39630e84bd1c949b9d845d", null ], [ "glyph_height", "fbgraphics_8h.html#a3b11d9dc4724e8b789509882d4cff87e", null ], [ "glyph_width", "fbgraphics_8h.html#a279be685895357ebda19f155ed405efc", null ] ]; ================================================ FILE: docs/fbgraphics_8h_struct__fbg__hsl.js ================================================ var fbgraphics_8h_struct__fbg__hsl = [ [ "h", "fbgraphics_8h.html#a7246517249c3b27ed57f82a11da3c7d3", null ], [ "l", "fbgraphics_8h.html#a405724441abc0190dea559bf11b8b174", null ], [ "s", "fbgraphics_8h.html#a22a62f07da21ac2ef92365718104348f", null ] ]; ================================================ FILE: docs/fbgraphics_8h_struct__fbg__img.js ================================================ var fbgraphics_8h_struct__fbg__img = [ [ "data", "fbgraphics_8h.html#ab996d65bce285a78c8a8f3ac99b40658", null ], [ "height", "fbgraphics_8h.html#ac6293cb3d118f0ccdde38c13cbefa9db", null ], [ "width", "fbgraphics_8h.html#a6e666c23aea3d07ee2c8c9f83f25eed2", null ] ]; ================================================ FILE: docs/fbgraphics_8h_struct__fbg__rgb.js ================================================ var fbgraphics_8h_struct__fbg__rgb = [ [ "a", "fbgraphics_8h.html#a683be8ec38b9931754fe8501c4df3019", null ], [ "b", "fbgraphics_8h.html#a5eb0caaedd56ed29a1ef1f7941f414d7", null ], [ "g", "fbgraphics_8h.html#a73d04c86a962adfeac115c18c231eae1", null ], [ "r", "fbgraphics_8h.html#a3974f2dce77af4058a1ae585f55c5bb8", null ] ]; ================================================ FILE: docs/files.html ================================================ FB Graphics: File List
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
File List
Here is a list of all files with brief descriptions:
================================================ FILE: docs/files.js ================================================ var files = [ [ "fbg_dispmanx.h", "fbg__dispmanx_8h.html", "fbg__dispmanx_8h" ], [ "fbg_fbdev.h", "fbg__fbdev_8h.html", "fbg__fbdev_8h" ], [ "fbg_gba.h", "fbg__gba_8h.html", "fbg__gba_8h" ], [ "fbg_glfw.h", "fbg__glfw_8h.html", "fbg__glfw_8h" ], [ "fbg_opengl_es2.h", "fbg__opengl__es2_8h.html", "fbg__opengl__es2_8h" ], [ "fbgraphics.h", "fbgraphics_8h.html", "fbgraphics_8h" ] ]; ================================================ FILE: docs/functions.html ================================================ FB Graphics: Data Fields
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
Here is a list of all struct and union fields with links to the structures/unions they belong to:

- a -

- b -

- c -

- d -

- e -

- f -

- g -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- r -

- s -

- t -

- u -

- v -

- w -

================================================ FILE: docs/functions_vars.html ================================================ FB Graphics: Data Fields - Variables
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
 

- a -

- b -

- c -

- d -

- e -

- f -

- g -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- r -

- s -

- t -

- u -

- v -

- w -

================================================ FILE: docs/globals.html ================================================ FB Graphics: Globals
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:

- _ -

- f -

================================================ FILE: docs/globals_defs.html ================================================ FB Graphics: Globals
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
 
================================================ FILE: docs/globals_func.html ================================================ FB Graphics: Globals
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
 

- f -

================================================ FILE: docs/globals_vars.html ================================================ FB Graphics: Globals
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
 
================================================ FILE: docs/graph_legend.html ================================================ My Project: Graph Legend
My Project
Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a gray border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
================================================ FILE: docs/graph_legend.md5 ================================================ 387ff8eb65306fa251338d3c9bd7bfff ================================================ FILE: docs/index.html ================================================ FB Graphics: FBGraphics : Lightweight C 2D graphics API agnostic library with parallelism support
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
FBGraphics : Lightweight C 2D graphics API agnostic library with parallelism support

FBGraphics (FBG) is a simple C 24, 32 bpp (internal format) graphics library with parallelism and custom rendering backend support (graphics API agnostic).

The library is only two .c files on most use cases, the renderer agnostic library fbgraphics.c and one of the rendering backend found in custom_backend directory.

The library come with five backend (see custom_backend folder) :

  • a Linux framebuffer rendering backend (with 16 bpp support through 24/32 bpp conversion)
  • OpenGL backend which use the GLFW library
  • OpenGL ES 2.0 backend for fbdev or Raspberry PI
  • fast dispmanx backend (Video Core IV; Raspberry PI)
  • GBA backend (slow due to 24/32 bpp -> 16 bpp support, mostly done as a proof of concept for portability on low memory hardware)

Features :

  • Easy to write / use custom rendering backend support flexible enough to target low memory hardware!
  • Cross-platform with the GLFW backend (some examples may need to be adapted to the target OS)
  • Linux framebuffer (fbdev) rendering backend support
    • Double buffering (with optional page flipping mechanism)
    • 16, 24 (BGR/RGB), 32 bpp support
  • GBA rendering backend
  • OpenGL rendering backend through GLFW
  • OpenGL ES 2.0 rendering backend for Raspberry PI or through fbdev (tested on Nano PI Fire 3 board)
  • dispmanx rendering backend (Video Core IV; Raspberry PI)
  • Optional : Full parallelism, execute graphics code on multiple CPU cores with a single function
  • PNG/JPEG images loading (provided by LodePNG and NanoJPEG)
  • Bitmap fonts for drawing texts
  • Bare-metal graphics primitive (pixels, rectangles, lines, polygon)
  • Easy to do fading, clipping and screen-clearing related effects (motion blur etc.)
  • Drawing calls can be used to render into a specified target buffer such as fbg_image etc.
  • Framerate tracking & display for all cores
  • Lightweight enough to be hackable; adapt to all kinds of needs (and still support parallelism easily)

The library is generic, most functions (including parallel ones) only manipulate buffers and you can build a custom rendering backend pretty easily with few functions call, see the custom_backend folder.

Table of Contents

About

FBGraphics was built to produce fullscreen pixels effects easily (think of Processing-like creative coding etc.) with non-accelerated framebuffer by leveraging multi-core processors, it is a bit like a software GPU but much less complex and featured, the initial target platform was a Raspberry PI 3B / NanoPI.

FBGraphics was extended to support any numbers of custom rendering backend; all graphics calls manipulate internal buffers and a simple interface allow to draw the result the way you want to.

FBGraphics can support low memory hardware such as GBA. It should be noted that all internal buffers are manipulated in 24/32 bpp so it has to convert to 16bpp on GBA.

An OpenGL rendering backend which use the GLFW library was created to demonstrate the custom backend feature, it allow to draw the non-accelerated FB Graphics buffer into an OpenGL context through a texture and thus allow to interwine 3D or 2D graphics produced with standard OpenGL calls with CPU-only graphics produced by FBGraphics draw calls.

An OpenGL ES 2.0 backend is also available with similar features, it target platforms with support for OpenGL ES 2.0 through fbdev (tested on Nano PI Fire 3 SBC) or Raspberry PI dispmanx and similar platforms, it wouldn't be hard to extend this for more OpenGL ES 2.0 platforms...

There is also a dispmanx backend targeting Raspberry PI, it have better performances than the OpenGL ES 2 backend on this platform and is recommended if you don't need 3D stuff.

FBGraphics was built so that it is possible to create any number of rendering context using different backend running at the same time while exploiting multi-core processors... the content of any rendering context can be transfered into other context through images when calling fbg_drawInto

FBGraphics framebuffer settings support 16, 24 (BGR/RGB), 32 bpp, 16 bpp mode is handled by converting from 24 bpp to 16 bpp upon drawing, page flipping mechanism is disabled in 16 bpp mode, 24 bpp is the fastest mode.

FBGraphics is lightweight and does not intend to be a fully featured graphics library, it provide a limited set of graphics primitive and a small set of useful functions to start doing computer graphics anywhere right away with or without multi-core support.

If you want to use the parallelism features with advanced graphics primitives, take a look at great libraries such as libgd, Adafruit GFX library or even ImageMagick which should be easy to integrate.

FBGraphics is fast but should be used with caution, display bounds checking is not implemented on most primitives, this allow raw performances at the cost of crashs if not careful.

Multi-core support is optional and is only enabled when FBG_PARALLEL C definition is present.

FBGraphics framebuffer backend support a mechanism known as page flipping, it allow fast double buffering by doubling the framebuffer virtual area, it is disabled by default because it is actually slower on some devices. You can enable it with a fbg_fbdevSetup call.

VSync is automatically enabled if supported.

Note : FBGraphics framebuffer backend does not let you setup the framebuffer, it expect the framebuffer to be configured prior launch with a command such as :

fbset -fb /dev/fb0 -g 512 240 512 240 24 -vsync high
setterm -cursor off > /dev/tty0

fbset should be available in your package manager.

Framebuffer Quickstart

The simplest example (no parallelism, without texts and images) :

#include <sys/stat.h>
#include <signal.h>
#include "fbg_fbdev.h"
#include "fbgraphics.h"
int keep_running = 1;
void int_handler(int dummy) {
keep_running = 0;
}
int main(int argc, char* argv[]) {
signal(SIGINT, int_handler);
struct _fbg *fbg = fbg_fbdevSetup("/dev/fb0", 0); // you can also directly use fbg_fbdevInit(); for "/dev/fb0", last argument mean that will not use page flipping mechanism for double buffering (it is actually slower on some devices!)
do {
fbg_clear(fbg, 0); // can also be replaced by fbg_fill(fbg, 0, 0, 0);
fbg_draw(fbg);
fbg_rect(fbg, fbg->width / 2 - 32, fbg->height / 2 - 32, 16, 16, 0, 255, 0);
fbg_pixel(fbg, fbg->width / 2, fbg->height / 2, 255, 0, 0);
fbg_flip(fbg);
} while (keep_running);
fbg_close(fbg);
return 0;
}

A simple quickstart example with most features (but no parallelism, see below) :

#include <sys/stat.h>
#include <signal.h>
#include "fbg_fbdev.h"
#include "fbgraphics.h"
int keep_running = 1;
void int_handler(int dummy) {
keep_running = 0;
}
int main(int argc, char* argv[]) {
signal(SIGINT, int_handler);
struct _fbg *fbg = fbg_fbdevInit();
struct _fbg_img *texture = fbg_loadImage(fbg, "texture.png");
struct _fbg_img *bb_font_img = fbg_loadImage(fbg, "bbmode1_8x8.png");
struct _fbg_font *bbfont = fbg_createFont(fbg, bb_font_img, 8, 8, 33);
do {
fbg_clear(fbg, 0);
fbg_draw(fbg);
// you can also use fbg_image(fbg, texture, 0, 0)
// but you must be sure that your image size fit on the display
fbg_imageClip(fbg, texture, 0, 0, 0, 0, fbg->width, fbg->height);
fbg_write(fbg, "Quickstart example\nFPS:", 4, 2);
fbg_write(fbg, fbg->fps_char, 32 + 8, 2 + 8);
fbg_rect(fbg, fbg->width / 2 - 32, fbg->height / 2 - 32, 16, 16, 0, 255, 0);
fbg_pixel(fbg, fbg->width / 2, fbg->height / 2, 255, 0, 0);
fbg_flip(fbg);
} while (keep_running);
fbg_freeImage(texture);
fbg_freeImage(bb_font_img);
fbg_freeFont(bbfont);
fbg_close(fbg);
return 0;
}

Note : Functions like fbg_clear or fbg_fpixel are fast functions, there is slower equivalent (but more parametrable) such as fbg_background or fbg_pixel, some functions variant also support transparency such as `fbg_pixela or fbg_recta.

Note : You can generate monospace bitmap fonts to be used with fbg_createFont function by using my monoBitmapFontCreator tool available here

Parallelism

Exploiting multiple cores with FBGraphics is really easy, first you have to prepare 3 functions (of which two are optional if you don't have any allocations to do) of the following definition :

// optional function
void *fragmentStart(struct _fbg *fbg) {
// typically used to allocate your per-thread data
// see full_example.c for more informations
return NULL; // return your user data here
}
void fragment(struct _fbg *fbg, struct _fragment_user_data *user_data) {
// this function will be executed by each threads
// you are free to call any FBG graphics primitive here
fbg_clear(fbg, 0);
// you are also free to fill each threads back buffer the way you want to
// fbg->task_id : thread identifier (starting at 1, 0 is reserved for the main thread)
// each threads will draw an horizontal line, the shade of the blue color will change based on the thread it is drawn from
int x = 0, y = 0;
for (y = fbg->task_id; y < fbg->height; y += 4) {
for (x = 0; x < fbg->width; x += 1) {
int i = (x + y * fbg->width) * 3;
fbg->back_buffer[i] = fbg->task_id * 85; // note : BGR format
fbg->back_buffer[i + 1] = 0;
fbg->back_buffer[i + 2] = 0;
}
}
// simple graphics primitive (4 blue rectangle which will be handled by different threads in parallel)
fbg_rect(fbg, fbg->task_id * 32, 0, 32, 32, 0, 0, 255);
}
// optional function
void fragmentStop(struct _fbg *fbg, struct _fragment_user_data *data) {
// typically used to free your per-thread data
// see full_example.c for more informations
}

Then you have to create a 'Fragment' which is a FBG multi-core task :

fbg_createFragment(fbg, fragmentStart, fragment, fragmentStop, 3);

Where :

  • fbg is the main library data structure returned by fbg_customSetup and any backend fbg_backendnameSetup calls (see available backends in custom_backend directory)
  • fragmentStartis a C function which will be executed when the thread start (can be NULL)
  • fragmentis a C function which will be executed indefinitly for each threads and where all the draw code will happen
  • fragmentStop is a C function which will be executed when the thread end (can be NULL)
  • 3is the number of parallel tasks (this will launch 3 threads)

And finally you just have to make a call to your fragment function in your drawing loop and call fbg_draw!

fragment(fbg, NULL);
fbg_draw(fbg, NULL);

fbg_draw will wait until all the data are received from all the threads then draw to screen

Note : This example will use 4 threads (including your app one) for drawing things on the screen but calling the fragment function in your drawing loop is totally optional, you could for example make use of threads for intensive drawing tasks and just use the main thread to draw the GUI or the inverse etc. it is up to you!

And that is all you have to do!

See simple_parallel_example.c and full_example.c for more informations.

Note : By default, the resulting buffer of each tasks are additively mixed into the main back buffer, you can override this behavior by specifying a mixing function as the last argument of fbg_draw such as :

// function called for each tasks in the fbg_draw function
void selectiveMixing(struct _fbg *fbg, unsigned char *buffer, int task_id) {
// fbg is the main fbg structure returned by fbg_customSetup calls and any backend setup calls
// buffer is the current task buffer
// task_id is the current task id
int j = 0;
for (j = 0; j < fbg->size; j += 1) {
fbg->back_buffer[j] = (fbg->back_buffer[j] > buffer[j]) ? fbg->back_buffer[j] : buffer[j];
}
}

Then you just have to specify it to the fbg_draw function :

fbg_draw(fbg, additiveMixing);

By using the mixing function, you can have different layers handled by different cores with different compositing rule, see compositing.c for an example of alpha blending compositing 2 layers running on their own cores.

Note : You can only create one Fragment per fbg instance, another call to fbg_createFragment will stop all tasks for the passed fbg context and will create a new set of tasks.

Note : On low performances platforms you may encounter performance issues at high resolution and with a high number of fragments, this is because all the threads buffer need to be mixed back onto the main thread before being displayed and at high resolution / threads count that is alot of pixels to process! You can see an alternative implementation using pure pthread in the custom_backend folder and dispmanx_pure_parallel.c but it doesn't have compositing. If your platform support some sort of SIMD instructions you could also do all the compositing using SIMD which should result in a 5x or more speed increase!

Technical implementation

FBGraphics threads come with their own fbg context data which is essentialy a copy of the actual fbg context, they make use of C atomic types.

Initially parallelism was implemented using liblfds library for its Ringbuffer and Freelist data structure.

Now parallelism has two implementation, liblfds and a custom synchronization mechanism which has the advantage to not require additional libraries and thus execute on more platforms.

You can still use the liblfds implementation using the FBG_LFDS define, it may be faster.

With liblfds

Each threads begin by fetching a pre-allocated buffer from a freelist, then the fragment function is called to fill that buffer, the thread then place the buffer into a ringbuffer data structure which will be fetched upon calling fbg_draw, the buffers are then mixed into the main back buffer and put back into the freelist.

Without liblfds

Each threads fragment function is called to fill the local buffer, each threads then wait till that buffer is consumed by the main thread upon calling fbg_draw, the buffers are then mixed into the main back buffer and fbg_draw wake up all threads.

Benchmark (framebuffer)

A simple unoptimized per pixels screen clearing with 4 cores on a Raspberry PI 3B : 30 FPS @ 1280x768 and 370 FPS @ 320x240

Note : Using the dispmanx backend a screen clearing + rectangle moving on a Raspberry PI 3B : 60 FPS @ 1920x1080

Full example

Fullscreen per pixels perlin noise with texture mapping and scrolling (unoptimized)

Device : Raspberry PI 3B ( Quad Core 1.2GHz )

Settings : 320x240

Cores used to draw graphics FPS
1 42 FPS
2 81 FPS
3 120 FPS

See screenshots below.

Tunnel example

Fullscreen texture-mapped and animated tunnel made of 40800 2px rectangles with motion blur (unoptimized)

Device : Raspberry PI 3B ( Quad Core 1.2GHz )

Settings : 320x240

Cores used to draw graphics FPS
1 36 FPS
2 69 FPS
3 99 FPS
4 66 FPS

Note : The framerate drop with 4 cores is due to the main thread being too busy which make all the other threads follow due to the synchronization.

See screenshots below.

Documentation

All usable functions and structures are documented in the fbgraphics.h file with Doxygen

The HTML documentation can be found in the docs directory.

Examples demonstrating all features are available in the examples directory.

Some effects come from my Open Processing sketches

Building

C11 standard should be supported by the C compiler.

All examples found in examples directory make use of the framebuffer device /dev/fb0 and can be built by typing make into the examples directory then run them by typing ./run_quickstart for example (this handle the framebuffer setup prior launch), you will need to compile liblfds for the parallelism features. (see below)

All examples were tested on a Raspberry PI 3B with framebuffer settings : 320x240 24 bpp

For the default build (no parallelism), FBGraphics come with a header file fbgraphics.h and a C file fbgraphics.c to be included / compiled / linked with your program plus one of the rendering backend found in custom_backend directory, you will also need to compile the lodepng.c library and nanojpeg.c library, see the examples directory for examples of Makefile.

For parallelism support, FBG_PARALLEL need to be defined.

If you need to use the slightly different parallelism implementation (see technical implementation section) you will need the liblfds library :

  • Get latest liblfds 7.1.1 package on the official website
  • uncompress, go into the directory liblfds711
  • go into the directory build/gcc_gnumake
  • type make in a terminal
  • liblfds711.a can now be found in the bin directory, you need to link against it when compiling (see examples)

To compile liblfds parallel examples, just copy liblfds711.a / liblfds711.h file and liblfds711 directory into the examples directory then type make lfds711.

Note : FBGraphics with liblfds work on ARM64 platforms but you will need liblfds720 which is not yet released.

Executable size optimization

This library may be used for size optimized executable for things like demos

PNG and JPEG support can be disabled with the WITHOUT_JPEG and WITHOUT_PNG define.

See tiny makefile rule inside the custom_backend or examples folder for some compiler optimizations related to executable size.

Under Linux sstrip and UPX can be used to bring the size down even futher.

Rendering backend

See README into custom_backend folder

GLFW backend

See README into custom_backend folder

The GLFW backend was made to demonstrate how to write a backend but it is complete enough to be used by default.

The GLFW backend has a cool lightweight Lua example which setup a Processing-like environment making use of the parallelism feature of the library, allowing the user to prototype multithreaded graphical stuff without C code compilation through the Lua language.

OpenGL ES 2 backend

See README into custom_backend folder

GBA backend

See README into custom_backend folder

Screenshots

Full example screenshot with three threads
Tunnel with four threads
Earth with four threads
Flags of the world with four threads
Compositing with three threads

License

BSD, see LICENSE file

================================================ FILE: docs/jquery.js ================================================ /*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Mon Nov 21 21:11:03 2011 -0500 */ (function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! * jQuery UI 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI */ (function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! * jQuery UI Widget 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI/Widget */ (function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! * jQuery UI Mouse 1.8.18 * * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI/Mouse * * Depends: * jquery.ui.widget.js */ (function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! * jQuery hashchange event - v1.3 - 7/21/2010 * http://benalman.com/projects/jquery-hashchange-plugin/ * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */ (function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('
_fbg Struct Reference

FB Graphics context data structure. More...

#include <fbgraphics.h>

Data Fields

int size
 Framebuffer real data length (with BPP) More...
 
unsigned char * disp_buffer
 Front / display buffer. More...
 
unsigned char * back_buffer
 Back buffer. More...
 
unsigned char * temp_buffer
 Temporary buffer. More...
 
int allow_resizing
 Wether to allow context resize. More...
 
int initialize_buffers
 Wether to allow FBG to allocate its internal buffers. More...
 
struct _fbg_rgb fill_color
 Current fill color. More...
 
struct _fbg_rgb text_color
 Current text color. More...
 
struct _fbg_rgb text_background
 Current text background color (based on colorkey value) More...
 
unsigned char text_colorkey
 Current text color key. More...
 
int text_alpha
 Text background alpha value. More...
 
struct _fbg_font current_font
 Current font. More...
 
int compositing
 Compositing method (only used with fbg_drawImage for now) More...
 
int width
 Display width in pixels. More...
 
int height
 Display height in pixels. More...
 
int width_n_height
 Display lenght in pixels (width * height) More...
 
int components
 Display components amount (3 = 24 BPP / 4 = 32 BPP) More...
 
int comp_offset
 Offset to add in case of 32 BPP. More...
 
int line_length
 Internal buffers line length. More...
 
int new_width
 Requested new display width (resize event) More...
 
int new_height
 Requested new display height (resize event) More...
 
int16_t fps
 Current FPS. More...
 
char fps_char [10]
 Current FPS as a string. More...
 
struct timeval fps_start
 First frame time for the current second. More...
 
struct timeval fps_stop
 Last frame time for the current second. More...
 
int frame
 Frame counter for the current second. More...
 
int bgr
 Flag indicating a BGR framebuffer. More...
 
void(* backend_resize )(struct _fbg *fbg, unsigned int new_width, unsigned int new_height)
 Backend resize function. More...
 
void(* user_resize )(struct _fbg *fbg, unsigned int new_width, unsigned int new_height)
 User-defined resize function. More...
 
void(* user_flip )(struct _fbg *fbg)
 User-defined flip function. More...
 
void(* user_draw )(struct _fbg *fbg)
 User-defined draw function. More...
 
void(* user_free )(struct _fbg *fbg)
 User-defined free function. More...
 
void * user_context
 User-defined context structure. More...
 

Detailed Description

FB Graphics context data structure.

Hold all data related to a FBG context

Definition at line 123 of file fbgraphics.h.

Field Documentation

◆ allow_resizing

int _fbg::allow_resizing

Wether to allow context resize.

Definition at line 136 of file fbgraphics.h.

◆ back_buffer

unsigned char* _fbg::back_buffer

Back buffer.

All FB Graphics functions draw into this buffer.

Definition at line 131 of file fbgraphics.h.

◆ backend_resize

void(* _fbg::backend_resize) (struct _fbg *fbg, unsigned int new_width, unsigned int new_height)

Backend resize function.

Definition at line 209 of file fbgraphics.h.

◆ bgr

int _fbg::bgr

Flag indicating a BGR framebuffer.

Definition at line 206 of file fbgraphics.h.

◆ comp_offset

int _fbg::comp_offset

Offset to add in case of 32 BPP.

Definition at line 178 of file fbgraphics.h.

◆ components

int _fbg::components

Display components amount (3 = 24 BPP / 4 = 32 BPP)

Definition at line 176 of file fbgraphics.h.

◆ compositing

int _fbg::compositing

Compositing method (only used with fbg_drawImage for now)

Default to source-over compositing.

Definition at line 167 of file fbgraphics.h.

◆ current_font

struct _fbg_font _fbg::current_font

Current font.

No fonts is loaded by default and the first loaded font will be assigned automatically as the current font.

Definition at line 163 of file fbgraphics.h.

◆ disp_buffer

unsigned char* _fbg::disp_buffer

Front / display buffer.

Definition at line 128 of file fbgraphics.h.

◆ fill_color

struct _fbg_rgb _fbg::fill_color

Current fill color.

Default to black.

Definition at line 143 of file fbgraphics.h.

◆ fps

int16_t _fbg::fps

Current FPS.

Definition at line 191 of file fbgraphics.h.

◆ fps_char

char _fbg::fps_char[10]

Current FPS as a string.

Definition at line 195 of file fbgraphics.h.

◆ fps_start

struct timeval _fbg::fps_start

First frame time for the current second.

Definition at line 198 of file fbgraphics.h.

◆ fps_stop

struct timeval _fbg::fps_stop

Last frame time for the current second.

Definition at line 200 of file fbgraphics.h.

◆ frame

int _fbg::frame

Frame counter for the current second.

Definition at line 203 of file fbgraphics.h.

◆ height

int _fbg::height

Display height in pixels.

Definition at line 172 of file fbgraphics.h.

◆ initialize_buffers

int _fbg::initialize_buffers

Wether to allow FBG to allocate its internal buffers.

Definition at line 139 of file fbgraphics.h.

◆ line_length

int _fbg::line_length

Internal buffers line length.

Definition at line 180 of file fbgraphics.h.

◆ new_height

int _fbg::new_height

Requested new display height (resize event)

Definition at line 185 of file fbgraphics.h.

◆ new_width

int _fbg::new_width

Requested new display width (resize event)

Definition at line 183 of file fbgraphics.h.

◆ size

int _fbg::size

Framebuffer real data length (with BPP)

Definition at line 125 of file fbgraphics.h.

◆ temp_buffer

unsigned char* _fbg::temp_buffer

Temporary buffer.

Definition at line 133 of file fbgraphics.h.

◆ text_alpha

int _fbg::text_alpha

Text background alpha value.

Default to transparent.

Definition at line 159 of file fbgraphics.h.

◆ text_background

struct _fbg_rgb _fbg::text_background

Current text background color (based on colorkey value)

Default to black.

Definition at line 151 of file fbgraphics.h.

◆ text_color

struct _fbg_rgb _fbg::text_color

Current text color.

Default to white.

Definition at line 147 of file fbgraphics.h.

◆ text_colorkey

unsigned char _fbg::text_colorkey

Current text color key.

Default to black.

Definition at line 155 of file fbgraphics.h.

◆ user_context

void* _fbg::user_context

User-defined context structure.

Definition at line 219 of file fbgraphics.h.

◆ user_draw

void(* _fbg::user_draw) (struct _fbg *fbg)

User-defined draw function.

Definition at line 215 of file fbgraphics.h.

◆ user_flip

void(* _fbg::user_flip) (struct _fbg *fbg)

User-defined flip function.

Definition at line 213 of file fbgraphics.h.

◆ user_free

void(* _fbg::user_free) (struct _fbg *fbg)

User-defined free function.

Definition at line 217 of file fbgraphics.h.

◆ user_resize

void(* _fbg::user_resize) (struct _fbg *fbg, unsigned int new_width, unsigned int new_height)

User-defined resize function.

Definition at line 211 of file fbgraphics.h.

◆ width

int _fbg::width

Display width in pixels.

Definition at line 170 of file fbgraphics.h.

◆ width_n_height

int _fbg::width_n_height

Display lenght in pixels (width * height)

Definition at line 174 of file fbgraphics.h.


The documentation for this struct was generated from the following file: ================================================ FILE: docs/struct__fbg.js ================================================ var struct__fbg = [ [ "allow_resizing", "struct__fbg.html#ad7796d799a4ad67405101b8548d99ad8", null ], [ "back_buffer", "struct__fbg.html#a907e7fc97965b972c17114c885e53735", null ], [ "backend_resize", "struct__fbg.html#aef07a92ae059ea2a43653f4d0c5d928e", null ], [ "bgr", "struct__fbg.html#a5844c5bf4789117cbc0c972ff160b338", null ], [ "comp_offset", "struct__fbg.html#a7c2e64d2f40575c8a989c759c30acb0e", null ], [ "components", "struct__fbg.html#a1db77a2ef506723a575644dbc1cfb747", null ], [ "compositing", "struct__fbg.html#a7090d672982fe465f2186dbfea384d32", null ], [ "current_font", "struct__fbg.html#a72868d703236aaabb7a5031703a6bbd8", null ], [ "disp_buffer", "struct__fbg.html#aa20614c94c7235bc5bc105b6e71e1be8", null ], [ "fill_color", "struct__fbg.html#ad3cac82bd9448a4020a4e08621f5269a", null ], [ "fps", "struct__fbg.html#a64b16363bc48d1e19141df2e242930a9", null ], [ "fps_char", "struct__fbg.html#af447e6ed58d893989c8dad075807a79b", null ], [ "fps_start", "struct__fbg.html#a07d7bb827a7595c956fe22c2d65bba33", null ], [ "fps_stop", "struct__fbg.html#ade17a45bbc82bef326857c2837cdf66c", null ], [ "frame", "struct__fbg.html#aa3ef83f919d12e680f8c64006b441454", null ], [ "height", "struct__fbg.html#a3a3bd409e71d020fa77f69a541d832f8", null ], [ "initialize_buffers", "struct__fbg.html#ac9a25b7b2700bee151d8f9dc3e586487", null ], [ "line_length", "struct__fbg.html#af8a1ee8d7004e6f2193f2a3ed98f8ce8", null ], [ "new_height", "struct__fbg.html#a509aa5f8f0a94d8313bb4da777aa64bc", null ], [ "new_width", "struct__fbg.html#a95859bd418a5cfff155cdb1421d295ef", null ], [ "size", "struct__fbg.html#a84fb220d4804cba22176997898e75b73", null ], [ "temp_buffer", "struct__fbg.html#a0463af9bf583afe770b822c1fbb9a24d", null ], [ "text_alpha", "struct__fbg.html#a870987786121c51135f20b630d731abd", null ], [ "text_background", "struct__fbg.html#afd34a8de5a853e915bd101f11d44cf67", null ], [ "text_color", "struct__fbg.html#a4abb858439598b09790ec6d5d8326bb2", null ], [ "text_colorkey", "struct__fbg.html#a06e65293cf0b48e70d76d63f5de453e6", null ], [ "user_context", "struct__fbg.html#ae3ecac18abee9dedabacaca9bb063bde", null ], [ "user_draw", "struct__fbg.html#ac66a762877982c6f381a7cfd54a8f17e", null ], [ "user_flip", "struct__fbg.html#a3f2ad2eb06555cdbe2d18f541231cb37", null ], [ "user_free", "struct__fbg.html#a88d48b502672cfb8bd2c94ea3feac8d0", null ], [ "user_resize", "struct__fbg.html#a68add70dac4b055809c1bcab1e65b18d", null ], [ "width", "struct__fbg.html#a1d3c76643e4ee424f4d17e27991d5e2e", null ], [ "width_n_height", "struct__fbg.html#a1ab3f10e8c3483d7286db9850511d46d", null ] ]; ================================================ FILE: docs/struct__fbg__dispmanx__context.html ================================================ FB Graphics: _fbg_dispmanx_context Struct Reference
FB Graphics
FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend.
_fbg_dispmanx_context Struct Reference

dispmanx wrapper data structure More...

#include <fbg_dispmanx.h>

Data Fields

DISPMANX_DISPLAY_HANDLE_T display
 dispmanx display More...
 
DISPMANX_RESOURCE_HANDLE_T back_resource
 dispmanx back resource More...
 
DISPMANX_RESOURCE_HANDLE_T front_resource
 dispmanx front resource More...
 
DISPMANX_ELEMENT_HANDLE_T elem
 dispmanx elem More...
 
VC_IMAGE_TYPE_T resource_type
 dispmanx image type (RGB888) More...
 
DISPMANX_UPDATE_HANDLE_T update
 dispmanx update More...
 
VC_RECT_T * src_rect
 dispmanx src rect More...
 
VC_RECT_T * dst_rect
 dispmanx src rect More...
 
void(* opt_flip )(struct _fbg *fbg)
 optional flip content (will be executed between dispmanx start / sync) More...
 
int pitch
 fbg->width * 3 More...
 

Detailed Description

dispmanx wrapper data structure

Definition at line 52 of file fbg_dispmanx.h.

Field Documentation

◆ back_resource

DISPMANX_RESOURCE_HANDLE_T _fbg_dispmanx_context::back_resource

dispmanx back resource

Definition at line 64 of file fbg_dispmanx.h.

◆ display

DISPMANX_DISPLAY_HANDLE_T _fbg_dispmanx_context::display

dispmanx display

Definition at line 62 of file fbg_dispmanx.h.

◆ dst_rect

VC_RECT_T* _fbg_dispmanx_context::dst_rect

dispmanx src rect

Definition at line 76 of file fbg_dispmanx.h.

◆ elem

DISPMANX_ELEMENT_HANDLE_T _fbg_dispmanx_context::elem

dispmanx elem

Definition at line 68 of file fbg_dispmanx.h.

◆ front_resource

DISPMANX_RESOURCE_HANDLE_T _fbg_dispmanx_context::front_resource

dispmanx front resource

Definition at line 66 of file fbg_dispmanx.h.

◆ opt_flip

void(* _fbg_dispmanx_context::opt_flip) (struct _fbg *fbg)

optional flip content (will be executed between dispmanx start / sync)

Definition at line 79 of file fbg_dispmanx.h.

◆ pitch

int _fbg_dispmanx_context::pitch

fbg->width * 3

Definition at line 82 of file fbg_dispmanx.h.

◆ resource_type

VC_IMAGE_TYPE_T _fbg_dispmanx_context::resource_type

dispmanx image type (RGB888)

Definition at line 70 of file fbg_dispmanx.h.

◆ src_rect

VC_RECT_T* _fbg_dispmanx_context::src_rect

dispmanx src rect

Definition at line 74 of file fbg_dispmanx.h.

◆ update

DISPMANX_UPDATE_HANDLE_T _fbg_dispmanx_context::update

dispmanx update

Definition at line 72 of file fbg_dispmanx.h.


The documentation for this struct was generated from the following file:
================================================ FILE: docs/struct__fbg__dispmanx__context.js ================================================ var struct__fbg__dispmanx__context = [ [ "back_resource", "struct__fbg__dispmanx__context.html#a4e5395ea92a73ef0db5048824c7df710", null ], [ "display", "struct__fbg__dispmanx__context.html#a9263fa3b9088feba4becb5488f3a27ee", null ], [ "dst_rect", "struct__fbg__dispmanx__context.html#ae1857220a611fd3e288cd76c6b8a5985", null ], [ "elem", "struct__fbg__dispmanx__context.html#ab18b7173ed0ff6e670068041cf0779e9", null ], [ "front_resource", "struct__fbg__dispmanx__context.html#acfd61d15e712eb715bb99ff4c6ec1dc7", null ], [ "opt_flip", "struct__fbg__dispmanx__context.html#a39f7c0bacaedd656908c5e2378610477", null ], [ "pitch", "struct__fbg__dispmanx__context.html#a7847ad38fd083df3b2a513a43f7d82b2", null ], [ "resource_type", "struct__fbg__dispmanx__context.html#a88cb809e4e2653c6925824ebd5a66149", null ], [ "src_rect", "struct__fbg__dispmanx__context.html#aef1016d77620bbfd67bf090fd2f08e19", null ], [ "update", "struct__fbg__dispmanx__context.html#a583202df9f959780bc21e9e5ce824f34", null ] ]; ================================================ FILE: docs/tabs.css ================================================ .sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:transparent}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} ================================================ FILE: documentation/Doxyfile ================================================ # Doxyfile 1.8.15 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the configuration # file that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "FB Graphics" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "FBGraphics (FBG) : Simple C 16, 24, 32 bpp generic graphics library with parallelism support and custom backend." # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all generated output in the proper direction. # Possible values are: None, LTR, RTL and Context. # The default value is: None. OUTPUT_TEXT_DIRECTION = None # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = NO # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines (in the resulting output). You can put ^^ in the value part of an # alias to insert a newline as if a physical newline was in the original file. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 0. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 0 # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = YES # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. # The default value is: NO. WARN_AS_ERROR = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = ../src/fbgraphics.h ../custom_backend/glfw/fbg_glfw.h ../custom_backend/dispmanx/fbg_dispmanx.h ../custom_backend/opengl_es2/fbg_opengl_es2.h ../custom_backend/fbdev/fbg_fbdev.h ../custom_backend/gba/fbg_gba.h ../README.md # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: https://www.gnu.org/software/libiconv/) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.idl \ *.ddl \ *.odl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.cs \ *.d \ *.php \ *.php4 \ *.php5 \ *.phtml \ *.inc \ *.m \ *.markdown \ *.md \ *.mm \ *.dox \ *.py \ *.pyw \ *.f90 \ *.f95 \ *.f03 \ *.f08 \ *.f \ *.for \ *.tcl \ *.vhd \ *.vhdl \ *.ucf \ *.qsf # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = ../README.md #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = YES # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # entity all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = ../docs # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via Javascript. If disabled, the navigation index will # consists of multiple levels of tabs that are statically embedded in every HTML # page. Disable this option to support browsers that do not have Javascript, # like the Qt help browser. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_MENUS = NO # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: https://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = YES # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side Javascript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from https://www.mathjax.org before deployment. # The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /