From 17995c470075e7dd2f4b33b3d7578300d3b2458e Mon Sep 17 00:00:00 2001 From: xiaying Date: Wed, 22 Jan 2025 14:47:50 +0800 Subject: [PATCH] MNN:Sync: Sync Internal 3.0.4 --- CMakeLists.txt | 34 +- docs/compile/cmake.md | 1 - docs/contribute/backend.md | 17 + docs/index.rst | 2 +- docs/inference/module.md | 1 - docs/inference/npu.md | 57 + docs/inference/session.md | 4 +- docs/tools/compress.md | 39 +- docs/tools/convert.md | 5 +- docs/tools/script.md | 70 - docs/transformers/diffusion.md | 36 +- docs/transformers/llm.md | 44 +- express/Executor.cpp | 35 +- express/NeuralNetWorkOp.cpp | 9 +- express/RuntimeAttr.hpp | 14 +- express/module/Module.cpp | 24 +- express/module/ModuleInside.hpp | 35 + express/module/NMSModule.cpp | 2 +- express/module/NMSModule.hpp | 3 +- express/module/PipelineModule.cpp | 28 +- express/module/StaticModule.cpp | 29 +- express/module/StaticModule.hpp | 8 +- express/module/WhileModule.cpp | 2 +- express/module/WhileModule.hpp | 3 +- include/MNN/Interpreter.hpp | 8 +- include/MNN/MNNDefine.h | 3 +- include/MNN/MNNForwardType.h | 34 +- include/MNN/expr/Module.hpp | 19 +- pymnn/pip_package/MNN/expr/__init__.py | 2 +- pymnn/pip_package/MNN/llm/__init__.py | 62 +- pymnn/pip_package/MNN/numpy/__init__.py | 7 +- pymnn/pip_package/README.md | 2 +- pymnn/pip_package/build_manylinux2014.sh | 2 +- pymnn/pip_package/setup.py | 14 +- pymnn/src/llm.h | 40 + source/backend/arm82/Arm82Functions.cpp | 73 +- ...MinMax_ARM82.S => CountMinMaxValue_FP16.S} | 2 +- .../arm64/low_memory/MNNAbsMaxFP16_Pack4.S | 226 + ...{MNNAbsMaxFP16.S => MNNAbsMaxFP16_pack8.S} | 6 +- .../low_memory/MNNDynamicQuantFP16_Pack4.S | 492 + ...uantFP16.S => MNNDynamicQuantFP16_Pack8.S} | 5 +- .../arm64/low_memory/MNNGeneralIm2col_Arm82.S | 260 + .../arm64/low_memory/MNNGeneralIm2col_Arm86.S | 139 + source/backend/cpu/CPUBackend.cpp | 12 +- source/backend/cpu/CPUDeconvolution.cpp | 5 + source/backend/cpu/CPUEltwise.cpp | 1 + source/backend/cpu/CPURaster.cpp | 10 +- source/backend/cpu/CPURuntime.cpp | 2 - source/backend/cpu/CPUStft.cpp | 7 +- source/backend/cpu/arm/arm32/MNNExpC8.S | 16 +- source/backend/cpu/arm/arm64/MNNExpC8.S | 11 +- .../arm/arm64/MNNPackC4Int8ForMatMulA_ARM82.S | 68 +- .../arm/arm64/MNNPackC4Int8ForMatMulA_ARM86.S | 147 +- .../cpu/arm/arm64/low_memory/MNNAbsMaxFP32.S | 6 +- .../arm64/low_memory/MNNDynamicQuantFP32.S | 6 +- .../low_memory/MNNGeneralIm2col_Fp32Arm82.S | 140 + .../low_memory/MNNGeneralIm2col_Fp32Arm86.S | 264 + source/backend/cpu/bf16/BF16Functions.cpp | 2 - .../backend/cpu/compute/CommonOptFunction.cpp | 174 +- .../backend/cpu/compute/CommonOptFunction.h | 17 +- .../cpu/compute/ConvInt8TiledExecutor.cpp | 541 +- .../cpu/compute/ConvInt8TiledExecutor.hpp | 3 +- .../cpu/compute/Convolution1x1Strassen.cpp | 34 +- .../cpu/compute/Convolution1x1Strassen.hpp | 5 +- .../cpu/compute/ConvolutionFloatFactory.cpp | 5 +- .../cpu/compute/ConvolutionTiledExecutor.cpp | 17 +- .../compute/DenseConvolutionTiledExecutor.cpp | 69 +- .../cpu/compute/IdstConvolutionInt8.cpp | 8 +- source/backend/cpu/compute/ResizeFunction.h | 3 - .../cpu/compute/StrassenMatmulComputor.cpp | 27 +- .../cpu/compute/StrassenMatmulComputor.hpp | 7 +- source/backend/cpu/x86_x64/AVX2Functions.cpp | 2 - .../cpu/x86_x64/FunctionDispatcher.cpp | 2 - source/backend/cpu/x86_x64/avx/GemmInt8.cpp | 8 +- .../backend/cpu/x86_x64/avx/MathFunctions.cpp | 11 +- .../cpu/x86_x64/avxfma/MathFunctions.cpp | 11 +- .../backend/cpu/x86_x64/sse/MathFunctions.cpp | 11 +- source/backend/metal/AllShader.cpp | 995 +- source/backend/metal/ConvSimdGroupShader.hpp | 1087 + .../metal/LayerNormSimdGroupShader.hpp | 255 + source/backend/metal/MNNMetalContext.mm | 30 +- source/backend/metal/MetalAttention.mm | 282 +- source/backend/metal/MetalAttentionShader.hpp | 48 + source/backend/metal/MetalBackend.hpp | 2 + source/backend/metal/MetalBackend.mm | 24 +- source/backend/metal/MetalConvolution.mm | 1 + source/backend/metal/MetalConvolution1x1.mm | 110 +- source/backend/metal/MetalLayerNorm.mm | 67 +- source/backend/metal/MetalPReLU.hpp | 5 +- source/backend/metal/MetalPReLU.mm | 27 +- source/backend/metal/MetalRaster.mm | 3 + source/backend/metal/MetalScale.hpp | 7 +- source/backend/metal/MetalScale.mm | 35 +- source/backend/metal/MetalUnary.mm | 4 +- .../metal/shader/MetalConvolution.metal | 14 +- .../metal/shader/MetalConvolution1x1.metal | 784 - source/backend/metal/shader/MetalDefine.metal | 3 - .../backend/metal/shader/MetalLayerNorm.metal | 225 - source/backend/metal/shader/MetalScale.metal | 9 +- .../backend/metal/shader/MetalSoftmax.metal | 36 - source/backend/nnapi/execution/NNAPIUnary.cpp | 2 +- source/backend/opencl/core/OpenCLGemmTune.cpp | 65 +- .../opencl/core/runtime/OpenCLRuntime.cpp | 42 +- .../buffer/AttentionBufExecution.cpp | 100 +- .../buffer/AttentionBufExecution.hpp | 2 +- .../execution/buffer/ConvBufExecution.cpp | 6 +- .../execution/buffer/ConvBufExecution.hpp | 1 + .../buffer/ConvBufLowMemoryExecution.cpp | 97 +- .../execution/buffer/RasterBufExecution.cpp | 198 +- .../execution/buffer/RasterBufExecution.hpp | 13 +- .../opencl/execution/cl/attention_buf.cl | 4 +- .../execution/cl/buffer_convert_quant.cl | 43 + .../opencl/execution/cl/conv_2d_int_buf.cl | 118 +- .../opencl/execution/cl/gemm_conv1x1_buf.cl | 108 +- .../opencl/execution/cl/gemv_conv1x1_buf.cl | 69 +- .../opencl/execution/cl/opencl_program.cc | 340 +- source/backend/vulkan/CMakeLists.txt | 2 +- .../vulkan/buffer/backend/VulkanBackend.cpp | 2 +- .../buffer/execution/VulkanLayernorm.cpp | 13 +- .../backend/vulkan/component/VulkanDevice.cpp | 14 + .../backend/vulkan/component/VulkanDevice.hpp | 5 + .../vulkan/component/VulkanPipeline.cpp | 1 + .../vulkan/component/VulkanPipeline.hpp | 3 + .../vulkan/component/VulkanQueryPool.cpp | 14 +- .../vulkan/image/backend/VulkanBackend.cpp | 113 +- .../vulkan/image/backend/VulkanBackend.hpp | 5 + .../vulkan/image/compiler/AllShader.cpp | 30885 ++++++++++------ .../vulkan/image/compiler/VulkanShaderMap.cpp | 39 +- .../image/execution/VulkanConvolution.cpp | 33 +- .../image/execution/VulkanConvolution.hpp | 7 +- .../image/execution/VulkanConvolution1x1.cpp | 152 + .../image/execution/VulkanConvolutionImpl.cpp | 8 + .../execution/VulkanMatrixMultier4x4.cpp | 7 +- .../execution/VulkanMatrixMultier4x4.hpp | 3 +- .../image/execution/Vulkanconvolution1x1.hpp | 38 + .../image/execution/glsl/convolution1x1.comp | 69 + .../execution/glsl/convolution1x1_c8w4.comp | 163 + .../execution/glsl/convolution1x1_w4.comp | 121 + .../execution/glsl/convolutionDepthwise.comp | 23 +- .../glsl/convolutionDepthwiseMali.comp | 62 - .../glsl/convolutionDepthwise_s1d1_w2.comp | 37 +- .../image/execution/glsl/gemm16x16.comp | 2 +- .../vulkan/image/execution/glsl/macro.json | 44 +- .../backend/vulkan/image/shaders/AllShader.h | 78 +- .../backend/vulkan/runtime/VulkanRuntime.cpp | 75 + .../backend/vulkan/runtime/VulkanRuntime.hpp | 37 + .../backend/vulkan/runtime/vulkan_wrapper.cpp | 3 + source/backend/vulkan/schema/VKCache.fbs | 22 + .../vulkan/schema/current/VKCache_generated.h | 430 + source/backend/vulkan/schema/generate.sh | 19 + source/backend/vulkan/vulkan/vulkan_wrapper.h | 1 + source/core/Backend.hpp | 2 + source/core/BufferAllocator.cpp | 22 +- source/core/BufferAllocator.hpp | 4 +- source/core/ConvolutionCommon.hpp | 3 +- source/core/IDSTEncoder.hpp | 8 + source/core/MNNFileUtils.cpp | 21 +- source/core/MNNFileUtils.h | 11 + source/core/Pipeline.cpp | 43 +- source/core/Pipeline.hpp | 2 + source/core/Session.cpp | 3 + source/geometry/GeometryComputerUtils.cpp | 4 + source/geometry/GeometryComputerUtils.hpp | 3 +- source/geometry/GeometryConv2D.cpp | 20 +- source/geometry/GeometryConvUtils.cpp | 21 + source/geometry/GeometryELU.cpp | 3 +- source/shape/ShapeAttention.cpp | 10 + source/shape/ShapeConvolution3D.cpp | 8 +- test.sh | 20 + test/MNNTestSuite.h | 18 - test/TestUtils.h | 2 +- test/expr/MMapTest.cpp | 58 + test/expr/ModuleTest.cpp | 146 +- test/model/MobileNetTest.cpp | 6 +- test/op/ConvertTest.cpp | 2 + test/op/ConvolutionTest.cpp | 32 +- test/op/TopKV2Test.cpp | 6 +- test/speed/HybridConvSpeedTest.cpp | 12 +- tools/converter/forward.json | 3 +- tools/converter/include/commonKit.hpp | 18 - tools/converter/include/config.hpp | 5 +- tools/converter/include/options.hpp | 30 - tools/converter/include/writeFb.hpp | 2 +- tools/converter/source/common/Common.cpp | 42 - tools/converter/source/common/Common.hpp | 25 - tools/converter/source/common/CommonUtils.cpp | 78 + tools/converter/source/common/CommonUtils.hpp | 19 +- .../source/common/FullQuantAndCoding.cpp | 3 + .../source/common/WeightQuantAndCoding.cpp | 65 +- tools/converter/source/common/cli.cpp | 167 +- .../source/common/convertToStaticModel.cpp | 2 +- tools/converter/source/common/options.cpp | 33 - tools/converter/source/common/writeFb.cpp | 87 +- .../source/compression/MNN_compression.proto | 12 + .../source/compression/PipelineBuilder.cpp | 132 - .../source/compression/PipelineBuilder.hpp | 72 - .../generated/MNN_compression.pb.cc | 782 +- .../generated/MNN_compression.pb.h | 787 +- tools/converter/source/onnx/CastOnnx.cpp | 3 + tools/converter/source/onnx/EluOnnx.cpp | 2 +- .../optimizer/merge/Conv1dSqueezeMove.cpp | 16 +- .../merge/ConvBNReluFuseToConvInt8.cpp | 16 +- .../optimizer/merge/Convolution3DTurn2D.cpp | 145 + .../source/optimizer/merge/MergeHelpers.cpp | 13 +- .../onnxextra/OnnxBatchNormMerge.cpp | 88 +- .../onnxextra/OnnxConvolutionMerge.cpp | 40 +- .../source/tensorflow/TfModelOptimizer.cpp | 689 - tools/converter/source/tensorflow/TfUtils.cpp | 483 - tools/converter/source/tensorflow/TfUtils.hpp | 150 - tools/converter/tools/auto_quant.py | 263 + .../converter/tools/user_quant_modify_demo.py | 54 + .../converter/user_provide_quant_params.json | 132 +- tools/cpp/ModuleBasic.cpp | 4 +- tools/cv/CMakeLists.txt | 140 +- tools/quantization/calibration.cpp | 10 +- tools/quantization/calibration.hpp | 4 +- tools/script/apply_gptq.py | 201 - tools/script/convertTfTest.py | 5 +- tools/script/testMNNFromOnnx.py | 2 + tools/train/source/nn/NN.cpp | 1 + transformers/diffusion/CMakeLists.txt | 14 - transformers/diffusion/engine/CMakeLists.txt | 24 + .../diffusion/engine/diffusion_demo.cpp | 73 + .../include/diffusion/diffusion.hpp} | 36 +- .../{ => engine}/scheduler/alphas.txt | 0 .../src/diffusion.cpp} | 223 +- .../diffusion/{ => engine/src}/tokenizer.cpp | 91 +- .../diffusion/{ => engine/src}/tokenizer.hpp | 33 +- transformers/diffusion/main.cpp | 47 - transformers/llm/engine/CMakeLists.txt | 1 - transformers/llm/engine/audio_demo.cpp | 4 +- transformers/llm/engine/embedding_demo.cpp | 67 +- transformers/llm/engine/include/llm/llm.hpp | 1 + transformers/llm/engine/src/llm.cpp | 61 +- transformers/llm/engine/src/llmconfig.hpp | 32 + transformers/llm/export/llmexport.py | 2598 +- transformers/llm/export/utils/__init__.py | 0 transformers/llm/export/utils/audio.py | 140 + .../llm/export/utils/awq_quantizer.py | 815 + transformers/llm/export/utils/custom_op.py | 59 + transformers/llm/export/utils/gptq.py | 147 + .../llm/export/utils/lora.py | 143 +- .../llm/export/utils/mnn_converter.py | 416 + transformers/llm/export/utils/model_mapper.py | 295 + transformers/llm/export/utils/onnx.py | 70 + .../llm/export/utils/onnx_rebuilder.py | 70 + transformers/llm/export/utils/spinner.py | 31 + transformers/llm/export/utils/transformers.py | 333 + transformers/llm/export/utils/vision.py | 394 + 249 files changed, 32828 insertions(+), 20046 deletions(-) create mode 100644 docs/inference/npu.md delete mode 100644 docs/tools/script.md create mode 100644 express/module/ModuleInside.hpp rename source/backend/arm82/asm/arm64/low_memory/{MNNCountMinMax_ARM82.S => CountMinMaxValue_FP16.S} (99%) create mode 100644 source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_Pack4.S rename source/backend/arm82/asm/arm64/low_memory/{MNNAbsMaxFP16.S => MNNAbsMaxFP16_pack8.S} (96%) create mode 100644 source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack4.S rename source/backend/arm82/asm/arm64/low_memory/{MNNDynamicQuantFP16.S => MNNDynamicQuantFP16_Pack8.S} (99%) create mode 100644 source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm82.S create mode 100644 source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm86.S create mode 100644 source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm82.S create mode 100644 source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm86.S create mode 100644 source/backend/metal/ConvSimdGroupShader.hpp create mode 100644 source/backend/metal/LayerNormSimdGroupShader.hpp create mode 100644 source/backend/vulkan/image/execution/VulkanConvolution1x1.cpp create mode 100644 source/backend/vulkan/image/execution/Vulkanconvolution1x1.hpp create mode 100644 source/backend/vulkan/image/execution/glsl/convolution1x1.comp create mode 100644 source/backend/vulkan/image/execution/glsl/convolution1x1_c8w4.comp create mode 100644 source/backend/vulkan/image/execution/glsl/convolution1x1_w4.comp delete mode 100644 source/backend/vulkan/image/execution/glsl/convolutionDepthwiseMali.comp create mode 100644 source/backend/vulkan/schema/VKCache.fbs create mode 100644 source/backend/vulkan/schema/current/VKCache_generated.h create mode 100755 source/backend/vulkan/schema/generate.sh create mode 100644 test/expr/MMapTest.cpp delete mode 100644 tools/converter/include/commonKit.hpp delete mode 100644 tools/converter/include/options.hpp delete mode 100644 tools/converter/source/common/Common.cpp delete mode 100644 tools/converter/source/common/Common.hpp create mode 100644 tools/converter/source/common/CommonUtils.cpp delete mode 100644 tools/converter/source/common/options.cpp delete mode 100644 tools/converter/source/compression/PipelineBuilder.cpp delete mode 100644 tools/converter/source/compression/PipelineBuilder.hpp create mode 100644 tools/converter/source/optimizer/merge/Convolution3DTurn2D.cpp delete mode 100644 tools/converter/source/tensorflow/TfModelOptimizer.cpp create mode 100644 tools/converter/tools/auto_quant.py create mode 100644 tools/converter/tools/user_quant_modify_demo.py delete mode 100644 tools/script/apply_gptq.py delete mode 100644 transformers/diffusion/CMakeLists.txt create mode 100644 transformers/diffusion/engine/CMakeLists.txt create mode 100644 transformers/diffusion/engine/diffusion_demo.cpp rename transformers/diffusion/{pipeline.hpp => engine/include/diffusion/diffusion.hpp} (55%) rename transformers/diffusion/{ => engine}/scheduler/alphas.txt (100%) rename transformers/diffusion/{pipeline.cpp => engine/src/diffusion.cpp} (64%) rename transformers/diffusion/{ => engine/src}/tokenizer.cpp (91%) rename transformers/diffusion/{ => engine/src}/tokenizer.hpp (70%) delete mode 100644 transformers/diffusion/main.cpp create mode 100644 transformers/llm/export/utils/__init__.py create mode 100644 transformers/llm/export/utils/audio.py create mode 100644 transformers/llm/export/utils/awq_quantizer.py create mode 100644 transformers/llm/export/utils/custom_op.py create mode 100644 transformers/llm/export/utils/gptq.py rename tools/script/apply_lora.py => transformers/llm/export/utils/lora.py (62%) create mode 100644 transformers/llm/export/utils/mnn_converter.py create mode 100644 transformers/llm/export/utils/model_mapper.py create mode 100644 transformers/llm/export/utils/onnx.py create mode 100644 transformers/llm/export/utils/onnx_rebuilder.py create mode 100644 transformers/llm/export/utils/spinner.py create mode 100644 transformers/llm/export/utils/transformers.py create mode 100644 transformers/llm/export/utils/vision.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 6048bf4d3..747fe9a0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,7 +53,6 @@ option(MNN_DEBUG_TENSOR_SIZE "Enable Tensor Size" OFF) option(MNN_GPU_TRACE "Enable MNN Gpu Debug" OFF) option(MNN_SUPPORT_RENDER "Enable MNN Render Ops" OFF) option(MNN_SUPPORT_TRANSFORMER_FUSE "Enable MNN transformer Fuse Ops" OFF) -option(MNN_PORTABLE_BUILD "Link the static version of third party libraries where possible to improve the portability of built executables" OFF) option(MNN_SEP_BUILD "Build MNN Backends and expression separately. Only works with MNN_BUILD_SHARED_LIBS=ON" ON) option(NATIVE_LIBRARY_OUTPUT "Native Library Path" OFF) option(NATIVE_INCLUDE_OUTPUT "Native Include Path" OFF) @@ -174,9 +173,6 @@ ENDIF() IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT MNN_BUILD_SHARED_LIBS AND NOT (MSVC OR WIN32)) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") SET(MNN_SEP_BUILD OFF CACHE BOOL "" FORCE) - IF(MNN_BUILD_CONVERTER) - SET(MNN_PORTABLE_BUILD ON CACHE BOOL "" FORCE) - ENDIF() ENDIF() if(MNN_FORBID_MULTI_THREAD) @@ -515,6 +511,7 @@ endif() if ((NOT MSVC) AND MNN_HIDDEN) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden -fvisibility=hidden") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") + set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -fvisibility=hidden") # Omit frame pointer may cause difficult debug set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer") endif() @@ -701,6 +698,16 @@ IF(MNN_TENSORRT) list(APPEND MNN_EXTRA_DEPENDS ${MNN_TRT_LIBS}) ENDIF() +IF(MNN_BUILD_OPENCV) +add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/tools/cv) +IF(MNN_SEP_BUILD) + list(APPEND MNN_DEPS MNNOpenCV) +ELSE() + list(APPEND MNN_TARGETS MNNOpenCV) + list(APPEND MNN_OBJECTS_TO_LINK $) +ENDIF() +ENDIF() + IF(MNN_BUILD_LLM) # add_definitions(-DMNN_BUILD_LLM) include(${CMAKE_CURRENT_LIST_DIR}/transformers/llm/engine/CMakeLists.txt) @@ -709,6 +716,13 @@ IF(MNN_BUILD_LLM) list(APPEND MNN_OBJECTS_TO_LINK $) ENDIF() ENDIF() +IF(MNN_BUILD_DIFFUSION AND MNN_BUILD_OPENCV AND MNN_IMGCODECS) + include(${CMAKE_CURRENT_LIST_DIR}/transformers/diffusion/engine/CMakeLists.txt) + IF(NOT MNN_SEP_BUILD) + list(APPEND MNN_TARGETS diffusion) + list(APPEND MNN_OBJECTS_TO_LINK $) + ENDIF() +ENDIF() IF(MNN_SEP_BUILD) add_library(MNN SHARED ${CMAKE_CURRENT_LIST_DIR}/cmake/dummy.cpp ${MNN_OBJECTS_TO_LINK} ${MNN_PUB_HDRS} ${MNN_EXPR_PUB_HDRS} ${MNN_EXTRA_HEADERS}) @@ -774,13 +788,7 @@ IF(WIN32 AND MNN_BUILD_CONVERTER AND MNN_BUILD_SHARED_LIBS) target_link_libraries(MNN PUBLIC ${Protobuf_LIBRARIES}) ENDIF() # Merge MNN/MNNExpress/MNNOpenCV and other backends into one .lib/.dll on Windows -add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/tools/cv) -IF(MNN_BUILD_OPENCV AND NOT MNN_SEP_BUILD) - IF(MSVC) - target_compile_definitions(MNNOpenCV PRIVATE "-DBUILDING_MNN_DLL" INTERFACE "-DUSING_MNN_DLL") - ENDIF() - target_sources(MNN PRIVATE $) -ENDIF() + add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/tools/audio) IF(MNN_BUILD_AUDIO AND NOT MNN_SEP_BUILD) IF(MSVC) @@ -820,9 +828,7 @@ list(REMOVE_ITEM MNN_TARGETS MNN) IF(MNN_BUILD_DEMO) include(${CMAKE_CURRENT_LIST_DIR}/demo/exec/CMakeLists.txt) ENDIF() -IF(MNN_BUILD_DIFFUSION AND MNN_BUILD_OPENCV AND MNN_IMGCODECS) -include(${CMAKE_CURRENT_LIST_DIR}/transformers/diffusion/CMakeLists.txt) -ENDIF() + IF(MNN_BUILD_TOOLS) include(${CMAKE_CURRENT_LIST_DIR}/tools/cpp/CMakeLists.txt) ENDIF() diff --git a/docs/compile/cmake.md b/docs/compile/cmake.md index a4d45bca4..f25d4ede7 100644 --- a/docs/compile/cmake.md +++ b/docs/compile/cmake.md @@ -20,7 +20,6 @@ MNN使用CMake构建项目,CMake中的宏定义列表如下: | MNN_DEBUG_MEMORY | 是否开启MNN内存调试,默认为`OFF` | | MNN_DEBUG_TENSOR_SIZE | 是否开启MNN tensor size调试,默认为`OFF` | | MNN_GPU_TRACE | 是否开启MNN GPU调试,默认为`OFF` | -| MNN_PORTABLE_BUILD | 尽可能链接第三方库的静态版本,以提高构建的可执行文件的可移植性,默认为`OFF` | | MNN_SEP_BUILD | 是否构建MNN的后端和表达式分离版本,只在`MNN_BUILD_SHARED_LIBS=ON`时生效,默认为`ON` | | NATIVE_LIBRARY_OUTPUT | 如果构建为动态库,则指定动态库的输出路径,默认为`OFF` | | NATIVE_INCLUDE_OUTPUT | 如果构建为动态库,则指定动态库的头文件路径,默认为`OFF` | diff --git a/docs/contribute/backend.md b/docs/contribute/backend.md index caa10ee2a..c3f436608 100644 --- a/docs/contribute/backend.md +++ b/docs/contribute/backend.md @@ -179,6 +179,23 @@ virtual void onExecuteEnd() const = 0; 对于使用同一种后端,且存在先后顺序,不会同时运行的模型,MNN提供机制使其共享部分计算资源,比如线程池,内存池等等。 这部分计算资源使用Runtime存储。而Backend则由Runtime创建 +### CompileType + +Runtime 可以通过指定 CompileType ,决定 MNN 是否跳过几何计算步骤: + +``` +enum CompilerType { + // 部分执行几何计算,分解形变算子,但不分解 BatchMatMul / Gather 等算子 + Compiler_Geometry = 0, + + // 完全跳过几何计算步骤,直接使用原始算子 + Compiler_Origin = 1, + + // 完全执行几何计算,仅此模式下,可以在算子不支持时自动回退到CPU计算 + Compiler_Loop = 2, +}; +``` + ### 实现Runtime Runtime主要实现如下接口: diff --git a/docs/index.rst b/docs/index.rst index 0e9264da3..74943310d 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -42,6 +42,7 @@ inference/session inference/module inference/python + inference/npu .. toctree:: :maxdepth: 1 @@ -81,7 +82,6 @@ tools/compress tools/visual tools/python - tools/script .. toctree:: :maxdepth: 1 diff --git a/docs/inference/module.md b/docs/inference/module.md index 3fea3589a..6e2d797a6 100644 --- a/docs/inference/module.md +++ b/docs/inference/module.md @@ -92,7 +92,6 @@ rtmgr->setMode(Interpreter::Session_Debug); - Interpreter::HintMode::WINOGRAD_MEMORY_LEVEL :使用 Winograd 算法优化卷积时,内存占用倾向,默认为 3 ,若希望降低内存占用可设为 0 - Interpreter::HintMode::GEOMETRY_COMPUTE_MASK :几何计算相关优化开关,1为区域合并,2为复合区域合并,4为使用loop算子,8为支持几何计算重计算,需要多个功能开启时把对应值叠加。默认为功能全开。 -- Interpreter::HintMode::DYNAMIC_QUANT_OPTIONS :动态量化选项,1为 Per Batch,2为Per Tensor 。默认为2。 - Interpreter::HintMode::CPU_LITTLECORE_DECREASE_RATE :对于 Android 设备存在大中小核的情况,大核算力到中核算力的衰减比例。默认为50(中核算力为大核的50%) diff --git a/docs/inference/npu.md b/docs/inference/npu.md new file mode 100644 index 000000000..ecf3b9a7d --- /dev/null +++ b/docs/inference/npu.md @@ -0,0 +1,57 @@ +# NPU 及相应后端使用说明 + +目前 MNN 支持通过如下后端调用部分手机上的NPU能力: +- CoreML +- NNAPI +- HIAI + +目前NPU相关后端均不支持可变形状、控制流等动态模型,算子数相比CPU/GPU支持要少,建议根据NPU是否能跑通,反复调整模型结构。 + +## CoreML +适用于 Mac / iOS / iPad + +### CoreML 后端编译 +1. 编译 MNN 时打开编译宏 MNN_COREML :-DMNN_COREML=ON +2. 编译App / 可执行程序时,增加链接 CoreML.framework + +### CoreML 后端使用 +backend type设置成:MNN_FORWARD_NN + +## NNAPI +适用于 Android 系统,高通/联发科芯片 + +### NNAPI 后端编译 +打开编译宏 MNN_NNAPI 即可 +``` +cd ${MNN} +cd project/android +mkdir build && cd build +../build_64.sh -DMNN_USE_LOGCAT=ON -DMNN_NNAPI=ON +``` + +### NNAPI 后端使用 +backend type设置成:MNN_FORWARD_NN + + +## 华为 HIAI +适用于 Android 系统, Kirlin芯片 + +### HIAI 环境准备 +1. 从如下链接下载 DDK +https://developer.huawei.com/consumer/cn/doc/hiai-Library/ddk-download-0000001053590180 + + + +2. 拷贝相对应的so和include文件到 hiai/3rdParty 目录下,如果没有3rdParty目录,新建一个: + +``` +mkdir ${MNN}/source/backend/hiai/3rdParty +cp -r ${DDK}/lib ${MNN}/source/backend/hiai/3rdParty/armeabi-v7a +cp -r ${DDK}/lib64 ${MNN}/source/backend/hiai/3rdParty/arm64-v8a +cp -r ${DDK}/include ${MNN}/source/backend/hiai/3rdParty/include +``` + +### HIAI 编译执行 +1. cmake 参数打开npu开关: -DMNN_NPU=true +2. backend type设置成:MNN_FORWARD_USER_0 +3. 执行可执行程序(需动态加载:libMNN_NPU.so, libhiai_ir_build.so, libhiai_ir.so, libhiai.so) \ No newline at end of file diff --git a/docs/inference/session.md b/docs/inference/session.md index 2e5e0b6fc..98b92e873 100644 --- a/docs/inference/session.md +++ b/docs/inference/session.md @@ -302,7 +302,7 @@ delete nhwcTensor; 通过这类拷贝数据的方式,用户只需要关注自己创建的tensor的数据布局,`copyFromHostTensor`会负责处理数据布局上的转换(如需)和后端间的数据拷贝(如需)。 -### 【不推荐】直接填充数据 +### 【已废弃】直接填充数据 ```cpp auto inputTensor = interpreter->getSessionInput(session, NULL); inputTensor->host()[0] = 1.f; @@ -594,7 +594,7 @@ delete nhwcTensor; -### 【不推荐】直接读取数据 +### 【已废弃】直接读取数据 **由于绝大多数用户都不熟悉MNN底层数据布局,所以不要使用这种方式!!!** ```cpp auto outputTensor = interpreter->getSessionOutput(session, NULL); diff --git a/docs/tools/compress.md b/docs/tools/compress.md index b80386a23..a66760028 100644 --- a/docs/tools/compress.md +++ b/docs/tools/compress.md @@ -69,7 +69,7 @@ MNN模型压缩工具提供了包括低秩分解、剪枝、量化等模型压 - 动态量化 可以通过如下方式打开MNN运行时的动态量化支持,使权值量化后的模型中卷积等核心算子使用量化计算,降低内存并提升性能 -1. 打开 MNN_LOW_MEMORY 编译宏编译 MNN (支持动态量化功能) +1. 打开 `MNN_LOW_MEMORY` 编译宏编译 MNN (支持动态量化功能) ``` cmake .. -DMNN_LOW_MEMORY=ON ``` @@ -99,6 +99,43 @@ backendConfig.precision = BackendConfig::Precision_Low; config.backendConfig = &backendConfig; ``` +### 自动压缩工具 +可使用脚本 `tools/converter/tools/auto_quant.py` 依据测试误差,自动确定量化方案。使用步骤如下: + +1. 将模型转成MNN格式,示例: +``` +./MNNConvert -f ONNX --modelFile src.onnx --MNNModel float.mnn +``` + +2. 参考[正确性校验](convert.html#id3),构建测试文件夹 mnntest + +3. 在编译好 MNNConvert 的目录下执行脚本 +``` +# 查看参数 +python ../tools/converter/tools/auto_quant.py -h +# 压缩,产出文件 quant.mnn 及相关参数 quant.mnn.json +python ../tools/converter/tools/auto_quant.py --model float.mnn --quant_model quant.mnn --test_dir mnntest --rate 0.05 +``` + +### 自行定制方案 +若默认压缩方案无法满足精度需求,可以按如下步骤定制压缩方案。一般来说跳过一些重要的算子压缩,可以缓解精度下降的问题。 + +1. 生成模型压缩信息文件: user.json +``` +rm user.json +./MNNConvert -f ONNX --modelFile src.onnx --MNNModel dst.mnn --weightQuantBits 8 --compressionParamsFile user.json +``` + +2. 编辑 user.json ,把不需要量化的算子,bits数设为0 或者调高 bits数(不超过8)。也可以参考脚本 `tools/converter/tools/user_quant_modify_demo.py` ,批量处理压缩信息,然后执行脚本: + +``` +python3 ../tools/converter/tools/user_quant_modify_demo.py user.json user.json +``` + +3. 使用 user.json 重新转换模型 +``` +./MNNConvert -f ONNX --modelFile src.onnx --MNNModel dst.mnn --compressionParamsFile user.json +``` ## 离线量化工具 ### 离线量化工具安装 diff --git a/docs/tools/convert.md b/docs/tools/convert.md index bc869abab..bb301bd74 100644 --- a/docs/tools/convert.md +++ b/docs/tools/convert.md @@ -47,7 +47,7 @@ Usage: --weightQuantAsymmetric 与weightQuantBits结合使用,决定是否用非对称量化,默认为`true` --compressionParamsFile arg - 使用MNN模型压缩工具箱生成的模型压缩信息文件或根据用户提供的量化参数来生成对应的量化模型,量化参数文件可参考tools/converter/user_provide_quant_params.json + 使用MNN模型压缩工具箱生成的模型压缩信息文件或根据用户提供的量化参数来生成对应的量化模型,量化参数文件可参考tools/converter/user_provide_quant_params.json 。如果文件不存在,且开启了weightQuantBits等量化功能,会在相应路径生成模型压缩信息文件(json格式),可后续编辑 --saveStaticModel 固定输入形状,保存静态模型, default: false @@ -74,8 +74,7 @@ Usage: --alignDenormalizedValue arg 可选值:{0, 1}, 默认为1, 当`float(|x| < 1.18e-38)`会被视为0 - --detectSparseSpeedUp arg - 可选值:{0, 1}, 默认为1, 会检测权重是否使用稀疏化加速 + --detectSparseSpeedUp 检测权重是否使用稀疏化加速/压缩,有可能减少模型大小,但增大模型转换时间 --saveExternalData 将权重,常量等数据存储在额外文件中,默认为0,也就是`false` diff --git a/docs/tools/script.md b/docs/tools/script.md deleted file mode 100644 index 551b8e7b1..000000000 --- a/docs/tools/script.md +++ /dev/null @@ -1,70 +0,0 @@ -# 脚本工具 -一些功能性脚本,提供各种功能。 - -## apply_gptq.py -将GPTQ的权重写入到量化的MNN权重中。 - -### 用法 -``` -usage: apply_gptq.py [-h] --mnn_graph MNN_GRAPH --mnn_weight MNN_WEIGHT --gptq_tensor GPTQ_TENSOR - -apply_gptq - -options: - -h, --help show this help message and exit - --mnn_graph MNN_GRAPH - mnn graph json path. - --mnn_weight MNN_WEIGHT - mnn weight file path. - --gptq_tensor GPTQ_TENSOR - gptq tensor path. -``` - -### 参数 -- MNN_GRAPH: 模型计算图的json文件,获取方法:`./MNNDump2Json model.mnn model.json` -- MNN_WEIGHT: 模型的权重文件,如:`gptq.mnn.weight` -- GPTQ_TENSOR: GPTQ量化后的权重文件,`model.safetensor` - -### 示例 -使用该脚本生成gptq量化的权重`gptq.mnn.weight` -```sh -cd build -./MNNDump2Json model.mnn model.json -cp model.mnn.weight gptq.mnn.weight -python ../tools/script/apply_gptq.py --mnn_graph model.json --mnn_weight gptq.mnn.weight --gptq_tensor model.safetensor -``` - -## apply_lora.py - -合并base模型的计算图和lora模型的权重文件,生成新的计算图。 - -### 用法 -```sh -usage: apply_lora.py [-h] --base BASE --lora LORA [--scale SCALE] [--fuse FUSE] [--out OUT] - -apply_lora - -options: - -h, --help show this help message and exit - --base BASE base model json path. - --lora LORA lora dir path or *.safetensors path. - --scale SCALE lora scale: `alpha/r`. - --fuse FUSE fuse A and B. - --out OUT out file name. -``` - -### 参数 -- BASE: base.json, base模型计算图的json文件,获取方法:`./MNNDump2Json base.mnn base.json` -- LORA: lora权重文件夹或者lora权重的safetensors -- SCALE: lora权重的scale, `lora_alpha / lora_r`, 一般为4.0 -- FUSE: 是否将lora_A与lora_B合并成为一个lora权重,合并后模型较大 -- OUT: 生成新的计算图文件名,默认为`lora.json`,转换为模型:`./MNNRevert2Buffer lora.json lora.mnn` - -### 示例 -使用该脚本生成lora对应的模型`lora.mnn`, 用法: [LoRA](../transformers/llm.html#lora) -```sh -cd build -./MNNDump2Json base.mnn base.json -python ../tools/script/apply_lora.py --base base.json --lora lora_dir -./MNNRevert2Buffer lora.json lora.mnn -``` \ No newline at end of file diff --git a/docs/transformers/diffusion.md b/docs/transformers/diffusion.md index b8367fd23..b2496fe1f 100644 --- a/docs/transformers/diffusion.md +++ b/docs/transformers/diffusion.md @@ -60,23 +60,33 @@ cd mnn_path/project/android/build ``` ## 运行Diffusion Demo ``` -./diffusion_demo +./diffusion_demo ``` 其中,resource_path 就是mnn模型文件的路径,除了mnn文件,还需要: -1. 将MNN目录transformers/diffusion/scheduler/alphas.txt文件拷贝到该文件夹下。 -2. 针对stable-diffusion-v1-5/chilloutmix模型需要将huggingfacetokenizer目录下merges.txt和vocab.json拷贝到该文件夹中。 -3. 针对Taiyi-Stable-Diffusion模型需要将huggingfacetokenizer目录下vocab.txt拷贝到该文件夹中。 -4. model_type是目前支持的两种diffusion模型的类别。如果是stable-diffusion-v1-5/chilloutmix模型设为0,如果是Taiyi-Stable-Diffusion模型设为1。 -5. output_image_name是生成图片的名字,默认图片位置在当前运行目录下。 -6. memory_mode代表设备是否内存足够,设为0表示内存节约模式(demo中每个模型使用前等待初始化,用完释放),1代表内存足够模式(所有模式启动时全初始化完,用时无需等待初始化)。 -7. backend_type代表选择的运行后端。 -8. input_text是文生图的prompt,如果是stable-diffusion-v1-5/chilloutmix模型建议英文prompt,如果是Taiyi-Stable-Diffusion建议中文prompt。 +### 资源拷贝 +``` +(a) 将MNN目录transformers/diffusion/engine/scheduler/alphas.txt文件拷贝到resource_path文件夹下。 +(b) 针对stable-diffusion-v1-5/chilloutmix模型需要将huggingfacetokenizer目录下merges.txt和vocab.json拷贝到resource_path文件夹中。 +(c) 针对Taiyi-Stable-Diffusion模型需要将huggingfacetokenizer目录下vocab.txt拷贝到resource_path文件夹中。 +``` +### 参数设置 +``` +1. model_type是目前支持的两种diffusion模型的类别。如果是stable-diffusion-v1-5/chilloutmix模型设为0,如果是Taiyi-Stable-Diffusion模型设为1。 +2. memory_mode代表设备是否内存足够,设为0表示内存节约模式(demo中每个模型使用前等待初始化,用完释放),1代表内存足够模式(所有模式启动时全初始化完,用时无需等待初始化)。 +3. backend_type代表选择的运行后端,如OpenCL/CPU等。 +4. iteration_num代表文生图迭代次数,通常建议设置10到20之间。 -运行指令例如: ``` -./diffusion_demo mnn_sd1.5_path 0 demo.jpg 0 3 "a cute cat" -./diffusion_demo mnn_chilloutmix_path 0 demo.jpg 0 3 "a pure girl" -./diffusion_demo mnn_taiyi_path 1 demo.jpg 0 3 "一只可爱的猫" +### 提示词和图片名称设置 +``` +1. output_image_name是生成图片的名字,默认图片位置在当前运行目录下。 +2. prompt_text是文生图的prompt,如果是stable-diffusion-v1-5/chilloutmix模型建议英文prompt,如果是Taiyi-Stable-Diffusion建议中文prompt。 +``` +### 运行命令示例 +``` +./diffusion_demo mnn_sd1.5_path 0 1 3 20 demo.jpg "a cute cat" +./diffusion_demo mnn_chilloutmix_path 0 0 3 10 demo.jpg "a pure girl" +./diffusion_demo mnn_taiyi_path 1 0 3 10 demo.jpg "一只可爱的猫" ``` ## FAQ 1. Demo运行报错、段错误,怎么解决? diff --git a/docs/transformers/llm.md b/docs/transformers/llm.md index 109a6b43f..c63eabfa4 100644 --- a/docs/transformers/llm.md +++ b/docs/transformers/llm.md @@ -269,21 +269,41 @@ node llm_demo.js ~/qwen2.0_1.5b/config.json ~/qwen2.0_1.5b/prompt.txt 介绍一下音频里的内容 ``` -#### GPTQ权重加载 -- 使用脚本生成GPTQ模型权重,用法参考: [apply_gptq.py](../tools/script.html#apply-gptq-py) -- 创建`gptq.json`配置文件 - ```json - { - "llm_model": "model.mnn", - "llm_weight": "gptq.mnn.weight", - } - ``` +#### GPTQ权重 +需要使用GPTQ权重,可以在导出[Qwen2.5-0.5B-Instruct]模型时,使用`--gptq_path PATH`来指定[Qwen2.5-0.5B-Instruct-GPTQ-Int4]()的路径,使用如下: +```bash +# 导出GPTQ量化的模型 +python llmexport.py --path /path/to/Qwen2.5-0.5B-Instruct --gptq_path /path/to/Qwen2.5-0.5B-Instruct-GPTQ-Int4 --export mnn +``` + +#### LoRA权重 +LoRA权重有两使用方式:1. 合并LoRA权重到原始模型;2. LoRA模型单独导出。 +第一种模式速度更快,使用更简单但是不支持运行时切换;第二种略微增加一些内存和计算开销,但是更加灵活,支持运行时切换LoRA,适合多LoRA场景。 +##### 融合LoRA + +###### 导出 +将LoRA权重合并到原始模型中导出,在模型导出时指定`--lora_path PATH`参数,默认使用合并方式导出,使用如下: +```bash +# 导出LoRA合并的模型 +python llmexport.py --path /path/to/Qwen2.5-0.5B-Instruct --lora_path /path/to/lora --export mnn +``` + +###### 使用 +融合LoRA模型使用与原始模型使用方法完全一样。 + +##### 分离LoRA + +###### 导出 +将LoRA单独导出为一个模型,支持运行时切换,在模型导出时指定`--lora_path PATH`参数,并指定`--lora_split`,就会将LoRA分离导出,使用如下: +```bash +python llmexport.py --path /path/to/Qwen2.5-0.5B-Instruct --lora_path /path/to/lora --lora_split --export mnn +``` +导出后模型文件夹内除了原始模型外,还会增加`lora.mnn`,这个就是lora模型文件。 -#### LoRA权重加载 -- 使用脚本生成lora模型,用法参考: [apply_lora.py](../tools/script.html#apply-lora-py) +###### 使用 - lora模型使用 - - 直接加载lora模型使用,创建`lora.json`配置文件 + - 直接加载lora模型使用,创建`lora.json`配置文件,这样与直接运行融合LoRA的模型相似。 ```json { "llm_model": "lora.mnn", diff --git a/express/Executor.cpp b/express/Executor.cpp index 70800b505..22cc87769 100644 --- a/express/Executor.cpp +++ b/express/Executor.cpp @@ -220,18 +220,18 @@ void Executor::RuntimeManager::destroy(RuntimeManager* rtmgr) { } void Executor::RuntimeManager::setMode(Interpreter::SessionMode mode) { - mInside->modes.setMode(mode); + mInside->mContent->modes.setMode(mode); } void Executor::RuntimeManager::setHint(Interpreter::HintMode mode, int value) { - mInside->modes.setHint(mode, value); + mInside->mContent->modes.setHint(mode, value); auto current = ExecutorScope::Current(); auto rt = current->getRuntime(); for (auto& iter : rt.first) { - iter.second->setRuntimeHint(mInside->modes.runtimeHint); + iter.second->setRuntimeHint(mInside->mContent->modes.runtimeHint); } } void Executor::RuntimeManager::setExternalPath(std::string path, int type) { - mInside->modes.setExternalPath(path, type); + mInside->mContent->modes.setExternalPath(path, type); } void Executor::RuntimeManager::setHintPtr(Interpreter::HintMode mode, void* value) { auto current = ExecutorScope::Current(); @@ -261,6 +261,10 @@ bool Executor::RuntimeManager::getInfo(Interpreter::SessionInfoCode code, void* *dst = mInside->mRuntime.first.begin()->first; } } break; + case Interpreter::RESIZE_STATUS: { + auto dst = (int*)ptr; + *dst = mInside->mResizeStatus; + } break; default: { // Do nothing } break; @@ -270,10 +274,11 @@ bool Executor::RuntimeManager::getInfo(Interpreter::SessionInfoCode code, void* Executor::RuntimeManager::RuntimeManager() { mInside = new RuntimeAttr; + mInside->mContent.reset(new RuntimeAttr::Immutable); // Default set release for better performance - mInside->modes.callBackMode = Interpreter::Session_Release; - mInside->modes.inputMode = Interpreter::Session_Input_User; - mInside->modes.outputMode = Interpreter::Session_Output_User; + mInside->mContent->modes.callBackMode = Interpreter::Session_Release; + mInside->mContent->modes.inputMode = Interpreter::Session_Input_User; + mInside->mContent->modes.outputMode = Interpreter::Session_Output_User; } Executor::RuntimeManager::~RuntimeManager() { updateCache(); @@ -296,12 +301,12 @@ Executor::RuntimeManager* Executor::RuntimeManager::createRuntimeManager(const S res->mInside->mRuntime.second = originRt.second; res->mInside->mRuntime.first.insert(std::make_pair(type, rt)); res->mInside->mInfo = rt; - res->mInside->mNumberThread = numThread; + res->mInside->mContent->mNumberThread = numThread; if (nullptr != config.backendConfig) { - res->mInside->mConfig = *config.backendConfig; - res->mInside->mUserConfig = true; + res->mInside->mContent->mConfig = *config.backendConfig; + res->mInside->mContent->mUserConfig = true; } else { - res->mInside->mUserConfig = false; + res->mInside->mContent->mUserConfig = false; } return res; } @@ -310,8 +315,8 @@ ExecutorAttr* Executor::getAttr() const { } BackendConfig* Executor::RuntimeManager::getBnConfig() { - if (mInside->mUserConfig) { - return &mInside->mConfig; + if (mInside->mContent->mUserConfig) { + return &mInside->mContent->mConfig; } return nullptr; } @@ -359,7 +364,7 @@ void Executor::RuntimeManager::setCache(std::string cacheName) { } void Executor::RuntimeManager::setExternalFile(std::string fileName) { - mInside->mExternalFile = fileName; + mInside->mContent->mExternalFile = fileName; } void Executor::RuntimeManager::updateCache() { @@ -369,7 +374,7 @@ void Executor::RuntimeManager::updateCache() { std::lock_guard _l(mLock); // Backend_Auto and no Async work, then don't need updateCache - if(mInside->modes.backendMode == Interpreter::Session_Backend_Auto && !(mInside->mInfo->hasAsyncWork())) { + if(mInside->mContent->modes.backendMode == Interpreter::Session_Backend_Auto && !(mInside->mInfo->hasAsyncWork())) { return; } diff --git a/express/NeuralNetWorkOp.cpp b/express/NeuralNetWorkOp.cpp index 28580d792..c3b8dd64d 100644 --- a/express/NeuralNetWorkOp.cpp +++ b/express/NeuralNetWorkOp.cpp @@ -1878,8 +1878,13 @@ VARP _Im2Col(VARP x, INTS kernelSize, INTS dilate, INTS pads, INTS stride) { auto common = new Convolution2DCommonT; param->common.reset(common); op->main.value = param; - common->padX = pads[0]; - common->padY = pads[1]; + if (pads.size() >= 4) { + common->pads = pads; + } else { + // Compability for old model + common->padX = pads[0]; + common->padY = pads[1]; + } common->strideX = stride[0]; common->strideY = stride[1]; common->dilateX = dilate[0]; diff --git a/express/RuntimeAttr.hpp b/express/RuntimeAttr.hpp index 2c19f8b37..2f4e1d52c 100644 --- a/express/RuntimeAttr.hpp +++ b/express/RuntimeAttr.hpp @@ -11,16 +11,20 @@ struct Cache { size_t lastCacheSize = 0; }; struct RuntimeAttr { - Session::ModeGroup modes; + struct Immutable { + Session::ModeGroup modes; + BackendConfig mConfig; + bool mUserConfig; + int mNumberThread; + std::string mExternalFile; + }; + std::shared_ptr mContent; RuntimeInfo mRuntime; std::shared_ptr mInfo; std::shared_ptr mCache; - BackendConfig mConfig; - bool mUserConfig; - int mNumberThread; // Use for static module to compute flops float mFlops; - std::string mExternalFile; + mutable int mResizeStatus = 0; }; struct ExecutorAttr { std::shared_ptr constantBackend; diff --git a/express/module/Module.cpp b/express/module/Module.cpp index e3372db0c..9e565b1ae 100644 --- a/express/module/Module.cpp +++ b/express/module/Module.cpp @@ -15,7 +15,7 @@ #include "MNN_generated.h" #include "Utils.hpp" #include "RuntimeAttr.hpp" - +#include "ModuleInside.hpp" #include #ifdef MNN_INTERNAL_ENABLED #include "internal/auth/ModelAuth.hpp" @@ -176,7 +176,7 @@ class NetModule : public Module { int mode = 1; if (info->runTimeManager.get() != nullptr) { auto attr = info->runTimeManager->getInside(); - mode = attr->mNumberThread; + mode = attr->mContent->mNumberThread; int backendTypes[MNN_FORWARD_ALL]; info->runTimeManager->getInfo(Interpreter::BACKENDS, &backendTypes); backend = backendTypes[0]; @@ -208,7 +208,8 @@ class NetModule : public Module { virtual std::vector onForward(const std::vector& inputs) override { auto mModule = mChildren[0]; - + // Reset resize staus + mInfo->runTimeManager->getInside()->mResizeStatus = 0; #ifdef MNN_INTERNAL_ENABLED Timer _time; auto glo = ExecutorScope::Current(); @@ -246,9 +247,18 @@ class NetModule : public Module { } virtual Module* clone(CloneContext* ctx) const override { auto mModule = mChildren[0]; + auto origin = mInfo->runTimeManager->getInside(); + ScheduleConfig config; + config.type = origin->mRuntime.first.begin()->first; + config.numThread = origin->mContent->mNumberThread; + std::shared_ptr newRt (Executor::RuntimeManager::createRuntimeManager(config)); + const_cast(newRt->getInside())->mContent = origin->mContent; + std::shared_ptr newInfo(new Module::Info); + *newInfo = *mInfo; + ctx->pRuntimeManager = newRt; + newInfo->runTimeManager = newRt; std::shared_ptr submodule(mModule->clone(ctx)); - - NetModule* module(new NetModule(submodule, mInfo, nullptr, 0, 0.0f)); + NetModule* module(new NetModule(submodule, newInfo, nullptr, 0, 0.0f)); #ifdef MNN_INTERNAL_ENABLED module->mLogInfo = mLogInfo; #endif @@ -333,7 +343,7 @@ Module* Module::load(const std::vector& inputs, const std::vectorgetInside()->mExternalFile.empty()) { + if (rtMgr->getInside()->mContent->mExternalFile.empty()) { // Set Default externalFile rtMgr->setExternalFile(std::string(fileName) + ".weight"); needReset = true; @@ -361,7 +371,7 @@ static Module* loadInternal(const std::vector& inputs, const std::v } bool checkMNNBuffer = true; if (nullptr != _rtMgr) { - checkMNNBuffer = _rtMgr->getInside()->modes.checkNetBuffer; + checkMNNBuffer = _rtMgr->getInside()->mContent->modes.checkNetBuffer; } if (checkMNNBuffer) { flatbuffers::Verifier verify(buffer, length); diff --git a/express/module/ModuleInside.hpp b/express/module/ModuleInside.hpp new file mode 100644 index 000000000..93abff4e2 --- /dev/null +++ b/express/module/ModuleInside.hpp @@ -0,0 +1,35 @@ +// +// ModuleInside.hpp +// MNN +// +// Created by MNN on b'2025/01/13'. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifndef ModuleInside_hpp +#define ModuleInside_hpp +#include +#include +#include +namespace MNN { +namespace Express { +class Module::CloneContext { +public: + CloneContext() = default; + explicit CloneContext(const bool shareParams) + : mShareParams(shareParams) {} + virtual ~CloneContext() = default; + + const bool shareParams() const { return mShareParams; } + + EXPRP getOrClone(const EXPRP expr); + VARP getOrClone(const VARP var); + std::shared_ptr pRuntimeManager; +private: + bool mShareParams = false; + std::unordered_map mExprMap; + std::unordered_map mVarMap; +}; +}; +}; +#endif diff --git a/express/module/NMSModule.cpp b/express/module/NMSModule.cpp index 7712addf6..7d5601c24 100644 --- a/express/module/NMSModule.cpp +++ b/express/module/NMSModule.cpp @@ -2,7 +2,7 @@ // NMSModule.cpp // MNN // -// Created by MNN on b'2020/09/10'. +// Created by MNN on 2020/09/10. // Copyright © 2018, Alibaba Group Holding Limited // diff --git a/express/module/NMSModule.hpp b/express/module/NMSModule.hpp index dafe8bb69..1f87b9256 100644 --- a/express/module/NMSModule.hpp +++ b/express/module/NMSModule.hpp @@ -2,9 +2,10 @@ // NMSModule.hpp // MNN // -// Created by MNN on b'2020/09/10'. +// Created by MNN on 2020/09/10. // Copyright © 2018, Alibaba Group Holding Limited // + #ifndef NMSModule_hpp #define NMSModule_hpp #include diff --git a/express/module/PipelineModule.cpp b/express/module/PipelineModule.cpp index ee9f4d496..41970f0a4 100644 --- a/express/module/PipelineModule.cpp +++ b/express/module/PipelineModule.cpp @@ -9,6 +9,7 @@ #include "PipelineModule.hpp" #include #include +#include "ModuleInside.hpp" #include "StaticModule.hpp" #include "IfModule.hpp" #include "WhileModule.hpp" @@ -612,7 +613,7 @@ static std::vector _createSubModuleInfo(std::shared_ptr rt; Backend::Info compute; const BackendConfig* userConfig = nullptr; Session::ModeGroup modes; @@ -722,10 +723,10 @@ Module* PipelineModule::load(const std::vector& inputs, const std:: auto curExe = ExecutorScope::Current(); bool permitCodeGen = false; std::shared_ptr modRuntimeCfgPtr(new ModuleRuntimeConfig); - if (!rtMgr->getInside()->mExternalFile.empty()) { - modRuntimeCfgPtr->externalFile = rtMgr->getInside()->mExternalFile; + if (!rtMgr->getInside()->mContent->mExternalFile.empty()) { + modRuntimeCfgPtr->externalFile = rtMgr->getInside()->mContent->mExternalFile; } - permitCodeGen = rtMgr->getInside()->modes.codegenMode == Interpreter::Session_Codegen_Enable; + permitCodeGen = rtMgr->getInside()->mContent->modes.codegenMode == Interpreter::Session_Codegen_Enable; std::shared_ptr defaultBackend = curExe->getAttr()->constantBackend; std::vector> allTensors; sharedConst->allTensors.resize(net->tensorName()->size()); @@ -733,16 +734,15 @@ Module* PipelineModule::load(const std::vector& inputs, const std:: ModuleRuntimeConfig& modRuntime = *modRuntimeCfgPtr; modRuntime.needGeometry = needGeometry; { - modRuntime.modes = rtMgr->getInside()->modes; - modRuntime.rt = rtMgr->getInside()->mRuntime; - modRuntime.externalFile = rtMgr->getInside()->mExternalFile; - modRuntime.userConfig = &rtMgr->getInside()->mConfig; - modRuntime.compute.type = modRuntime.rt.first.begin()->first; - modRuntime.compute.numThread = 1; - modRuntime.rt.first.begin()->second->setRuntimeHint(rtMgr->getInside()->modes.runtimeHint); - } - auto& rt = modRuntime.rt; - auto firstRt = rt.first[modRuntime.compute.type]; + modRuntime.modes = rtMgr->getInside()->mContent->modes; + modRuntime.rt = rtMgr; + rtMgr->getInside()->mRuntime.first.begin()->second->setRuntimeHint(rtMgr->getInside()->mContent->modes.runtimeHint); + modRuntime.externalFile = rtMgr->getInside()->mContent->mExternalFile; + modRuntime.userConfig = &rtMgr->getInside()->mContent->mConfig; + modRuntime.compute.type = rtMgr->getInside()->mRuntime.first.begin()->first; + } + auto& rt = modRuntime.rt->getInside()->mRuntime; + auto firstRt = rt.first.find(modRuntime.compute.type)->second; sharedConst->constReplaceBackend.reset(firstRt->onCreate(modRuntime.userConfig)); ErrorCode code = NO_ERROR; std::set noneedComputeIndexes; diff --git a/express/module/StaticModule.cpp b/express/module/StaticModule.cpp index 33fa14afe..c220fbff3 100644 --- a/express/module/StaticModule.cpp +++ b/express/module/StaticModule.cpp @@ -2,18 +2,18 @@ // StaticModule.cpp // MNN // -// Created by MNN on b'2020/09/10'. +// Created by MNN on 2020/09/10. // Copyright © 2018, Alibaba Group Holding Limited // #include "StaticModule.hpp" #include -#include #include #include #include "Utils.hpp" #include "core/WrapExecution.hpp" #include "core/MNNMemoryUtils.h" +#include "ModuleInside.hpp" #include "RuntimeAttr.hpp" #include "core/TensorUtils.hpp" #include "core/FileLoader.hpp" @@ -233,7 +233,7 @@ void StaticModule::resetInputOutputs() { } pipelineInfo.first.inputTensorCopyCache.insert(std::make_pair(mInputTensors[i], std::make_tuple(nullptr, nullptr, true, true))); mPrevInputTensor[i].first = nullptr; - mPrevInputTensor[i].second = nullptr; + mPrevInputTensor[i].second = MNN_FORWARD_CPU; } mOutputTensors.resize(mResource->mOutputFromTensor.size()); for (int i = 0; i < mResource->mOutputFromTensor.size(); ++i) { @@ -294,11 +294,14 @@ StaticModule::StaticModule(std::vector inputs, Schedule::ScheduleInfo&& scheduleInfo, std::shared_ptr sharedConst, Session::ModeGroup&& mode, - RuntimeInfo&& rt, + std::shared_ptr rtm, const Module::Config& config ) { setType("StaticModule"); mResource.reset(new Resource); + mRuntimeManager = rtm; + MNN_ASSERT(nullptr != rtm); + auto rt = rtm->getInside()->mRuntime; mResource->mSharedConst = sharedConst; mResource->mModes = std::move(mode); mResource->mBnInfo.user = &mResource->mBnConfig; @@ -371,7 +374,6 @@ void StaticModule::onClearCache() { if (nullptr != mSession) { for (int i=0; igetPipelineInfo(0).first.inputTensorCopyCache) { std::get<3>(iter.second) = true; @@ -381,6 +383,8 @@ void StaticModule::onClearCache() { ErrorCode StaticModule::_resize(const std::vector& inputs) { ErrorCode code = NO_ERROR; auto& pipelineInfo = mSession->getPipelineInfo(0); + auto rtmInside = mRuntimeManager->getInside(); + int curStatus = 0; if (mResource->mModes.inputMode == Interpreter::Session_Input_User) { pipelineInfo.first.inputBackendChange = false; bool needResize = mResource->mUseContentInputs; @@ -392,14 +396,18 @@ ErrorCode StaticModule::_resize(const std::vector& inputs) { Schedule::TENSORCACHE* cacheTensor = nullptr; if (mPrevInputTensor[i].first != inputTensor) { auto newBackend = TensorUtils::getDescribeOrigin(inputTensor)->getBackend(); - if (mPrevInputTensor[i].second != newBackend) { + auto newType = MNN_FORWARD_CPU; + if (nullptr != newBackend) { + newType = newBackend->type(); + } + if (mPrevInputTensor[i].second != newType) { pipelineInfo.first.inputBackendChange = true; } auto cacheIter = pipelineInfo.first.inputTensorCopyCache.find(mInputTensors[i]); cacheTensor = &cacheIter->second; MNN_ASSERT(cacheIter != pipelineInfo.first.inputTensorCopyCache.end()); std::get<3>(cacheIter->second) = true; - mPrevInputTensor[i] = std::make_pair(inputTensor, newBackend); + mPrevInputTensor[i] = std::make_pair(inputTensor, newType); if (std::get<1>(*cacheTensor) != nullptr) { if (!WrapExecution::needWrap(inputTensor, TensorUtils::getDescribeOrigin(std::get<0>(*cacheTensor))->getBackend())) { // No need copy now, reset it @@ -480,6 +488,7 @@ ErrorCode StaticModule::_resize(const std::vector& inputs) { } } } + mSession->getInfo(Interpreter::RESIZE_STATUS, &curStatus); code = mSession->resize(); } else { // Resize @@ -496,6 +505,7 @@ ErrorCode StaticModule::_resize(const std::vector& inputs) { mSession->setNeedResize(); } } + mSession->getInfo(Interpreter::RESIZE_STATUS, &curStatus); code = mSession->resize(); // Copy for (int i = 0; i < inputs.size(); ++i) { @@ -507,6 +517,7 @@ ErrorCode StaticModule::_resize(const std::vector& inputs) { mInputTensors[i]->copyFromHostTensor(inputTensor); } } + rtmInside->mResizeStatus = ALIMAX(rtmInside->mResizeStatus, curStatus); return code; } @@ -605,11 +616,11 @@ std::vector StaticModule::onForward(const std::vectormResource = mResource; + module->mRuntimeManager = ctx->pRuntimeManager; if (mResource->mOutputFromTensor.empty()) { return this->cloneBaseTo(ctx, module); } - // TODO: If RuntimeManager is not the same as Runtime, may copy error - auto rt = Executor::getRuntime(); + auto rt = ctx->pRuntimeManager->getInside()->mRuntime; module->mSession.reset(mSession->clone(std::move(rt), mResource->mSharedConst)); module->resetInputOutputs(); return this->cloneBaseTo(ctx, module); diff --git a/express/module/StaticModule.hpp b/express/module/StaticModule.hpp index 582ae92fb..a3ea5dfd9 100644 --- a/express/module/StaticModule.hpp +++ b/express/module/StaticModule.hpp @@ -2,7 +2,7 @@ // StaticModule.hpp // MNN // -// Created by MNN on b'2020/09/10'. +// Created by MNN on 2020/09/10. // Copyright © 2018, Alibaba Group Holding Limited // @@ -10,6 +10,7 @@ #define StaticModule_hpp #include +#include #include "core/Schedule.hpp" #include "core/Session.hpp" @@ -20,7 +21,7 @@ struct BufferStorage; namespace Express { class StaticModule : public Module { public: - StaticModule(std::vector inputs, std::vector outputs, std::vector>&& buffer, Schedule::ScheduleInfo&& scheduleInfo, std::shared_ptr sharedConst, Session::ModeGroup&& mode, RuntimeInfo&& rt, const Module::Config& config); + StaticModule(std::vector inputs, std::vector outputs, std::vector>&& buffer, Schedule::ScheduleInfo&& scheduleInfo, std::shared_ptr sharedConst, Session::ModeGroup&& mode, std::shared_ptr rt, const Module::Config& config); virtual ~ StaticModule(); virtual std::vector onForward(const std::vector& inputs) override; virtual void onClearCache() override; @@ -53,11 +54,12 @@ class StaticModule : public Module { }; std::shared_ptr mSession; std::vector mInputTensors; - std::vector> mPrevInputTensor; + std::vector> mPrevInputTensor; std::vector mOutputTensors; std::shared_ptr mResource; bool mShapeInferSeperate = false; std::vector mOutputVars; + std::shared_ptr mRuntimeManager; }; } } diff --git a/express/module/WhileModule.cpp b/express/module/WhileModule.cpp index baf14948b..3f94d7232 100644 --- a/express/module/WhileModule.cpp +++ b/express/module/WhileModule.cpp @@ -2,7 +2,7 @@ // WhileModule.cpp // MNN // -// Created by MNN on b'2020/09/10'. +// Created by MNN on 2020/09/10. // Copyright © 2018, Alibaba Group Holding Limited // diff --git a/express/module/WhileModule.hpp b/express/module/WhileModule.hpp index 73af315c0..189985548 100644 --- a/express/module/WhileModule.hpp +++ b/express/module/WhileModule.hpp @@ -2,9 +2,10 @@ // WhileModule.hpp // MNN // -// Created by MNN on b'2020/09/10'. +// Created by MNN on 2020/09/10. // Copyright © 2018, Alibaba Group Holding Limited // + #ifndef WhileModule_hpp #define WhileModule_hpp #include diff --git a/include/MNN/Interpreter.hpp b/include/MNN/Interpreter.hpp index bffb2f313..b0fe9867e 100644 --- a/include/MNN/Interpreter.hpp +++ b/include/MNN/Interpreter.hpp @@ -216,7 +216,8 @@ class MNN_PUBLIC Interpreter { // Geometry Compute option, default is 0xFFFF GEOMETRY_COMPUTE_MASK = 4, - // 0: Close dynamic quant; 1: per batch quant; 2: per tensor quant + // 0: Close dynamic quant; + // 1: For general convolution, use one scale&zeropoint to quant. DYNAMIC_QUANT_OPTIONS = 5, // For Mobile CPU with big-litter core, set decrease rate to let MNN divide task differential by CPU's performance @@ -423,7 +424,10 @@ class MNN_PUBLIC Interpreter { /** Backends in session in M, int*, length >= 1 + number of configs when create session */ BACKENDS = 2, - /** Resize Info, int*, 0: ready to execute, 1: need malloc, 2: need resize */ + /** Resize Info, int* , the mean different from API + Interpreter::getSessionInfo: 0: ready to execute, 1: need malloc, 2: need resize + RuntimeManager::getInfo: 0: no resize, 1: re-malloc, 2: resize + */ RESIZE_STATUS = 3, /** Mode / NumberThread, int* */ diff --git a/include/MNN/MNNDefine.h b/include/MNN/MNNDefine.h index 91e7877a8..04c52103b 100644 --- a/include/MNN/MNNDefine.h +++ b/include/MNN/MNNDefine.h @@ -71,10 +71,11 @@ MNN_ERROR("Check failed: %s ==> %s\n", #success, #log); \ #else #define MNN_PUBLIC __attribute__((visibility("default"))) #endif + #define STR_IMP(x) #x #define STR(x) STR_IMP(x) #define MNN_VERSION_MAJOR 3 #define MNN_VERSION_MINOR 0 -#define MNN_VERSION_PATCH 3 +#define MNN_VERSION_PATCH 4 #define MNN_VERSION STR(MNN_VERSION_MAJOR) "." STR(MNN_VERSION_MINOR) "." STR(MNN_VERSION_PATCH) #endif /* MNNDefine_h */ diff --git a/include/MNN/MNNForwardType.h b/include/MNN/MNNForwardType.h index 31665c1ec..b611012c5 100644 --- a/include/MNN/MNNForwardType.h +++ b/include/MNN/MNNForwardType.h @@ -53,23 +53,23 @@ typedef enum { } MNNForwardType; typedef enum { - // choose one tuning mode Only - MNN_GPU_TUNING_NONE = 1 << 0,/* Forbidden tuning, performance not good */ - MNN_GPU_TUNING_HEAVY = 1 << 1,/* heavily tuning, usually not suggested */ - MNN_GPU_TUNING_WIDE = 1 << 2,/* widely tuning, performance good. Default */ - MNN_GPU_TUNING_NORMAL = 1 << 3,/* normal tuning, performance may be ok */ - MNN_GPU_TUNING_FAST = 1 << 4,/* fast tuning, performance may not good */ - - // choose one opencl memory mode Only - /* User can try OpenCL_MEMORY_BUFFER and OpenCL_MEMORY_IMAGE both, - then choose the better one according to performance*/ - MNN_GPU_MEMORY_BUFFER = 1 << 6,/* User assign mode */ - MNN_GPU_MEMORY_IMAGE = 1 << 7,/* User assign mode */ - // choose one opencl memory mode Only, this mode Only support for Qualcomm gpu - /* User can try MNN_GPU_RECORD_OP and MNN_GPU_RECORD_KERNEL both, - then choose the better one according to performance*/ - MNN_GPU_RECORD_OP = 1 << 8,/* the kernels in one op execution record into one recording */ - MNN_GPU_RECORD_BATCH = 1 << 9,/* 10 kernels record into one recording */ + // For the OpenCL backend, all five of the following options are valid. The user is allowed to enable any one of them. + // For the Vulkan backend, only options MNN_GPU_TUNING_NONE, MNN_GPU_TUNING_HEAVY, and MNN_GPU_TUNING_WIDE are valid. The user is allowed to enable any one of these three. + MNN_GPU_TUNING_NONE = 1 << 0, /* Forbidden tuning, performance not good.(OpenCL/Vulkan) */ + MNN_GPU_TUNING_HEAVY = 1 << 1, /* Heavily tuning, usually not suggested.(OpenCL/Vulkan) */ + MNN_GPU_TUNING_WIDE = 1 << 2, /* Widely tuning, performance good. Default.(OpenCL/Vulkan) */ + MNN_GPU_TUNING_NORMAL = 1 << 3, /* Normal tuning, performance may be ok.(OpenCL) */ + MNN_GPU_TUNING_FAST = 1 << 4, /* Fast tuning, performance may not good.(OpenCL) */ + + // For the OpenCL backend, the following two options are both valid. The user could try OpenCL_MEMORY_BUFFER and OpenCL_MEMORY_IMAGE both, and then choose the better one based on performance. + // For the Vulkan backend, neither option is valid. The user uses the CMake option MNN_VULKAN_IMAGE to select between image memory mode and buffer memory mode. + MNN_GPU_MEMORY_BUFFER = 1 << 6, /* OpenCL_MEMORY_BUFFER */ + MNN_GPU_MEMORY_IMAGE = 1 << 7, /* OpenCL_MEMORY_IMAGE */ + + // For the OpenCL backend, the following two options are effective only on Qualcomm GPUs. When using a Qualcomm GPU, the user could try both options and choose the better one based on performance. + // For the Vulkan backend, only option MNN_GPU_RECORD_BATCH is valid. When MNN_GPU_RECORD_BATCH is enabled, all ops would share one commandBuffer. + MNN_GPU_RECORD_OP = 1 << 8, /* The kernels in one op execution record into one recording.(OpenCL) */ + MNN_GPU_RECORD_BATCH = 1 << 9, /* 10 kernels record into one recording.(OpenCL) All ops share one commandBuffer.(Vulkan) */ } MNNGpuMode; #ifdef __cplusplus diff --git a/include/MNN/expr/Module.hpp b/include/MNN/expr/Module.hpp index a2e5dc41b..15462f888 100644 --- a/include/MNN/expr/Module.hpp +++ b/include/MNN/expr/Module.hpp @@ -10,7 +10,6 @@ #define MNN_Train_Module_hpp #include -#include #include #include @@ -97,23 +96,7 @@ class MNN_PUBLIC Module { std::string bizCode; }; const Info* getInfo() const; - class CloneContext { - public: - CloneContext() = default; - explicit CloneContext(const bool shareParams) - : mShareParams(shareParams) {} - virtual ~CloneContext() = default; - - const bool shareParams() const { return mShareParams; } - - EXPRP getOrClone(const EXPRP expr); - VARP getOrClone(const VARP var); - private: - bool mShareParams = false; - std::unordered_map mExprMap; - std::unordered_map mVarMap; - }; - + class CloneContext; virtual Module* clone(CloneContext* ctx) const { return nullptr; } diff --git a/pymnn/pip_package/MNN/expr/__init__.py b/pymnn/pip_package/MNN/expr/__init__.py index bb93f0b7f..a76e236f9 100644 --- a/pymnn/pip_package/MNN/expr/__init__.py +++ b/pymnn/pip_package/MNN/expr/__init__.py @@ -93,7 +93,7 @@ def _to_var(x, dtype=None): x = x.astype(np.float32) x = _F.const(x, x.shape, dtype=_F.float) else: - raise ValueError('Just support i/f dtype numpy.') + raise ValueError('Just support int32/float dtype numpy. Please Call numpy.astype(float32) / numpy.astype(int32) before') except: pass # 3. Sequence diff --git a/pymnn/pip_package/MNN/llm/__init__.py b/pymnn/pip_package/MNN/llm/__init__.py index ebf4cf84e..76eb24527 100644 --- a/pymnn/pip_package/MNN/llm/__init__.py +++ b/pymnn/pip_package/MNN/llm/__init__.py @@ -34,7 +34,7 @@ def generate(self, input_ids): Example: ------- >>> input_ids = [151644, 872, 198, 108386, 151645, 198, 151644, 77091] - >>> output_ids = qwen.generate(input_ids) + >>> output_ids = llm.generate(input_ids) ''' return super.generate(input_ids) @@ -53,7 +53,7 @@ def response(self, prompt, stream = False): Example: ------- - >>> res = qwen.response('Hello', True) + >>> res = llm.response('Hello', True) ''' return super.response(prompt, stream) @@ -71,10 +71,64 @@ def txt_embedding(self, prompt): Example: ------- - >>> res = qwen.txt_embedding('Hello') + >>> res = llm.txt_embedding('Hello') ''' return super.txt_embedding(prompt) + def apply_lora(self, lora_path): + ''' + apply lora model on base model + + Parameters + ---------- + lora_path : lora model path + + Returns + ------- + index : int index + + Example: + ------- + >>> lora_index = llm.apply_lora('./qwen-1.8b-int4/qwen-1.8b-lora.mnn') + ''' + return super.apply_lora(lora_path) + + def select_module(self, module_index): + ''' + select current module + + Parameters + ---------- + module_index : module index + + Returns + ------- + res : bool + + Example: + ------- + >>> res = llm.select_module(lora_index) + ''' + return super.select_module(module_index) + + def release_module(self, module_index): + ''' + release module + + Parameters + ---------- + module_index : module index, int + + Returns + ------- + res : bool + + Example: + ------- + >>> res = llm.release_module(lora_index) + ''' + return super.release_module(module_index) + def create(config_path, embedding_model = False): ''' create LLM instance by `config.json` @@ -89,6 +143,6 @@ def create(config_path, embedding_model = False): Example: ------- - >>> qwen = llm.create('./qwen-1.8b-int4/config.json') + >>> llm = mllm.create('./qwen-1.8b-int4/config.json') ''' return _F.create(config_path, embedding_model) \ No newline at end of file diff --git a/pymnn/pip_package/MNN/numpy/__init__.py b/pymnn/pip_package/MNN/numpy/__init__.py index 258741875..a9ea5c390 100644 --- a/pymnn/pip_package/MNN/numpy/__init__.py +++ b/pymnn/pip_package/MNN/numpy/__init__.py @@ -516,12 +516,7 @@ def array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0, like=N else: x = object else: - if not isinstance(object, _F._Sequence): - x = _F.scalar(object, dtype) - else: - # get shape and dtype of sequence - dst_shape, item_type = _F._list_shape_type(object) - x = _F.const(object, dst_shape, dtype=item_type) + x = _F._to_var(object) # if give dtype, cast to dtype if dtype is not None and dtype != x.dtype: x = _F.cast(x, dtype) diff --git a/pymnn/pip_package/README.md b/pymnn/pip_package/README.md index 9efd2badd..133f581da 100644 --- a/pymnn/pip_package/README.md +++ b/pymnn/pip_package/README.md @@ -12,5 +12,5 @@ Installation Dependencies --------------------------------------------------- - flatbuffers, numpy + numpy diff --git a/pymnn/pip_package/build_manylinux2014.sh b/pymnn/pip_package/build_manylinux2014.sh index 3ce43fa3c..948fa138b 100755 --- a/pymnn/pip_package/build_manylinux2014.sh +++ b/pymnn/pip_package/build_manylinux2014.sh @@ -24,7 +24,7 @@ for PYBIN in /opt/python/*/bin; do elif [ "$1" == "-cuda" ]; then USE_CUDA=true "${PYBIN}/python" setup.py bdist_wheel else - "${PYBIN}/python" setup.py bdist_wheel + "${PYBIN}/python" setup.py bdist_wheel $1 fi done diff --git a/pymnn/pip_package/setup.py b/pymnn/pip_package/setup.py index 5955a9310..52018354c 100644 --- a/pymnn/pip_package/setup.py +++ b/pymnn/pip_package/setup.py @@ -34,10 +34,12 @@ def get_version(): sys.argv = [sys.argv[0]] + unknown import platform +has_numpy = True try: import numpy as np except: print("import numpy failed") + has_numpy = False from setuptools import setup, Extension, find_packages from distutils import core from distutils.core import Distribution @@ -166,7 +168,9 @@ def configure_extension_build(): ] if check_env_flag('WERROR'): extra_compile_args.append('-Werror') - extra_compile_args += ['-DPYMNN_EXPR_API', '-DPYMNN_NUMPY_USABLE', '-DPYMNN_OPENCV_API', '-DPYMNN_AUDIO_API'] + extra_compile_args += ['-DPYMNN_EXPR_API', '-DPYMNN_OPENCV_API', '-DPYMNN_AUDIO_API'] + if has_numpy: + extra_compile_args += ['-DPYMNN_NUMPY_USABLE'] if IS_LINUX and USE_INTERNAL: extra_compile_args += ['-DPYMNN_INTERNAL_SERVING'] if args.env == 'daily': @@ -220,7 +224,8 @@ def configure_extension_build(): # llm include engine_include_dirs += [os.path.join(root_dir, "transformers", "llm", "engine", "include")] engine_include_dirs += [os.path.join(root_dir, "3rd_party")] - engine_include_dirs += [np.get_include()] + if has_numpy: + engine_include_dirs += [np.get_include()] lib_files = [] trt_depend = ['-lTRT_CUDA_PLUGIN', '-lnvinfer', '-lnvparsers', '-lnvinfer_plugin', '-lcudart'] @@ -311,7 +316,8 @@ def configure_extension_build(): tools_include_dirs += [os.path.join(root_dir, "source", "core")] tools_include_dirs += [os.path.join(root_dir, "schema", "current")] tools_include_dirs += [os.path.join(root_dir, "source")] - tools_include_dirs += [np.get_include()] + if has_numpy: + tools_include_dirs += [np.get_include()] # enable logging and model authentication on linux. if IS_LINUX and USE_INTERNAL: @@ -369,7 +375,7 @@ def make_relative_rpath(path): if IS_DARWIN: # conda: dylibs install at site-packages/MNN_*/lib/ # not conda: dylibs instal at .../lib/ for .../lib/python*/site-packages/_mnncengine.cpython-*-darwin.so - return [f'-Wl,-rpath,@loader_path/../../../{path},-rpath,@loader_path/{path}'] + return ['-Wl,-rpath,@loader_path/../../../'+path+',-rpath,@loader_path/'+path] elif IS_WINDOWS: return [] else: diff --git a/pymnn/src/llm.h b/pymnn/src/llm.h index 0b7521918..9692184f5 100644 --- a/pymnn/src/llm.h +++ b/pymnn/src/llm.h @@ -48,6 +48,7 @@ static PyObject* PyMNNLLM_generate(LLM *self, PyObject *args) { if (!PyArg_ParseTuple(args, "O", &input_ids) && isInts(input_ids)) { Py_RETURN_NONE; } + auto output_ids = self->llm->generate(toInts(input_ids)); return toPyObj(output_ids); } @@ -123,6 +124,42 @@ static PyObject* PyMNNLLM_txt_embedding(LLM *self, PyObject *args) { return (PyObject *)embeds; } +static PyObject* PyMNNLLM_apply_lora(LLM *self, PyObject *args) { + if (self->is_embedding) { + Py_RETURN_NONE; + } + const char* path = NULL; + if (!PyArg_ParseTuple(args, "s", &path)) { + Py_RETURN_NONE; + } + int model_index = self->llm->apply_lora(path); + return toPyObj(model_index); +} + +static PyObject* PyMNNLLM_select_module(LLM *self, PyObject *args) { + if (self->is_embedding) { + Py_RETURN_NONE; + } + PyObject *index = nullptr; + if (!PyArg_ParseTuple(args, "O", &index) && isInt(index)) { + Py_RETURN_NONE; + } + bool res = self->llm->select_module(toInt(index)); + return toPyObj(res); +} + +static PyObject* PyMNNLLM_release_module(LLM *self, PyObject *args) { + if (self->is_embedding) { + Py_RETURN_NONE; + } + PyObject *index = nullptr; + if (!PyArg_ParseTuple(args, "O", &index) && isInt(index)) { + Py_RETURN_NONE; + } + bool res = self->llm->release_module(toInt(index)); + return toPyObj(res); +} + static PyMethodDef PyMNNLLM_methods[] = { {"load", (PyCFunction)PyMNNLLM_load, METH_VARARGS, "load model."}, {"forward", (PyCFunction)PyMNNLLM_forward, METH_VARARGS, "forward `logits` by `input_ids`."}, @@ -133,6 +170,9 @@ static PyMethodDef PyMNNLLM_methods[] = { {"tokenizer_encode", (PyCFunction)PyMNNLLM_tokenizer_encode, METH_VARARGS, "tokenizer encode."}, {"tokenizer_decode", (PyCFunction)PyMNNLLM_tokenizer_decode, METH_VARARGS, "tokenizer decode."}, {"txt_embedding", (PyCFunction)PyMNNLLM_txt_embedding, METH_VARARGS, "txt embedding."}, + {"apply_lora", (PyCFunction)PyMNNLLM_apply_lora, METH_VARARGS, "apply_lora."}, + {"select_module", (PyCFunction)PyMNNLLM_select_module, METH_VARARGS, "select_module."}, + {"release_module", (PyCFunction)PyMNNLLM_release_module, METH_VARARGS, "release_module."}, {NULL} /* Sentinel */ }; diff --git a/source/backend/arm82/Arm82Functions.cpp b/source/backend/arm82/Arm82Functions.cpp index 5e2efa3b9..064ab3d63 100644 --- a/source/backend/arm82/Arm82Functions.cpp +++ b/source/backend/arm82/Arm82Functions.cpp @@ -43,10 +43,14 @@ void MNNPackedMatMulRemainFP16_int8(float* C, const float* A, const float* B, si #endif #ifdef MNN_LOW_MEMORY -void MNNAbsMaxFP16(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack); +void MNNAbsMaxFP16_Pack8(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack); +void MNNAbsMaxFP16_Pack4(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack); void MNNQuantScaleFP16(float* sum, float* absmax, float* quant_scale, float* dequant_scale, size_t thread, size_t batch); -void MNNDynamicQuantFP16(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack); +void MNNDynamicQuantFP16_Pack8(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack); +void MNNDynamicQuantFP16_Pack4(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack); void MNNQuantSumFP16(float* sum, const float* dequant_scale, size_t thread, size_t batch); +void MNNGeneralIm2col_Arm82(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack); +void MNNGeneralIm2col_Arm86(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack); #endif #if defined(__aarch64__) void CountMinMaxValue_FP16(float* source, float* minVal, float* maxVal, size_t sizeQuad); @@ -799,6 +803,62 @@ static void _ArmBasicMNNPackC4ForMatMul_A_L8(int8_t* destOrigin, int8_t const** } } +#ifdef MNN_LOW_MEMORY +void MNNAbsMaxFP16(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) { + if (pack == 4) { + MNNAbsMaxFP16_Pack4(source, absmax, src_depth_quad, realSize, pack); + return; + } + if (pack == 8) { + MNNAbsMaxFP16_Pack8(source, absmax, src_depth_quad, realSize, pack); + return; + } + // source: (src_depth_quad, realSize, pack) + auto srcStep = pack * realSize; + auto srcPtr = (FLOAT16*)source; + auto dstPtr = (FLOAT16*)absmax; + for (int i = 0; i < realSize; ++i) { + FLOAT16 absmaxVal = 0; // absmaxVal>=0 + for (int c = 0; c < src_depth_quad; ++c) { + auto src = srcPtr + c * srcStep + i * pack; + for (int k = 0; k < pack; ++k) { + if (std::abs(src[k]) > absmaxVal) { + absmaxVal = std::abs(src[k]); + } + } + } + dstPtr[i] = absmaxVal; + } + return; +} + +static void MNNDynamicQuantFP16(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) { + if (pack == 8) { + MNNDynamicQuantFP16_Pack8(src, dst, scale, src_depth_quad,realSize, pack); + return; + } + if (pack == 4) { + MNNDynamicQuantFP16_Pack4(src, dst, scale, src_depth_quad,realSize, pack); + return; + } + int8_t* dstPtr = dst; + auto srcPtr = (FLOAT16*)src; + + for (int i = 0; i < realSize; ++i) { + auto scaleVal = static_cast(scale[i]); + for (int c = 0; c < src_depth_quad; ++c) { + auto srcZ = srcPtr + c * pack * realSize + i * pack; + auto dstZ = dstPtr + c * pack * realSize + i * pack; + for (int k = 0; k < pack; ++k) { + int val = (int)roundf(srcZ[k] * scaleVal); + dstZ[k] = val; + } + } + } + return; +} +#endif + static CoreFunctions* gInstance = nullptr; static CoreInt8Functions* gArm82CoreInt8Functions = nullptr; @@ -840,6 +900,13 @@ bool Arm82Functions::init() { FUNC_PTR_ASSIGN(gInstance->MNNStrassenMergeCFunction, ARM82StrassenMerge); #ifdef MNN_LOW_MEMORY FUNC_PTR_ASSIGN(gInstance->MNNDynamicUpdateConvBiasScale, origin->MNNDynamicUpdateConvBiasScale); + if (origin->supportSDot) { + FUNC_PTR_ASSIGN(gInstance->MNNGeneralIm2Col, MNNGeneralIm2col_Arm82); + } + if (origin->supportI8mm) { + FUNC_PTR_ASSIGN(gInstance->MNNGeneralIm2Col, MNNGeneralIm2col_Arm86); + } + #endif gInstance->penalty = 2.0f; FUNC_PTR_ASSIGN(gInstance->MNNScaleAndAddBias, MNNScaleAndAddBiasFP16); @@ -863,8 +930,6 @@ bool Arm82Functions::init() { gInstance->supportI8mm = origin->supportI8mm; #ifdef MNN_CPU_WEIGHT_DEQUANT_GEMM // Weight Dequant Gemm Kernels - FUNC_PTR_ASSIGN(gInstance->MNNPackedMatMul_int4, MNNPackedMatMulFP16_int4); - FUNC_PTR_ASSIGN(gInstance->MNNPackedMatMulRemain_int4, MNNPackedMatMulRemainFP16_int4); FUNC_PTR_ASSIGN(gInstance->MNNPackedMatMul_int8, MNNPackedMatMulFP16_int8); FUNC_PTR_ASSIGN(gInstance->MNNPackedMatMulRemain_int8, MNNPackedMatMulRemainFP16_int8); #endif diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNCountMinMax_ARM82.S b/source/backend/arm82/asm/arm64/low_memory/CountMinMaxValue_FP16.S similarity index 99% rename from source/backend/arm82/asm/arm64/low_memory/MNNCountMinMax_ARM82.S rename to source/backend/arm82/asm/arm64/low_memory/CountMinMaxValue_FP16.S index 7c32ca912..51ee4b60a 100644 --- a/source/backend/arm82/asm/arm64/low_memory/MNNCountMinMax_ARM82.S +++ b/source/backend/arm82/asm/arm64/low_memory/CountMinMaxValue_FP16.S @@ -1,5 +1,5 @@ // -// MNNAbsMaxFP16.S +// CountMinMaxValue_FP16.S // MNN // // Created by MNN on 2023/10/31. diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_Pack4.S b/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_Pack4.S new file mode 100644 index 000000000..b7a4ad121 --- /dev/null +++ b/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_Pack4.S @@ -0,0 +1,226 @@ +// +// MNNAbsMaxFP16_Pack4.S +// MNN +// +// Created by MNN on 2023/10/31. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifdef __aarch64__ + +#include "MNNAsmGlobal.h" +.text +.align 5 + +.macro Abs z0, z1, z2, z3 + fabs \z0\().4h, \z0\().4h + fabs \z1\().4h, \z1\().4h + fabs \z2\().4h, \z2\().4h + fabs \z3\().4h, \z3\().4h +.endm + +.macro Max d0, d1, d2, d3, z0, z1, z2, z3 + fmax \d0\().4h, \d0\().4h, \z0\().4h + fmax \d1\().4h, \d1\().4h, \z1\().4h + fmax \d2\().4h, \d2\().4h, \z2\().4h + fmax \d3\().4h, \d3\().4h, \z3\().4h +.endm + +.macro ReduceMax_8 s0, s1, s2, s3, s4, s5, s6, s7 + fmaxp \s0\().4h, \s0\().4h, \s1\().4h // 0 0 1 1 + fmaxp \s2\().4h, \s2\().4h, \s3\().4h // 2 2 3 3 + fmaxp \s4\().4h, \s4\().4h, \s5\().4h // 4 4 5 6 + fmaxp \s6\().4h, \s6\().4h, \s7\().4h // 6 6 7 7 + fmaxp \s0\().4h, \s0\().4h, \s2\().4h // 0 1 2 3 + fmaxp \s4\().4h, \s4\().4h, \s6\().4h // 4 5 6 7 + mov \s0\().d[1], \s4\().d[0] // 0 1 2 3 4 5 6 7 +.endm + +.macro ReduceMax_4 s0, s1, s2, s3 + fmaxp \s0\().4h, \s0\().4h, \s1\().4h // 0 0 1 1 + fmaxp \s2\().4h, \s2\().4h, \s3\().4h // 2 2 3 3 + fmaxp \s0\().4h, \s0\().4h, \s2\().4h // 0 1 2 3 +.endm + +//void MNNAbsMaxFP16_Pack4(const float* source, float* absmax, size_t LU, size_t EP, int LP) +// LP = 4 +asm_function MNNAbsMaxFP16_Pack4 + +// x0: source, x1:absmax, x2:src_depth_quad, x3:realSize, x4: pack(no used) +stp d14, d15, [sp, #(-16 * 4)]! +stp d12, d13, [sp, #(16 * 1)] +stp d10, d11, [sp, #(16 * 2)] +stp d8, d9, [sp, #(16 * 3)] + +Start: +lsl x6, x3, #3 // src_step = batch * 4 * sizeof(float16_t) = batch << 3 + +TILE_12: +cmp x3, #12 +blt TILE_10 +mov x5, x2 // src_depth_quad +mov x7, x0 // src +sub x8, x6, #64 // src_step + +// absmax: v0-11 +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x7], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x7], #32 +ld1 {v8.4h, v9.4h, v10.4h, v11.4h}, [x7], x8 +Abs v0, v1, v2, v3 +Abs v4, v5, v6, v7 +Abs v8, v9, v10, v11 +subs x5, x5, #1 +beq Tile12End + +LoopSz_12: +ld1 {v12.4h, v13.4h, v14.4h, v15.4h}, [x7], #32 +ld1 {v16.4h, v17.4h, v18.4h, v19.4h}, [x7], #32 +ld1 {v20.4h, v21.4h, v22.4h, v23.4h}, [x7], x8 +// absmax = fmax(absmax, abs(x)) +Abs v12, v13, v14, v15 +Abs v16, v17, v18, v19 +Abs v20, v21, v22, v23 +Max v0, v1, v2, v3, v12, v13, v14, v15 +Max v4, v5, v6, v7, v16, v17, v18, v19 +Max v8, v9, v10, v11, v20, v21, v22, v23 + +subs x5, x5, #1 +bne LoopSz_12 + +Tile12End: + +ReduceMax_8 v0, v1, v2, v3, v4, v5, v6, v7 +ReduceMax_4 v8, v9, v10, v11 +st1 {v0.8h}, [x1], #16 +st1 {v8.4h}, [x1], #8 + +sub x3, x3, #12 +add x0, x0, #96 // src += 12 * 4 * 2 +b TILE_12 + +TILE_10: +cmp x3, #10 +blt TILE_8 +mov x5, x2 // src_depth_quad +mov x7, x0 // src +sub x8, x6, #64 // src_step + +// absmax: v0-9 +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x7], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x7], #32 +ld1 {v8.4h, v9.4h}, [x7], x8 +Abs v0, v1, v2, v3 +Abs v4, v5, v6, v7 +fabs v8.4h, v8.4h +fabs v9.4h, v9.4h + +subs x5, x5, #1 +beq Tile10End + +LoopSz_10: +ld1 {v20.4h, v21.4h, v22.4h, v23.4h}, [x7], #32 +ld1 {v24.4h, v25.4h, v26.4h, v27.4h}, [x7], #32 +ld1 {v28.4h, v29.4h}, [x7], x8 + +// absmax = fmax(absmax, abs(x)) +Abs v20, v21, v22, v23 +Abs v24, v25, v26, v27 +fabs v28.4h, v28.4h +fabs v29.4h, v29.4h + +Max v0, v1, v2, v3, v20, v21, v22, v23 +Max v4, v5, v6, v7, v24, v25, v26, v27 +fmax v8.4h, v8.4h, v28.4h +fmax v9.4h, v9.4h, v29.4h + +subs x5, x5, #1 +bne LoopSz_10 + +Tile10End: +fmaxp v0.4h, v0.4h, v1.4h // 0 0 1 1 +fmaxp v0.4h, v0.4h, v0.4h // 0 1 +ReduceMax_8 v2, v3, v4, v5, v6, v7, v8, v9 +st1 {v0.s}[0], [x1], #4 +st1 {v2.8h}, [x1], #16 + +sub x3, x3, #10 +add x0, x0, #80 // src += 10 * 4 * 2 +b TILE_10 + +TILE_8: +cmp x3, #8 +blt TILE_1 +mov x5, x2 // src_depth_quad +mov x7, x0 // src +sub x8, x6, #32 // src_step + +// absmax: v0-7 +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x7], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x7], x8 + +Abs v0, v1, v2, v3 +Abs v4, v5, v6, v7 + +subs x5, x5, #1 +beq Tile8End + +LoopSz_8: +ld1 {v16.4h, v17.4h, v18.4h, v19.4h}, [x7], #32 +ld1 {v20.4h, v21.4h, v22.4h, v23.4h}, [x7], x8 + +// absmax = fmax(absmax, abs(x)) +Abs v16, v17, v18, v19 +Abs v20, v21, v22, v23 +Max v0, v1, v2, v3, v16, v17, v18, v19 +Max v4, v5, v6, v7, v20, v21, v22, v23 + +subs x5, x5, #1 +bne LoopSz_8 + +Tile8End: +ReduceMax_8 v0, v1, v2, v3, v4, v5, v6, v7 +st1 {v0.8h}, [x1], #16 +sub x3, x3, #8 +add x0, x0, #64 // src += 8 * 4 * 2 +b TILE_8 + +TILE_1: +cmp x3, #1 +blt End +mov x5, x2 // src_depth_quad +mov x7, x0 // src + +// absmax: v0 +ld1 {v0.4h}, [x7], x6 +fabs v0.8h, v0.8h +subs x5, x5, #1 +beq Tile1End + +LoopSz_1: +ld1 {v16.4h}, [x7], x6 + +// absmax = fmax(absmax, abs(x)) +fabs v16.4h, v16.4h +fmax v0.4h, v0.4h, v16.4h + +subs x5, x5, #1 +bne LoopSz_1 + +Tile1End: + +fmaxp v2.4h, v0.4h, v0.4h +fmaxp v3.4h, v2.4h, v2.4h +st1 {v3.h}[0], [x1], #2 + +sub x3, x3, #1 +add x0, x0, #8 // src += 1 * 4 * 2 +b TILE_1 + +End: +ldp d8, d9, [sp, #(16 * 3)] +ldp d10, d11, [sp, #(16 * 2)] +ldp d12, d13, [sp, #(16 * 1)] +ldp d14, d15, [sp], #(16 * 4) +ret + +#endif \ No newline at end of file diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16.S b/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_pack8.S similarity index 96% rename from source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16.S rename to source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_pack8.S index 3e94ce784..bbdb35963 100644 --- a/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16.S +++ b/source/backend/arm82/asm/arm64/low_memory/MNNAbsMaxFP16_pack8.S @@ -1,5 +1,5 @@ // -// MNNAbsMaxFP16.S +// MNNAbsMaxFP16_Pack8.S // MNN // // Created by MNN on 2023/10/31. @@ -50,8 +50,8 @@ fmaxp \s0\().8h, \s0\().8h, \s0\().8h // 0 0 1 1 2 2 3 3 .endm -//void MNNAbsMaxFP16(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) -asm_function MNNAbsMaxFP16 +//void MNNAbsMaxFP16_Pack8(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) +asm_function MNNAbsMaxFP16_Pack8 // x0: source, x1:absmax, x2:src_depth_quad, x3:realSize, x4: pack(no used) stp d14, d15, [sp, #(-16 * 4)]! diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack4.S b/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack4.S new file mode 100644 index 000000000..9d987b33f --- /dev/null +++ b/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack4.S @@ -0,0 +1,492 @@ +// +// MNNDynamicQuantFP16_Pack4.S +// MNN +// +// Created by MNN on 2023/10/31. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifdef __aarch64__ + +#include "MNNAsmGlobal.h" +.text +.align 5 + +.macro Round z0, z1, z2, z3 + fcvtas \z0\().8h, \z0\().8h + fcvtas \z1\().8h, \z1\().8h + fcvtas \z2\().8h, \z2\().8h + fcvtas \z3\().8h, \z3\().8h +.endm + +//void MNNDynamicQuantFP16(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) +asm_function MNNDynamicQuantFP16_Pack4 + +// x0: src, x1:dst, x2:scale, x3:src_depth_quad, x4:realSize +stp d14, d15, [sp, #(-16 * 4)]! +stp d12, d13, [sp, #(16 * 1)] +stp d10, d11, [sp, #(16 * 2)] +stp d8, d9, [sp, #(16 * 3)] + +// pack=4=LP +Start: +lsl x6, x4, #2 // dst_step = batch * pack * sizeof(int8_t) = batch * 4 = batch << 2 +lsl x7, x4, #3 // src_step = batch * pack * sizeof(float16) = batch * 4 * 2 = batch << 3 + +TILE_24: +cmp x4, #24 +blt TILE_16 +mov x9, x0 // src +mov x10, x1 // dst +sub x15, x6, #64 +mov x12, x3 // src_depth_quad +sub x13, x7, #160 // src_step - 160 + +ld1 {v12.4s, v13.4s, v14.4s, v15.4s}, [x2], #64 +ld1 {v16.4s, v17.4s}, [x2], #32 +fcvtn v12.4h, v12.4s +fcvtn2 v12.8h, v13.4s +fcvtn v13.4h, v14.4s +fcvtn2 v13.8h, v15.4s +fcvtn v14.4h, v16.4s +fcvtn2 v14.8h, v17.4s + +LoopSz_24: +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x9], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x9], #32 +ld1 {v8.4h, v9.4h, v10.4h, v11.4h}, [x9], #32 +ld1 {v15.4h, v16.4h, v17.4h, v18.4h}, [x9], #32 +ld1 {v19.4h, v20.4h, v21.4h, v22.4h}, [x9], #32 +ld1 {v23.4h, v24.4h, v25.4h, v26.4h}, [x9], x13 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v12.h[0] +fmul v1.4h, v1.4h, v12.h[1] +fmul v2.4h, v2.4h, v12.h[2] +fmul v3.4h, v3.4h, v12.h[3] +fmul v4.4h, v4.4h, v12.h[4] +fmul v5.4h, v5.4h, v12.h[5] +fmul v6.4h, v6.4h, v12.h[6] +fmul v7.4h, v7.4h, v12.h[7] +fmul v8.4h, v8.4h, v13.h[0] +fmul v9.4h, v9.4h, v13.h[1] +fmul v10.4h, v10.4h, v13.h[2] +fmul v11.4h, v11.4h, v13.h[3] +fmul v15.4h, v15.4h, v13.h[4] +fmul v16.4h, v16.4h, v13.h[5] +fmul v17.4h, v17.4h, v13.h[6] +fmul v18.4h, v18.4h, v13.h[7] + +fmul v19.4h, v19.4h, v14.h[0] +fmul v20.4h, v20.4h, v14.h[1] +fmul v21.4h, v21.4h, v14.h[2] +fmul v22.4h, v22.4h, v14.h[3] +fmul v23.4h, v23.4h, v14.h[4] +fmul v24.4h, v24.4h, v14.h[5] +fmul v25.4h, v25.4h, v14.h[6] +fmul v26.4h, v26.4h, v14.h[7] + +mov v0.d[1], v1.d[0] +mov v2.d[1], v3.d[0] +mov v4.d[1], v5.d[0] +mov v6.d[1], v7.d[0] +mov v8.d[1], v9.d[0] +mov v10.d[1], v11.d[0] +mov v15.d[1], v16.d[0] +mov v17.d[1], v18.d[0] +mov v19.d[1], v20.d[0] +mov v21.d[1], v22.d[0] +mov v23.d[1], v24.d[0] +mov v25.d[1], v26.d[0] + +// int16_t x = round(x) +Round v0, v2, v4, v6 +Round v8, v10, v15, v17 +Round v19, v21, v23, v25 + +// y = (int8_t)x +sqxtn v27.8b, v0.8h +sqxtn2 v27.16b, v2.8h +sqxtn v28.8b, v4.8h +sqxtn2 v28.16b, v6.8h +sqxtn v29.8b, v8.8h +sqxtn2 v29.16b, v10.8h +sqxtn v30.8b, v15.8h +sqxtn2 v30.16b, v17.8h +sqxtn v0.8b, v19.8h +sqxtn2 v0.16b, v21.8h +sqxtn v1.8b, v23.8h +sqxtn2 v1.16b, v25.8h + +st1 {v27.16b, v28.16b, v29.16b, v30.16b}, [x10], #64 +st1 {v0.16b, v1.16b}, [x10], x15 + +subs x12, x12, #1 +bne LoopSz_24 + +Tile24End: +sub x4, x4, #24 // batch -= 24 +add x0, x0, #192 // src += 24 * 4 * sizeof(float16_t) +add x1, x1, #96 // dst += 24 * 4 * sizeof(int8_t) +b TILE_24 + +TILE_16: +cmp x4, #16 +blt TILE_12 +mov x9, x0 // src +mov x10, x1 // dst +// sub x15, x6, #32 +mov x12, x3 // src_depth_quad +sub x13, x7, #96 // src_step - 192 + +ld1 {v12.4s, v13.4s, v14.4s, v15.4s}, [x2], #64 +fcvtn v12.4h, v12.4s +fcvtn2 v12.8h, v13.4s +fcvtn v13.4h, v14.4s +fcvtn2 v13.8h, v15.4s + +LoopSz_16: +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x9], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x9], #32 +ld1 {v8.4h, v9.4h, v10.4h, v11.4h}, [x9], #32 +ld1 {v15.4h, v16.4h, v17.4h, v18.4h}, [x9], x13 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v12.h[0] +fmul v1.4h, v1.4h, v12.h[1] +fmul v2.4h, v2.4h, v12.h[2] +fmul v3.4h, v3.4h, v12.h[3] +fmul v4.4h, v4.4h, v12.h[4] +fmul v5.4h, v5.4h, v12.h[5] +fmul v6.4h, v6.4h, v12.h[6] +fmul v7.4h, v7.4h, v12.h[7] +fmul v8.4h, v8.4h, v13.h[0] +fmul v9.4h, v9.4h, v13.h[1] +fmul v10.4h, v10.4h, v13.h[2] +fmul v11.4h, v11.4h, v13.h[3] +fmul v15.4h, v15.4h, v13.h[4] +fmul v16.4h, v16.4h, v13.h[5] +fmul v17.4h, v17.4h, v13.h[6] +fmul v18.4h, v18.4h, v13.h[7] + +mov v0.d[1], v1.d[0] +mov v2.d[1], v3.d[0] +mov v4.d[1], v5.d[0] +mov v6.d[1], v7.d[0] +mov v8.d[1], v9.d[0] +mov v10.d[1], v11.d[0] +mov v15.d[1], v16.d[0] +mov v17.d[1], v18.d[0] + +// int16_t x = round(x) +Round v0, v2, v4, v6 +Round v8, v10, v15, v17 + +// y = (int8_t)x +sqxtn v19.8b, v0.8h +sqxtn2 v19.16b, v2.8h +sqxtn v20.8b, v4.8h +sqxtn2 v20.16b, v6.8h +sqxtn v21.8b, v8.8h +sqxtn2 v21.16b, v10.8h +sqxtn v22.8b, v15.8h +sqxtn2 v22.16b, v17.8h + +st1 {v19.16b, v20.16b, v21.16b, v22.16b}, [x10], x6 + +subs x12, x12, #1 +bne LoopSz_16 + +Tile16End: +sub x4, x4, #16 // batch -= 16 +add x0, x0, #128 // src += 16 * 4 * sizeof(float16_t) +add x1, x1, #64 // dst += 16 * 4 * sizeof(int8_t) +b TILE_16 + +TILE_12: +cmp x4, #12 +blt TILE_10 +mov x9, x0 // src +mov x10, x1 // dst +mov x12, x3 // src_depth_quad +sub x13, x7, #64 // src_step - 128 + +ld1 {v12.4s, v13.4s, v14.4s}, [x2], #48 +fcvtn v12.4h, v12.4s +fcvtn2 v12.8h, v13.4s +fcvtn v13.4h, v14.4s + +LoopSz_12: +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x9], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x9], #32 +ld1 {v8.4h, v9.4h, v10.4h, v11.4h}, [x9], x13 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v12.h[0] +fmul v1.4h, v1.4h, v12.h[1] +fmul v2.4h, v2.4h, v12.h[2] +fmul v3.4h, v3.4h, v12.h[3] +fmul v4.4h, v4.4h, v12.h[4] +fmul v5.4h, v5.4h, v12.h[5] +fmul v6.4h, v6.4h, v12.h[6] +fmul v7.4h, v7.4h, v12.h[7] +fmul v8.4h, v8.4h, v13.h[0] +fmul v9.4h, v9.4h, v13.h[1] +fmul v10.4h, v10.4h, v13.h[2] +fmul v11.4h, v11.4h, v13.h[3] + +mov v0.d[1], v1.d[0] +mov v2.d[1], v3.d[0] +mov v4.d[1], v5.d[0] +mov v6.d[1], v7.d[0] +mov v8.d[1], v9.d[0] +mov v10.d[1], v11.d[0] + +// int16_t x = round(x) +Round v0, v2, v4, v6 +fcvtas v8.8h, v8.8h +fcvtas v10.8h, v10.8h + +// y = (int8_t)x +sqxtn v14.8b, v0.8h +sqxtn2 v14.16b, v2.8h +sqxtn v15.8b, v4.8h +sqxtn2 v15.16b, v6.8h +sqxtn v16.8b, v8.8h +sqxtn2 v16.16b, v10.8h + +st1 {v14.16b, v15.16b, v16.16b}, [x10], x6 + +subs x12, x12, #1 +bne LoopSz_12 + +Tile12End: +sub x4, x4, #12 // batch -= 12 +add x0, x0, #96 // src += 12 * 4 * sizeof(float16_t) +add x1, x1, #48 // dst += 12 * 4 * sizeof(int8_t) +b TILE_12 + +TILE_10: +cmp x4, #10 +blt TILE_8 +mov x9, x0 // src +mov x10, x1 // dst +mov x12, x3 // src_depth_quad +sub x13, x7, #64 // src_step - 64 +sub x15, x6, #32 + +ld1 {v12.4s, v13.4s}, [x2], #32 +ld1 {v14.d}[0], [x2], #8 +fcvtn v10.4h, v12.4s +fcvtn2 v10.8h, v13.4s +fcvtn v11.4h, v14.4s + +LoopSz_10: +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x9], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x9], #32 +ld1 {v8.4h, v9.4h}, [x9], x13 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v10.h[0] +fmul v1.4h, v1.4h, v10.h[1] +fmul v2.4h, v2.4h, v10.h[2] +fmul v3.4h, v3.4h, v10.h[3] +fmul v4.4h, v4.4h, v10.h[4] +fmul v5.4h, v5.4h, v10.h[5] +fmul v6.4h, v6.4h, v10.h[6] +fmul v7.4h, v7.4h, v10.h[7] +fmul v8.4h, v8.4h, v11.h[0] +fmul v9.4h, v9.4h, v11.h[1] + +mov v0.d[1], v1.d[0] +mov v2.d[1], v3.d[0] +mov v4.d[1], v5.d[0] +mov v6.d[1], v7.d[0] +mov v8.d[1], v9.d[0] + +// int16_t x = round(x) +Round v0, v2, v4, v6 +fcvtas v8.8h, v8.8h + +// y = (int8_t)x +sqxtn v0.8b, v0.8h +sqxtn2 v0.16b, v2.8h +sqxtn v1.8b, v4.8h +sqxtn2 v1.16b, v6.8h +sqxtn v2.8b, v8.8h + +st1 {v0.16b, v1.16b}, [x10], #32 +st1 {v2.8b}, [x10], x15 + +subs x12, x12, #1 +bne LoopSz_10 + +Tile10End: +sub x4, x4, #10 // batch -= 10 +add x0, x0, #80 // src += 10 * 4 * sizeof(float16_t) +add x1, x1, #40 // dst += 10 * 4 * sizeof(int8_t) +b TILE_10 + + +TILE_8: +cmp x4, #8 +blt TILE_4 +sub x8, x7, #32 // src_step - 64 +mov x9, x0 // src +mov x10, x1 // dst +mov x12, x3 // src_depth_quad + +ld1 {v12.4s, v13.4s}, [x2], #32 +fcvtn v8.4h, v12.4s +fcvtn2 v8.8h, v13.4s + +LoopSz_8: +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x9], #32 +ld1 {v4.4h, v5.4h, v6.4h, v7.4h}, [x9], x8 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v8.h[0] +fmul v1.4h, v1.4h, v8.h[1] +fmul v2.4h, v2.4h, v8.h[2] +fmul v3.4h, v3.4h, v8.h[3] +fmul v4.4h, v4.4h, v8.h[4] +fmul v5.4h, v5.4h, v8.h[5] +fmul v6.4h, v6.4h, v8.h[6] +fmul v7.4h, v7.4h, v8.h[7] + +mov v0.d[1], v1.d[0] +mov v2.d[1], v3.d[0] +mov v4.d[1], v5.d[0] +mov v6.d[1], v7.d[0] + +// int16_t x = round(x) +Round v0, v2, v4, v6 + +// y = (int8_t)x +sqxtn v9.8b, v0.8h +sqxtn2 v9.16b, v2.8h +sqxtn v10.8b, v4.8h +sqxtn2 v10.16b, v6.8h + +st1 {v9.16b, v10.16b}, [x10], x6 + +subs x12, x12, #1 +bne LoopSz_8 + +Tile8End: +sub x4, x4, #8 // batch -= 8 +add x0, x0, #64 // src += 8 * 4 * sizeof(float16_t) +add x1, x1, #32 // dst += 8 * 4 * sizeof(int8_t) +b TILE_8 + +TILE_4: +cmp x4, #4 +blt TILE_2 +mov x9, x0 // src +mov x10, x1 // dst +mov x12, x3 // src_depth_quad + +ld1 {v12.4s}, [x2], #16 +fcvtn v8.4h, v12.4s + +LoopSz_4: +ld1 {v0.4h, v1.4h, v2.4h, v3.4h}, [x9], x7 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v8.h[0] +fmul v1.4h, v1.4h, v8.h[1] +fmul v2.4h, v2.4h, v8.h[2] +fmul v3.4h, v3.4h, v8.h[3] + +mov v0.d[1], v1.d[0] +mov v2.d[1], v3.d[0] +// int16_t x = round(x) +fcvtas v0.8h, v0.8h +fcvtas v2.8h, v2.8h + +// y = (int8_t)x +sqxtn v4.8b, v0.8h +sqxtn2 v4.16b, v2.8h + +st1 {v4.16b}, [x10], x6 + +subs x12, x12, #1 +bne LoopSz_4 + +Tile4End: +sub x4, x4, #4 // batch -= 4 +add x0, x0, #32 // src += 4 * 4 * sizeof(float16_t) +add x1, x1, #16 // dst += 4 * 4 * sizeof(int8_t) +b TILE_4 + + +TILE_2: +cmp x4, #2 +blt TILE_1 +mov x9, x0 // src +mov x10, x1 // dst +mov x12, x3 // src_depth_quad + +ld1 {v12.d}[0], [x2], #8 +fcvtn v8.4h, v12.4s + +LoopSz_2: +ld1 {v0.4h, v1.4h}, [x9], x7 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v8.h[0] +fmul v1.4h, v1.4h, v8.h[1] +mov v0.d[1], v1.d[0] + +// int16_t x = round(x) +fcvtas v0.8h, v0.8h + +// y = (int8_t)x +sqxtn v2.8b, v0.8h + +st1 {v2.8b}, [x10], x6 + +subs x12, x12, #1 +bne LoopSz_2 + +Tile2End: +sub x4, x4, #2 // batch -= 2 +add x0, x0, #16 // src += 2 * 4 * sizeof(float16_t) +add x1, x1, #8 // dst += 2 * 4 * sizeof(int8_t) +b TILE_2 + + +TILE_1: +cmp x4, #1 +blt End +mov x9, x0 // src +mov x10, x1 // dst +mov x12, x3 // src_depth_quad + +ld1 {v12.s}[0], [x2], #4 +fcvtn v8.4h, v12.4s + +LoopSz_1: +ld1 {v0.4h}, [x9], x7 + +// float16_t x = x * quant_scale +fmul v0.4h, v0.4h, v8.h[0] +// int16_t x = round(x) +fcvtas v0.8h, v0.8h +// y = (int8_t)x +sqxtn v0.8b, v0.8h + +st1 {v0.s}[0], [x10], x6 + +subs x12, x12, #1 +bne LoopSz_1 + + +End: +ldp d8, d9, [sp, #(16 * 3)] +ldp d10, d11, [sp, #(16 * 2)] +ldp d12, d13, [sp, #(16 * 1)] +ldp d14, d15, [sp], #(16 * 4) +ret + +#endif diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16.S b/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack8.S similarity index 99% rename from source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16.S rename to source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack8.S index b39d24994..6ba214cc1 100644 --- a/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16.S +++ b/source/backend/arm82/asm/arm64/low_memory/MNNDynamicQuantFP16_Pack8.S @@ -1,5 +1,5 @@ // -// MNNDynamicQuantFP16.S +// MNNDynamicQuantFP16_Pack8.S // MNN // // Created by MNN on 2023/10/31. @@ -20,7 +20,7 @@ .endm //void MNNDynamicQuantFP16(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) -asm_function MNNDynamicQuantFP16 +asm_function MNNDynamicQuantFP16_Pack8 // x0: src, x1:dst, x2:scale, x3:src_depth_quad, x4:realSize stp d14, d15, [sp, #(-16 * 4)]! @@ -278,7 +278,6 @@ mov x9, x0 // src mov x10, x1 // dst mov x12, x3 // src_depth_quad sub x13, x7, #128 // src_step - 128 -sub x14, x6, #32 // dst_step - 32 sub x15, x6, #64 // quant_scale: v10, v11 diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm82.S b/source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm82.S new file mode 100644 index 000000000..1b1d83f10 --- /dev/null +++ b/source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm82.S @@ -0,0 +1,260 @@ +// +// MNNGeneralIm2col_Arm82.S +// MNN +// +// Created by MNN on 2024/12/25. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifdef __aarch64__ + +#include "MNNAsmGlobal.h" +.text +.align 5 + +//void MNNGeneralIm2col_Arm82(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack) +asm_function MNNGeneralIm2col_Arm82 + +// x0:destOrigin, x1:sourceGroup, x2:info, x3:el, x4:LP, x5:pack +stp d14, d15, [sp, #(-16 * 5)]! +stp d12, d13, [sp, #(16 * 1)] +stp d10, d11, [sp, #(16 * 2)] +stp d8, d9, [sp, #(16 * 3)] +stp x19, x20, [sp, #(16 * 4)] + +// load el info +ldr w6, [x2, #0] // number +ldr w7, [x2, #4] // eReal +ldr w15, [x2, #8] // eDest (< EP) +ldr w9, [x2, #12] // offset (stride) +ldr x14, [x1, #0] // src start +lsl x9, x9, #4 // pack*offset*sizeof(float16_t) +// stride +lsl x19, x15, #3 // eDest*LP*sizeof(float16_t) +lsl x7, x7, #4 // eReal*pack*sizeof(float16_t) +mov x20, #3 // Arm82,LP=4 + +LoopNum: + +ldr w10, [x3], #4 // e +ldr w11, [x3], #4 // l +ldr w12, [x3], #4 // eOffset +ldr w13, [x3], #4 // lOffset +// dst address: x2 +and x2, x13, x20 // lR +sub x13, x13, x2 // lOffset-lR +mul x13, x13, x15 // (lOffset-lR)*(eDest) +add x13, x13, x2 // (lOffset-lR)*(eDest)+lR +add x13, x13, x12, LSL #2 // + eoffset*lp +add x2, x0, x13, LSL #1 // *sizeof(float16_t) + +lsl x8, x19, #1 // 2*(eDest*LP*sizeof(float16_t)) +cmp x11, #8 +blt LoopL4 + +LoopL8: +mov x5, x2 +mov x4, x14 +mov x13, x10 +add x12, x2, x19 // eDest*LP*sizeof(float16_t) + +cmp x13, #12 +blt LoopL8E8 + +sub x8, x8, #64 +LoopL8E12: +sub x13, x13, #12 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +ld1 {v4.8h}, [x14], x9 +ld1 {v5.8h}, [x14], x9 +ld1 {v6.8h}, [x14], x9 +ld1 {v7.8h}, [x14], x9 +ld1 {v8.8h}, [x14], x9 +ld1 {v9.8h}, [x14], x9 +ld1 {v10.8h}, [x14], x9 +ld1 {v11.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip1 v13.2d, v2.2d, v3.2d +zip1 v14.2d, v4.2d, v5.2d +zip1 v15.2d, v6.2d, v7.2d +zip1 v16.2d, v8.2d, v9.2d +zip1 v17.2d, v10.2d, v11.2d +zip2 v18.2d, v0.2d, v1.2d +zip2 v19.2d, v2.2d, v3.2d +zip2 v20.2d, v4.2d, v5.2d +zip2 v21.2d, v6.2d, v7.2d +zip2 v22.2d, v8.2d, v9.2d +zip2 v23.2d, v10.2d, v11.2d + +st1 {v12.8h, v13.8h, v14.8h, v15.8h}, [x2], #64 +st1 {v16.8h, v17.8h}, [x2], x8 +st1 {v18.8h, v19.8h, v20.8h, v21.8h}, [x12], #64 +st1 {v22.8h, v23.8h}, [x12], x8 +cmp x13, #12 +bge LoopL8E12 +add x8, x8, #64 + +LoopL8E8: +cmp x13, #8 +blt LoopL8E4 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +ld1 {v4.8h}, [x14], x9 +ld1 {v5.8h}, [x14], x9 +ld1 {v6.8h}, [x14], x9 +ld1 {v7.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip1 v13.2d, v2.2d, v3.2d +zip1 v14.2d, v4.2d, v5.2d +zip1 v15.2d, v6.2d, v7.2d +zip2 v18.2d, v0.2d, v1.2d +zip2 v19.2d, v2.2d, v3.2d +zip2 v20.2d, v4.2d, v5.2d +zip2 v21.2d, v6.2d, v7.2d +st1 {v12.8h, v13.8h, v14.8h, v15.8h}, [x2], #64 +st1 {v18.8h, v19.8h, v20.8h, v21.8h}, [x12], #64 +sub x13, x13, #8 + +LoopL8E4: +cmp x13, #4 +blt LoopL8E2 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip1 v13.2d, v2.2d, v3.2d +zip2 v18.2d, v0.2d, v1.2d +zip2 v19.2d, v2.2d, v3.2d +st1 {v12.8h, v13.8h}, [x2], #32 +st1 {v18.8h, v19.8h}, [x12], #32 +sub x13, x13, #4 + +LoopL8E2: +cmp x13, #2 +blt LoopL8E1 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip2 v18.2d, v0.2d, v1.2d +st1 {v12.8h}, [x2], #16 +st1 {v18.8h}, [x12], #16 +sub x13, x13, #2 + +LoopL8E1: +cmp x13, #1 +blt EndL8LoopE +ld1 {v0.8h}, [x14], x9 +st1 {v0.d}[0], [x2], #8 +st1 {v0.d}[1], [x12], #8 + +EndL8LoopE: +sub x11, x11, #8 +cmp x11, #8 +add x2, x5, x8 // eDest*LP*2*sizeof(float16_t) +add x14, x4, x7 +bge LoopL8 +cbz x11, EndLoopL + +LoopL4: +mov x5, x2 +mov x4, x14 +mov x13, x10 + +cmp x13, #12 +blt LoopL4E8 + +sub x8, x19, #64 +LoopL4E12: +sub x13, x13, #12 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +ld1 {v4.8h}, [x14], x9 +ld1 {v5.8h}, [x14], x9 +ld1 {v6.8h}, [x14], x9 +ld1 {v7.8h}, [x14], x9 +ld1 {v8.8h}, [x14], x9 +ld1 {v9.8h}, [x14], x9 +ld1 {v10.8h}, [x14], x9 +ld1 {v11.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip1 v13.2d, v2.2d, v3.2d +zip1 v14.2d, v4.2d, v5.2d +zip1 v15.2d, v6.2d, v7.2d +zip1 v16.2d, v8.2d, v9.2d +zip1 v17.2d, v10.2d, v11.2d + +st1 {v12.8h, v13.8h, v14.8h, v15.8h}, [x2], #64 +st1 {v16.8h, v17.8h}, [x2], x8 +cmp x13, #12 +bge LoopL4E12 + +LoopL4E8: +cmp x13, #8 +blt LoopL4E4 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +ld1 {v4.8h}, [x14], x9 +ld1 {v5.8h}, [x14], x9 +ld1 {v6.8h}, [x14], x9 +ld1 {v7.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip1 v13.2d, v2.2d, v3.2d +zip1 v14.2d, v4.2d, v5.2d +zip1 v15.2d, v6.2d, v7.2d +st1 {v12.8h, v13.8h, v14.8h, v15.8h}, [x2], #64 +sub x13, x13, #8 + +LoopL4E4: +cmp x13, #4 +blt LoopL4E2 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +zip1 v13.2d, v2.2d, v3.2d +st1 {v12.8h, v13.8h}, [x2], #32 +sub x13, x13, #4 + +LoopL4E2: +cmp x13, #2 +blt LoopL4E1 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +zip1 v12.2d, v0.2d, v1.2d +st1 {v12.8h}, [x2], #16 +sub x13, x13, #2 + +LoopL4E1: +cmp x13, #1 +blt EndLoopL +ld1 {v0.8h}, [x14], x9 +st1 {v0.d}[0], [x2], #8 + +EndLoopL: +subs x6, x6, #1 +add x1, x1, #8 +ldr x14, [x1, #0] +bne LoopNum + + +End: +ldp x19, x20, [sp, #(16 * 4)] +ldp d8, d9, [sp, #(16 * 3)] +ldp d10, d11, [sp, #(16 * 2)] +ldp d12, d13, [sp, #(16 * 1)] +ldp d14, d15, [sp], #(16 * 5) +ret + +#endif + diff --git a/source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm86.S b/source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm86.S new file mode 100644 index 000000000..3a3b3373c --- /dev/null +++ b/source/backend/arm82/asm/arm64/low_memory/MNNGeneralIm2col_Arm86.S @@ -0,0 +1,139 @@ +// +// MNNGeneralIm2col_Arm86.S +// MNN +// +// Created by MNN on 2024/12/25. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifdef __aarch64__ + +#include "MNNAsmGlobal.h" +.text +.align 5 + +//void MNNGeneralIm2col_Arm86(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack) +asm_function MNNGeneralIm2col_Arm86 + +// x0:destOrigin, x1:sourceGroup, x2:info, x3:el, x4:LP, x5:pack +stp d14, d15, [sp, #(-16 * 5)]! +stp d12, d13, [sp, #(16 * 1)] +stp d10, d11, [sp, #(16 * 2)] +stp d8, d9, [sp, #(16 * 3)] +stp x19, x20, [sp, #(16 * 4)] + +// load el info +ldr w6, [x2, #0] // number +ldr w7, [x2, #4] // eReal +ldr w8, [x2, #8] // eDest (< EP) +ldr w9, [x2, #12] // offset (stride) +ldr x14, [x1, #0] // src start +lsl x9, x9, #4 // pack*offset*sizeof(float) +// stride +lsl x19, x8, #3 // eDest*LP +lsl x7, x7, #4 // eReal*pack*sizeof(float16_t) +mov x20, #7 // Arm86,LP=8 + +LoopNum: + +ldr w10, [x3], #4 // e +ldr w11, [x3], #4 // l +ldr w12, [x3], #4 // eOffset +ldr w13, [x3], #4 // lOffset +// dst address: x2 +and x2, x13, x20 // lR +sub x13, x13, x2 // lOffset-lR +mul x13, x13, x8 // (lOffset-lR)*(eDest) +add x13, x13, x2 // (lOffset-lR)*(eDest)+lR +add x13, x13, x12, LSL #3 // + eoffset*lp +add x2, x0, x13, LSL #1 // *sizeof(float16_t) + +LoopL8: +mov x5, x2 +mov x4, x14 +mov x13, x10 + +cmp x13, #10 +blt LoopL8E8 + +LoopL8E10: +sub x13, x13, #10 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +ld1 {v4.8h}, [x14], x9 +ld1 {v5.8h}, [x14], x9 +ld1 {v6.8h}, [x14], x9 +ld1 {v7.8h}, [x14], x9 +ld1 {v8.8h}, [x14], x9 +ld1 {v9.8h}, [x14], x9 +st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x2], #64 +st1 {v4.8h, v5.8h, v6.8h, v7.8h}, [x2], #64 +st1 {v8.8h, v9.8h}, [x2], #32 +cmp x13, #10 +bge LoopL8E10 + +LoopL8E8: +cmp x13, #8 +blt LoopL8E4 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +ld1 {v4.8h}, [x14], x9 +ld1 {v5.8h}, [x14], x9 +ld1 {v6.8h}, [x14], x9 +ld1 {v7.8h}, [x14], x9 +st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x2], #64 +st1 {v4.8h, v5.8h, v6.8h, v7.8h}, [x2], #64 +sub x13, x13, #8 + +LoopL8E4: +cmp x13, #4 +blt LoopL8E2 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +ld1 {v2.8h}, [x14], x9 +ld1 {v3.8h}, [x14], x9 +st1 {v0.8h, v1.8h, v2.8h, v3.8h}, [x2], #64 +sub x13, x13, #4 + +LoopL8E2: +cmp x13, #2 +blt LoopL8E1 +ld1 {v0.8h}, [x14], x9 +ld1 {v1.8h}, [x14], x9 +st1 {v0.8h, v1.8h}, [x2], #32 +sub x13, x13, #2 + +LoopL8E1: +cmp x13, #1 +blt EndL8LoopE +ld1 {v0.8h}, [x14], x9 +st1 {v0.8h}, [x2], #16 + +EndL8LoopE: +sub x11, x11, #8 +cmp x11, #8 +add x2, x5, x19, LSL #1 +add x14, x4, x7 +bge LoopL8 + + +subs x6, x6, #1 +add x1, x1, #8 +ldr x14, [x1, #0] +bne LoopNum + + +End: +ldp x19, x20, [sp, #(16 * 4)] +ldp d8, d9, [sp, #(16 * 3)] +ldp d10, d11, [sp, #(16 * 2)] +ldp d12, d13, [sp, #(16 * 1)] +ldp d14, d15, [sp], #(16 * 5) +ret + +#endif + diff --git a/source/backend/cpu/CPUBackend.cpp b/source/backend/cpu/CPUBackend.cpp index 9720e132f..462baa31d 100644 --- a/source/backend/cpu/CPUBackend.cpp +++ b/source/backend/cpu/CPUBackend.cpp @@ -241,14 +241,14 @@ Backend* CPURuntime::onCreate(const BackendConfig* config, Backend* origin) cons bool autoRemove = true; if (hint().useCachedMmap) { autoRemove = false; - std::string fileName = MNNFilePathConcat(hint().weightMemoryPath, prefix + "0.static"); + std::string fileName = MNNFilePathConcat(hint().weightMemoryPath, prefix + "sync.static"); const_cast(hint()).useCachedMmap += MNNFileExist(fileName.c_str()); } if (nullptr == mStaticAllocatorCache.get()) { // Only support set weightmap dir once mStaticAllocatorCache = mStaticAllocator; auto mmapMem = BufferAllocator::Allocator::createMmap(hint().weightMemoryPath.c_str(), prefix.c_str(), "static", autoRemove); - int mmapSize = hint().mmapFileSize * 1024 * 1024; + size_t mmapSize = static_cast(hint().mmapFileSize) * 1024 * 1024; mStaticAllocator.reset(new EagerBufferAllocator(mmapMem, 32, mmapSize)); } } @@ -445,9 +445,12 @@ CPUBackend::~CPUBackend() { mCacheGroup.clear(); } void CPUBackend::_resetDynamicMemory() const { - mDmaInfo->mDynamicAllocator->apply(); + mRuntime->pCurrentStatus = mDmaInfo->mDynamicAllocator->apply(); + if (NO_ERROR != mRuntime->pCurrentStatus) { + return; + } if (nullptr != mDmaInfo->mDynamicAllocatorBackup.get()) { - mDmaInfo->mDynamicAllocatorBackup->apply(); + mRuntime->pCurrentStatus = mDmaInfo->mDynamicAllocatorBackup->apply(); } } @@ -677,6 +680,7 @@ const Runtime* CPUBackend::getRuntime() { bool CPUBackend::onClearBuffer() { if (nullptr != mRuntime->mStaticAllocatorCache.get()) { + mStaticAllocator->sync(); mStaticAllocator = mRuntime->mStaticAllocatorCache; } mCache->reset(); diff --git a/source/backend/cpu/CPUDeconvolution.cpp b/source/backend/cpu/CPUDeconvolution.cpp index 8bfcf0738..7ade140ad 100644 --- a/source/backend/cpu/CPUDeconvolution.cpp +++ b/source/backend/cpu/CPUDeconvolution.cpp @@ -227,6 +227,11 @@ ErrorCode CPUDeconvolutionOrigin::onResize(const std::vector& inputs, c auto threadNumber = static_cast(backend())->threadNumber(); auto tileCount = UP_DIV(plane, eP); threadNumber = ALIMIN(tileCount, threadNumber); + auto memMode = static_cast(backend())->memoryMode(); + if (memMode != BackendConfig::Memory_High) { + // Limit threadNumber to avoid too large memory + threadNumber = ALIMIN(threadNumber, 4); + } auto im2colOutputStride = input->channel() * eP * core->bytes; mGemmInput = allocator->alloc(threadNumber * im2colOutputStride); auto gemmOutputStride = kernelCount * core->pack * eP * core->bytes; diff --git a/source/backend/cpu/CPUEltwise.cpp b/source/backend/cpu/CPUEltwise.cpp index 5ed9357b6..1c63238ae 100644 --- a/source/backend/cpu/CPUEltwise.cpp +++ b/source/backend/cpu/CPUEltwise.cpp @@ -22,6 +22,7 @@ CPUEltwise::CPUEltwise(Backend *b, EltwiseType type, std::vector coef) : } ErrorCode CPUEltwise::onExecute(const std::vector &inputs, const std::vector &outputs) { + MNN_ASSERT(inputs.size() > 1); auto inputTensor = inputs[0]; const int size = static_cast(backend())->getTensorSize(inputTensor); auto core = static_cast(backend())->functions(); diff --git a/source/backend/cpu/CPURaster.cpp b/source/backend/cpu/CPURaster.cpp index 73dd37152..6d07e26b5 100644 --- a/source/backend/cpu/CPURaster.cpp +++ b/source/backend/cpu/CPURaster.cpp @@ -104,7 +104,7 @@ ErrorCode CPURaster::onResize(const std::vector &____inputs, const std if (des->regions.size() == 1) { OpCommonUtils::turnRegion2Convert(des->regions[0], output, mSingleConvert); if (mSingleConvert.type > 0) { - mUseThreads = (mSingleConvert.batch * mSingleConvert.channel * mSingleConvert.area > LAUNCH_MULTI_THREADS_WORKLOAD) ? true : false; + mUseThreads = (mSingleConvert.batch * mSingleConvert.area > LAUNCH_MULTI_THREADS_WORKLOAD) ? true : false; return NO_ERROR; } } @@ -571,7 +571,7 @@ void CPURaster::tensorConvert(Tensor* input, Tensor* output, int bytes) { const int bitLength = bytes; auto core = static_cast(backend())->functions(); auto threadNumber = static_cast(backend())->threadNumber(); - if (mUseThreads) { + if (!mUseThreads) { threadNumber = 1; } MNN_CONCURRENCY_BEGIN(tId, threadNumber) { @@ -871,8 +871,9 @@ class CPULoop : public Execution { ::memcpy(reg.src.stride, srcView->stride()->data(), 3 * sizeof(int32_t)); ::memcpy(reg.dst.stride, dstView->stride()->data(), 3 * sizeof(int32_t)); auto input = mStack[cmd->indexes()->data()[1]]; - auto inputSize = input->elementSize(); + auto inputSize = input->usize() / input->buffer().type.bytes(); auto output = mStack[cmd->indexes()->data()[0]]; + auto outputSize = output->usize() / output->buffer().type.bytes(); auto bytes = input->getType().bytes(); if (halide_type_float == input->getType().code) { bytes = static_cast(backend())->functions()->bytes; @@ -885,7 +886,7 @@ class CPULoop : public Execution { auto dstIter = *(iter0 + iter0Stride * iter); auto srcOffset = srcIter * step1 + srcView->offset(); auto dstOffset = dstIter * step0 + dstView->offset(); - if (dstOffset >= 0) { + if (dstOffset >= 0 && dstOffset < outputSize) { if (srcOffset >= 0 && srcOffset < inputSize) { _blit(reg, bytes, input->host() + bytes * srcOffset, output->host() + bytes * dstOffset, false); } else { @@ -1114,7 +1115,6 @@ class CPULoop : public Execution { } }; if (mLoop->parallel()) { -// threadNumber = 1; MNN_CONCURRENCY_BEGIN(tId, threadNumber) { for (int iter=tId; iter < mLoop->loopNumber(); iter+=threadNumber) { func(iter, tId); diff --git a/source/backend/cpu/CPURuntime.cpp b/source/backend/cpu/CPURuntime.cpp index 3fbbb2ad6..de63f4d72 100644 --- a/source/backend/cpu/CPURuntime.cpp +++ b/source/backend/cpu/CPURuntime.cpp @@ -16,9 +16,7 @@ #include #include #include -#if defined(__linux__) && defined(__aarch64__) #include -#endif #include #include #include diff --git a/source/backend/cpu/CPUStft.cpp b/source/backend/cpu/CPUStft.cpp index fc24b6b4c..41b42a28d 100644 --- a/source/backend/cpu/CPUStft.cpp +++ b/source/backend/cpu/CPUStft.cpp @@ -11,7 +11,6 @@ #define M_PI 3.141592654 #endif #include -#include #include "backend/cpu/CPUStft.hpp" #include "backend/cpu/CPUBackend.hpp" #include "core/Concurrency.h" @@ -28,10 +27,10 @@ static void MNNDftAbs(const float* input, const float* window, float* output, fl float real_sum = 0.f, imag_sum = 0.f; for (int n = 0; n < nfft; ++n) { float angle = 2 * M_PI * k * n / nfft; - real_sum += buffer[n] * cosf(angle); - imag_sum -= buffer[n] * sinf(angle); + real_sum += buffer[n] * std::cos(angle); + imag_sum -= buffer[n] * std::sin(angle); } - output[k] = sqrtf(real_sum * real_sum + imag_sum * imag_sum); + output[k] = std::sqrt(real_sum * real_sum + imag_sum * imag_sum); } } diff --git a/source/backend/cpu/arm/arm32/MNNExpC8.S b/source/backend/cpu/arm/arm32/MNNExpC8.S index cf1b75585..eac02b106 100644 --- a/source/backend/cpu/arm/arm32/MNNExpC8.S +++ b/source/backend/cpu/arm/arm32/MNNExpC8.S @@ -18,7 +18,7 @@ asm_function MNNExpC8 //r0: dest, r1:source, r2: offset, r3:parameters, r4:countC8 push {r4, r5, lr} ldr r4, [sp, #12] -vpush {q4, q5, q6, q7} +vpush {q4-q7} vmov.i32 q7, #0 ldr r5, [r2, #0] vdup.32 q4, r5 // Alpha @@ -59,6 +59,9 @@ vcvt.f32.s32 q13, q9 vmls.f32 q10, q12, d0[0] vmls.f32 q11, q13, d0[0] +vmul.f32 q10, q10, d1[0] +vmul.f32 q11, q11, d1[0] + .macro MLA_TWO z0 z1 z2 z3 vdup.32 \z1, \z0 vmla.f32 \z1, \z2, \z3 @@ -72,11 +75,16 @@ MLA_TWO d2[0], q12, q10, q14 MLA_TWO d2[0], q13, q11, q15 MLA_TWO d1[1], q14, q10, q12 MLA_TWO d1[1], q15, q11, q13 -MLA_TWO d1[0], q12, q10, q14 -MLA_TWO d1[0], q13, q11, q15 +MLA_TWO d1[1], q12, q10, q14 +MLA_TWO d1[1], q13, q11, q15 //q12, q13 is expRemain +vmul.f32 q12, q12, q12 +vmul.f32 q13, q13, q13 +vmul.f32 q12, q12, q12 +vmul.f32 q13, q13, q13 + vshl.i32 q8, q8, #23 vshl.i32 q9, q9, #23 vadd.i32 q12, q12, q8 @@ -99,7 +107,7 @@ vadd.f32 d14, d14, d15 vadd.f32 d0, d14, d0 vst1.32 {d0[0]}, [r5] -vpop {q4, q5, q6, q7} +vpop {q4-q7} pop {r4, r5, pc} diff --git a/source/backend/cpu/arm/arm64/MNNExpC8.S b/source/backend/cpu/arm/arm64/MNNExpC8.S index 3b89f039d..3edb91f15 100644 --- a/source/backend/cpu/arm/arm64/MNNExpC8.S +++ b/source/backend/cpu/arm/arm64/MNNExpC8.S @@ -55,6 +55,9 @@ scvtf v21.4s, v17.4s fmls v18.4s, v20.4s, v0.s[0] fmls v19.4s, v21.4s, v0.s[0] +fmul v18.4s, v18.4s, v0.s[2] +fmul v19.4s, v19.4s, v0.s[2] + .macro MLA_TWO z0 z1 z2 z3 dup \z1, \z0 fmla \z1, \z2, \z3 @@ -68,10 +71,14 @@ MLA_TWO v1.s[0], v20.4s, v18.4s, v22.4s MLA_TWO v1.s[0], v21.4s, v19.4s, v23.4s MLA_TWO v0.s[3], v22.4s, v18.4s, v20.4s MLA_TWO v0.s[3], v23.4s, v19.4s, v21.4s -MLA_TWO v0.s[2], v20.4s, v18.4s, v22.4s -MLA_TWO v0.s[2], v21.4s, v19.4s, v23.4s +MLA_TWO v0.s[3], v20.4s, v18.4s, v22.4s +MLA_TWO v0.s[3], v21.4s, v19.4s, v23.4s //v20.4s, v21.4s is expRemain +fmul v20.4s, v20.4s, v20.4s +fmul v21.4s, v21.4s, v21.4s +fmul v20.4s, v20.4s, v20.4s +fmul v21.4s, v21.4s, v21.4s ushl v16.4s, v16.4s, v2.4s ushl v17.4s, v17.4s, v2.4s diff --git a/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM82.S b/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM82.S index c62416972..c9daf6f64 100644 --- a/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM82.S +++ b/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM82.S @@ -27,12 +27,14 @@ asm_function MNNSumByAxisLForMatmul_A_ARM82 // MNNSumByAxisLForMatmul_A_ARM82(float_t* dest, int8_t* source, float* dequantScale, ssize_t realDstCount, // ssize_t kernelCountUnitDouble, ssize_t col_buffer_unit_size, ssize_t EP, ssize_t LP, ssize_t blockNum, ssize_t oneScale); // x0: dest, x1: source, x2: dequantScale, x3: realDstCount, x4: sumParams -// x4: kernelCountUnitDouble, x5: col_buffer_unit_size +// x5: oneScale // Load from sp: x8: blockNum +ldr x12, [x4, #48] // Valid ldr x8, [x4, #32] // blockNum ldr x5, [x4, #40] // oneScale -ldr x4, [x4, #0] // kernelCountUnitDouble +ldr x14, [x4, #56] // kx*ky +ldr x4, [x4, #64] // LU stp d14, d15, [sp, #(-16 * 4)]! stp d12, d13, [sp, #(16 * 1)] @@ -40,8 +42,16 @@ stp d10, d11, [sp, #(16 * 2)] stp d8, d9, [sp, #(16 * 3)] movi v31.16b, #1 +mov v29.16b, v31.16b ld1r {v30.4s}, [x2] // Dequant scale sdiv x4, x4, x8 // src_depth_quad per block +cbz x12, TILE_12 +mov x13, #0xFFFFFFFF +lsl x12, x12, #3 +lsl x13, x13, x12 +dup v28.4s, w13 +bic v29.16b, v31.16b, v28.16b + TILE_12: cmp x3, #12 @@ -52,21 +62,30 @@ cbnz x5, TILE12_BLOCK_NUM ld1 {v13.4s, v14.4s, v15.4s}, [x2], #48 // batch quant scale TILE12_BLOCK_NUM: -mov x15, x4 // kernelCountUnitDouble - +mov x15, x14 // kx*ky movi v10.4s, #0 movi v11.4s, #0 movi v12.4s, #0 - +/* for range(kx*ky)...for range(ic/pack) */ TILE12_BLOCK_INNER: +sub x12, x4, #1 // icDiv4 +cbz x12, TILE12_LAST_QUAD +TILE12_PRE_QUAD: ld1 {v0.16b, v1.16b, v2.16b}, [x1], #48 // E: 0,1,2,3,...,11 -subs x15, x15, #1 - .inst 0x4e8097ea // sdot v10.4s, v31.16b, v0.16b // sum LP axis for E0, E1, E2, E3 .inst 0x4e8197eb // sdot v11.4s, v31.16b, v1.16b .inst 0x4e8297ec // sdot v12.4s, v31.16b, v2.16b +subs x12, x12, #1 // icDiv4-- +bne TILE12_PRE_QUAD +TILE12_LAST_QUAD: +ld1 {v0.16b, v1.16b, v2.16b}, [x1], #48 // E: 0,1,2,3,...,11 +.inst 0x4e8097aa // sdot v10.4s, v29.16b, v0.16b // sum LP axis for E0, E1, E2, E3 +.inst 0x4e8197ab // sdot v11.4s, v29.16b, v1.16b +.inst 0x4e8297ac // sdot v12.4s, v29.16b, v2.16b + +subs x15, x15, #1 bne TILE12_BLOCK_INNER TILE12_BLOCK_INNER_END: @@ -114,17 +133,29 @@ cbnz x5, TILE2_BLOCK_NUM ld1 {v13.d}[0], [x2], #8 // batch quant scale TILE2_BLOCK_NUM: -mov x15, x4 // kernelCountUnitDouble +mov x15, x14 // kx*ky movi v10.4s, #0 -TILE2_BLOCK_INNER: +TILE2_BLOCK_INNER: // range(kxky) +sub x12, x4, #1 // icDiv4 +cbz x12, TILE2_LAST_QUAD + +TILE2_PRE_QUAD: // range(icDiv4) ld1 {v0.d}[0], [x7] // E: 0,1 add x7, x7, x6 -subs x15, x15, #1 +subs x12, x12, #1 .inst 0x4e8097ea // sdot v10.4s, v31.16b, v0.16b // sum LP axis for E0 +bne TILE2_PRE_QUAD + +TILE2_LAST_QUAD: +ld1 {v0.d}[0], [x7] // E: 0,1 +add x7, x7, x6 +.inst 0x4e8097aa // sdot v10.4s, v29.16b, v0.16b + +subs x15, x15, #1 // kxky-- bne TILE2_BLOCK_INNER -TILE2_BLOCK_INNER_ENd: +TILE2_BLOCK_INNER_END: scvtf v10.4s, v10.4s cbnz x5, TILE2_MUL_ONE_SCALE @@ -158,15 +189,26 @@ cbnz x5, TILE1_BLOCK_NUM ld1 {v13.s}[0], [x2], #4 // batch quant scale TILE1_BLOCK_NUM: -mov x15, x4 // kernelCountUnitDouble +mov x15, x14 // kx*ky movi v10.4s, #0 TILE1_BLOCK_INNER: +sub x12, x4, #1 +cbz x12, TILE1_LAST_QUAD + +TILE1_PRE_QUAD: ld1 {v0.s}[0], [x7] // E: 0 -subs x15, x15, #1 add x7, x7, x6 .inst 0x4e8097ea // sdot v10.4s, v31.16b, v0.16b // sum LP axis for E0 +subs x12, x12, #1 // icDiv4-- +bne TILE1_PRE_QUAD + +TILE1_LAST_QUAD: +ld1 {v0.s}[0], [x7] // E: 0 +add x7, x7, x6 +.inst 0x4e8097aa // sdot v10.4s, v29.16b, v0.16b +subs x15, x15, #1 // kxky-- bne TILE1_BLOCK_INNER TILE1_BLOCK_INNER_END: diff --git a/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM86.S b/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM86.S index b402cdd9c..cf0f2ac2b 100644 --- a/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM86.S +++ b/source/backend/cpu/arm/arm64/MNNPackC4Int8ForMatMulA_ARM86.S @@ -30,7 +30,9 @@ asm_function MNNSumByAxisLForMatmul_A_ARM86 ldr x6, [x4, #32] // blockNum ldr x12, [x4, #40] // oneScale -ldr x5, [x4, #0] // kernelCountUnitDouble +ldr x11, [x4, #48] // valid +ldr x5, [x4, #56] // kx*ky +ldr x4, [x4, #64] // icDiv4 stp d14, d15, [sp, #(-16 * 4)]! stp d12, d13, [sp, #(16 * 1)] @@ -38,8 +40,18 @@ stp d10, d11, [sp, #(16 * 2)] stp d8, d9, [sp, #(16 * 3)] movi v31.16b, #1 +movi v29.16b, #1 ld1r {v30.4s}, [x2] // dequant scale -sdiv x5, x5, x6 // src_depth_quad_per_block +sdiv x4, x4, x6 // src_depth_quad_per_block + +cbz x11, START +/* mask */ +movi v31.16b, #1 +mov x13, #0xFFFFFFFFFFFFFFFF +lsl x14, x11, #3 +lsl x13, x13, x14 +dup v27.2d, x13 +bic v29.16b, v31.16b, v27.16b START: lsl x11, x3, #2 @@ -58,30 +70,36 @@ ld1 {v5.4s, v6.4s}, [x2], #32 ld1 {v7.d}[0], [x2], #8 TILE10_BLOCK_NUM: -cbz x9, TILE10_END - -mov x15, x5 // kernelCountUnitDouble of a block +mov x15, x5 // kx*ky SET_0 v10, v11, v12, v13 movi v14.4s, #0 -TILE10_BLOCK_SRC_QUAD: - -//Loop_EPxLP: // EP*LP=10*8 +TILE10_BLOCK_INNER: +sub x14, x4, #1 // icDiv4 +cbz x14, TILE10_LAST_QUAD +TILE10_PRE_QUAD: ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x1], #64 // E: 0,1,...,7 -ld1 {v4.16b}, [x1], #16 // E: 8,9 -subs x15, x15, #1 - +ld1 {v4.16b}, [x1], #16 // E: 8,9 +subs x14, x14, #1 // icDiv4-- .inst 0x4e80a7ea // smmla v10.4s, v31.16b, v0.16b // sum LP axis for E0 and E1 .inst 0x4e81a7eb // smmla v11.4s, v31.16b, v1.16b .inst 0x4e82a7ec // smmla v12.4s, v31.16b, v2.16b .inst 0x4e83a7ed // smmla v13.4s, v31.16b, v3.16b .inst 0x4e84a7ee // smmla v14.4s, v31.16b, v4.16b +bne TILE10_PRE_QUAD -bne TILE10_BLOCK_SRC_QUAD +TILE10_LAST_QUAD: +ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x1], #64 // E: 0,1,...,7 +ld1 {v4.16b}, [x1], #16 // E: 8,9 +.inst 0x4e80a7aa // smmla v10.4s, v29.16b, v0.16b +.inst 0x4e81a7ab // smmla v11.4s, v29.16b, v1.16b +.inst 0x4e82a7ac // smmla v12.4s, v29.16b, v2.16b +.inst 0x4e83a7ad // smmla v13.4s, v29.16b, v3.16b +.inst 0x4e84a7ae // smmla v14.4s, v29.16b, v4.16b +subs x15, x15, #1 +bne TILE10_BLOCK_INNER TILE10_PER_BLOCK_END: -sub x9, x9, #1 // blockNum-- - trn1 v20.2d, v10.2d, v11.2d trn1 v21.2d, v12.2d, v13.2d @@ -101,9 +119,10 @@ fmul v21.4s, v21.4s, v30.4s fmul v14.4s, v14.4s, v30.4s TILE10_STORE: +subs x9, x9, #1 // blockNum-- st1 {v20.4s, v21.4s}, [x0], #32 st1 {v14.d}[0], [x0], #8 -b TILE10_BLOCK_NUM // Finish one block +bne TILE10_BLOCK_NUM // Finish one block TILE10_END: sub x3, x3, #10 // realDstCount-=10 @@ -129,24 +148,34 @@ ld1 {v5.4s, v6.4s}, [x2], #32 TILE8_BLOCK_NUM: cbz x9, TILE8_END -mov x15, x5 // kernelCountUnitDouble - +mov x15, x5 // kx*ky SET_0 v10, v11, v12, v13 -TILE8_BLOCK_SRC_QUAD: - +TILE8_BLOCK_INNER: +sub x14, x4, #1 +cbz x14, TILE8_LAST_QUAD +TILE8_PRE_QUAD: ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x7] // E: 0,1,...,7 -subs x15, x15, #1 add x7, x7, x8 // x7=x7+EP*LP .inst 0x4e80a7ea // smmla v10.4s, v31.16b, v0.16b // sum LP axis for E0 and E1 .inst 0x4e81a7eb // smmla v11.4s, v31.16b, v1.16b .inst 0x4e82a7ec // smmla v12.4s, v31.16b, v2.16b .inst 0x4e83a7ed // smmla v13.4s, v31.16b, v3.16b +subs x14, x14, #1 +bne TILE8_PRE_QUAD + +TILE8_LAST_QUAD: +ld1 {v0.16b, v1.16b, v2.16b, v3.16b}, [x7] // E: 0,1,...,7 +add x7, x7, x8 // x7=x7+EP*LP +.inst 0x4e80a7aa // smmla v10.4s, v29.16b, v0.16b // sum LP axis for E0 and E1 +.inst 0x4e81a7ab // smmla v11.4s, v29.16b, v1.16b +.inst 0x4e82a7ac // smmla v12.4s, v29.16b, v2.16b +.inst 0x4e83a7ad // smmla v13.4s, v29.16b, v3.16b -bne TILE8_BLOCK_SRC_QUAD +subs x15, x15, #1 // kxky-- +bne TILE8_BLOCK_INNER TILE8_PER_BLOCK_END: -sub x9, x9, #1 // blockNum-- trn1 v20.2d, v10.2d, v11.2d trn1 v21.2d, v12.2d, v13.2d @@ -164,8 +193,9 @@ fmul v20.4s, v20.4s, v30.4s fmul v21.4s, v21.4s, v30.4s TILE8_STORE: +subs x9, x9, #1 // blockNum-- st1 {v20.4s, v21.4s}, [x10], x11 // Go to next block for this 8 remain. -b TILE8_BLOCK_NUM +bne TILE8_BLOCK_NUM TILE8_END: add x0, x0, #32 // finish 8 dstCount * sizeof(float) @@ -185,24 +215,31 @@ cbnz x12, TILE4_BLOCK_NUM ld1 {v5.4s}, [x2], #16 TILE4_BLOCK_NUM: -cbz x9, TILE4_END -mov x15, x5 // kernelCountUnitDouble +mov x15, x5 // kx*ky movi v10.4s, #0 movi v11.4s, #0 -TILE4_BLOCK_SRC_QUAD: - +TILE4_BLOCK_INNER: +sub x14, x4, #1 +cbz x14, TILE4_LAST_QUAD +TILE4_PRE_QUAD: ld1 {v0.16b, v1.16b}, [x7] // E: 0,1,2,3 -subs x15, x15, #1 add x7, x7, x8 +subs x14, x14, #1 .inst 0x4e80a7ea // smmla v10.4s, v31.16b, v0.16b // sum LP axis for E0 and E1 .inst 0x4e81a7eb // smmla v11.4s, v31.16b, v1.16b +bne TILE4_PRE_QUAD + +TILE4_LAST_QUAD: +ld1 {v0.16b, v1.16b}, [x7] // E: 0,1,2,3 +add x7, x7, x8 +.inst 0x4e80a7aa // smmla v10.4s, v29.16b, v0.16b // sum LP axis for E0 and E1 +.inst 0x4e81a7ab // smmla v11.4s, v29.16b, v1.16b -bne TILE4_BLOCK_SRC_QUAD +subs x15, x15, #1 +bne TILE4_BLOCK_INNER TILE4_PER_BLOCK_END: -sub x9, x9, #1 // blockNum-- - trn1 v20.2d, v10.2d, v11.2d scvtf v20.4s, v20.4s @@ -212,8 +249,9 @@ b TILE4_STORE TILE4_ONE_SCALE: fmul v20.4s, v20.4s, v30.4s TILE4_STORE: +subs x9, x9, #1 // blockNum-- st1 {v20.4s}, [x10], x11 -b TILE4_BLOCK_NUM +bne TILE4_BLOCK_NUM TILE4_END: add x0, x0, #16 // finish 4 dstCount * sizeof(float) @@ -230,21 +268,30 @@ mov x9, x6 // blockNum cbnz x12, TILE2_BLOCK_NUM ld1 {v5.d}[0], [x2], #8 + TILE2_BLOCK_NUM: cbz x9, TILE2_END -mov x15, x5 // kernelCountUnitDouble - +mov x15, x5 // kx*ky movi v10.4s, #0 -TILE2_BLOCK_SRC_QUAD: +TILE2_BLOCK_INNER: +sub x14, x4, #1 +cbz x14, TILE2_LAST_QUAD +TILE2_PRE_QUAD: ld1 {v0.16b}, [x7] // E: 0,1 -subs x15, x15, #1 add x7, x7, x8 - .inst 0x4e80a7ea // smmla v10.4s, v31.16b, v0.16b // sum LP axis for E0 and E1 +subs x14, x14, #1 +bne TILE2_PRE_QUAD + +TILE2_LAST_QUAD: +ld1 {v0.16b}, [x7] // E: 0,1 +add x7, x7, x8 +.inst 0x4e80a7aa // smmla v10.4s, v29.16b, v0.16b // sum LP axis for E0 and E1 -bne TILE2_BLOCK_SRC_QUAD +subs x15, x15, #1 +bne TILE2_BLOCK_INNER TILE2_PER_BLOCK_END: sub x9, x9, #1 // blockNum-- @@ -276,22 +323,29 @@ cbnz x12, TILE1_BLOCK_NUM ld1 {v5.s}[0], [x2], #4 TILE1_BLOCK_NUM: -cbz x9, TILE1_END -mov x15, x5 // kernelCountUnitDouble +mov x15, x5 // kx*ky movi v10.4s, #0 -TILE1_BLOCK_SRC_QUAD: +TILE1_BLOCK_INNER: +sub x14, x4, #1 +cbz x14, TILE1_LAST_QUAD +TILE1_PRE_QUAD: ld1 {v0.d}[0], [x7] // E: 0 -subs x15, x15, #1 add x7, x7, x8 .inst 0x4e80a7ea // smmla v10.4s, v31.16b, v0.16b // sum LP axis for E0 +subs x14, x14, #1 +bne TILE1_PRE_QUAD + +TILE1_LAST_QUAD: +ld1 {v0.d}[0], [x7] // E: 0 +add x7, x7, x8 +.inst 0x4e80a7aa // smmla v10.4s, v29.16b, v0.16b // sum LP axis for E0 -bne TILE1_BLOCK_SRC_QUAD +subs x15, x15, #1 +bne TILE1_BLOCK_INNER TILE1_PER_BLOCK_END: -sub x9, x9, #1 // blockNum-- - scvtf v10.4s, v10.4s cbnz x12, TILE1_ONE_SCALE @@ -301,8 +355,9 @@ b TILE1_STORE TILE1_ONE_SCALE: fmul v10.4s, v10.4s, v30.4s TILE1_STORE: +subs x9, x9, #1 // blockNum-- st1 {v10.s}[0], [x10], x11 -b TILE1_BLOCK_NUM +bne TILE1_BLOCK_NUM TILE1_END: sub x3, x3, #1 // realDstCount-=1 diff --git a/source/backend/cpu/arm/arm64/low_memory/MNNAbsMaxFP32.S b/source/backend/cpu/arm/arm64/low_memory/MNNAbsMaxFP32.S index c22593fc5..8318e392b 100644 --- a/source/backend/cpu/arm/arm64/low_memory/MNNAbsMaxFP32.S +++ b/source/backend/cpu/arm/arm64/low_memory/MNNAbsMaxFP32.S @@ -1,5 +1,5 @@ // -// MNNAbsMaxFP32.S +// MNNAbsMaxFP32_Pack4.S // // Created by MNN on 2023/10/31. // Copyright © 2018, Alibaba Group Holding Limited @@ -30,8 +30,8 @@ fmaxp \s2\().4s, \s2\().4s, \s3\().4s // 2 2 3 3 fmaxp \z0\().4s, \s0\().4s, \s2\().4s // 0 1 2 3 .endm -//void MNNAbsMaxFP32(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) -asm_function MNNAbsMaxFP32 +//void MNNAbsMaxFP32_Pack4(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) +asm_function MNNAbsMaxFP32_Pack4 // x0: source, x1:absmax, x2:src_depth_quad, x3:realSize stp d14, d15, [sp, #(-16 * 4)]! diff --git a/source/backend/cpu/arm/arm64/low_memory/MNNDynamicQuantFP32.S b/source/backend/cpu/arm/arm64/low_memory/MNNDynamicQuantFP32.S index f8971acaa..43585ead9 100644 --- a/source/backend/cpu/arm/arm64/low_memory/MNNDynamicQuantFP32.S +++ b/source/backend/cpu/arm/arm64/low_memory/MNNDynamicQuantFP32.S @@ -1,5 +1,5 @@ // -// MNNDynamicQuantFP32.S +// MNNDynamicQuantFP32_Pack4.S // MNN // // Created by MNN on 2023/10/31. @@ -37,8 +37,8 @@ add \d0\().4s, \d0\().4s, \d2\().4s .endm -//void MNNDynamicQuantFP32(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) -asm_function MNNDynamicQuantFP32 +//void MNNDynamicQuantFP32_Pack4(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) +asm_function MNNDynamicQuantFP32_Pack4 // x0: src, x1:dst, x2:scale, x3:src_depth_quad, x4:realSize stp d14, d15, [sp, #(-16 * 4)]! diff --git a/source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm82.S b/source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm82.S new file mode 100644 index 000000000..50d6dcccb --- /dev/null +++ b/source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm82.S @@ -0,0 +1,140 @@ +// +// MNNGeneralIm2col_Fp32Arm82.S +// MNN +// +// Created by MNN on 2025/01/13. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifdef __aarch64__ + +#include "MNNAsmGlobal.h" +.text +.align 5 + +//void MNNGeneralIm2col_Fp32Arm82(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack) +asm_function MNNGeneralIm2col_Fp32Arm82 + +// x0:destOrigin, x1:sourceGroup, x2:info, x3:el, x4:LP, x5:pack +stp d14, d15, [sp, #(-16 * 5)]! +stp d12, d13, [sp, #(16 * 1)] +stp d10, d11, [sp, #(16 * 2)] +stp d8, d9, [sp, #(16 * 3)] +stp x19, x20, [sp, #(16 * 4)] + +// load el info +ldr w6, [x2, #0] // number +ldr w7, [x2, #4] // eReal +ldr w15, [x2, #8] // eDest (< EP) +ldr w9, [x2, #12] // offset (stride) +ldr x14, [x1, #0] // src start +lsl x9, x9, #4 // pack*offset*sizeof(float32_t) +// stride +lsl x19, x15, #4 // eDest*LP*sizeof(float32_t) +lsl x7, x7, #4 // eReal*pack*sizeof(float32_t) +mov x20, #3 // Arm82,LP=4 + +LoopNum: + +ldr w10, [x3], #4 // e +ldr w11, [x3], #4 // l +ldr w12, [x3], #4 // eOffset +ldr w13, [x3], #4 // lOffset +// dst address: x2 +and x2, x13, x20 // lR +sub x13, x13, x2 // lOffset-lR +mul x13, x13, x15 // (lOffset-lR)*(eDest) +add x13, x13, x2 // (lOffset-lR)*(eDest)+lR +add x13, x13, x12, LSL #2 // + eoffset*lp +add x2, x0, x13, LSL #2 // *sizeof(float32_t) + +LoopL4: +mov x5, x2 +mov x4, x14 +mov x13, x10 + +cmp x13, #12 +blt LoopL4E8 + +LoopL4E12: +sub x13, x13, #12 +ld1 {v0.4s}, [x14], x9 +ld1 {v1.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v3.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v5.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 +ld1 {v7.4s}, [x14], x9 +ld1 {v8.4s}, [x14], x9 +ld1 {v9.4s}, [x14], x9 +ld1 {v10.4s}, [x14], x9 +ld1 {v11.4s}, [x14], x9 + +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +st1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x2], #64 +st1 {v8.4s, v9.4s, v10.4s, v11.4s}, [x2], #64 +cmp x13, #12 +bge LoopL4E12 + +LoopL4E8: +cmp x13, #8 +blt LoopL4E4 +ld1 {v0.4s}, [x14], x9 +ld1 {v1.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v3.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v5.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 +ld1 {v7.4s}, [x14], x9 +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +st1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x2], #64 +sub x13, x13, #8 + +LoopL4E4: +cmp x13, #4 +blt LoopL4E2 +ld1 {v0.4s}, [x14], x9 +ld1 {v1.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v3.4s}, [x14], x9 +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +sub x13, x13, #4 + +LoopL4E2: +cmp x13, #2 +blt LoopL4E1 +ld1 {v0.4s}, [x14], x9 +ld1 {v1.4s}, [x14], x9 +st1 {v0.4s, v1.4s}, [x2], #32 +sub x13, x13, #2 + +LoopL4E1: +cmp x13, #1 +blt EndL4LoopE +ld1 {v0.4s}, [x14], x9 +st1 {v0.4s}, [x2], #16 + +EndL4LoopE: +add x2, x5, x19 // eDest*LP*sizeof(float32_t) +add x14, x4, x7 +subs x11, x11, #4 +bne LoopL4 + +EndLoopL: +subs x6, x6, #1 +add x1, x1, #8 +ldr x14, [x1, #0] +bne LoopNum + + +End: +ldp x19, x20, [sp, #(16 * 4)] +ldp d8, d9, [sp, #(16 * 3)] +ldp d10, d11, [sp, #(16 * 2)] +ldp d12, d13, [sp, #(16 * 1)] +ldp d14, d15, [sp], #(16 * 5) +ret + +#endif \ No newline at end of file diff --git a/source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm86.S b/source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm86.S new file mode 100644 index 000000000..cadc63461 --- /dev/null +++ b/source/backend/cpu/arm/arm64/low_memory/MNNGeneralIm2col_Fp32Arm86.S @@ -0,0 +1,264 @@ +// +// MNNGeneralIm2col_Fp32Arm86.S +// MNN +// +// Created by MNN on 2025/01/14. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifdef __aarch64__ + +#include "MNNAsmGlobal.h" +.text +.align 5 + +//void MNNGeneralIm2col_Fp32Arm86(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack) +asm_function MNNGeneralIm2col_Fp32Arm86 + +// x0:destOrigin, x1:sourceGroup, x2:info, x3:el, x4:LP, x5:pack +stp d14, d15, [sp, #(-16 * 5)]! +stp d12, d13, [sp, #(16 * 1)] +stp d10, d11, [sp, #(16 * 2)] +stp d8, d9, [sp, #(16 * 3)] +stp x19, x20, [sp, #(16 * 4)] + +// load el info +ldr w6, [x2, #0] // number +ldr w7, [x2, #4] // eReal +ldr w15, [x2, #8] // eDest (< EP) +ldr w9, [x2, #12] // offset (stride) +ldr x14, [x1, #0] // src start +lsl x9, x9, #4 // pack*offset*sizeof(float32_t) +// stride +lsl x19, x15, #5 // eDest*LP*sizeof(float32_t) +lsl x7, x7, #4 // eReal*pack*sizeof(float32_t) +mov x20, #7 // Arm86,LP=8 + +LoopNum: + +ldr w10, [x3], #4 // e +ldr w11, [x3], #4 // l +ldr w12, [x3], #4 // eOffset +ldr w13, [x3], #4 // lOffset +// dst address: x2 +and x2, x13, x20 // lR +sub x13, x13, x2 // lOffset-lR +mul x13, x13, x15 // (lOffset-lR)*(eDest) +add x13, x13, x2 // (lOffset-lR)*(eDest)+lR +add x13, x13, x12, LSL #3 // + eoffset*lp +add x2, x0, x13, LSL #2 // *sizeof(float32_t) + +cmp x11, #8 +blt LoopL4 + +LoopL8: +mov x5, x2 +mov x4, x14 +mov x13, x10 +add x12, x14, x7 + +cmp x13, #10 +blt LoopL8E8 + +LoopL8E10: +sub x13, x13, #10 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 +ld1 {v8.4s}, [x14], x9 +ld1 {v10.4s}, [x14], x9 +ld1 {v12.4s}, [x14], x9 +ld1 {v14.4s}, [x14], x9 +ld1 {v16.4s}, [x14], x9 +ld1 {v18.4s}, [x14], x9 + +ld1 {v1.4s}, [x12], x9 +ld1 {v3.4s}, [x12], x9 +ld1 {v5.4s}, [x12], x9 +ld1 {v7.4s}, [x12], x9 +ld1 {v9.4s}, [x12], x9 +ld1 {v11.4s}, [x12], x9 +ld1 {v13.4s}, [x12], x9 +ld1 {v15.4s}, [x12], x9 +ld1 {v17.4s}, [x12], x9 +ld1 {v19.4s}, [x12], x9 + +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +st1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x2], #64 +st1 {v8.4s, v9.4s, v10.4s, v11.4s}, [x2], #64 +st1 {v12.4s, v13.4s, v14.4s, v15.4s}, [x2], #64 +st1 {v16.4s, v17.4s, v18.4s, v19.4s}, [x2], #64 +cmp x13, #10 +bge LoopL8E10 + +LoopL8E8: +cmp x13, #8 +blt LoopL8E4 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 +ld1 {v8.4s}, [x14], x9 +ld1 {v10.4s}, [x14], x9 +ld1 {v12.4s}, [x14], x9 +ld1 {v14.4s}, [x14], x9 + +ld1 {v1.4s}, [x12], x9 +ld1 {v3.4s}, [x12], x9 +ld1 {v5.4s}, [x12], x9 +ld1 {v7.4s}, [x12], x9 +ld1 {v9.4s}, [x12], x9 +ld1 {v11.4s}, [x12], x9 +ld1 {v13.4s}, [x12], x9 +ld1 {v15.4s}, [x12], x9 +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +st1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x2], #64 +st1 {v8.4s, v9.4s, v10.4s, v11.4s}, [x2], #64 +st1 {v12.4s, v13.4s, v14.4s, v15.4s}, [x2], #64 +sub x13, x13, #8 + +LoopL8E4: +cmp x13, #4 +blt LoopL8E2 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 + +ld1 {v1.4s}, [x12], x9 +ld1 {v3.4s}, [x12], x9 +ld1 {v5.4s}, [x12], x9 +ld1 {v7.4s}, [x12], x9 +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +st1 {v4.4s, v5.4s, v6.4s, v7.4s}, [x2], #64 +sub x13, x13, #4 + +LoopL8E2: +cmp x13, #2 +blt LoopL8E1 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 + +ld1 {v1.4s}, [x12], x9 +ld1 {v3.4s}, [x12], x9 +st1 {v0.4s, v1.4s, v2.4s, v3.4s}, [x2], #64 +sub x13, x13, #2 + +LoopL8E1: +cmp x13, #1 +blt EndL8LoopE +ld1 {v0.4s}, [x14], x9 + +ld1 {v1.4s}, [x12], x9 +st1 {v0.4s, v1.4s}, [x2], #32 + +EndL8LoopE: +sub x11, x11, #8 +add x2, x5, x19 // + eDest*LP*sizeof(float32_t) +add x14, x4, x7, LSL #1 +cmp x11, #8 +bge LoopL8 +cbz x11, EndLoopL + +LoopL4: +mov x13, x10 +mov x5, #32 + +cmp x13, #10 +blt LoopL4E8 + +LoopL4E10: +sub x13, x13, #10 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 +ld1 {v8.4s}, [x14], x9 +ld1 {v10.4s}, [x14], x9 +ld1 {v12.4s}, [x14], x9 +ld1 {v14.4s}, [x14], x9 +ld1 {v16.4s}, [x14], x9 +ld1 {v18.4s}, [x14], x9 + +st1 {v0.4s}, [x2], x5 +st1 {v2.4s}, [x2], x5 +st1 {v4.4s}, [x2], x5 +st1 {v6.4s}, [x2], x5 +st1 {v8.4s}, [x2], x5 +st1 {v10.4s}, [x2], x5 +st1 {v12.4s}, [x2], x5 +st1 {v14.4s}, [x2], x5 +st1 {v16.4s}, [x2], x5 +st1 {v18.4s}, [x2], x5 + +cmp x13, #10 +bge LoopL4E10 + +LoopL4E8: +cmp x13, #8 +blt LoopL4E4 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 +ld1 {v8.4s}, [x14], x9 +ld1 {v10.4s}, [x14], x9 +ld1 {v12.4s}, [x14], x9 +ld1 {v14.4s}, [x14], x9 + +st1 {v0.4s}, [x2], x5 +st1 {v2.4s}, [x2], x5 +st1 {v4.4s}, [x2], x5 +st1 {v6.4s}, [x2], x5 +st1 {v8.4s}, [x2], x5 +st1 {v10.4s}, [x2], x5 +st1 {v12.4s}, [x2], x5 +st1 {v14.4s}, [x2], x5 +sub x13, x13, #8 + +LoopL4E4: +cmp x13, #4 +blt LoopL4E2 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +ld1 {v4.4s}, [x14], x9 +ld1 {v6.4s}, [x14], x9 + +st1 {v0.4s}, [x2], x5 +st1 {v2.4s}, [x2], x5 +st1 {v4.4s}, [x2], x5 +st1 {v6.4s}, [x2], x5 +sub x13, x13, #4 + +LoopL4E2: +cmp x13, #2 +blt LoopL4E1 +ld1 {v0.4s}, [x14], x9 +ld1 {v2.4s}, [x14], x9 +st1 {v0.4s}, [x2], x5 +st1 {v2.4s}, [x2], x5 +sub x13, x13, #2 + +LoopL4E1: +cmp x13, #1 +blt EndLoopL +ld1 {v0.4s}, [x14], x9 +st1 {v0.4s}, [x2], x5 + +EndLoopL: +subs x6, x6, #1 +add x1, x1, #8 +ldr x14, [x1, #0] +bne LoopNum + + +End: +ldp x19, x20, [sp, #(16 * 4)] +ldp d8, d9, [sp, #(16 * 3)] +ldp d10, d11, [sp, #(16 * 2)] +ldp d12, d13, [sp, #(16 * 1)] +ldp d14, d15, [sp], #(16 * 5) +ret + +#endif \ No newline at end of file diff --git a/source/backend/cpu/bf16/BF16Functions.cpp b/source/backend/cpu/bf16/BF16Functions.cpp index 852cd791b..26c9db357 100644 --- a/source/backend/cpu/bf16/BF16Functions.cpp +++ b/source/backend/cpu/bf16/BF16Functions.cpp @@ -354,8 +354,6 @@ bool BF16Functions::init() { gInstance->MNNPackedMatMulRemain = ARMV86_MNNPackedMatMulRemain_BF16; } #endif - gInstance->MNNPackedMatMul_int4 = nullptr; - gInstance->MNNPackedMatMul_int8 = nullptr; // TODO: raw cpu version of bf16 return true; #endif diff --git a/source/backend/cpu/compute/CommonOptFunction.cpp b/source/backend/cpu/compute/CommonOptFunction.cpp index cbe42ebee..7090f3121 100644 --- a/source/backend/cpu/compute/CommonOptFunction.cpp +++ b/source/backend/cpu/compute/CommonOptFunction.cpp @@ -194,20 +194,6 @@ void MNNPackedMatMulRemain_int8(float* C, const float* A, const float* B, size_t #endif // MNN_CPU_WEIGHT_DEQUANT_GEMM #ifdef MNN_LOW_MEMORY -void MNNAbsMaxFP32(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) { - // source: (ic/4, N, 4) - auto srcStep = pack * realSize; - for (int i = 0; i < realSize; ++i) { - float absmaxVal = 0.f; // absmaxVal>=0 - for (int c = 0; c < src_depth_quad; ++c) { - auto src = source + c * srcStep + i * pack; - for (int k = 0; k < pack; ++k) { - absmaxVal = std::max(absmaxVal, std::abs(src[k])); - } - } - absmax[i] = absmaxVal; - } -} void MNNQuantScaleFP32(float* absmax, float* quant_scale, float* dequant_scale, size_t thread, size_t batch) { for (int i = 0; i < batch; ++i) { auto absmaxPtr = absmax + i; @@ -234,7 +220,53 @@ void MNNQuantSumFP32(float* sum, const float* dequant_scale, size_t thread, size sum[i] = sumVal * dequant_scale[i]; } } + +void MNNDynamicUpdateConvBiasScale(float* newbias, float* newscale, float* oldbias, float* weightScale, float* inputScale, float* weightKernelSum, float* inputZero, size_t ocQuad, size_t scaleSize) { + int ocUp4 = 4 * ocQuad; + int pack = 4; + int blockNum = scaleSize / ocUp4; + for (int i = 0; i < ocUp4; ++i) { + newbias[i] = oldbias[i] - weightKernelSum[i] * inputZero[0]; + } + for (int k = 0; k < blockNum; ++k) { + for (int i = 0; i < ocUp4; ++i) { + newscale[i + k * ocUp4] = weightScale[i + k * ocUp4] * inputScale[0]; + } + } +} + +#endif // LOW_MEMORY +#endif // not __aarch64__ + +#ifdef MNN_LOW_MEMORY +static void MNNAbsMaxFP32(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) { +#ifdef __aarch64__ + if (pack == 4) { + MNNAbsMaxFP32_Pack4(source, absmax, src_depth_quad, realSize, pack); + return; + } +#endif + // source: (ic/4, N, 4) + auto srcStep = pack * realSize; + for (int i = 0; i < realSize; ++i) { + float absmaxVal = 0.f; // absmaxVal>=0 + for (int c = 0; c < src_depth_quad; ++c) { + auto src = source + c * srcStep + i * pack; + for (int k = 0; k < pack; ++k) { + absmaxVal = std::max(absmaxVal, std::abs(src[k])); + } + } + absmax[i] = absmaxVal; + } +} + void MNNDynamicQuantFP32(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) { +#ifdef __aarch64__ + if (pack == 4) { + MNNDynamicQuantFP32_Pack4(src, dst, scale, src_depth_quad, realSize, pack); + return; + } +#endif #ifdef MNN_USE_SSE uint8_t* dstPtr = reinterpret_cast(dst); int offset = 128; @@ -254,24 +286,7 @@ void MNNDynamicQuantFP32(const float* src, int8_t* dst, const float* scale, size } } } - -void MNNDynamicUpdateConvBiasScale(float* newbias, float* newscale, float* oldbias, float* weightScale, float* inputScale, float* weightKernelSum, float* inputZero, size_t ocQuad, size_t scaleSize) { - int ocUp4 = 4 * ocQuad; - int pack = 4; - int blockNum = scaleSize / ocUp4; - for (int i = 0; i < ocUp4; ++i) { - newbias[i] = oldbias[i] - weightKernelSum[i] * inputZero[0]; - } - for (int k = 0; k < blockNum; ++k) { - for (int i = 0; i < ocUp4; ++i) { - newscale[i + k * ocUp4] = weightScale[i + k * ocUp4] * inputScale[0]; - } - } -} - -#endif // LOW_MEMORY -#endif // not __aarch64__ - +#endif static void MNNSumByAxisLForMatmul_A(float* dest, int8_t* source, const float* scale, ssize_t realDstCount, SumByAxisParams sumParams) { #ifdef MNN_USE_SSE @@ -280,30 +295,39 @@ static void MNNSumByAxisLForMatmul_A(float* dest, int8_t* source, const float* s int8_t* srcInt8 = source; #endif auto scalePtr = scale; - auto kernelCountUnitDouble = sumParams.kernelCountUnitDouble; auto blockNum = sumParams.blockNum; auto EP = sumParams.DST_XUNIT; auto LP = sumParams.SRC_UNIT; - auto blockSizeQuad = kernelCountUnitDouble / blockNum; auto col_buffer_unit_size = sumParams.col_buffer_unit_size; auto oneScale = sumParams.oneScale; + auto LU = sumParams.LU; + auto valid = sumParams.valid; + auto kernelxy = sumParams.kernelxy; + auto blockSizeQuad = LU / blockNum; + auto lastL = LP; + if (valid) { + lastL = valid; + } + float singlescale = scale[0]; do { int step = ALIMIN(EP, realDstCount); for (int k = 0; k < blockNum; ++k) { - // const auto src_x = srcInt8 + w * LP; const auto src_x = srcInt8 + k * (step * LP * blockSizeQuad); for (int w = 0; w < step; ++w) { - float dequantScale = scale[0]; + float dequantScale = singlescale; if (oneScale == 0) { dequantScale = scalePtr[w]; } int sumint32 = 0; const auto src_y = src_x + w * LP; - for (int j = 0; j < blockSizeQuad; ++j) { - const auto src_z = src_y + j * (step * LP); - for (int i = 0; i < LP; ++i) { - sumint32 += src_z[i]; + for (int j = 0; j < kernelxy; ++j) { + for (int i = 0; i < blockSizeQuad; ++i) { + auto sumsize = i == (blockSizeQuad - 1) ? lastL : LP; + const auto src_z = src_y + j * (blockSizeQuad * step * LP) + i * step * LP; + for (int x = 0; x < sumsize; ++x) { + sumint32 += src_z[x]; + } } } dest[w + k * step] = dequantScale * static_cast(sumint32); @@ -1947,10 +1971,12 @@ void MNNExpC8(float* dest, const float* source, float* offset, const float* para int div2 = (div + 127) << 23; auto xReamin = x - div * param; float expBasic = *(float*)(&div2); - auto t = xReamin; + auto t = xReamin * 0.25f; auto expRemain = - ((((parameters[7] * t + parameters[6]) * t + parameters[5]) * t + parameters[4]) * t + parameters[3]) * t + - parameters[2]; + ((((parameters[7] * t + parameters[6]) * t + parameters[5]) * t + parameters[4]) * t + 1.0f) * t + + 1.0f; + expRemain = expRemain * expRemain; + expRemain = expRemain * expRemain; dest[i] = expBasic * expRemain + offset[1]; summer+= dest[i]; } @@ -2125,8 +2151,16 @@ void MNNNorm(float *dst, const float *src, const float *gamma, const float *beta for (int j = 0; j < size; ++j) { square_sum += (src[j] - mean) * (src[j] - mean); } +#ifdef __aarch64__ + auto vs = vadd_f32(vdiv_f32(vdup_n_f32(square_sum), vdup_n_f32(size)), vdup_n_f32(epsilon)); + auto vecs = vdiv_f32(vdup_n_f32(1.0f), vsqrt_f32(vs)); + float vars[2]; + vst1_f32(vars, vecs); + float variable = vars[0]; +#else float variable = square_sum / size; variable = 1.f / std::sqrt(variable + epsilon); +#endif if (gamma && beta) { for (int j = 0; j < size; ++j) { @@ -2506,8 +2540,8 @@ void MNNPackTranspose(float* dst, const float* src, size_t area, size_t depth, i void MNNExp(float* dst, const float* src, float* offset, size_t dataSize) { int countC8 = static_cast(dataSize) / 8; int remain = static_cast(dataSize) % 8; - float parameters[] = { - (float)logf(2.0f), 1.0f / (float)logf(2.0f), 1.0f, 1.0f, 0.5f, 1.0f / 6.0f, 1.0f / 24.0f, 1.0f / 120.0f}; + static const float parameters[] = { + (float)logf(2.0f), 1.0f / (float)logf(2.0f), 0.25f, 1.0f, 0.5f, 1.0f / 6.0f, 1.0f / 24.0f, 1.0f / 120.0f}; if (countC8 > 0) { // Align to eight so asm is easier to write MNNExpC8(dst, src, offset, parameters, countC8); @@ -2526,10 +2560,12 @@ void MNNExp(float* dst, const float* src, float* offset, size_t dataSize) { int div2 = (div + 127) << 23; auto xReamin = x - div * param; float expBasic = *(float*)(&div2); - auto t = xReamin; + auto t = xReamin * 0.25f; auto expRemain = - ((((parameters[7] * t + parameters[6]) * t + parameters[5]) * t + parameters[4]) * t + parameters[3]) * t + - parameters[2]; + ((((parameters[7] * t + parameters[6]) * t + parameters[5]) * t + parameters[4]) * t + 1.0f) * t + + 1.0f; + expRemain = expRemain * expRemain; + expRemain = expRemain * expRemain; dest[i] = expBasic * expRemain + offset[1]; summer+= dest[i]; } @@ -3189,6 +3225,37 @@ void MNNFp8ToFp16(uint16_t* dst, const uint8_t* src, size_t size) { #endif // USE_NEON } +#ifdef MNN_LOW_MEMORY +static void generalIm2col(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int LP, int pack) { + // LP >= pack + int number = info[0]; + int eReal = info[1]; + int eDest = info[2]; + int offset = info[3]; + for (int n=0; nMNNSumByAxisLForMatmul_A = MNNSumByAxisLForMatmul_A; #ifdef MNN_CPU_WEIGHT_DEQUANT_GEMM // Weight Dequant Gemm Kernels - gCoreFunction->MNNPackedMatMul_int4 = MNNPackedMatMul_int4; - gCoreFunction->MNNPackedMatMulRemain_int4 = MNNPackedMatMulRemain_int4; gCoreFunction->MNNPackedMatMul_int8 = MNNPackedMatMul_int8; gCoreFunction->MNNPackedMatMulRemain_int8 = MNNPackedMatMulRemain_int8; #endif @@ -3311,6 +3376,15 @@ void MNNCoreFunctionInit() { gCoreFunction->MNNQuantSum = MNNQuantSumFP32; // Dynamic Quan Bias gCoreFunction->MNNDynamicUpdateConvBiasScale = MNNDynamicUpdateConvBiasScale; + gCoreFunction->MNNGeneralIm2Col = generalIm2col; +#ifdef __aarch64__ + if (gCoreFunction->supportSDot) { + gCoreFunction->MNNGeneralIm2Col = MNNGeneralIm2col_Fp32Arm82; + } + if (gCoreFunction->supportI8mm) { + gCoreFunction->MNNGeneralIm2Col = MNNGeneralIm2col_Fp32Arm86; + } +#endif #endif MNNCoreInt8FunctionInit(); MNNFunctionInit(); diff --git a/source/backend/cpu/compute/CommonOptFunction.h b/source/backend/cpu/compute/CommonOptFunction.h index 8065fcfba..6febdb4cc 100644 --- a/source/backend/cpu/compute/CommonOptFunction.h +++ b/source/backend/cpu/compute/CommonOptFunction.h @@ -19,7 +19,12 @@ #include "backend/cpu/compute/Int8FunctionsOpt.h" extern "C" { - +#ifdef MNN_LOW_MEMORY +#ifdef __aarch64__ +void MNNGeneralIm2col_Fp32Arm82(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack); +void MNNGeneralIm2col_Fp32Arm86(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack); +#endif +#endif void MNNFp32ToFp8(uint8_t* dst, const float* src, size_t size); void MNNFp8ToFp32(float* dst, const uint8_t* src, size_t size); void MNNFp16ToFp8(uint8_t* dst, const uint16_t* src, size_t size); @@ -131,9 +136,9 @@ void MNNPackedMatMul_int4(float* C, const float* A, const float* B, const size_t void MNNPackedMatMulRemain_int4(float* C, const float* A, const float* B, size_t eSize, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b); void MNNPackedMatMul_int8(float* C, const float* A, const float* B, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b); void MNNPackedMatMulRemain_int8(float* C, const float* A, const float* B, size_t eSize, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b); -void MNNAbsMaxFP32(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack); +void MNNAbsMaxFP32_Pack4(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack); void MNNQuantScaleFP32(float* absmax, float* quant_scale, float* dequant_scale, size_t thread, size_t batch); -void MNNDynamicQuantFP32(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack); +void MNNDynamicQuantFP32_Pack4(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack); void MNNQuantSumFP32(float* sum, const float* dequant_scale, size_t thread, size_t batch); void MNNDynamicUpdateConvBiasScale(float* newbias, float* newscale, float* oldbias, float* weightScale, float* inputScale, float* weightKernelSum, float* inputZero, size_t ocQuad, size_t scaleSize); @@ -181,6 +186,9 @@ struct SumByAxisParams { ssize_t SRC_UNIT; ssize_t blockNum; ssize_t oneScale; + ssize_t valid; + ssize_t kernelxy; + ssize_t LU; }; } @@ -209,11 +217,10 @@ struct CoreFunctions { void(*MNNGetSparseMatMulPackMode)(int* eP, int *lP, int* hP); void(*MNNPackC4ForMatMul_A)(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el); void(*MNNPackForMatMul_B)(float* dest, const float* source, size_t h, size_t l, bool transpose); + void(*MNNGeneralIm2Col)(float* destOrigin, float const** sourceGroup, const int32_t* info, const int32_t* el, int32_t LP, int32_t pack); // parameters: e, l, h, CStride, AStride, BStride void(*MNNPackedMatMul)(float* C, const float* A, const float* B, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b); void(*MNNPackedMatMulRemain)(float* C, const float* A, const float* B, size_t eSize, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b); - void(*MNNPackedMatMul_int4)(float* C, const float* A, const float* B, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b) = nullptr; - void(*MNNPackedMatMulRemain_int4)(float* C, const float* A, const float* B, size_t eSize, const size_t* parameter, const float* postParameters, const float* bias, const float* k, const float* b) = nullptr; void(*MNNAbsMax)(const float* source, float* absmax, size_t src_depth_quad, size_t realSize, int pack) = nullptr; void(*MNNQuantScale)(float* absmax, float* quant_scale, float* dequant_scale, size_t thread, size_t batch) = nullptr; void(*MNNDynamicQuant)(const float* src, int8_t* dst, const float* scale, size_t src_depth_quad, size_t realSize, int pack) = nullptr; diff --git a/source/backend/cpu/compute/ConvInt8TiledExecutor.cpp b/source/backend/cpu/compute/ConvInt8TiledExecutor.cpp index 1867fa3fd..9005c344f 100644 --- a/source/backend/cpu/compute/ConvInt8TiledExecutor.cpp +++ b/source/backend/cpu/compute/ConvInt8TiledExecutor.cpp @@ -1,4 +1,3 @@ -// // ConvInt8TiledExecutor.cpp // MNN // @@ -43,58 +42,32 @@ ErrorCode ConvInt8TiledExecutor::onResize(const std::vector& inputs, co return NO_ERROR; } -void ConvInt8TiledExecutor::reorderWeight(Tensor* weight, const uint8_t* weightSrc, int SRC_UNIT, int UNIT, int ic, int oc, int kernelCount, int pack, int blockNum) { - auto weightDst = weight->host(); - memset(weightDst, 0, weight->size()); +void ConvInt8TiledExecutor::reorderWeight(Tensor* weight, const uint8_t* weightSrc, int SRC_UNIT, int UNIT, int ic, int oc, int kernelCount, int pack, int blockNum, int32_t initval) { + auto weightDst = weight->host(); + memset(weightDst, (int8_t)initval, weight->size()); int kernelCountUnit = weight->length(1); int blockL = kernelCountUnit / blockNum; int strideOutside = ROUND_UP(oc, UNIT) * SRC_UNIT * blockL; int strideInside = weight->stride(0) / blockNum; - if (SRC_UNIT > pack) { // shape = {blockNum, UP_DIV(oc, UNIT), UP_DIV(UP_DIV(ic, pack) * kernelCount, SRC_UNIT / pack) / blockNum, UNIT, SRC_UNIT}; - auto icDivU = UP_DIV(ic, pack); - for (int k = 0; k < kernelCount; ++k) { - const auto srcK = weightSrc + k; - for (int y = 0; y < ic; ++y) { - const int yOutSide = y / pack; - const int yInSide = y % pack; - const int yIndex = yOutSide + k * icDivU; - const int ySubOutSide = yIndex / (SRC_UNIT / pack); - const int ySubInSide = yIndex % (SRC_UNIT / pack); - - int blockId = ySubOutSide / blockL; - int blockInsideId = ySubOutSide % blockL; - - auto dstY = weightDst + blockId * strideOutside + blockInsideId * weight->stride(1) + ySubInSide * pack + yInSide; - const auto srcY = srcK + y * kernelCount; - for (int x = 0; x < oc; ++x) { - const int xOutSide = x / UNIT; - const int xInSide = x % UNIT; - const int dstIndex = xOutSide * strideInside + xInSide * SRC_UNIT; - const int srcIndex = x * kernelCount * ic; - dstY[dstIndex] = srcY[srcIndex]; - } - } - } - } else { // shape = {blockNum, UP_DIV(oc, UNIT), UP_DIV(ic, SRC_UNIT) * kernelCount / blockNum, UNIT, SRC_UNIT}; - for (int k = 0; k < kernelCount; ++k) { - auto icDivU = UP_DIV(ic, SRC_UNIT); - const auto srcK = weightSrc + k; - for (int y = 0; y < ic; ++y) { - const int yOutSide = y / SRC_UNIT; - const int yInSide = y % SRC_UNIT; - - int blockId = (yOutSide + k * icDivU) / blockL; - int blockInsideId = (yOutSide + k * icDivU) % blockL; - - auto dstY = weightDst + blockId * strideOutside + blockInsideId * weight->stride(1) + yInSide; - const auto srcY = srcK + y * kernelCount; - for (int x = 0; x < oc; ++x) { - const int xOutSide = x / UNIT; - const int xInSide = x % UNIT; - const int dstIndex = xOutSide * strideInside + xInSide * SRC_UNIT; - const int srcIndex = x * kernelCount * ic; - dstY[dstIndex] = srcY[srcIndex]; - } + // shape = {blockNum, UP_DIV(oc, UNIT), UP_DIV(ic, SRC_UNIT) * kernelCount / blockNum, UNIT, SRC_UNIT}; + for (int k = 0; k < kernelCount; ++k) { + auto icDivU = UP_DIV(ic, SRC_UNIT); + const auto srcK = weightSrc + k; + for (int y = 0; y < ic; ++y) { + const int yOutSide = y / SRC_UNIT; + const int yInSide = y % SRC_UNIT; + + int blockId = (yOutSide + k * icDivU) / blockL; + int blockInsideId = (yOutSide + k * icDivU) % blockL; + + auto dstY = weightDst + blockId * strideOutside + blockInsideId * weight->stride(1) + yInSide; + const auto srcY = srcK + y * kernelCount; + for (int x = 0; x < oc; ++x) { + const int xOutSide = x / UNIT; + const int xInSide = x % UNIT; + const int dstIndex = xOutSide * strideInside + xInSide * SRC_UNIT; + const int srcIndex = x * kernelCount * ic; + dstY[dstIndex] = srcY[srcIndex]; } } } @@ -102,7 +75,7 @@ void ConvInt8TiledExecutor::reorderWeight(Tensor* weight, const uint8_t* weightS static bool _reorderWeightInside(Backend* bn, const Convolution2DCommon* common, const std::shared_ptr& weightOrigin, - std::shared_ptr& weight, int blockNum, bool alloc) { + std::shared_ptr& weight, int blockNum, bool alloc, int32_t initval = 0) { MNN_ASSERT(blockNum > 0); auto core = static_cast(bn)->int8Functions(); auto gcore = static_cast(bn)->functions(); @@ -112,12 +85,8 @@ static bool _reorderWeightInside(Backend* bn, const Convolution2DCommon* common, int oc = common->outputCount(), ic = common->inputCount(), kernelCount = common->kernelX() * common->kernelY(); std::vector shape; int pack = gcore->pack; - if (SRC_UNIT > pack) { - MNN_ASSERT(SRC_UNIT % pack == 0); - shape = {UP_DIV(oc, UNIT), UP_DIV(UP_DIV(ic, pack) * kernelCount, SRC_UNIT / pack), UNIT, SRC_UNIT}; - } else { - shape = {UP_DIV(oc, UNIT), UP_DIV(ic, SRC_UNIT) * kernelCount, UNIT, SRC_UNIT}; - } + + shape = {UP_DIV(oc, UNIT), UP_DIV(ic, SRC_UNIT) * kernelCount, UNIT, SRC_UNIT}; bool useCachedMmap = bn->getRuntime()->hint().useCachedMmap > 1; if (alloc) { weight.reset(Tensor::createDevice(shape)); @@ -133,7 +102,7 @@ static bool _reorderWeightInside(Backend* bn, const Convolution2DCommon* common, if (useCachedMmap) { return true; } - ConvInt8TiledExecutor::reorderWeight(weight.get(), weightOrigin->host(), SRC_UNIT, UNIT, ic, oc, kernelCount, pack, blockNum); + ConvInt8TiledExecutor::reorderWeight(weight.get(), weightOrigin->host(), SRC_UNIT, UNIT, ic, oc, kernelCount, pack, blockNum, initval); return true; } @@ -141,7 +110,9 @@ static void GetResourceInt8(std::shared_ptr resour // common parameters int outputCount = conv2d->common()->outputCount(); auto core = static_cast(backend)->functions(); - int LSize = conv2d->common()->inputCount() * conv2d->common()->kernelX() * conv2d->common()->kernelY(); + int inputChannel = conv2d->common()->inputCount(); + int kernelSize = conv2d->common()->kernelX() * conv2d->common()->kernelY(); + int LSize = inputChannel * kernelSize; int ocUp4 = ROUND_UP(outputCount, core->pack); bool useCachedMmap = backend->getRuntime()->hint().useCachedMmap > 1; @@ -266,6 +237,7 @@ DenseConvInt8TiledExecutor::DenseConvInt8TiledExecutor(Backend* backend, const O auto gcore = static_cast(backend)->functions(); mResourceInt8.reset(new CPUConvolution::ResourceInt8); mResourceInt8->mDynamicQuant = true; + mResourceInt8->mWeightAsymmetricQuant = quanCommon->asymmetric; int blockNum = 1; GetResourceInt8(mResourceInt8, quanCommon, convOp, backend, &blockNum); mBlockNum = blockNum; @@ -322,12 +294,8 @@ DenseConvInt8TiledExecutor::DenseConvInt8TiledExecutor(Backend* backend, const O // weight shape. std::vector shape; - if (SRC_UNIT > pack) { - MNN_ASSERT(SRC_UNIT % pack == 0); - shape = {UP_DIV(oc, UNIT), UP_DIV(UP_DIV(ic, pack) * kernelCount, SRC_UNIT / pack), UNIT * SRC_UNIT / 2}; - } else { - shape = {UP_DIV(oc, UNIT), UP_DIV(ic, SRC_UNIT) * kernelCount, UNIT * SRC_UNIT / 2}; - } + shape = {UP_DIV(oc, UNIT), UP_DIV(ic, SRC_UNIT) * kernelCount, UNIT * SRC_UNIT / 2}; + mResourceInt8->mWeightInt8.reset(Tensor::createDevice(shape)); auto res = backend->onAcquireBuffer(mResourceInt8->mWeightInt8.get(), Backend::STATIC); @@ -371,19 +339,26 @@ DenseConvInt8TiledExecutor::DenseConvInt8TiledExecutor(Backend* backend, const O } } else { // std::shared_ptr srcWeight; + int blocksize = ic * kernelCount / blockNum; + int originOffset = 0; if (quanCommon->canUseInt4) { + originOffset = -8; mResourceInt8->mWeightAsymmetricQuant = true; auto srcPtr = reinterpret_cast(quanCommon->weight.get()); - std::vector tmpWeight(weightLength * 2, 0); - for (int i = 0; i < weightLength; ++i) { - int8_t s0 = (srcPtr[i] >> 4) - 8; // For int4 quant weight, +8 saved in quant buffer - int8_t s1 = (srcPtr[i] & 0x0f) - 8; - tmpWeight[2 * i + 0] = s0; - tmpWeight[2 * i + 1] = s1; + std::vector tmpWeight(weightLength * 2, originOffset); + for (int j = 0; j < oc; ++j) { + for (int k = 0; k < blockNum; ++k) { + for (int i = 0; i < blocksize; ++i) { + int index = j * blockNum * blocksize + k * blocksize + i; + uint8_t w_ = srcPtr[index / 2]; + int truew = index % 2 ? (w_ & 0x0f) : (w_ >> 4); + tmpWeight[index] = truew - 8; + } + } } std::shared_ptr srcWeight(Tensor::create({weightLength * 2}, (void*)tmpWeight.data())); std::shared_ptr tmpWeightInt8; - mValid = _reorderWeightInside(backend, convOp->common(), srcWeight, tmpWeightInt8, blockNum, false); + mValid = _reorderWeightInside(backend, convOp->common(), srcWeight, tmpWeightInt8, blockNum, false, -8); if(!mValid) { return; } @@ -532,21 +507,37 @@ void DenseConvInt8TiledExecutor::getPackParameter(int* Unit, int* srcUnit, int* ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& inputs, const std::vector& outputs) { - mUseBatchQuan = (static_cast(backend())->getRuntime()->hint().dynamicQuantOption == 1); - mUseBatchQuan &= mCommon->kernelY() == 1 && mCommon->kernelX() == 1 - && outputs[0]->width() == inputs[0]->width() && outputs[0]->height() == inputs[0]->height() - && mCommon->strideX() == 1 && mCommon->strideY() == 1 && mCommon->padX() == 0 && mCommon->padY() == 0 - && outputs[0]->height() == 1 && outputs[0]->width() == 1; - mUseBatchQuan &= mResourceInt8->mDynamicQuant; - mUseBatchQuan &= (inputs[0]->batch() > 1); + // default option + mUseBatchQuan = false; + mQuantFirst = true; + auto option = static_cast(backend())->getRuntime()->hint().dynamicQuantOption; + int batch = inputs[0]->batch(); + int inC = inputs[0]->channel(); + auto output = outputs[0]; + int inputPlane = batch * inputs[0]->width() * inputs[0]->height(); + auto planeSize = output->width() * output->height() * output->batch(); auto core = static_cast(backend())->int8Functions(); auto gcore =static_cast(backend())->functions(); int UNIT, SRC_UNIT, DST_XUNIT; core->MNNGetGemmUnit(&UNIT, &SRC_UNIT, &DST_XUNIT); - auto output = outputs[0]; + int kernelCount = mCommon->kernelY() * mCommon->kernelX(); + bool fastway = (kernelCount == 1) && (output->width() == inputs[0]->width()) && (output->height() == inputs[0]->height()) && (mCommon->strideX() * mCommon->strideY()) == 1; + if (inputPlane > 1) { + mUseBatchQuan = true; + } + if (!fastway) { // general conv + mQuantFirst = false; + if (planeSize > 1) { + mUseBatchQuan = true; + } + if (option == 1) { // lowest level. + mQuantFirst = true; + mUseBatchQuan = false; + } + } + float weightBytes = mResourceInt8->mActBits == 4 ? 0.5 : 1; - #ifdef MNN_KLEIDIAI_ENABLED KleidiAI& kai = KleidiAI::getInstance(); if(mResourceInt8->mDynamicQuant && mResourceInt8->mActBits == 4 && kai.canAccelerate()) { @@ -571,6 +562,8 @@ ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& input CPUConvolution::onResize(inputs, outputs); ConvolutionTiledExecutor::setIm2ColParameter(mIm2ColParamter, mCommon, inputs[0], outputs[0], mPadX, mPadY, gcore, core); mBlockNum = 1; + mQuantFirst = true; + mUseBatchQuan = false; } else { // Dynamic Quant kernels CPUConvolution::onResize(inputs, outputs); // Gemm Kernel @@ -598,15 +591,18 @@ ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& input } // input scale buffer - int batch = inputs[0]->batch(); - mInputDeqScales.reset(Tensor::createDevice({batch * 4})); - bool success = backend()->onAcquireBuffer(mInputDeqScales.get(), Backend::DYNAMIC); + const int threads = static_cast(backend())->threadNumber(); // Im2col info - const int threads = static_cast(backend())->threadNumber(); - auto planeSize = output->width() * output->height() * output->batch(); + int im2colBytes = 1; const int L2Size = 2048; - const int tileLimitByC = UP_DIV(L2Size, mIm2ColParamter.kernelCountUnit * SRC_UNIT); + int tileLimitByC = UP_DIV(L2Size, mIm2ColParamter.kernelCountUnit * SRC_UNIT); + + if (mQuantFirst == false) { + im2colBytes = gcore->bytes; + tileLimitByC = 1; + } + int ic = inputs[0]->channel(); int tileLimit = 0; int outC = output->channel(); int outC4 = UP_DIV(outC, gcore->pack); @@ -645,7 +641,6 @@ ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& input part = UNIT / gcore->pack; } mThreadNums = ALIMIN(threads, threadNeed); - mSplitByOc = true; mDivides.resize(threads+1); mDivides[0] = 0; @@ -670,15 +665,23 @@ ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& input workPT = mTileCount * DST_XUNIT * mIm2ColCount; } + mInputDeqScales.reset(Tensor::createDevice({inputPlane * 4})); + if (mQuantFirst == false && !mSplitByOc) { + mInputDeqScales.reset(Tensor::createDevice({threads, DST_XUNIT * 4})); + } + bool success = backend()->onAcquireBuffer(mInputDeqScales.get(), Backend::DYNAMIC); + auto bufferAlloc = static_cast(backend())->getBufferAllocator(); auto blitInfoSize = ConvolutionTiledExecutor::computeBlitInfoSize(workPT, mIm2ColParamter.ow, mIm2ColParamter.kernelX * mIm2ColParamter.kernelY, k); mBlitInfoStride = blitInfoSize.second; mBlitInfo = bufferAlloc->alloc(blitInfoSize.first); + int im2colBuffSize = DST_XUNIT * mIm2ColCount * icDiv4KernelCount * SRC_UNIT; + if (!mSplitByOc) { - mTempIm2ColBuffer.reset(Tensor::createDevice({threads, DST_XUNIT * mIm2ColCount * icDiv4KernelCount * SRC_UNIT})); + mTempIm2ColBuffer.reset(Tensor::createDevice({threads, im2colBuffSize * im2colBytes})); mTempSrcSum.resize(threads * mBlockNum * DST_XUNIT * mIm2ColCount * 4); // Use 4 bytes to save kernel sum. } else { - mTempIm2ColBuffer.reset(Tensor::createDevice({mTileCount, DST_XUNIT * mIm2ColCount * icDiv4KernelCount * SRC_UNIT})); + mTempIm2ColBuffer.reset(Tensor::createDevice({mTileCount, im2colBuffSize * im2colBytes})); mTempSrcSum.resize(mTileCount * mBlockNum * DST_XUNIT * mIm2ColCount * 4); // Use 4 bytes to save kernel sum. } @@ -694,25 +697,45 @@ ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& input return NO_ERROR; } - - int inC = inputs[0]->channel(); // set im2col tensor info - mQuantInput.reset((Tensor::createDevice({batch, mIm2ColParamter.ih, mIm2ColParamter.iw, ROUND_UP(inC, gcore->pack)}))); + if (mQuantFirst) { + mQuantInput.reset((Tensor::createDevice({batch, mIm2ColParamter.ih, mIm2ColParamter.iw, ROUND_UP(inC, gcore->pack)}))); + } else if (!mSplitByOc){ + mQuantInput.reset((Tensor::createDevice({threads, im2colBuffSize * 1}))); + // mIm2ColParamter.ic = inC; + } else { + mQuantInput.reset((Tensor::createDevice({mTileCount, im2colBuffSize * 1}))); + } + success &= backend()->onAcquireBuffer(mQuantInput.get(), Backend::DYNAMIC); // set dynamic quant buffer - mTempMaxMinValueBuffer.reset(Tensor::createDevice({mThreadNums, 2 * gcore->bytes})); + // set compute buffer - mDynamicBias.reset(Tensor::createDevice({ocUp4 * 4})); - mScaleFuse.reset(Tensor::createDevice({alphaSize * 4})); + if (!mUseBatchQuan) { + mTempMaxMinValueBuffer.reset(Tensor::createDevice({threads, 2 * gcore->bytes})); + if (mQuantFirst) { + mDynamicBias.reset(Tensor::createDevice({ocUp4 * 4})); + mScaleFuse.reset(Tensor::createDevice({alphaSize * 4})); + } else { + mDynamicBias.reset(Tensor::createDevice({threads, ocUp4 * 4})); + mScaleFuse.reset(Tensor::createDevice({threads, alphaSize * 4})); + } + success &= backend()->onAcquireBuffer(mDynamicBias.get(), Backend::DYNAMIC); + success &= backend()->onAcquireBuffer(mTempMaxMinValueBuffer.get(), Backend::DYNAMIC); + success &= backend()->onAcquireBuffer(mScaleFuse.get(), Backend::DYNAMIC); + } - success &= backend()->onAcquireBuffer(mQuantInput.get(), Backend::DYNAMIC); - success &= backend()->onAcquireBuffer(mDynamicBias.get(), Backend::DYNAMIC); - success &= backend()->onAcquireBuffer(mTempMaxMinValueBuffer.get(), Backend::DYNAMIC); - success &= backend()->onAcquireBuffer(mScaleFuse.get(), Backend::DYNAMIC); + if (mUseBatchQuan) { int infobytes = 4; // use float32 to save dequant scale and quant scale. - int size = mThreadNums * batch * gcore->bytes + 2 * batch * infobytes; - mBatchQuantInfo.reset(Tensor::createDevice({size})); + if (mQuantFirst == false) { + int size = threads * DST_XUNIT * gcore->bytes + 2 * DST_XUNIT * infobytes; + mBatchQuantInfo.reset(Tensor::createDevice({threads, size})); + } else { + int size = mThreadNums * inputPlane * gcore->bytes + 2 * inputPlane * infobytes; + mBatchQuantInfo.reset(Tensor::createDevice({size})); + } + success &= backend()->onAcquireBuffer(mBatchQuantInfo.get(), Backend::DYNAMIC); } if (!success) { @@ -722,9 +745,12 @@ ErrorCode DenseConvInt8TiledExecutor::onResize(const std::vector& input backend()->onReleaseBuffer(mInputDeqScales.get(), Backend::DYNAMIC); backend()->onReleaseBuffer(mTempIm2ColBuffer.get(), Backend::DYNAMIC); backend()->onReleaseBuffer(mQuantInput.get(), Backend::DYNAMIC); - backend()->onReleaseBuffer(mDynamicBias.get(), Backend::DYNAMIC); - backend()->onReleaseBuffer(mTempMaxMinValueBuffer.get(), Backend::DYNAMIC); - backend()->onReleaseBuffer(mScaleFuse.get(), Backend::DYNAMIC); + + if (mUseBatchQuan == false) { + backend()->onReleaseBuffer(mDynamicBias.get(), Backend::DYNAMIC); + backend()->onReleaseBuffer(mScaleFuse.get(), Backend::DYNAMIC); + backend()->onReleaseBuffer(mTempMaxMinValueBuffer.get(), Backend::DYNAMIC); + } if (mUseBatchQuan) { backend()->onReleaseBuffer(mBatchQuantInfo.get(), Backend::DYNAMIC); } @@ -822,7 +848,6 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu int weight_step_Y = weightBytes * (UNIT__ * SRC_UNIT); int src_step_Y = DST_XUNIT * SRC_UNIT; - auto inputDataPtr = input->host(); auto im2colPtr = mTempIm2ColBuffer->host(); if (SRC_UNIT > PackUnit) { memset(im2colPtr, 0, mTempIm2ColBuffer->size()); @@ -843,39 +868,20 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu (reinterpret_cast(inputScalePtr))[0] = mMutableResource->mInputScale; } - auto SingleDynamicQuant = [&] () { - const auto floatptr = input->host(); - auto int8ptr = mQuantInput->host(); - auto inputsize = static_cast(backend())->getTensorSize(inputs[0]); + auto SingleDynamicQuant = [&] (uint8_t* floatPtr, int32_t& inputZero, uint8_t* inputDequantScale, uint8_t* matmulBiasPtr, uint8_t* matmulScalePtr, int inputsize, int threads, uint8_t* maxMinValPtr, int8_t* int8ptr) { float quantscale = 0.f; float dequantscale = 0.f; float zeropoint = 0; /* Count max and min value to compute input scale and zeropoint */ - auto maxMinValPtr = mTempMaxMinValueBuffer->host(); - int threadNeed = mThreadNums; - auto inputSizeCount = UP_DIV(inputsize, mThreadNums); - if (true) { - threadNeed = 1; - inputSizeCount = inputsize; - } else { - threadNeed = ALIMIN(UP_DIV(inputsize, inputSizeCount), mThreadNums); - inputSizeCount = UP_DIV(inputsize, threadNeed); - } - auto findMaxMinValueFunction = [&](int tId) { - auto perThreadWorkCount = ALIMIN(inputSizeCount, inputsize - tId * inputSizeCount); - auto minValPtrTid = reinterpret_cast(maxMinValPtr + tId * mTempMaxMinValueBuffer->stride(0)); - auto maxValPtrTid = reinterpret_cast(maxMinValPtr + tId * mTempMaxMinValueBuffer->stride(0) + gcore->bytes); - auto inputDataPtrTid = reinterpret_cast(reinterpret_cast(floatptr) + tId * inputSizeCount * gcore->bytes); - gcore->MNNCountMaxMinValue(inputDataPtrTid, minValPtrTid, maxValPtrTid, perThreadWorkCount); + auto findMaxMinValueFunction = [&]() { + auto perThreadWorkCount = inputsize; + auto minValPtrTid = reinterpret_cast(maxMinValPtr); + auto maxValPtrTid = reinterpret_cast(maxMinValPtr + gcore->bytes); + auto inputDataPtrTid = reinterpret_cast(floatPtr); + gcore->MNNCountMaxMinValue(inputDataPtrTid, minValPtrTid, maxValPtrTid, inputsize); }; - MNN_CONCURRENCY_BEGIN(tId, threadNeed) { - findMaxMinValueFunction((int)tId); - } - MNN_CONCURRENCY_END(); - if (threadNeed > 1) { - gcore->MNNCountMaxMinValue(reinterpret_cast(maxMinValPtr),reinterpret_cast(maxMinValPtr), reinterpret_cast(maxMinValPtr + gcore->bytes), 2 * mThreadNums); - } + findMaxMinValueFunction(); float maxVal = 0; float minVal = 0; if (gcore->bytes == 4) { @@ -890,7 +896,7 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu } /* Dynamic quant */ - if (mCommon->padX() > 0 || mCommon->padY() > 0) { // Ensure "0.0f" included in range. + if (mIm2ColParamter.padX > 0 || mIm2ColParamter.padY > 0) { // Ensure "0.0f" included in range. if (minVal > 0.f) { minVal = 0.f; } else if (maxVal < 0.f){ @@ -901,7 +907,7 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu } float range = maxVal - minVal; if (fabs(range) < 1e-7) { - zeropoint = maxVal; + zeropoint = (-1 * maxVal)-128; quantscale = 1.0f; dequantscale = 1.0f; } else { @@ -910,22 +916,7 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu zeropoint = roundf(-minVal * 255.f / range) - 128.0f; } auto sizeDiv = UP_DIV(inputsize, PackUnit); - - threadNeed = mThreadNums; - inputSizeCount = UP_DIV(sizeDiv, mThreadNums); - if (true) { - threadNeed = 1; - inputSizeCount = sizeDiv; - } else { - threadNeed = ALIMIN(UP_DIV(sizeDiv, inputSizeCount), mThreadNums); - inputSizeCount = UP_DIV(sizeDiv, threadNeed); - } - MNN_CONCURRENCY_BEGIN(tId, threadNeed) { - auto perThreadWorkCount = ALIMIN(inputSizeCount, sizeDiv - tId * inputSizeCount); - auto inptr_ = (float*)(((int8_t*)floatptr) + tId * inputSizeCount * PackUnit * gcore->bytes); - mQuantFunc(inptr_ , int8ptr + tId * inputSizeCount * PackUnit, perThreadWorkCount, &quantscale, -128, 127, &zeropoint, 0); - } - MNN_CONCURRENCY_END(); + mQuantFunc((float*)floatPtr , int8ptr, sizeDiv, &quantscale, -128, 127, &zeropoint, 0); /* bias float */ #ifdef MNN_USE_SSE @@ -937,83 +928,86 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu auto weightDequantScale = mResourceInt8->mOriginScale->host(); float zerofp32 = (zeropoint + offset) * dequantscale; - gcore->MNNDynamicUpdateConvBiasScale(mDynamicBias->host(), mScaleFuse->host(), biasfp32, weightDequantScale, &dequantscale, mResourceInt8->mWeightKernelSum->host(), &zerofp32, UP_DIV(output->channel(), 4), alphaSize); + gcore->MNNDynamicUpdateConvBiasScale((float*)matmulBiasPtr, (float*)matmulScalePtr, biasfp32, weightDequantScale, &dequantscale, mResourceInt8->mWeightKernelSum->host(), &zerofp32, UP_DIV(output->channel(), 4), alphaSize); // Move step for A and B for each block computing - inputZeroPoint = zeropoint; - (reinterpret_cast(inputScalePtr))[0] = dequantscale; - biasPtr = mDynamicBias->host(); - scalePtr = mScaleFuse->host(); - inputDataPtr = int8ptr; + inputZero = zeropoint; + (reinterpret_cast(inputDequantScale))[0] = dequantscale; + biasPtr = matmulBiasPtr; + scalePtr = matmulScalePtr; }; - auto BatchDynamicQuant = [&]() { + auto BatchDynamicQuant = [&](uint8_t* floatPtr, int32_t& inputZero, uint8_t* inputDequantScale, int LU, int EP, int LP, uint8_t* info, int32_t availableThreads, int8_t* dstInt8) { // Allocate input max/sum/dequant/quant buffer auto infobytes = 4; - auto dequantPtr = mBatchQuantInfo->host(); - auto quantPtr = dequantPtr + batch * infobytes; - auto maxPtr = mBatchQuantInfo->host() + 2 * batch * infobytes; - + auto quantPtr = info; + auto maxPtr = info + 2 * EP * infobytes; + // compute sum and absmax - int icDiv4 = UP_DIV(input->channel(), PackUnit); - int threadwork = UP_DIV(icDiv4, mThreadNums); - int threadNeed = UP_DIV(icDiv4, threadwork); - int threadTmp = ALIMIN(mThreadNums, threadNeed); - threadwork = UP_DIV(icDiv4, threadTmp); + int threadwork = UP_DIV(LU, availableThreads); + int threadNeed = UP_DIV(LU, threadwork); + int threadTmp = ALIMIN(availableThreads, threadNeed); + threadwork = UP_DIV(LU, threadTmp); + MNN_CONCURRENCY_BEGIN(tId, threadTmp) { int workCount = threadwork; if (tId == threadTmp - 1) { - workCount = icDiv4 - tId * threadwork; + workCount = LU - tId * threadwork; } int icIndex = tId * threadwork; - auto inputData = reinterpret_cast(input->host() + icIndex * batch * PackUnit * gcore->bytes); - auto batchMax = reinterpret_cast(maxPtr + tId * batch * gcore->bytes); - gcore->MNNAbsMax(inputData, batchMax, workCount, batch, PackUnit); + auto inputData = reinterpret_cast(floatPtr + icIndex * EP * LP * gcore->bytes); + auto batchMax = reinterpret_cast(maxPtr + tId * EP * gcore->bytes); + gcore->MNNAbsMax(inputData, batchMax, workCount, EP, LP); } MNN_CONCURRENCY_END(); // Compute quant scale - gcore->MNNQuantScale((float*)maxPtr, (float*)quantPtr, (float*)dequantPtr, threadTmp, batch); + gcore->MNNQuantScale((float*)maxPtr, (float*)quantPtr, (float*)inputDequantScale, threadTmp, EP); // quant MNN_CONCURRENCY_BEGIN(tId, threadTmp) { int workCount = threadwork; if (tId == threadTmp - 1) { - workCount = icDiv4 - tId * threadwork; + workCount = LU - tId * threadwork; } auto icIndex = tId * threadwork; - auto inputData = reinterpret_cast(input->host() + icIndex * batch * PackUnit * gcore->bytes); - auto int8ptr = mQuantInput->host() + icIndex * batch * PackUnit; + auto inputData = reinterpret_cast(floatPtr + icIndex * EP * LP * gcore->bytes); + auto int8ptr = dstInt8 + icIndex * EP * LP; auto scale_ptr = reinterpret_cast(quantPtr); - gcore->MNNDynamicQuant(inputData, int8ptr, scale_ptr, workCount, batch, PackUnit); + gcore->MNNDynamicQuant(inputData, int8ptr, scale_ptr, workCount, EP, LP); } MNN_CONCURRENCY_END(); - inputZeroPoint = 0; - inputScalePtr = (uint8_t*)dequantPtr; - inputDataPtr = mQuantInput->host(); - biasPtr = mResourceInt8->mOriginBias->host(); - scalePtr = mResourceInt8->mOriginScale->host(); + inputZero = 0; }; - ssize_t oneScale = 1; + + ssize_t oneScale = mUseBatchQuan ? 0 : 1; if (mUseBatchQuan) { - BatchDynamicQuant(); - oneScale = 0; - } else if (mResourceInt8->mDynamicQuant) { -// MNN::Timer _t; - SingleDynamicQuant(); -// auto time = (float)_t.durationInUs() / 1000.0f; -// printf("time = %f \n", time); - } else { - // offline quant. + biasPtr = mResourceInt8->mOriginBias->host(); + scalePtr = mResourceInt8->mOriginScale->host(); + } + int8_t* inputDataPtr = nullptr; // Matmul input. + auto im2colSrc = input->host(); // if not quant first, im2colSrc is original float input data. + auto inputsize = UP_DIV(input->channel(), PackUnit) * PackUnit * batch * input->height() * input->width(); + if (mQuantFirst) { // quant first, then im2col + if (mUseBatchQuan) { + BatchDynamicQuant(input->host(), inputZeroPoint, inputScalePtr, UP_DIV(input->channel(), PackUnit), batch, PackUnit, mBatchQuantInfo->host(), mThreadNums, mQuantInput->host()); + inputDataPtr = mQuantInput->host(); + } else if (mResourceInt8->mDynamicQuant) { + SingleDynamicQuant(input->host(), inputZeroPoint, inputScalePtr, mDynamicBias->host(), mScaleFuse->host(), inputsize, 1, mTempMaxMinValueBuffer->host(), mQuantInput->host()); + inputDataPtr = mQuantInput->host(); + } else { + // offline quant. + inputDataPtr = input->host(); + } + im2colSrc = (uint8_t*)inputDataPtr; } - if (mResourceInt8->mActBits == 4) { weightBytes = 0.5; weight_step_Y *= 0.5; } - + auto inputchannel = input->channel(); SumByAxisParams sumParams; sumParams.oneScale = oneScale; sumParams.SRC_UNIT = SRC_UNIT; @@ -1021,21 +1015,19 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu sumParams.DST_XUNIT = DST_XUNIT; sumParams.col_buffer_unit_size = col_buffer_unit_size; sumParams.kernelCountUnitDouble = kernelCountUnitDouble; + sumParams.valid = inputchannel % SRC_UNIT; + sumParams.kernelxy = mIm2ColParamter.kernelX * mIm2ColParamter.kernelY; + sumParams.LU = UP_DIV(inputchannel, SRC_UNIT); + + int im2colBytes = mQuantFirst == true ? 1 : gcore->bytes; - auto ThreadFunction = [&](int tId, int eStartIndex, int eEndIndex, int estep, int ocIndex) { + auto tileSplitFunction = [&](int tId, int eStartIndex, int eEndIndex, int estep) { auto ocDivThread = ocDiv4; - if (mSplitByOc) { // Thread split by OC - ocDivThread = ALIMIN(mDivides[tId + 1] - mDivides[tId], ocDiv4 - mDivides[tId]); - } float* reluPtr = mResourceInt8->mReluThreshold.data(); - uint8_t* extraScale = nullptr; // input scale for batch dynamic quant. QuanPostTreatParameters quanParam; quanParam.blockNum = mBlockNum; - if (mUseBatchQuan) { - extraScale = inputScalePtr; - } #ifdef MNN_USE_SSE - quanParam.extraBias = mResourceInt8->mWeightKernelSum->host() + ocIndex; + quanParam.extraBias = mResourceInt8->mWeightKernelSum->host(); #endif if (dstBytes != 1) { quanParam.useInt8 = 0; @@ -1048,71 +1040,94 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu quanParam.minValue = mMutableResource->mClampMin; } } - auto outputTid = outputDataPtr + ocIndex * plane * dstBytes; - const auto biasFloatTid = reinterpret_cast(biasPtr + ocIndex * 4); - const auto scaleFloatTid = reinterpret_cast(scalePtr + ocIndex * 4); - const auto weightDequanBiasTid = reinterpret_cast(weightDequantBias + ocIndex * 4); - const auto weightPtrTid = weightDataPtr + static_cast(ocIndex * blockL * SRC_UNIT * weightBytes); + auto biasFloatTid = reinterpret_cast(biasPtr); + auto scaleFloatTid = reinterpret_cast(scalePtr); + auto weightDequanBiasTid = reinterpret_cast(weightDequantBias); + auto weightPtrTid = weightDataPtr; if (mBlockNum == 1) { quanParam.biasFloat = biasFloatTid; quanParam.scale = scaleFloatTid; quanParam.weightQuanBias = weightDequanBiasTid; } - + // auto im2colPtr = mTempIm2ColBuffer->host(); auto colAddr = im2colPtr + tId * mTempIm2ColBuffer->stride(0); auto srcPtr = (int8_t const **)(mBlitInfo.ptr() + tId * mBlitInfoStride.first); auto el = (int32_t *)(srcPtr + mBlitInfoStride.second); auto xKernelSumPtrTid = reinterpret_cast(srcKernelSumPtr + tId * mBlockNum * DST_XUNIT * mIm2ColCount * 4); - int32_t info[6]; + int32_t info[5]; info[1] = mIm2ColParamter.iw * mIm2ColParamter.ih * batch; info[2] = static_cast(col_buffer_unit_size); info[3] = mIm2ColParamter.strideX; - info[5] = kernelCountUnitDouble; for (int tIndex = eStartIndex; tIndex < eEndIndex; tIndex += estep) { const int xIndexStart = tIndex * DST_XUNIT * mIm2ColCount; + auto outputInTilePtr = outputDataPtr + xIndexStart * PackUnit * dstBytes; int realDstCount = ALIMIN(plane - xIndexStart, DST_XUNIT * mIm2ColCount); - auto ptrExtraScale = extraScale != nullptr ? (extraScale + xIndexStart * 4) : nullptr; auto ptrInputscale = mUseBatchQuan == true ? (inputScalePtr + xIndexStart * 4) : inputScalePtr; + auto ptrExtraScale = mUseBatchQuan == true ? ptrInputscale : nullptr; // im2col - auto res = ConvolutionTiledExecutor::turnIm2ColToBlitInfo((const float**)srcPtr, el, xIndexStart, realDstCount, mIm2ColParamter, (const uint8_t*)inputDataPtr, 1); + auto res = ConvolutionTiledExecutor::turnIm2ColToBlitInfo((const float**)srcPtr, el, xIndexStart, realDstCount, mIm2ColParamter, (uint8_t*)im2colSrc, im2colBytes); int number = res.first; bool needZero = res.second; - if (needZero) { + if (needZero && mQuantFirst) { #ifdef MNN_USE_SSE ::memset(colAddr, inputZeroPoint + 128, col_buffer_size); #else ::memset(colAddr, inputZeroPoint, col_buffer_size); #endif + } else if (needZero) { + ::memset(colAddr, 0, mTempIm2ColBuffer->stride(0)); } info[0] = number; info[4] = realDstCount; - if (number > 0) { + int8_t* colAddrTemp = colAddr; + if (mQuantFirst && number > 0) { blitProc(colAddr, srcPtr, info, el); + colAddrTemp = colAddr; + } else if (number > 0) { + if (SRC_UNIT > PackUnit) { + memset(colAddr, 0, mTempIm2ColBuffer->stride(0)); + } + info[2] = realDstCount; + gcore->MNNGeneralIm2Col((float*)colAddr, (float const**)srcPtr, info, el, SRC_UNIT, PackUnit); // colAddr: [lu, realDstCount, lp] + } + if (!mQuantFirst) { + ptrInputscale = mInputDeqScales->host() + tId * mInputDeqScales->stride(0); + if (mUseBatchQuan) { + BatchDynamicQuant((uint8_t*)colAddr, inputZeroPoint, ptrInputscale, kernelCountUnitDouble, realDstCount, SRC_UNIT, mBatchQuantInfo->host() + tId * mBatchQuantInfo->stride(0), 1, mQuantInput->host() + tId * mQuantInput->stride(0)); + ptrExtraScale = ptrInputscale; + } else { + biasFloatTid = reinterpret_cast(mDynamicBias->host() + tId * mDynamicBias->stride(0)); + scaleFloatTid = reinterpret_cast(mScaleFuse->host() + tId * mScaleFuse->stride(0)); + auto maxMinPtr = mTempMaxMinValueBuffer->host() + tId * mTempMaxMinValueBuffer->stride(0); + SingleDynamicQuant((uint8_t*)colAddr, inputZeroPoint, ptrInputscale, (uint8_t*)biasFloatTid, (uint8_t*)scaleFloatTid, kernelCountUnitDouble*realDstCount*SRC_UNIT, 1, maxMinPtr, mQuantInput->host() + tId * mQuantInput->stride(0)); + if (mBlockNum == 1) { + quanParam.biasFloat = biasFloatTid; + quanParam.scale = scaleFloatTid; + } + } + colAddrTemp = mQuantInput->host() + tId * mQuantInput->stride(0); } if (mResourceInt8->mWeightAsymmetricQuant) { - mSumByAxisLFunc(xKernelSumPtrTid, colAddr, (float*)ptrInputscale, realDstCount, sumParams); + mSumByAxisLFunc(xKernelSumPtrTid, colAddrTemp, (float*)ptrInputscale, realDstCount, sumParams); } - auto outputInTilePtr = outputTid + xIndexStart * PackUnit * dstBytes; - auto colAddrTemp = colAddr; auto ptrX = xKernelSumPtrTid; if (mBlockNum == 1) { do { int step = ALIMIN(DST_XUNIT, realDstCount); quanParam.srcKernelSum = ptrX; - quanParam.extraScale = extraScale != nullptr ? (float*)ptrExtraScale : nullptr; - // printf("step=%d, ocDivThread=%d\n", step, ocDivThread); + quanParam.extraScale = mUseBatchQuan == true ? (float*)ptrExtraScale : nullptr; mGemmKernel(outputInTilePtr, colAddrTemp, weightPtrTid, kernelCountUnitDouble, dstZStep * dstBytes, ocDivThread, &quanParam, step); ptrX += step; realDstCount-=step; outputInTilePtr += DST_XUNIT * PackUnit * dstBytes; colAddrTemp += col_buffer_unit_size; - ptrExtraScale = extraScale != nullptr ? (ptrExtraScale + step * 4) : nullptr; + ptrExtraScale = mUseBatchQuan == true ? (ptrExtraScale + step * 4) : nullptr; } while(realDstCount > 0); } else { // Now offline quant do not run into. do { int step = ALIMIN(DST_XUNIT, realDstCount); - quanParam.extraScale = extraScale != nullptr ? (float*)ptrExtraScale : nullptr; + quanParam.extraScale = mUseBatchQuan == true ? (float*)ptrExtraScale : nullptr; for (int k = 0; k < mBlockNum; ++k) { quanParam.biasFloat = nullptr; quanParam.fp32minmax = nullptr; @@ -1132,48 +1147,91 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu realDstCount-=step; outputInTilePtr += DST_XUNIT * PackUnit * dstBytes; colAddrTemp += col_buffer_unit_size; - ptrExtraScale = extraScale != nullptr ? (ptrExtraScale + step * 4) : nullptr; + ptrExtraScale = mUseBatchQuan == true ? (ptrExtraScale + step * 4) : nullptr; } while(realDstCount > 0); } } }; - auto exeFunction = [&](int threads) { // Thread split by OC - auto colAddr = im2colPtr; + auto ocSplitFunction = [&](int threads) { // Thread split by OC + auto colAddr = mTempIm2ColBuffer->host(); auto srcPtr = (int8_t const **)(mBlitInfo.ptr()); auto el = (int32_t *)(srcPtr + mBlitInfoStride.second); auto xKernelSumPtrTid = reinterpret_cast(srcKernelSumPtr); - int32_t info[6]; + int32_t info[5]; info[1] = mIm2ColParamter.iw * mIm2ColParamter.ih * batch; info[2] = static_cast(col_buffer_unit_size); info[3] = mIm2ColParamter.strideX; - info[5] = kernelCountUnitDouble; float* reluPtr = mResourceInt8->mReluThreshold.data(); - // im2col - auto res = ConvolutionTiledExecutor::turnIm2ColToBlitInfo((const float**)srcPtr, el, 0, plane, mIm2ColParamter, (const uint8_t*)inputDataPtr, 1); - int number = res.first; - bool needZero = res.second; - if (needZero) { + int8_t* matmulInput; + if (mQuantFirst) { // im2col + auto res = ConvolutionTiledExecutor::turnIm2ColToBlitInfo((const float**)srcPtr, el, 0, plane, mIm2ColParamter, (uint8_t*)im2colSrc, im2colBytes); + int number = res.first; + bool needZero = res.second; + if (needZero) { #ifdef MNN_USE_SSE - ::memset(colAddr, inputZeroPoint + 128, mTempIm2ColBuffer->size()); + ::memset(colAddr, inputZeroPoint + 128, mTempIm2ColBuffer->size()); #else - ::memset(colAddr, inputZeroPoint, mTempIm2ColBuffer->size()); + ::memset(colAddr, inputZeroPoint, mTempIm2ColBuffer->size()); #endif + } + info[0] = number; + info[4] = plane; + if (number > 0) { + blitProc(colAddr, srcPtr, info, el); + } + matmulInput = colAddr; } - info[0] = number; - info[4] = plane; - if (number > 0) { - blitProc(colAddr, srcPtr, info, el); + if (false == mQuantFirst) { + int realDstCount = plane; + int start = 0; + auto im2colDst = colAddr; + auto ptrInputscale = mInputDeqScales->host(); + auto int8Ptr = mQuantInput->host(); + int sizePacked = 0; + if (SRC_UNIT > PackUnit) { + memset(colAddr, 0, mTempIm2ColBuffer->size()); + } + while (realDstCount > 0) { + int work = std::min(realDstCount, DST_XUNIT); + sizePacked += (work * SRC_UNIT * kernelCountUnitDouble); + auto res = ConvolutionTiledExecutor::turnIm2ColToBlitInfo((const float**)srcPtr, el, start, work, mIm2ColParamter, (uint8_t*)im2colSrc, im2colBytes); + int number = res.first; + bool needZero = res.second; + if (needZero) { + ::memset(im2colDst, 0, col_buffer_unit_size * gcore->bytes); + } + info[0] = number; + info[2] = work; + if (number > 0) { // im2col + gcore->MNNGeneralIm2Col((float*)im2colDst, (float const**)srcPtr, info, el, SRC_UNIT, PackUnit); // colAddr: [lu, realDstCount, lp] + } + // batch quant + if (mUseBatchQuan) { + BatchDynamicQuant((uint8_t*)im2colDst, inputZeroPoint, ptrInputscale, kernelCountUnitDouble, work, SRC_UNIT, mBatchQuantInfo->host(), 1, int8Ptr); + ptrInputscale += (work * sizeof(int32_t)); + int8Ptr += col_buffer_unit_size; + } + realDstCount -= work; + start += work; + im2colDst += (col_buffer_unit_size * gcore->bytes); + } + if (!mUseBatchQuan) { + SingleDynamicQuant((uint8_t*)colAddr, inputZeroPoint, ptrInputscale, mDynamicBias->host(), mScaleFuse->host(), sizePacked, 1, mTempMaxMinValueBuffer->host(), mQuantInput->host()); + } + matmulInput = mQuantInput->host(); } + if (mResourceInt8->mWeightAsymmetricQuant) { - mSumByAxisLFunc(xKernelSumPtrTid, colAddr, (float*)inputScalePtr, plane, sumParams); + mSumByAxisLFunc(xKernelSumPtrTid, matmulInput, (float*)inputScalePtr, plane, sumParams); } MNN_CONCURRENCY_BEGIN(tId, threads) { int ocIndex = PackUnit * mDivides[tId]; auto ocDivThread = ALIMIN(mDivides[tId + 1] - mDivides[tId], ocDiv4 - mDivides[tId]); if (ocIndex < ocUp4) { + auto colAddrTemp = matmulInput; QuanPostTreatParameters quanParam; quanParam.blockNum = mBlockNum; uint8_t* extraScale = nullptr; // input scale for batch dynamic quant. @@ -1207,14 +1265,12 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu int realDstCount = plane; auto ptrExtraScale = extraScale != nullptr ? (extraScale) : nullptr; - auto colAddrTemp = colAddr; auto ptrX = xKernelSumPtrTid; if (mBlockNum == 1) { do { int step = ALIMIN(DST_XUNIT, realDstCount); quanParam.srcKernelSum = ptrX; quanParam.extraScale = extraScale != nullptr ? (float*)ptrExtraScale : nullptr; - // printf("step=%d, ocDivThread=%d\n", step, ocDivThread); mGemmKernel(outputInTilePtr, colAddrTemp, weightPtrTid, kernelCountUnitDouble, dstZStep * dstBytes, ocDivThread, &quanParam, step); ptrX += step; realDstCount-=step; @@ -1256,12 +1312,13 @@ ErrorCode DenseConvInt8TiledExecutor::onExecute(const std::vector& inpu const int threads = static_cast(backend())->threadNumber(); if (!mSplitByOc) { MNN_CONCURRENCY_BEGIN(tId, threads) { - ThreadFunction((int)tId, mDivides[tId], mDivides[tId + 1], 1, 0); - + if (mDivides[tId + 1] - mDivides[tId] > 0) { + tileSplitFunction((int)tId, mDivides[tId], mDivides[tId + 1], 1); + } } MNN_CONCURRENCY_END(); } else { - exeFunction(threads); + ocSplitFunction(threads); } return NO_ERROR; } diff --git a/source/backend/cpu/compute/ConvInt8TiledExecutor.hpp b/source/backend/cpu/compute/ConvInt8TiledExecutor.hpp index 6c46b9161..21f87bf70 100644 --- a/source/backend/cpu/compute/ConvInt8TiledExecutor.hpp +++ b/source/backend/cpu/compute/ConvInt8TiledExecutor.hpp @@ -24,7 +24,7 @@ class ConvInt8TiledExecutor : public CPUConvolution { virtual ErrorCode onResize(const std::vector &inputs, const std::vector &outputs) override; virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override; virtual void getPackParameter(int* Unit, int* SrcUnit, int* DestUnit, const CoreInt8Functions* core) = 0; - static void reorderWeight(Tensor* weight, const uint8_t* weightSrc, int SRC_UNIT, int UNIT, int ic, int oc, int kernelCount, int pack, int blockNum = 1); + static void reorderWeight(Tensor* weight, const uint8_t* weightSrc, int SRC_UNIT, int UNIT, int ic, int oc, int kernelCount, int pack, int blockNum = 1, int32_t initval = 0); protected: ConvolutionCommon::Im2ColParameter mIm2ColParamter; @@ -36,6 +36,7 @@ class ConvInt8TiledExecutor : public CPUConvolution { MemChunk mBlitInfo; std::pair mBlitInfoStride; int mIm2ColCount; + bool mQuantFirst; }; // diff --git a/source/backend/cpu/compute/Convolution1x1Strassen.cpp b/source/backend/cpu/compute/Convolution1x1Strassen.cpp index f149532fe..72debfb6b 100644 --- a/source/backend/cpu/compute/Convolution1x1Strassen.cpp +++ b/source/backend/cpu/compute/Convolution1x1Strassen.cpp @@ -19,7 +19,7 @@ namespace MNN { Convolution1x1Strassen::Convolution1x1Strassen(const Convolution2DCommon *common, Backend *b, const float *originWeight, - size_t originWeightSize, const float *bias, size_t biasSize, std::shared_ptr quantInfo) + size_t originWeightSize, const float *bias, size_t biasSize) : CPUConvolution(common, b) { auto outputCount = (int)biasSize; int ePack, lPack, hPack; @@ -33,25 +33,6 @@ Convolution1x1Strassen::Convolution1x1Strassen(const Convolution2DCommon *common mValid = false; return; } -#ifdef MNN_LOW_MEMORY - if ((originWeightSize == 0 || nullptr == originWeight) && nullptr != quantInfo.get()) { // Use Int8 Weight. - originWeightSize = quantInfo->weight.size(); - int lSize = (int)originWeightSize / (int)biasSize * common->kernelX() * common->kernelY(); - auto hU = UP_DIV(outputCount, hPack); - auto lU = UP_DIV(lSize, lPack); - mSrcCount = (int)originWeightSize / outputCount; - - mResource->mWeight.reset(Tensor::createDevice(std::vector{UP_DIV(outputCount, hPack), UP_DIV(mSrcCount, lPack) * lPack, hPack})); - mValid = b->onAcquireBuffer(mResource->mWeight.get(), Backend::STATIC); - if (!mValid) { - MNN_ERROR("Not Enough Memory\n"); - return; - } - - DenseConvolutionTiledExecutor::initQuantizeResource(quantInfo, mResource, hU, hPack, lU, lPack, outputCount, (int)originWeightSize / (int)biasSize, common->kernelX() * common->kernelY(), core->bytes); - return; - } -#endif // Use Float Weight. mResource->mWeight.reset(Tensor::createDevice(std::vector{UP_DIV(outputCount, hPack), UP_DIV(mSrcCount, lPack) * lPack, hPack})); mValid = b->onAcquireBuffer(mResource->mWeight.get(), Backend::STATIC); @@ -128,14 +109,7 @@ ErrorCode Convolution1x1Strassen::onResize(const std::vector &inputs, uint8_t* dequantAlpha = nullptr; uint8_t* dequantBias = nullptr; int dequantBits = bytes * 8; // fp16:16, fp32:32 -#ifdef MNN_LOW_MEMORY - if (mResource && mResource->mDequantize.bits <= 8) { - dequantAlpha = mResource->mDequantize.mScaleBias->host(); - dequantBias = dequantAlpha + mResource->hU * mResource->hP * bytes; - dequantBits = mResource->mDequantize.bits; - } -#endif - mWeightBytes = static_cast(dequantBits) / 8.0f; + mWeightBytes = bytes; if (matrixSizeE > CONVOLUTION_TILED_NUMBER * 8 * numberThread && matrixSizeE > ocC4) { std::vector divides(numberThread+1); divides[0] = 0; @@ -154,7 +128,7 @@ ErrorCode Convolution1x1Strassen::onResize(const std::vector &inputs, unit.offset[2] = 0; unit.offset[0] = core->pack * planeStart * bytes; unit.offset[3] = core->pack * planeStart * bytes; - unit.mStracssenComputor.reset(new StrassenMatrixComputor(backend(), false, maxDepth, dequantAlpha, dequantBias, dequantBits)); + unit.mStracssenComputor.reset(new StrassenMatrixComputor(backend(), false, maxDepth)); int e = planeSize; int l = ic; int h = oc; @@ -200,7 +174,7 @@ ErrorCode Convolution1x1Strassen::onResize(const std::vector &inputs, unit.offset[0] = 0; unit.offset[3] = core->pack * matrixSizeE * ocStart * bytes; - unit.mStracssenComputor.reset(new StrassenMatrixComputor(backend(), false, maxDepth, dequantAlpha, dequantBias, dequantBits)); + unit.mStracssenComputor.reset(new StrassenMatrixComputor(backend(), false, maxDepth)); int e = matrixSizeE; int l = ic; int h = std::min(ocSize * core->pack, ocWeightSize * hPack); diff --git a/source/backend/cpu/compute/Convolution1x1Strassen.hpp b/source/backend/cpu/compute/Convolution1x1Strassen.hpp index 728f9988c..cda597c55 100644 --- a/source/backend/cpu/compute/Convolution1x1Strassen.hpp +++ b/source/backend/cpu/compute/Convolution1x1Strassen.hpp @@ -15,8 +15,7 @@ namespace MNN { class Convolution1x1Strassen : public CPUConvolution { public: - Convolution1x1Strassen(const Convolution2DCommon *common, Backend *b, const float *originWeight, - size_t originWeightSize, const float *bias, size_t biasSize, std::shared_ptr); + Convolution1x1Strassen(const Convolution2DCommon *common, Backend *b, const float *originWeight, size_t originWeightSize, const float *bias, size_t biasSize); Convolution1x1Strassen(std::shared_ptr resource, const Convolution2DCommon *common, Backend* b); virtual ~Convolution1x1Strassen(); @@ -34,7 +33,7 @@ class Convolution1x1Strassen : public CPUConvolution { }; std::vector mUnits; - float mWeightBytes = 4; + int mWeightBytes = 4; }; } // namespace MNN diff --git a/source/backend/cpu/compute/ConvolutionFloatFactory.cpp b/source/backend/cpu/compute/ConvolutionFloatFactory.cpp index d8c6e6cd9..18aa7a33a 100644 --- a/source/backend/cpu/compute/ConvolutionFloatFactory.cpp +++ b/source/backend/cpu/compute/ConvolutionFloatFactory.cpp @@ -62,10 +62,7 @@ static Execution* _createUnit(const Tensor* input, const Tensor* output, Backend } #endif if (fastWay && cpuBackend->functions()->matmulBytes == 0) { - return new Convolution1x1Strassen(common, backend, originWeight, originWeightSize, bias, biasSize, weightQuantInfo); - } - if (originWeightSize == 0) { - return new DenseConvolutionTiledExecutor(common, backend, originWeight, originWeightSize, bias, biasSize, weightQuantInfo); + return new Convolution1x1Strassen(common, backend, originWeight, originWeightSize, bias, biasSize); } if (cpuBackend->getRuntime()->hint().winogradMemoryUsed == 0 || (!ConvolutionWinogradBridge::canUseWinograd(common))) { return new DenseConvolutionTiledExecutor(common, backend, originWeight, originWeightSize, bias, biasSize, nullptr); diff --git a/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp b/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp index 5b3adc2e1..53352b88c 100644 --- a/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp +++ b/source/backend/cpu/compute/ConvolutionTiledExecutor.cpp @@ -117,19 +117,20 @@ void ConvolutionTiledExecutor:: setIm2ColParameter(ConvolutionCommon::Im2ColPara dstIm2ColParamter.srcYStep = input->stride(2) * pack; dstIm2ColParamter.packCUnit = pack; dstIm2ColParamter.ic = input->channel(); + dstIm2ColParamter.icup4 = input->channel(); // for float im2col. if (nullptr != int8Core) { // Compute Int8 Info and align ic int UNIT, SRC_UNIT, DynamicDestUnit; auto core = int8Core; core->MNNGetGemmUnit(&UNIT, &SRC_UNIT, &DynamicDestUnit); - if (SRC_UNIT > pack) { - const auto srcCountUnit = UP_DIV(input->channel(), pack); - dstIm2ColParamter.kernelCountUnit = UP_DIV(srcCountUnit * kernelCount, SRC_UNIT / pack); - dstIm2ColParamter.ic = dstIm2ColParamter.icDiv4 * pack; + const auto srcCountUnit = UP_DIV(input->channel(), SRC_UNIT); + dstIm2ColParamter.kernelCountUnit = srcCountUnit * kernelCount; + dstIm2ColParamter.ic = srcCountUnit * SRC_UNIT; + + if (SRC_UNIT > pack) { // Carefully change it. + dstIm2ColParamter.icup4 = ROUND_UP(input->channel(), pack); } else { - const auto srcCountUnit = UP_DIV(input->channel(), SRC_UNIT); - dstIm2ColParamter.kernelCountUnit = srcCountUnit * kernelCount; - dstIm2ColParamter.ic = srcCountUnit * SRC_UNIT; + dstIm2ColParamter.icup4 = ROUND_UP(input->channel(), SRC_UNIT); } } if (dstIm2ColParamter.iw == 1 && dstIm2ColParamter.ow == 1 && dstIm2ColParamter.oh > 1 && dstIm2ColParamter.kernelX == 1 && dstIm2ColParamter.padX == 0) { @@ -188,7 +189,7 @@ std::pair ConvolutionTiledExecutor::turnIm2ColToBlitInfo(float const auto srcKx = srcKy + ((oxBegin + sta) * p.strideX + p.dilateX * kx - p.padX) * bytes * unit; srcPtr[number] = (const float*)srcKx; el[4 * number + 0] = end - sta; - el[4 * number + 1] = p.ic; + el[4 * number + 1] = p.icup4; el[4 * number + 2] = eStart + sta; el[4 * number + 3] = lOffset; number++; diff --git a/source/backend/cpu/compute/DenseConvolutionTiledExecutor.cpp b/source/backend/cpu/compute/DenseConvolutionTiledExecutor.cpp index fea897d71..70ce13c5b 100644 --- a/source/backend/cpu/compute/DenseConvolutionTiledExecutor.cpp +++ b/source/backend/cpu/compute/DenseConvolutionTiledExecutor.cpp @@ -50,50 +50,24 @@ bool DenseConvolutionTiledExecutor::initQuantizeResource(std::shared_ptrweight.get(); + std::vector blob; if (int8Info->canUseInt4) { - MNN_ASSERT(weightLength % 2 == 0); - weightLength = UP_DIV(weightLength, 2); - resource->mDequantize.bits = 4; - resource->mWeight.reset(Tensor::createDevice(std::vector{weightLength})); - auto res = resource->backend->onAcquireBuffer(resource->mWeight.get(), Backend::STATIC); - if (!res) { - return false; - } - auto dstWInt4 = resource->mWeight->host(); - auto srcWInt4 = int8Info->weight.get(); - if (kernelSize == 1 && srcChannel % 2 == 0 && hU * hP == outputCount) { - for (int i = 0; i < hU; i++) { - for (int j = 0; j < srcChannel/2; j++) { - for (int k = 0; k < hP/2; k++) { - uint8_t s0 = srcWInt4[((i * hP + (k * 2 + 0)) * srcChannel) / 2 + j]; - uint8_t s1 = srcWInt4[((i * hP + (k * 2 + 1)) * srcChannel) / 2 + j]; - uint8_t d0 = (s0 & 0xf0) | (s1 >> 4); - uint8_t d1 = (s0 << 4) | (s1 & 0x0f); - dstWInt4[(i * srcChannel + (j * 2 + 0)) * hP / 2 + k] = d0; - dstWInt4[(i * srcChannel + (j * 2 + 1)) * hP / 2 + k] = d1; - } - } - } - } else { - // [oc, ic, ks] -> [oc/hP, ks, ic, hP] - ::memset(dstWInt4, 0, resource->mWeight->usize()); - for (int y = 0; y < outputCount; ++y) { - int yo = y / hP; - int yi = y % hP; - for (int iz = 0; iz < srcChannel; ++iz) { - for (int k=0; k < kernelSize; ++k) { - int sx = y * srcChannel * kernelSize + iz * kernelSize + k; - int dx = yo * lP * hP * lU + (iz + k * srcChannel) * hP + yi; - uint8_t s = srcWInt4[sx/2]; - s = (sx % 2) ? (s & 0xf) : (s >> 4); - s = (dx % 2) ? s : (s << 4); - dstWInt4[dx/2] |= s; - } - } - } + // Revert int4 to int8 + auto size = int8Info->weight.size(); + blob.resize(int8Info->weight.size() * 2); + auto idxBuf = (uint8_t*)srcWInt8; + for (int i=0; imWeight.reset(Tensor::createDevice(std::vector{hU, lU * lP, hP})); auto res = resource->backend->onAcquireBuffer(resource->mWeight.get(), Backend::STATIC); if (!res) { @@ -101,7 +75,6 @@ bool DenseConvolutionTiledExecutor::initQuantizeResource(std::shared_ptrmWeight->host(); - auto srcWInt8 = int8Info->weight.get(); ::memset(dstWInt8, 0, resource->mWeight->usize()); for (int y=0; yMNNPackedMatMulRemain_int8; *weightBytes = 1; } - if (weightQuantBits == 4) { - *matmulUnit = core->MNNPackedMatMul_int4; - *matmulRemain = core->MNNPackedMatMulRemain_int4; - *weightBytes = 0.5; - } } DenseConvolutionTiledExecutor::DenseConvolutionTiledExecutor(const Convolution2DCommon* common, Backend* b, @@ -485,6 +453,7 @@ ErrorCode DenseConvolutionTiledImpl::onResize(const std::vector& inputs size_t weightStride = 0; #ifdef MNN_LOW_MEMORY if (mResource && mResource->mDequantize.bits <= 8) { + MNN_ASSERT(mResource->mDequantize.bits == 8); DenseConvolutionTiledExecutor::selectLowMemoryMatmulFunc(&matmulUnit, &matmulRemain, &weightBytes, mResource->mDequantize.bits, core); int scaleSize = mResource->mDequantize.mScaleBias->size() / (2 * bytes); blockNum = scaleSize / (mResource->hU * mResource->hP); @@ -492,10 +461,6 @@ ErrorCode DenseConvolutionTiledImpl::onResize(const std::vector& inputs dequantAlpha = mResource->mDequantize.mScaleBias->host(); dequantBias = dequantAlpha + scaleSize * bytes; weightStride = (L - blockSize) * hP; - if (mResource->mDequantize.bits == 4) { - halfStride = 0.5; - weightStride = static_cast(weightStride * halfStride); - } } #endif auto kernel_width = mCommon->kernelX(); diff --git a/source/backend/cpu/compute/IdstConvolutionInt8.cpp b/source/backend/cpu/compute/IdstConvolutionInt8.cpp index 8046ecd15..61530bb3f 100644 --- a/source/backend/cpu/compute/IdstConvolutionInt8.cpp +++ b/source/backend/cpu/compute/IdstConvolutionInt8.cpp @@ -65,12 +65,8 @@ IdstConvolutionInt8::IdstConvolutionInt8(const Convolution2DCommon* convOp, Back auto kernelCount = kx * ky; auto srcCount = mSrcCount; std::vector shape; - if (SRC_UNIT > PackUnit) { - MNN_ASSERT(SRC_UNIT % UNIT == 0); - shape = {UP_DIV(outputCount, UNIT), UP_DIV(UP_DIV(srcCount, PackUnit) * kernelCount, SRC_UNIT / PackUnit), UNIT, SRC_UNIT}; - } else { - shape = {UP_DIV(outputCount, UNIT), UP_DIV(srcCount, SRC_UNIT) * kernelCount, UNIT, SRC_UNIT}; - } + shape = {UP_DIV(outputCount, UNIT), UP_DIV(srcCount, SRC_UNIT) * kernelCount, UNIT, SRC_UNIT}; + mWeight.reset(Tensor::createDevice(shape)); mFakeBias.reset(Tensor::createDevice({(int)ROUND_UP(biasSize, PackUnit)})); mFakeWeightBias.reset(Tensor::createDevice({(int)ROUND_UP(biasSize, PackUnit)})); diff --git a/source/backend/cpu/compute/ResizeFunction.h b/source/backend/cpu/compute/ResizeFunction.h index 7935c6738..69e3ecd57 100644 --- a/source/backend/cpu/compute/ResizeFunction.h +++ b/source/backend/cpu/compute/ResizeFunction.h @@ -11,9 +11,6 @@ #include #include -#ifdef __linux__ - #include -#endif #include "core/Macro.h" #ifdef __cplusplus extern "C" { diff --git a/source/backend/cpu/compute/StrassenMatmulComputor.cpp b/source/backend/cpu/compute/StrassenMatmulComputor.cpp index 094efbd5a..ae6b3a5b2 100644 --- a/source/backend/cpu/compute/StrassenMatmulComputor.cpp +++ b/source/backend/cpu/compute/StrassenMatmulComputor.cpp @@ -42,17 +42,11 @@ class AutoMemory { BufferAllocator* mAllocator; }; -StrassenMatrixComputor::StrassenMatrixComputor(Backend* bn, bool multithread, int maxDepth, uint8_t* dequantAlpha, uint8_t* dequantBias, int32_t dequantBits) : mBackend(bn) { +StrassenMatrixComputor::StrassenMatrixComputor(Backend* bn, bool multithread, int maxDepth) : mBackend(bn) { mMaxDepth = maxDepth; mSupportMultiThread = multithread; - mDequantBias = dequantBias; - mDequantAlpha = dequantAlpha; - mDequantBits = dequantBits; auto core = static_cast(backend())->functions(); mWeightBytes = core->bytes; - if (mDequantBits == 8 || mDequantBits == 4) { - mWeightBytes = (float)mDequantBits / 8; - } }; StrassenMatrixComputor::~StrassenMatrixComputor() { // Do nothing @@ -81,18 +75,8 @@ ErrorCode StrassenMatrixComputor::_generateTrivalMatMul(int e, int l, int h, con auto eReal = aStride / core->bytes / core->pack; auto matmulUnit = core->MNNPackedMatMul; auto matmulRemain = core->MNNPackedMatMulRemain; - const float* dequantAlpha = nullptr; - const float* dequantBias = nullptr; - float weightBytes = 1; -#ifdef MNN_LOW_MEMORY - if (nullptr != mDequantAlpha && nullptr != mDequantBias) { - dequantAlpha = reinterpret_cast(mDequantAlpha); - dequantBias = reinterpret_cast(mDequantBias); - DenseConvolutionTiledExecutor::selectLowMemoryMatmulFunc(&matmulUnit, &matmulRemain, &weightBytes, mDequantBits, core); - } -#endif mFunctions.emplace_back( - std::make_pair([cStride, l, h, xCount, AT, BT, CT, COT, tileBufferBasic, unitNumber, bExtraStride, numberThread, eReal, eP, active, matmulUnit, matmulRemain, dequantAlpha, dequantBias, this](int tId) { + std::make_pair([cStride, l, h, xCount, AT, BT, CT, COT, tileBufferBasic, unitNumber, bExtraStride, numberThread, eReal, eP, active, matmulUnit, matmulRemain, this](int tId) { auto core = static_cast(backend())->functions(); size_t parameters[7]; parameters[0] = xCount * core->bytes; @@ -129,7 +113,7 @@ ErrorCode StrassenMatrixComputor::_generateTrivalMatMul(int e, int l, int h, con int xStart = i * eP; auto aStart = aHost + xStart * packUnit; core->MNNPackC4ForMatMul_A((float*)(tileHost), (const float**)(&aStart), info, stride); - matmulUnit((float*)(cHost + xStart * packUnit), (float*)tileHost, (float*)bHost, parameters, postParametersPtr, (const float*)biasPtr, dequantAlpha, dequantBias); + matmulUnit((float*)(cHost + xStart * packUnit), (float*)tileHost, (float*)bHost, parameters, postParametersPtr, (const float*)biasPtr, nullptr, nullptr); } if (tId != numberThread -1) { return; @@ -143,7 +127,7 @@ ErrorCode StrassenMatrixComputor::_generateTrivalMatMul(int e, int l, int h, con auto aStart = aHost + xStart * packUnit; // Copy core->MNNPackC4ForMatMul_A((float*)(tileHost), (const float**)(&aStart), info, stride); - matmulRemain((float*)(cHost + xStart * packUnit), (float*)tileHost, (float*)bHost, xCount, parameters, postParametersPtr, (const float*)biasPtr, dequantAlpha, dequantBias); + matmulRemain((float*)(cHost + xStart * packUnit), (float*)tileHost, (float*)bHost, xCount, parameters, postParametersPtr, (const float*)biasPtr, nullptr, nullptr); } }, numberThread)); static_cast(backend())->getBufferAllocator()->free(tileBufferBasic); @@ -502,9 +486,6 @@ void StrassenMatrixComputor::onReset() { ErrorCode StrassenMatrixComputor::onEncode(const std::vector& inputs, const std::vector& outputs, const std::vector& postParameters, int inputL, int inputH) { auto core = static_cast(backend())->functions(); mWeightBytes = core->bytes; - if (mDequantBits == 8 || mDequantBits == 4) { - mWeightBytes = (float)mDequantBits / 8; - } MNN_ASSERT(inputs.size() == 2 || inputs.size() == 3); MNN_ASSERT(outputs.size() == 1); auto A = inputs[0]; diff --git a/source/backend/cpu/compute/StrassenMatmulComputor.hpp b/source/backend/cpu/compute/StrassenMatmulComputor.hpp index 5e24fd6bb..ac22c8699 100644 --- a/source/backend/cpu/compute/StrassenMatmulComputor.hpp +++ b/source/backend/cpu/compute/StrassenMatmulComputor.hpp @@ -21,7 +21,7 @@ namespace MNN { */ class StrassenMatrixComputor { public: - StrassenMatrixComputor(Backend* bn, bool multithread, int maxDepth, uint8_t* dequantAlpha=nullptr, uint8_t* dequantBias=nullptr, int32_t dequantBits=32); + StrassenMatrixComputor(Backend* bn, bool multithread, int maxDepth); virtual ~StrassenMatrixComputor(); /* @@ -83,10 +83,7 @@ class StrassenMatrixComputor { std::vector mStack; - uint8_t* mDequantAlpha = nullptr; - uint8_t* mDequantBias = nullptr; - int32_t mDequantBits; - float mWeightBytes = 4; + int mWeightBytes = 4; }; } // namespace MNN diff --git a/source/backend/cpu/x86_x64/AVX2Functions.cpp b/source/backend/cpu/x86_x64/AVX2Functions.cpp index ad105f6ba..75b73053f 100644 --- a/source/backend/cpu/x86_x64/AVX2Functions.cpp +++ b/source/backend/cpu/x86_x64/AVX2Functions.cpp @@ -46,8 +46,6 @@ bool AVX2Functions::init(int cpuFlags) { coreFunction->MNNPackedMatMul = _AVX_MNNPackedMatMul; coreFunction->MNNPackedMatMulRemain = _AVX_MNNPackedMatMulRemain; #ifdef MNN_CPU_WEIGHT_DEQUANT_GEMM - coreFunction->MNNPackedMatMul_int4 = _AVX_MNNPackedMatMul_int4; - coreFunction->MNNPackedMatMulRemain_int4 = _AVX_MNNPackedMatMulRemain_int4; coreFunction->MNNPackedMatMul_int8 = _AVX_MNNPackedMatMul_int8; coreFunction->MNNPackedMatMulRemain_int8 = _AVX_MNNPackedMatMulRemain_int8; #endif diff --git a/source/backend/cpu/x86_x64/FunctionDispatcher.cpp b/source/backend/cpu/x86_x64/FunctionDispatcher.cpp index fc82e6971..328488554 100644 --- a/source/backend/cpu/x86_x64/FunctionDispatcher.cpp +++ b/source/backend/cpu/x86_x64/FunctionDispatcher.cpp @@ -51,8 +51,6 @@ void MNNFunctionInit() { coreFunction->MNNPackedMatMul = _SSE_MNNPackedMatMul; coreFunction->MNNPackedMatMulRemain = _SSE_MNNPackedMatMulRemain; #ifdef MNN_CPU_WEIGHT_DEQUANT_GEMM - coreFunction->MNNPackedMatMul_int4 = _SSE_MNNPackedMatMul_int4; - coreFunction->MNNPackedMatMulRemain_int4 = _SSE_MNNPackedMatMulRemain_int4; coreFunction->MNNPackedMatMul_int8 = _SSE_MNNPackedMatMul_int8; coreFunction->MNNPackedMatMulRemain_int8 = _SSE_MNNPackedMatMulRemain_int8; #endif diff --git a/source/backend/cpu/x86_x64/avx/GemmInt8.cpp b/source/backend/cpu/x86_x64/avx/GemmInt8.cpp index 5a1d26af1..40a975fa0 100644 --- a/source/backend/cpu/x86_x64/avx/GemmInt8.cpp +++ b/source/backend/cpu/x86_x64/avx/GemmInt8.cpp @@ -136,7 +136,7 @@ void _AVX_MNNGemmInt8AddBiasScale_16x4_w4(int8_t* dst, const int8_t* src, const const auto weight_sz = weight_dz + sz * weight_step_Y; const auto src_z = src_x + sz * GEMMINT8_AVX2_L * realDst; LOAD_INT4_TO_INT8; - auto w0 = _mm256_set_m128i(w_1, w_0); + auto w0 = _mm256_insertf128_si256(_mm256_castsi128_si256(w_0), w_1, 1); auto s0 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 0)); auto s1 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 1)); auto s2 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 2)); @@ -243,7 +243,7 @@ void _AVX_MNNGemmInt8AddBiasScale_16x4_w4(int8_t* dst, const int8_t* src, const const auto src_z = src_x + sz * GEMMINT8_AVX2_L * realDst; LOAD_INT4_TO_INT8; - auto w0 = _mm256_set_m128i(w_1, w_0); + auto w0 = _mm256_insertf128_si256(_mm256_castsi128_si256(w_0), w_1, 1); auto s0 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 0)); auto s1 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 1)); auto s2 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 2)); @@ -335,7 +335,7 @@ void _AVX_MNNGemmInt8AddBiasScale_16x4_w4(int8_t* dst, const int8_t* src, const const auto weight_sz = weight_dz + sz * weight_step_Y; const auto src_z = src_x + sz * GEMMINT8_AVX2_L * realDst; LOAD_INT4_TO_INT8; - auto w0 = _mm256_set_m128i(w_1, w_0); + auto w0 = _mm256_insertf128_si256(_mm256_castsi128_si256(w_0), w_1, 1); auto s0 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 0)); auto s1 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 1)); @@ -409,7 +409,7 @@ void _AVX_MNNGemmInt8AddBiasScale_16x4_w4(int8_t* dst, const int8_t* src, const const auto weight_sz = weight_dz + sz * weight_step_Y; const auto src_z = src_x + sz * GEMMINT8_AVX2_L * realDst; LOAD_INT4_TO_INT8; - auto w0 = _mm256_set_m128i(w_1, w_0); + auto w0 = _mm256_insertf128_si256(_mm256_castsi128_si256(w_0), w_1, 1); auto s0 = _mm256_castps_si256(_mm256_broadcast_ss((float*)src_z + 0)); D00 = _mm256_add_epi32(D00, _mm256_madd_epi16(_mm256_maddubs_epi16(s0, w0), oneValue)); diff --git a/source/backend/cpu/x86_x64/avx/MathFunctions.cpp b/source/backend/cpu/x86_x64/avx/MathFunctions.cpp index aef76a84c..feb2d6f31 100644 --- a/source/backend/cpu/x86_x64/avx/MathFunctions.cpp +++ b/source/backend/cpu/x86_x64/avx/MathFunctions.cpp @@ -66,8 +66,8 @@ void _AVX_MNNExpC8(float* dest, const float* source, float* offset, const float* auto C = _mm256_broadcast_ss(offset + 2); auto p0 = _mm256_set1_ps(parameters[0]); auto p1 = _mm256_set1_ps(parameters[1]); - auto p2 = _mm256_set1_ps(parameters[2]); - auto p3 = _mm256_set1_ps(parameters[3]); + auto p2 = _mm256_set1_ps(0.25f); + auto p3 = _mm256_set1_ps(1.0f); auto p4 = _mm256_set1_ps(parameters[4]); auto p5 = _mm256_set1_ps(parameters[5]); auto p6 = _mm256_set1_ps(parameters[6]); @@ -90,7 +90,7 @@ void _AVX_MNNExpC8(float* dest, const float* source, float* offset, const float* div2 = _mm256_mullo_epi32(div2, basic); auto expBasic = _mm256_castsi256_ps(div2); auto xReamin = _mm256_sub_ps(x, _mm256_mul_ps(div, p0)); - auto t = xReamin; + auto t = _mm256_mul_ps(xReamin, p2); auto c0 = _mm256_mul_ps(p7, t); auto c1 = _mm256_add_ps(c0, p6); auto c2 = _mm256_mul_ps(c1, t); @@ -100,8 +100,9 @@ void _AVX_MNNExpC8(float* dest, const float* source, float* offset, const float* auto c6 = _mm256_mul_ps(c5, t); auto c7 = _mm256_add_ps(c6, p3); auto c8 = _mm256_mul_ps(c7, t); - auto c9 = _mm256_add_ps(c8, p2); - auto expRemain = c9; + auto c9 = _mm256_add_ps(c8, p3); + auto expRemain = _mm256_mul_ps(c9, c9); + expRemain = _mm256_mul_ps(expRemain, expRemain); auto res = _mm256_add_ps(_mm256_mul_ps(expBasic, expRemain), B); _mm256_storeu_ps(dest + 8 * i, res); summer = _mm256_add_ps(summer, res); diff --git a/source/backend/cpu/x86_x64/avxfma/MathFunctions.cpp b/source/backend/cpu/x86_x64/avxfma/MathFunctions.cpp index e999d2633..26fe278ea 100644 --- a/source/backend/cpu/x86_x64/avxfma/MathFunctions.cpp +++ b/source/backend/cpu/x86_x64/avxfma/MathFunctions.cpp @@ -62,8 +62,8 @@ void _AVX_MNNExpC8FMA(float* dest, const float* source, float* offset, const flo auto C = _mm256_broadcast_ss(offset + 2); auto p0 = _mm256_set1_ps(parameters[0]); auto p1 = _mm256_set1_ps(parameters[1]); - auto p2 = _mm256_set1_ps(parameters[2]); - auto p3 = _mm256_set1_ps(parameters[3]); + auto p2 = _mm256_set1_ps(0.25f); + auto p3 = _mm256_set1_ps(1.0f); auto p4 = _mm256_set1_ps(parameters[4]); auto p5 = _mm256_set1_ps(parameters[5]); auto p6 = _mm256_set1_ps(parameters[6]); @@ -86,13 +86,14 @@ void _AVX_MNNExpC8FMA(float* dest, const float* source, float* offset, const flo div2 = _mm256_mullo_epi32(div2, basic); auto expBasic = _mm256_castsi256_ps(div2); auto xReamin = _mm256_sub_ps(x, _mm256_mul_ps(div, p0)); - auto t = xReamin; + auto t = _mm256_mul_ps(xReamin, p2); auto c1 = _mm256_fmadd_ps(p7, t, p6); auto c3 = _mm256_fmadd_ps(c1, t, p5); auto c5 = _mm256_fmadd_ps(c3, t, p4); auto c7 = _mm256_fmadd_ps(c5, t, p3); - auto c9 = _mm256_fmadd_ps(c7, t, p2); - auto expRemain = c9; + auto c9 = _mm256_fmadd_ps(c7, t, p3); + auto expRemain = _mm256_mul_ps(c9, c9); + expRemain = _mm256_mul_ps(expRemain, expRemain); auto res = _mm256_fmadd_ps(expBasic, expRemain, B); summer = _mm256_add_ps(summer, res); _mm256_storeu_ps(dest + 8 * i, res); diff --git a/source/backend/cpu/x86_x64/sse/MathFunctions.cpp b/source/backend/cpu/x86_x64/sse/MathFunctions.cpp index 8238cb187..061d70005 100644 --- a/source/backend/cpu/x86_x64/sse/MathFunctions.cpp +++ b/source/backend/cpu/x86_x64/sse/MathFunctions.cpp @@ -20,8 +20,8 @@ void _SSE_MNNExpC8(float* dest, const float* source, float* offset, const float* auto C = _mm_set1_ps(offset[2]); auto p0 = _mm_set1_ps(parameters[0]); auto p1 = _mm_set1_ps(parameters[1]); - auto p2 = _mm_set1_ps(parameters[2]); - auto p3 = _mm_set1_ps(parameters[3]); + auto p2 = _mm_set1_ps(0.25f); + auto p3 = _mm_set1_ps(1.0f); auto p4 = _mm_set1_ps(parameters[4]); auto p5 = _mm_set1_ps(parameters[5]); auto p6 = _mm_set1_ps(parameters[6]); @@ -43,7 +43,7 @@ void _SSE_MNNExpC8(float* dest, const float* source, float* offset, const float* div2 = _mm_slli_epi32(div2, 23); auto expBasic = _mm_castsi128_ps(div2); auto xReamin = _mm_sub_ps(x, _mm_mul_ps(div, p0)); - auto t = xReamin; + auto t = _mm_mul_ps(xReamin, p2); auto c0 = _mm_mul_ps(p7, t); auto c1 = _mm_add_ps(c0, p6); auto c2 = _mm_mul_ps(c1, t); @@ -53,8 +53,9 @@ void _SSE_MNNExpC8(float* dest, const float* source, float* offset, const float* auto c6 = _mm_mul_ps(c5, t); auto c7 = _mm_add_ps(c6, p3); auto c8 = _mm_mul_ps(c7, t); - auto c9 = _mm_add_ps(c8, p2); - auto expRemain = c9; + auto c9 = _mm_add_ps(c8, p3); + auto expRemain = _mm_mul_ps(c9, c9); + expRemain = _mm_mul_ps(expRemain, expRemain); auto res = _mm_add_ps(_mm_mul_ps(expBasic, expRemain), B); _mm_storeu_ps(dest + 4 * i, res); summer = _mm_add_ps(summer, res); diff --git a/source/backend/metal/AllShader.cpp b/source/backend/metal/AllShader.cpp index ba24d1472..418992522 100644 --- a/source/backend/metal/AllShader.cpp +++ b/source/backend/metal/AllShader.cpp @@ -302,7 +302,7 @@ const char* shader_MetalConvolution_metal = " wt4=z_wt[z*cst.kernel_size+y*cst.kernel_x+x];\n" " result0 += FLOAT4(in4_0*wt4);\n" " }\n" -" in4_0=z_in[z*cst.input_size+y*cst.input_width+cst.kernel_x];\n" +" in4_0=z_in[z*cst.input_size*cst.batch+y*cst.input_width+cst.kernel_x];\n" " result1 += FLOAT4(in4_0*wt4);\n" " }\n" " }\n" @@ -407,16 +407,16 @@ const char* shader_MetalConvolution_metal = " auto x_wt=z_wt+y*cst.kernel_x+x;\n" " auto in4=z_in[ y*dilation_h+x*cst.dilation_x];\n" " /* true */ result0 += FLOAT4(in4**x_wt);\n" -" if (valids[0]) { x_wt += ws; result1 += FLOAT4(in4**x_wt); }\n" -" if (valids[1]) { x_wt += ws; result2 += FLOAT4(in4**x_wt); }\n" -" if (valids[2]) { x_wt += ws; result3 += FLOAT4(in4**x_wt); }\n" +" if (valids.x) { x_wt += ws; result1 += FLOAT4(in4**x_wt); }\n" +" if (valids.y) { x_wt += ws; result2 += FLOAT4(in4**x_wt); }\n" +" if (valids.z) { x_wt += ws; result3 += FLOAT4(in4**x_wt); }\n" " }\n" " }\n" " }\n" " /* true */ *z_out=activate(M4(result0+FLOAT4(biasTerms[uz[0]])),cst.activation);\n" -" if (valids[0]) { z_out += cst.output_size; *z_out=activate(M4(result1+FLOAT4(biasTerms[uz[1]])),cst.activation); }\n" -" if (valids[1]) { z_out += cst.output_size; *z_out=activate(M4(result2+FLOAT4(biasTerms[uz[2]])),cst.activation); }\n" -" if (valids[2]) { z_out += cst.output_size; *z_out=activate(M4(result3+FLOAT4(biasTerms[uz[3]])),cst.activation); }\n" +" if (valids.x) { z_out += cst.output_size*cst.batch; *z_out=activate(M4(result1+FLOAT4(biasTerms[uz[1]])),cst.activation); }\n" +" if (valids.y) { z_out += cst.output_size*cst.batch; *z_out=activate(M4(result2+FLOAT4(biasTerms[uz[2]])),cst.activation); }\n" +" if (valids.z) { z_out += cst.output_size*cst.batch; *z_out=activate(M4(result3+FLOAT4(biasTerms[uz[3]])),cst.activation); }\n" "}\n" "kernel void conv_z2(const device M4 *in [[buffer(0)]],\n" " device M4 *out [[buffer(1)]],\n" @@ -553,38 +553,6 @@ const char* shader_MetalSoftmax_metal = "static inline float4 softmax_filter(float4 V,int z,int limit) {\n" " return select(0,V,z*4+int4(0,1,2,3)= s.inside_size || (int)gid.y >= s.outside_size) return;\n" -" \n" -" auto axis_off=gid.y*s.axis_length*s.inside_size+gid.x;\n" -" auto axis_in=in+axis_off;\n" -" auto axis_out=out+axis_off;\n" -" \n" -" // get max\n" -" float max1=-INFINITY;\n" -" for (int i=tiisg; i= cst.inside || (int)gid.y >= cst.outside) {\n" -" return;\n" -" }\n" -" auto in_data=in+gid.y*cst.inside;\n" -" auto out_data=out+gid.y*cst.inside;\n" -" float mean;\n" -" float sum=0.0f;\n" -" float square_sum=0.0f;\n" -" \n" -" for(int i=tiisg; i= cst.inside/4 || (int)gid.y >= cst.outside) {\n" -" return;\n" -" }\n" -" auto in_data=in+gid.y*cst.inside/4;\n" -" auto out_data=out+gid.y*cst.inside/4;\n" -" float mean;\n" -" float sum=0.0f;\n" -" float square_sum=0.0f;\n" -" \n" -" for(int i=tiisg; i= cst.inside || (int)gid.y >= cst.outside) {\n" -" return;\n" -" }\n" -" auto in_data=in+gid.y*cst.inside;\n" -" auto out_data=out+gid.y*cst.inside;\n" -" float square_sum=0.0f;\n" -" \n" -" for(int i=tiisg; i= cst.inside/4 || (int)gid.y >= cst.outside) {\n" -" return;\n" -" }\n" -" int in_idx=gid.x;\n" -" int out_idx=gid.y;\n" -" auto in_data=in+out_idx*cst.inside/4;\n" -" auto out_data=out+out_idx*cst.inside/4;\n" -" float4 square_sum=0.0f;\n" -" float square_sum_all=0.0f;\n" -" for(int i=tiisg; i= s.size || (int)gid.y >= s.steps*s.batch) return;\n" " int z=gid.y/s.batch;\n" +" int offset=s.offset;\n" +" float4 scale=scalesbias[z];\n" +" float4 bias=scalesbias[z+offset];\n" " out[int(gid.y)*s.size+int(gid.x)] =\n" -" in [int(gid.y)*s.size+int(gid.x)]*M4(scales[z])+M4(biasTerms[z]);\n" +" (M4)((float4)in[int(gid.y)*s.size+int(gid.x)]*scale+bias);\n" "}\n" ; const char* shader_MetalDeconvolution_metal = @@ -1638,24 +1400,6 @@ const char* shader_MetalROIPooling_metal = const char* shader_MetalConvolution1x1_metal = "#define CONV_UNROLL (4)\n" "#define CONV_UNROLL_L (8)\n" -"#define INIT_SIMDGROUP_MATRIX(a,b,d) " -" simdgroup_T8x8 sga[a];" -" simdgroup_T8x8 sgb[b];" -" simdgroup_T8x8 sgd[d];" -" for (int i=0; i(0.f);" -" }\n" -"#define SIMDGROUP_MATRIX_FMA(a,b) " -" for(int j=0; j3) {xy_out[3]=activate(M4(result3),cst.activation); }\n" "}\n" -"kernel void conv1x1_z4_sg(const device M4 *in [[buffer(0)]],\n" -" device M4 *out [[buffer(1)]],\n" -" constant conv1x1_constants& cst [[buffer(2)]],\n" -" const device M4x4 *wt [[buffer(3)]],\n" -" const device M4 *biasTerms [[buffer(4)]],\n" -" uint3 gid[[threadgroup_position_in_grid]],\n" -" uint tiisg[[thread_index_in_simdgroup]],\n" -" uint sgitg[[simdgroup_index_in_threadgroup]]) {\n" -" if ((int)gid.x >= cst.output_size || (int)gid.y >= cst.output_slice || (int)gid.z >= cst.batch) return;\n" -" \n" -" int rx=gid.x;\n" -" int uz=gid.y;\n" -" auto xy_wt=wt+uz*cst.input_slice;\n" -" auto xy_in0=in+(int)gid.z*cst.input_size+rx+0;\n" -" auto xy_out=out+(int)gid.z*cst.output_size+uz*cst.output_size*cst.batch+rx;\n" -" auto biasValue=FLOAT4(biasTerms[uz]);\n" -" FLOAT4 result0=0;\n" -" int computeSize=min(cst.output_size-rx,CONV_UNROLL);\n" -" for (auto z=tiisg; z3) {xy_out[3]=activate(M4(result3),cst.activation); }\n" "}\n" -"kernel void conv1x1_gemm_16x16_w4_sg(const device M4 *in [[buffer(0)]],\n" -" device M4 *out [[buffer(1)]],\n" -" constant conv1x1_constants& cst [[buffer(2)]],\n" -" const device uchar2 *wt [[buffer(3)]],\n" -" const device M4 *biasTerms [[buffer(4)]],\n" -" const device M4 *dequantScale [[buffer(5)]],\n" -" uint3 gid [[threadgroup_position_in_grid]],\n" -" uint tiitg[[thread_index_in_threadgroup]],\n" -" uint sgitg[[simdgroup_index_in_threadgroup]]) {\n" -" /*\n" -" // Read:\n" -" M 0~127 ---> input: [M16,K8]\n" -" M 128~255 ---> input: [K8,N16]\n" -" // Write:\n" -" M 0~255 ---> input: [N2,M2,M8,N8]\n" -" */\n" -" threadgroup FLOAT4 sdata[256]={0.f};\n" -" \n" -" INIT_SIMDGROUP_MATRIX(2,2,4);\n" -" \n" -" int rx=gid.x;// M/16\n" -" int uz=gid.y;// N/16\n" -" \n" -" int kl=tiitg/16;\n" -" int rcl=tiitg % 16;\n" -"// int kl=tiitg % 2;\n" -"// int rcl=tiitg/2;\n" -" \n" -" // boundary limit\n" -" int idx_n4=(4*uz+rcl/4)> 4)-8,(float)(w_int40[0] & 15)-8,(float)(w_int40[1] >> 4)-8,(float)(w_int40[1] & 15)-8);\n" -" \n" -" FLOAT4 res=w40*scale[rcl % 4]+dequant_bias[rcl % 4];\n" -" ((threadgroup FLOAT*)sdata)[256*i+128+(kl*4+0)*16+rcl]=res[0];\n" -" ((threadgroup FLOAT*)sdata)[256*i+128+(kl*4+1)*16+rcl]=res[1];\n" -" ((threadgroup FLOAT*)sdata)[256*i+128+(kl*4+2)*16+rcl]=res[2];\n" -" ((threadgroup FLOAT*)sdata)[256*i+128+(kl*4+3)*16+rcl]=res[3];\n" -" }\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" #pragma unroll(4)\n" -" for(int i=0; i<4; i++) {\n" -" simdgroup_load(sga[0],(const threadgroup FLOAT*)sdata+256*i,8);\n" -" simdgroup_load(sga[1],((const threadgroup FLOAT*)sdata)+64+256*i,8);\n" -" simdgroup_barrier(mem_flags::mem_none);\n" -" \n" -" simdgroup_load(sgb[0],((const threadgroup FLOAT*)sdata)+128+256*i,16);\n" -" simdgroup_load(sgb[1],((const threadgroup FLOAT*)sdata)+136+256*i,16);\n" -" \n" -" SIMDGROUP_MATRIX_FMA(2,2);\n" -" }\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" }\n" -" }\n" -" \n" -" SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata,4);\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" if((16*rx+rcl) input: [M32,K8]\n" -" M 256~383 ---> input: [K8,N16]\n" -" // Write:\n" -" M 0~511 ---> input: [N2,M4,M8,N8]\n" -" */\n" -" threadgroup FLOAT4 sdata[128]={0.f};\n" -" \n" -" INIT_SIMDGROUP_MATRIX(4,2,8);\n" -" \n" -" int rx=gid.x;// M/32\n" -" int uz=gid.y;// N/16\n" -" \n" -" int kl=tiitg % 2;\n" -" int rcl=tiitg/2;\n" -" \n" -" const int size_m=cst.input_size*cst.batch;\n" -" \n" -" // boundary limit\n" -" int idx_n4=(4*uz+rcl/4)> 4)-8,(float)(w_int4[0] & 15)-8,(float)(w_int4[1] >> 4)-8,(float)(w_int4[1] & 15)-8);\n" -" FLOAT4 res=w4*scale[rcl % 4]+dequant_bias[rcl % 4];\n" -" // sdata[32+2* rcl+kl]=res;\n" -" ((threadgroup FLOAT*)sdata)[256+(kl*4+0)*16+rcl]=res[0];\n" -" ((threadgroup FLOAT*)sdata)[256+(kl*4+1)*16+rcl]=res[1];\n" -" ((threadgroup FLOAT*)sdata)[256+(kl*4+2)*16+rcl]=res[2];\n" -" ((threadgroup FLOAT*)sdata)[256+(kl*4+3)*16+rcl]=res[3];\n" -" \n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" simdgroup_load(sga[0],(const threadgroup FLOAT*)sdata,8);\n" -" simdgroup_load(sga[1],((const threadgroup FLOAT*)sdata)+64,8);\n" -" simdgroup_load(sga[2],((const threadgroup FLOAT*)sdata)+128,8);\n" -" simdgroup_load(sga[3],((const threadgroup FLOAT*)sdata)+192,8);\n" -" \n" -" // simdgroup_load(sgb[0],(const threadgroup FLOAT*)sdata+128,8,0,true);\n" -" // simdgroup_load(sgb[1],((const threadgroup FLOAT*)sdata)+192,8,0,true);\n" -" simdgroup_load(sgb[0],((const threadgroup FLOAT*)sdata)+256,16);\n" -" simdgroup_load(sgb[1],((const threadgroup FLOAT*)sdata)+264,16);\n" -" \n" -" SIMDGROUP_MATRIX_FMA(4,2);\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" xy_in0 += 2*cst.input_size*cst.batch;\n" -" xy_in1 += 2*cst.input_size*cst.batch;\n" -" }\n" -" }\n" -" \n" -" SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata,8);\n" -" \n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" if((16*rx+rcl) input: [M16,K8]\n" -" M 128~383 ---> input: [K8,N32]\n" -" // Write:\n" -" M 0~511 ---> input: [N2,N2,M2,M8,N8]\n" -" */\n" -" threadgroup FLOAT4 sdata[128]={0.f};\n" -" \n" -" INIT_SIMDGROUP_MATRIX(2,4,8);\n" -" \n" -" int rx=gid.x;// M/16\n" -" int uz=gid.y;// N/32\n" -" \n" -" int kl=tiitg % 2;\n" -" int rcl=tiitg/2;\n" -" \n" -" // boundary limit\n" -" int idx_n40=(4*uz+rcl/4)> 4)-8,(float)(w_int4[0] & 15)-8,(float)(w_int4[1] >> 4)-8,(float)(w_int4[1] & 15)-8);\n" -" FLOAT4 res=w4*scale0[rcl % 4]+dequant_bias0[rcl % 4];\n" -" // sdata[32+2* rcl+kl]=res;\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+0)*32+rcl]=res[0];\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+1)*32+rcl]=res[1];\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+2)*32+rcl]=res[2];\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+3)*32+rcl]=res[3];\n" -" }\n" -" {\n" -" uchar2 w_int4=xy_wt1[4*z]; // [N/4,K/4,N4,K4]\n" -" FLOAT4 w4=FLOAT4((float)(w_int4[0] >> 4)-8,(float)(w_int4[0] & 15)-8,(float)(w_int4[1] >> 4)-8,(float)(w_int4[1] & 15)-8);\n" -" FLOAT4 res=w4*scale1[rcl % 4]+dequant_bias1[rcl % 4];\n" -" // sdata[32+2* rcl+kl]=res;\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+0)*32+16+rcl]=res[0];\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+1)*32+16+rcl]=res[1];\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+2)*32+16+rcl]=res[2];\n" -" ((threadgroup FLOAT*)sdata)[128+(kl*4+3)*32+16+rcl]=res[3];\n" -" }\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" simdgroup_load(sga[0],(const threadgroup FLOAT*)sdata,8);\n" -" simdgroup_load(sga[1],((const threadgroup FLOAT*)sdata)+64,8);\n" -" \n" -" simdgroup_load(sgb[0],((const threadgroup FLOAT*)sdata)+128,32);\n" -" simdgroup_load(sgb[1],((const threadgroup FLOAT*)sdata)+136,32);\n" -" simdgroup_load(sgb[2],((const threadgroup FLOAT*)sdata)+144,32);\n" -" simdgroup_load(sgb[3],((const threadgroup FLOAT*)sdata)+152,32);\n" -" \n" -" SIMDGROUP_MATRIX_FMA(2,4);\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" xy_in0 += 2*cst.input_size*cst.batch;\n" -" }\n" -" }\n" -" \n" -" SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata,8);\n" -" \n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" if((16*rx+rcl) input: [M32,K8]\n" -" M 256~767 ---> weight: [K8,N64]\n" -" // Write:\n" -" M 0~2047 ---> input: [M2,N2,N2,N2,M2,M8,N8]\n" -" */\n" -" threadgroup FLOAT4 sdata[512]={0.f};\n" -" \n" -" INIT_SIMDGROUP_MATRIX(2,4,8);\n" -" \n" -" int rx=gid.x;// M/32\n" -" int uz=gid.y;// N/64\n" -" \n" -" int kl=tiitg % 2;// 0~1 -> inner K\n" -" int rcl=tiitg/2;// 0~63\n" -" int ko=rcl % 2;// 0~1 -> outter K\n" -" int ml=rcl/2;// 0~31 -> m\n" -" int ni=rcl % 4;// 0~3 -> inner N\n" -" int no=rcl/4;// 0~15 -> outter N\n" -" \n" -" /** input:\n" -" threadgroup: [M32,K8]\n" -" each thread: K2\n" -" layout: [K/4,M,K4] -> [K/8,K2,M/32,M32,K2,K2]\n" -" index : [K/8,ko,rx,ml,kl,K2]\n" -" */\n" -" /** weight:\n" -" threadgroup: [K8,N64]\n" -" each thread: K4\n" -" layout: [N/4,K/4,N4,K4] -> [N/64,N16,K/8,K2,N4,K4]\n" -" index : [uz,no,K/8,kl,ni,K4]\n" -" */\n" -" /** output:\n" -" threadgroup: [M32,N64]\n" -" each thread: M4N4\n" -" layout: [N/4,M,N4] -> [N/16,N4,M,N4]\n" -" index : [uz*4+(2*ko+kl),N4,idx_m,N4]\n" -" */\n" -" \n" -" // boundary limit\n" -" int idx_n40=(uz*16+no)> 4)-8,(float)(w_int4[0] & 15)-8,(float)(w_int4[1] >> 4)-8,(float)(w_int4[1] & 15)-8);\n" -" FLOAT4 res=w4*scale0[ni]+dequant_bias0[ni];\n" -" // sdata[32+2* rcl+kl]=res;\n" -" ((threadgroup FLOAT*)sdata)[idx_sb]=res[0];\n" -" ((threadgroup FLOAT*)sdata)[idx_sb+64]=res[1];\n" -" ((threadgroup FLOAT*)sdata)[idx_sb+128]=res[2];\n" -" ((threadgroup FLOAT*)sdata)[idx_sb+192]=res[3];\n" -" }\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" \n" -" const threadgroup FLOAT*sdata_a=(const threadgroup FLOAT*)sdata+16*8*(sgitg/2);\n" -" const threadgroup FLOAT*sdata_b=(const threadgroup FLOAT*)sdata+32*8+32*(sgitg%2);\n" -" simdgroup_load(sga[0],(const threadgroup FLOAT*)sdata_a,8);\n" -" simdgroup_load(sga[1],((const threadgroup FLOAT*)sdata_a)+64,8);\n" -" \n" -" simdgroup_load(sgb[0],((const threadgroup FLOAT*)sdata_b)+0,64);\n" -" simdgroup_load(sgb[1],((const threadgroup FLOAT*)sdata_b)+8,64);\n" -" simdgroup_load(sgb[2],((const threadgroup FLOAT*)sdata_b)+16,64);\n" -" simdgroup_load(sgb[3],((const threadgroup FLOAT*)sdata_b)+24,64);\n" -" \n" -" SIMDGROUP_MATRIX_FMA(2,4);\n" -" \n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" xy_in0 += 4*cst.input_size*cst.batch;\n" -" }\n" -" }\n" -" \n" -" threadgroup FLOAT*sdata_c=(threadgroup FLOAT*)sdata+512*sgitg;\n" -" \n" -" SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata_c,8);\n" -" threadgroup_barrier(mem_flags::mem_threadgroup);\n" -" \n" -" // sdata [M2,N2,N2,N2,M2,M8,N8]\n" -" // index [ml/16,ko,kl,N2,(ml/8)%2,ml%8,N2,N4]\n" -" if((rx*32+ml)3) {xy_out[3]=activate(M4(result3),cst.activation); }\n" "}\n" -"kernel void conv1x1_gemv_g8_w4_sg(const device M4 *in [[buffer(0)]],\n" -" device M4 *out [[buffer(1)]],\n" -" constant conv1x1_constants& cst [[buffer(2)]],\n" -" const device MNN::uchar4x2 *wt [[buffer(3)]],\n" -" const device M4 *biasTerms [[buffer(4)]],\n" -" const device M4 *dequantScale [[buffer(5)]],\n" -" uint3 gid[[threadgroup_position_in_grid]],\n" -" uint tiisg[[thread_index_in_simdgroup]],\n" -" uint sgitg[[simdgroup_index_in_threadgroup]]) {\n" -" // each threadgroup contain 2 simdgroup\n" -" // each simdgroup compute 4 data\n" -" int uz=gid.x*2+sgitg;\n" -" if(uz >= cst.output_slice) {\n" -" return;\n" -" }\n" -" int rx=gid.y;\n" -" auto xy_wt=wt+uz*cst.input_slice;\n" -" auto xy_in0=in+(int)gid.z*cst.input_size+rx+0;\n" -" auto xy_out=out+(int)gid.z*cst.output_size+uz*cst.output_size*cst.batch+rx;\n" -" auto biasValue=FLOAT4(biasTerms[uz]);\n" -" FLOAT4 result0=FLOAT4(0);\n" -" int block=(cst.input_slice+cst.block_size-1)/cst.block_size;\n" -" \n" -" int middle_step=min(SIMD_GROUP_WIDTH,block);\n" -" int outer_step=SIMD_GROUP_WIDTH/middle_step;\n" -" int middle_index=(tiisg) % middle_step;\n" -" int outer_index=(tiisg)/middle_step;\n" -" \n" -" for (int bi= outer_index; bi> 4)-8,(float)(w_int4[i][0] & 15)-8,(float)(w_int4[i][1] >> 4)-8,(float)(w_int4[i][1] & 15)-8);\n" -" FLOAT4 res=w4*scale[i]+dequant_bias[i];\n" -" w_dequant[i]=res;\n" -" }\n" -" result0 += FLOAT4(in40*w_dequant);\n" -" \n" -" }\n" -" }\n" -" FLOAT4 res=simd_sum(result0);\n" -" /* true */\n" -" if (tiisg == 0) {\n" -" xy_out[0]=activate(M4(res+biasValue),cst.activation);\n" -" }\n" -"}\n" -"kernel void conv1x1_gemv_g16_w4_sg(const device M4 *in [[buffer(0)]],\n" -" device M4 *out [[buffer(1)]],\n" -" constant conv1x1_constants& cst [[buffer(2)]],\n" -" const device MNN::uchar4x2 *wt [[buffer(3)]],\n" -" const device M4 *biasTerms [[buffer(4)]],\n" -" const device M4 *dequantScale [[buffer(5)]],\n" -" uint3 gid[[threadgroup_position_in_grid]],\n" -" uint tiisg[[thread_index_in_simdgroup]],\n" -" uint sgitg[[simdgroup_index_in_threadgroup]]) {\n" -" // each threadgroup contain 2 simdgroup\n" -" // each simdgroup compute 8 data\n" -" int uz=2*(gid.x*2+sgitg);\n" -" if(uz >= cst.output_slice) {\n" -" return;\n" -" }\n" -" \n" -" auto xy_wt=wt+uz*cst.input_slice;\n" -" auto xy_in0=in;\n" -" auto xy_out=out+(int)gid.z*cst.output_size+uz;\n" -" auto biasValue0=FLOAT4(biasTerms[uz]);\n" -" auto biasValue1=FLOAT4(biasTerms[uz+1]);\n" -" FLOAT4 result0=FLOAT4(0);\n" -" FLOAT4 result1=FLOAT4(0);\n" -" int block=(cst.input_slice+cst.block_size-1)/cst.block_size;\n" -" \n" -" int middle_step=min(SIMD_GROUP_WIDTH,block);\n" -" int outer_step=SIMD_GROUP_WIDTH/middle_step;\n" -" int middle_index=(tiisg) % middle_step;\n" -" int outer_index=(tiisg)/middle_step;\n" -" \n" -" for (int bi= outer_index; bi> 4)-8,(float)(w_int4[i][0] & 15)-8,(float)(w_int4[i][1] >> 4)-8,(float)(w_int4[i][1] & 15)-8);\n" -" FLOAT4 res=w4*scale0[i]+dequant_bias0[i];\n" -" w_dequant[i]=res;\n" -" }\n" -" result0 += FLOAT4(in40*w_dequant);\n" -" w_int4=xy_wt[cst.input_slice+z];\n" -" for (int i=0; i<4; i += 1) {\n" -" FLOAT4 w4=FLOAT4((float)(w_int4[i][0] >> 4)-8,(float)(w_int4[i][0] & 15)-8,(float)(w_int4[i][1] >> 4)-8,(float)(w_int4[i][1] & 15)-8);\n" -" FLOAT4 res=w4*scale1[i]+dequant_bias1[i];\n" -" w_dequant[i]=res;\n" -" }\n" -" \n" -" result1 += FLOAT4(in40*w_dequant);\n" -" \n" -" }\n" -" }\n" -" FLOAT4 res0=simd_sum(result0);\n" -" FLOAT4 res1=simd_sum(result1);\n" -" /* true */\n" -" if (tiisg == 0) {\n" -" xy_out[0]=activate(M4(res0+biasValue0),cst.activation);\n" -" xy_out[1]=activate(M4(res1+biasValue1),cst.activation);\n" -" }\n" -"}\n" "kernel void conv1x1_g1z8(const device M4 *in [[buffer(0)]],\n" " device M4 *out [[buffer(1)]],\n" " constant conv1x1_constants& cst [[buffer(2)]],\n" @@ -2585,151 +1764,6 @@ const char* shader_MetalConvolution1x1_metal = " if (widthSize>3) {xy_out[cst.output_size*cst.batch +3]=activate(M4(result7),cst.activation); }\n" " }\n" "}\n" -"kernel void conv1x1_gemm_16x16_sg(const device M4 *in [[buffer(0)]],\n" -" device M4 *out [[buffer(1)]],\n" -" constant conv1x1_constants& cst [[buffer(2)]],\n" -" const device M4 *wt [[buffer(3)]],\n" -" const device M4 *biasTerms [[buffer(4)]],\n" -" uint3 gid [[threadgroup_position_in_grid]],\n" -" uint tiitg[[thread_index_in_threadgroup]],\n" -" uint sgitg[[simdgroup_index_in_threadgroup]]) {\n" -" /*\n" -" // Read:\n" -" M 0~127 ---> input: [M16,K8]\n" -" M 128~255 ---> input: [K8,N16]\n" -" // Write:\n" -" M 0~255 ---> input: [N2,M2,M8,N8]\n" -" */\n" -" threadgroup FLOAT4 sdata[64]={0.f};\n" -" \n" -" INIT_SIMDGROUP_MATRIX(2,2,4);\n" -" int rx=gid.x;// M/16\n" -" int uz=gid.y;// N/16\n" -" \n" -" int kl=tiitg/16;\n" -" int rcl=tiitg % 16;\n" -" \n" -" // boundary limit\n" -" int idx_n4=(4*uz+rcl/4) input: [M32,K8]\n" -" M 256~383 ---> input: [K8,N16]\n" -" // Write:\n" -" M 0~511 ---> input: [N2,M4,M8,N8]\n" -" */\n" -" threadgroup FLOAT4 sdata[128]={0.f};\n" -" \n" -" INIT_SIMDGROUP_MATRIX(4,2,8);\n" -" \n" -" int rx=gid.x;// M/32\n" -" int uz=gid.y;// N/16\n" -" \n" -" int kl=tiitg % 2;\n" -" int rcl=tiitg/2;\n" -" \n" -" const int size_m=cst.input_size*cst.batch;\n" -" \n" -" // boundary limit\n" -" int idx_n4=(4*uz+rcl/4) +#include +using namespace metal; +typedef enum : int { + None = 0, + ReLU = 1, + ReLU6 = 2, +} conv_activation_type; + +inline ftype4 activate(ftype4 value, conv_activation_type type) { + switch (type) { + case ReLU: + return max(value, (ftype4)0); + case ReLU6: + return clamp(value, (ftype4)0, (ftype4)6); + default: // None + return value; + } +} +struct conv1x1_constants { + int input_size; + int input_slice; + int output_width; + int output_height; + int output_size; + int output_slice; + int output_channel; + int batch; + int block_size; + conv_activation_type activation; + float scale_coef; +}; + +#if MNN_METAL_FLOAT32_COMPUTER +typedef simdgroup_float8x8 simdgroup_T8x8; +typedef float FLOAT; +typedef float2 FLOAT2; +typedef float4 FLOAT4; +typedef float4x4 FLOAT4x4; +#else +typedef simdgroup_half8x8 simdgroup_T8x8; +typedef half FLOAT; +typedef half2 FLOAT2; +typedef half4 FLOAT4; +typedef half4x4 FLOAT4x4; +#endif + +#define SIMD_GROUP_WIDTH 32 +#define CONV_UNROLL (4) +#define CONV_UNROLL_L (8) + +#define INIT_SIMDGROUP_MATRIX(a, b, d) \ + simdgroup_T8x8 sga[a];\ + simdgroup_T8x8 sgb[b];\ + simdgroup_T8x8 sgd[d];\ + for (int i = 0; i < d; i++){\ + sgd[i] = make_filled_simdgroup_matrix(0.f);\ + } + +#define SIMDGROUP_MATRIX_FMA(a, b) \ + for(int j=0; j input: [M16, K8] + ftype 128~255 ---> input: [K8, N16] + // Write: + ftype 0~255 ---> input: [N2, M2, M8, N8] + */ + threadgroup FLOAT4 sdata[256] = {0.f}; + + INIT_SIMDGROUP_MATRIX(2, 2, 4); + + int rx = gid.x;// M/16 + int uz = gid.y;// N/16 + + int kl = tiitg / 16; + int rcl = tiitg % 16; +// int kl = tiitg % 2; +// int rcl = tiitg / 2; + + // boundary limit + int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); + int idx_m = (16 * rx + rcl) < cst.input_size * cst.batch ? (16 * rx + rcl) : (cst.input_size * cst.batch - 1); + + auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] + auto xy_in0 = in + idx_m + cst.input_size * cst.batch * kl;// [K/4, M, K4] + auto xy_out = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m;// [N/4, M, N4] + + int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; + for (int bi=0; bi> 4) - 8, (float)(w_int40[0] & 15) - 8, (float)(w_int40[1] >> 4) - 8, (float)(w_int40[1] & 15) - 8); + + FLOAT4 res = w40 * scale[rcl % 4] + dequant_bias[rcl % 4]; + ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 0) * 16 + rcl] = res[0]; + ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 1) * 16 + rcl] = res[1]; + ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 2) * 16 + rcl] = res[2]; + ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 3) * 16 + rcl] = res[3]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(4) + for(int i = 0; i < 4; i++) { + simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata + 256*i, 8); + simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64 + 256*i, 8); + simdgroup_barrier(mem_flags::mem_none); + + simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 128 + 256*i, 16); + simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 136 + 256*i, 16); + + SIMDGROUP_MATRIX_FMA(2, 2); + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + } + + SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 4); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if((16 * rx + rcl) < cst.input_size * cst.batch) { + if((4 * uz + 2 * kl) < cst.output_slice) { + xy_out[0] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); + } + if((4 * uz + 2 * kl + 1) < cst.output_slice) { + xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + } +} + +kernel void conv1x1_gemm_32x16_w4_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device uchar2 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + const device ftype4 *dequantScale [[buffer(5)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + /* + // Read: + ftype 0~255 ---> input: [M32, K8] + ftype 256~383 ---> input: [K8, N16] + // Write: + ftype 0~511 ---> input: [N2, M4, M8, N8] + */ + threadgroup FLOAT4 sdata[128] = {0.f}; + + INIT_SIMDGROUP_MATRIX(4, 2, 8); + + int rx = gid.x;// M/32 + int uz = gid.y;// N/16 + + int kl = tiitg % 2; + int rcl = tiitg / 2; + + const int size_m = cst.input_size * cst.batch; + + // boundary limit + int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); + int idx_m0 = (16 * rx + rcl) < size_m ? (16 * rx + rcl) : (size_m - 1); + int idx_m1 = (16 * rx + rcl) + size_m / 2 < size_m ? (16 * rx + rcl) + size_m / 2: (size_m - 1); + + auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] + auto xy_in0 = in + idx_m0 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] + auto xy_in1 = in + idx_m1 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] + + auto xy_out0 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m0;// [N/4, M, N4] + auto xy_out1 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m1;// [N/4, M, N4] + + int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; + for (int bi=0; bi> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); + FLOAT4 res = w4 * scale[rcl % 4] + dequant_bias[rcl % 4]; + // sdata[32 + 2* rcl + kl] = res; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 0) * 16 + rcl] = res[0]; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 1) * 16 + rcl] = res[1]; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 2) * 16 + rcl] = res[2]; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 3) * 16 + rcl] = res[3]; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); + simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); + simdgroup_load(sga[2], ((const threadgroup FLOAT*)sdata) + 128, 8); + simdgroup_load(sga[3], ((const threadgroup FLOAT*)sdata) + 192, 8); + + // simdgroup_load(sgb[0], (const threadgroup FLOAT*)sdata + 128, 8, 0, true); + // simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 192, 8, 0, true); + simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 256, 16); + simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 264, 16); + + SIMDGROUP_MATRIX_FMA(4, 2); + threadgroup_barrier(mem_flags::mem_threadgroup); + + xy_in0 += 2 * cst.input_size * cst.batch; + xy_in1 += 2 * cst.input_size * cst.batch; + + } + } + + SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 8); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if((16 * rx + rcl) < size_m) { + if((4 * uz + 2 * kl) < cst.output_slice) { + xy_out0[0] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); + } + if((4 * uz + 2 * kl + 1) < cst.output_slice) { + xy_out0[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + } + if((16 * rx + rcl) + size_m / 2 < size_m) { + if((4 * uz + 2 * kl) < cst.output_slice) { + xy_out1[0] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); + } + if((4 * uz + 2 * kl + 1) < cst.output_slice) { + xy_out1[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + } +} + +kernel void conv1x1_gemm_16x32_w4_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device uchar2 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + const device ftype4 *dequantScale [[buffer(5)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + /* + // Read: + ftype 0~127 ---> input: [M16, K8] + ftype 128~383 ---> input: [K8, N32] + // Write: + ftype 0~511 ---> input: [N2, N2, M2, M8, N8] + */ + threadgroup FLOAT4 sdata[128] = {0.f}; + + INIT_SIMDGROUP_MATRIX(2, 4, 8); + + int rx = gid.x;// M/16 + int uz = gid.y;// N/32 + + int kl = tiitg % 2; + int rcl = tiitg / 2; + + // boundary limit + int idx_n40 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); + int idx_n41 = (4 * uz + rcl / 4) + cst.output_slice / 2 < cst.output_slice ? (4 * uz + rcl / 4) + cst.output_slice / 2 : (cst.output_slice - 1); + + int idx_m = (16 * rx + rcl) < cst.input_size * cst.batch ? (16 * rx + rcl) : (cst.input_size * cst.batch - 1); + + auto xy_wt0 = wt + (idx_n40 * cst.input_slice + 0) * 4 + (rcl % 4);// [N2, N/8, K/4, N4, K4] + auto xy_wt1 = wt + (idx_n41 * cst.input_slice + 0) * 4 + (rcl % 4);// [N2, N/8, K/4, N4, K4] + + auto xy_in0 = in + idx_m + cst.input_size * cst.batch * kl;// [K/4, M, K4] + auto xy_out = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m;// [N2, N/8, M, N4] + + int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; + for (int bi=0; bi> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); + FLOAT4 res = w4 * scale0[rcl % 4] + dequant_bias0[rcl % 4]; + // sdata[32 + 2* rcl + kl] = res; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 0) * 32 + rcl] = res[0]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 1) * 32 + rcl] = res[1]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 2) * 32 + rcl] = res[2]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 3) * 32 + rcl] = res[3]; + } + { + uchar2 w_int4 = xy_wt1[4*z]; // [N/4, K/4, N4, K4] + FLOAT4 w4 = FLOAT4((float)(w_int4[0] >> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); + FLOAT4 res = w4 * scale1[rcl % 4] + dequant_bias1[rcl % 4]; + // sdata[32 + 2* rcl + kl] = res; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 0) * 32 + 16 + rcl] = res[0]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 1) * 32 + 16 + rcl] = res[1]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 2) * 32 + 16 + rcl] = res[2]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 3) * 32 + 16 + rcl] = res[3]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); + simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); + + simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 128, 32); + simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 136, 32); + simdgroup_load(sgb[2], ((const threadgroup FLOAT*)sdata) + 144, 32); + simdgroup_load(sgb[3], ((const threadgroup FLOAT*)sdata) + 152, 32); + + SIMDGROUP_MATRIX_FMA(2, 4); + threadgroup_barrier(mem_flags::mem_threadgroup); + + xy_in0 += 2 * cst.input_size * cst.batch; + + } + } + + SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 8); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if((16 * rx + rcl) < cst.input_size * cst.batch) { + if(4 * uz + 2 * kl < cst.output_slice) { + xy_out[0] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl])), cst.activation); + } + if(4 * uz + 2 * kl + 1 < cst.output_slice) { + xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + if(cst.output_slice / 2 + 4 * uz + 2 * kl < cst.output_slice) { + xy_out[cst.output_slice / 2 * cst.output_size * cst.batch] = activate(ftype4(sdata[((kl + 2) * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[cst.output_slice / 2 + 4 * uz + 2 * kl])), cst.activation); + } + if(cst.output_slice / 2 + 4 * uz + 2 * kl + 1 < cst.output_slice) { + xy_out[(cst.output_slice / 2 + 1) * cst.output_size * cst.batch] = activate(ftype4(sdata[((kl + 2) * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[cst.output_slice / 2 + 4 * uz + 2 * kl + 1])), cst.activation); + } + } +} + + +kernel void conv1x1_gemm_32x64_w4_sg(const device ftype2 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device uchar2 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + const device ftype4 *dequantScale [[buffer(5)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + /* + // Read: + ftype 0~255 ---> input: [M32, K8] + ftype 256~767 ---> weight: [K8, N64] + // Write: + ftype 0~2047 ---> input: [M2, N2, N2, N2, M2, M8, N8] + */ + threadgroup FLOAT4 sdata[512] = {0.f}; + + INIT_SIMDGROUP_MATRIX(2, 4, 8); + + int rx = gid.x;// M/32 + int uz = gid.y;// N/64 + + int kl = tiitg % 2;// 0~1 -> inner K + int rcl = tiitg / 2;// 0~63 + int ko = rcl % 2;// 0~1 -> outter K + int ml = rcl / 2;// 0~31 -> m + int ni = rcl % 4;// 0~3 -> inner N + int no = rcl / 4;// 0~15 -> outter N + + /** input: + threadgroup: [M32, K8] + each thread: K2 + layout: [K/4, M, K4] -> [K/8, K2, M/32, M32, K2, K2] + index : [K/8, ko, rx, ml, kl, K2] + */ + /** weight: + threadgroup: [K8, N64] + each thread: K4 + layout: [N/4, K/4, N4, K4] -> [N/64, N16, K/8, K2, N4, K4] + index : [uz, no, K/8, kl, ni, K4] + */ + /** output: + threadgroup: [M32, N64] + each thread: M4N4 + layout: [N/4, M, N4] -> [N/16, N4, M, N4] + index : [uz*4+(2*ko+kl), N4, idx_m, N4] + */ + + // boundary limit + + int idx_n40 = (uz * 16 + no) < cst.output_slice ? (uz * 16 + no) : (cst.output_slice - 1); + int idx_m = (rx * 32 + ml) < cst.input_size * cst.batch ? (rx * 32 + ml) : (cst.input_size * cst.batch - 1); + + auto xy_wt0 = wt + ((idx_n40 * cst.input_slice / 2 + 0) * 2 + kl) * 4 + ni;// [N/4, K/4, N4, K4] + + auto xy_in0 = in + ((0 * 2 + ko) * cst.input_size * cst.batch + idx_m) * 2 + kl;// [K/4, M, K2, K2] + auto xy_out = out + ((4 * uz + 2 * ko + kl) * 4 + 0) * cst.output_size * cst.batch + idx_m;// [N2, N/8, M, N4] + + const int idx_sa = ml * 8 + ko * 4 + kl * 2; + const int idx_sb = 256 + (kl * 4 + 0) * 64 + rcl; + int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; + for (int bi=0; bi> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); + FLOAT4 res = w4 * scale0[ni] + dequant_bias0[ni]; + // sdata[32 + 2* rcl + kl] = res; + ((threadgroup FLOAT*)sdata)[idx_sb] = res[0]; + ((threadgroup FLOAT*)sdata)[idx_sb + 64] = res[1]; + ((threadgroup FLOAT*)sdata)[idx_sb + 128] = res[2]; + ((threadgroup FLOAT*)sdata)[idx_sb + 192] = res[3]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + + + const threadgroup FLOAT * sdata_a = (const threadgroup FLOAT*)sdata + 16*8*(sgitg/2); + const threadgroup FLOAT * sdata_b = (const threadgroup FLOAT*)sdata + 32*8 + 32*(sgitg%2); + + simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata_a, 8); + simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata_a) + 64, 8); + + simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata_b) + 0, 64); + simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata_b) + 8, 64); + simdgroup_load(sgb[2], ((const threadgroup FLOAT*)sdata_b) + 16, 64); + simdgroup_load(sgb[3], ((const threadgroup FLOAT*)sdata_b) + 24, 64); + + SIMDGROUP_MATRIX_FMA(2, 4); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + xy_in0 += 4 * cst.input_size * cst.batch; + } + } + + threadgroup FLOAT * sdata_c = (threadgroup FLOAT*)sdata + 512*sgitg; + + SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata_c, 8); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // sdata [M2, N2, N2, N2, M2, M8, N8] + // index [ml/16, ko, kl, N2, (ml/8)%2, ml%8, N2, N4] + if((rx * 32 + ml) < cst.input_size * cst.batch) { + if((4 * uz + 2 * ko + kl) * 4 < cst.output_slice) { + xy_out[0] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 0) * 16 + ml % 16) * 2] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4])), cst.activation); + } + if((4 * uz + 2 * ko + kl) * 4 + 1 < cst.output_slice) { + xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 0) * 16 + ml % 16) * 2 + 1] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4 + 1])), cst.activation); + } + if((4 * uz + 2 * ko + kl) * 4 + 2 < cst.output_slice) { + xy_out[cst.output_size * cst.batch * 2] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 1) * 16 + ml % 16) * 2] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4 + 2])), cst.activation); + } + if((4 * uz + 2 * ko + kl) * 4 + 3 < cst.output_slice) { + xy_out[cst.output_size * cst.batch * 3] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 1) * 16 + ml % 16) * 2 + 1] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4 + 3])), cst.activation); + } + } +} +)metal"; + +const char* gConv1x1SgMatrix = R"metal( +#include +#include +using namespace metal; + +typedef enum : int { + None = 0, + ReLU = 1, + ReLU6 = 2, +} conv_activation_type; + +inline ftype4 activate(ftype4 value, conv_activation_type type) { + switch (type) { + case ReLU: + return max(value, (ftype4)0); + case ReLU6: + return clamp(value, (ftype4)0, (ftype4)6); + default: // None + return value; + } +} +struct conv1x1_constants { + int input_size; + int input_slice; + int output_width; + int output_height; + int output_size; + int output_slice; + int output_channel; + int batch; + int block_size; + conv_activation_type activation; + float scale_coef; +}; + +#if MNN_METAL_FLOAT32_COMPUTER +typedef simdgroup_float8x8 simdgroup_T8x8; +typedef float FLOAT; +typedef float2 FLOAT2; +typedef float4 FLOAT4; +typedef float4x4 FLOAT4x4; +#else +typedef simdgroup_half8x8 simdgroup_T8x8; +typedef half FLOAT; +typedef half2 FLOAT2; +typedef half4 FLOAT4; +typedef half4x4 FLOAT4x4; +#endif + + +#define SIMD_GROUP_WIDTH 32 +#define CONV_UNROLL (4) +#define CONV_UNROLL_L (8) + +#define INIT_SIMDGROUP_MATRIX(a, b, d) \ + simdgroup_T8x8 sga[a];\ + simdgroup_T8x8 sgb[b];\ + simdgroup_T8x8 sgd[d];\ + for (int i = 0; i < d; i++){\ + sgd[i] = make_filled_simdgroup_matrix(0.f);\ + } + +#define SIMDGROUP_MATRIX_FMA(a, b) \ + for(int j=0; j input: [M16, K8] + ftype 128~255 ---> input: [K8, N16] + // Write: + ftype 0~255 ---> input: [N2, M2, M8, N8] + */ + threadgroup FLOAT4 sdata[64] = {0.f}; + + INIT_SIMDGROUP_MATRIX(2, 2, 4); + int rx = gid.x;// M/16 + int uz = gid.y;// N/16 + + int kl = tiitg / 16; + int rcl = tiitg % 16; + + // boundary limit + int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); + int idx_m = (16 * rx + rcl) < cst.input_size * cst.batch ? (16 * rx + rcl) : (cst.input_size * cst.batch - 1); + + auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] + auto xy_in0 = in + idx_m + cst.input_size * cst.batch * kl;// [K/4, M, K4] + auto xy_out = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m;// [N/4, M, N4] + + for (int z = kl; z < cst.input_slice; z += 2) { + sdata[2* rcl + kl] = FLOAT4(*xy_in0); + xy_in0 += 2 * cst.input_size * cst.batch; + + FLOAT4 w4 = FLOAT4(xy_wt[4 * z]); // [N/4, K/4, N4, K4] + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 0) * 16 + rcl] = w4[0]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 1) * 16 + rcl] = w4[1]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 2) * 16 + rcl] = w4[2]; + ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 3) * 16 + rcl] = w4[3]; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); + simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); + simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 128, 16); + simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 136, 16); + + SIMDGROUP_MATRIX_FMA(2, 2); + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 4); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if((16 * rx + rcl) < cst.input_size * cst.batch) { + if((4 * uz + 2 * kl) < cst.output_slice) { + xy_out[0] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); + } + if((4 * uz + 2 * kl + 1) < cst.output_slice) { + xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + } +} + + +kernel void conv1x1_gemm_32x16_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device ftype4 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + /* + // Read: + ftype 0~255 ---> input: [M32, K8] + ftype 256~383 ---> input: [K8, N16] + // Write: + ftype 0~511 ---> input: [N2, M4, M8, N8] + */ + threadgroup FLOAT4 sdata[128] = {0.f}; + + INIT_SIMDGROUP_MATRIX(4, 2, 8); + + int rx = gid.x;// M/32 + int uz = gid.y;// N/16 + + int kl = tiitg % 2; + int rcl = tiitg / 2; + + const int size_m = cst.input_size * cst.batch; + + // boundary limit + int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); + int idx_m0 = (16 * rx + rcl) < size_m ? (16 * rx + rcl) : (size_m - 1); + int idx_m1 = (16 * rx + rcl) + size_m / 2 < size_m ? (16 * rx + rcl) + size_m / 2: (size_m - 1); + + auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] + auto xy_in0 = in + idx_m0 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] + auto xy_in1 = in + idx_m1 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] + + auto xy_out0 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m0;// [N/4, M, N4] + auto xy_out1 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m1;// [N/4, M, N4] + + for (int z = kl; z < cst.input_slice; z += 2) { + sdata[2* rcl + kl] = (FLOAT4)*xy_in0; + sdata[32 + 2* rcl + kl] = (FLOAT4)*xy_in1; + + FLOAT4 w4 = FLOAT4(xy_wt[4*z]); // [N/4, K/4, N4, K4] + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 0) * 16 + rcl] = w4[0]; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 1) * 16 + rcl] = w4[1]; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 2) * 16 + rcl] = w4[2]; + ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 3) * 16 + rcl] = w4[3]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); + simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); + simdgroup_load(sga[2], ((const threadgroup FLOAT*)sdata) + 128, 8); + simdgroup_load(sga[3], ((const threadgroup FLOAT*)sdata) + 192, 8); + + simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 256, 16); + simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 264, 16); + + SIMDGROUP_MATRIX_FMA(4, 2); + threadgroup_barrier(mem_flags::mem_threadgroup); + + xy_in0 += 2 * cst.input_size * cst.batch; + xy_in1 += 2 * cst.input_size * cst.batch; + + } + + SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 8); + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if((16 * rx + rcl) < size_m) { + if((4 * uz + 2 * kl) < cst.output_slice) { + xy_out0[0] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); + } + if((4 * uz + 2 * kl + 1) < cst.output_slice) { + xy_out0[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + } + if((16 * rx + rcl) + size_m / 2 < size_m) { + if((4 * uz + 2 * kl) < cst.output_slice) { + xy_out1[0] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); + } + if((4 * uz + 2 * kl + 1) < cst.output_slice) { + xy_out1[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); + } + } +} + +)metal"; + + +const char* gConv1x1SgReduce = R"metal( +#include +#include +using namespace metal; +typedef enum : int { + None = 0, + ReLU = 1, + ReLU6 = 2, +} conv_activation_type; + +inline ftype4 activate(ftype4 value, conv_activation_type type) { + switch (type) { + case ReLU: + return max(value, (ftype4)0); + case ReLU6: + return clamp(value, (ftype4)0, (ftype4)6); + default: // None + return value; + } +} + +struct conv1x1_constants { + int input_size; + int input_slice; + int output_width; + int output_height; + int output_size; + int output_slice; + int output_channel; + int batch; + int block_size; + conv_activation_type activation; + float scale_coef; +}; + +#if MNN_METAL_FLOAT32_COMPUTER +typedef simdgroup_float8x8 simdgroup_T8x8; +typedef float FLOAT; +typedef float2 FLOAT2; +typedef float4 FLOAT4; +typedef float4x4 FLOAT4x4; +#else +typedef simdgroup_half8x8 simdgroup_T8x8; +typedef half FLOAT; +typedef half2 FLOAT2; +typedef half4 FLOAT4; +typedef half4x4 FLOAT4x4; +#endif + + +#define SIMD_GROUP_WIDTH 32 +#define CONV_UNROLL (4) +#define CONV_UNROLL_L (8) + +kernel void conv1x1_z4_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device ftype4x4 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + uint3 gid[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + if ((int)gid.x >= cst.output_size || (int)gid.y >= cst.output_slice || (int)gid.z >= cst.batch) return; + + int rx = gid.x; + int uz = gid.y; + auto xy_wt = wt + uz * cst.input_slice; + auto xy_in0 = in + (int)gid.z * cst.input_size + rx + 0; + auto xy_out = out + (int)gid.z * cst.output_size + uz * cst.output_size * cst.batch + rx; + auto biasValue = FLOAT4(biasTerms[uz]); + FLOAT4 result0 = 0; + + for (int z = tiisg; z < cst.input_slice; z+=SIMD_GROUP_WIDTH) { + auto xy_in = xy_in0 + z * cst.input_size * cst.batch; + auto in40 = *xy_in; + auto w = xy_wt[z]; + + result0 += FLOAT4(in40 * w); + } + result0 = simd_sum(result0); + + *xy_out = activate(ftype4(result0 + biasValue), cst.activation); +} +)metal"; + +const char* gConv1x1W4SgReduce = R"metal( +#include +#include +using namespace metal; +typedef enum : int { + None = 0, + ReLU = 1, + ReLU6 = 2, +} conv_activation_type; + +inline ftype4 activate(ftype4 value, conv_activation_type type) { + switch (type) { + case ReLU: + return max(value, (ftype4)0); + case ReLU6: + return clamp(value, (ftype4)0, (ftype4)6); + default: // None + return value; + } +} + +namespace MNN { + typedef struct uchar4x2 { + private: + uchar2 v[4]; + public: + uchar4x2(uchar2 a) { + v[0] = a; v[1] = a; v[2] = a; v[3] = a; + } + uchar4x2(uchar2 a, uchar2 b, uchar2 c, uchar2 d) { + v[0] = a; v[1] = b; v[2] = c; v[3] = d; + } + + inline thread uchar2& operator[] (const int index) { + return v[index]; + } + inline device uchar2& operator[] (const int index) device { + return v[index]; + } + inline threadgroup uchar2& operator[] (const int index) threadgroup { + return v[index]; + } + + inline const thread uchar2& operator[] (const int index) const { + return v[index]; + } + inline const device uchar2& operator[] (const int index) const device { + return v[index]; + } + inline const threadgroup uchar2& operator[] (const int index) const threadgroup { + return v[index]; + } + + inline explicit operator half4x2() const { + return half4x2( half2(v[0]), half2(v[1]), half2(v[2]), half2(v[3]) ); + } + inline explicit operator half4x2() const device { + return half4x2( half2(v[0]), half2(v[1]), half2(v[2]), half2(v[3]) ); + } + inline explicit operator half4x2() const threadgroup { + return half4x2( half2(v[0]), half2(v[1]), half2(v[2]), half2(v[3]) ); + } + + inline explicit operator float4x2() const { + return float4x2( float2(v[0]), float2(v[1]), float2(v[2]), float2(v[3]) ); + } + inline explicit operator float4x2() const device { + return float4x2( float2(v[0]), float2(v[1]), float2(v[2]), float2(v[3]) ); + } + inline explicit operator float4x2() const threadgroup { + return float4x2( float2(v[0]), float2(v[1]), float2(v[2]), float2(v[3]) ); + } + } uchar4x2; +} + +struct conv1x1_constants { + int input_size; + int input_slice; + int output_width; + int output_height; + int output_size; + int output_slice; + int output_channel; + int batch; + int block_size; + conv_activation_type activation; + float scale_coef; +}; + +#if MNN_METAL_FLOAT32_COMPUTER +typedef simdgroup_float8x8 simdgroup_T8x8; +typedef float FLOAT; +typedef float2 FLOAT2; +typedef float4 FLOAT4; +typedef float4x4 FLOAT4x4; +#else +typedef simdgroup_half8x8 simdgroup_T8x8; +typedef half FLOAT; +typedef half2 FLOAT2; +typedef half4 FLOAT4; +typedef half4x4 FLOAT4x4; +#endif + +#define SIMD_GROUP_WIDTH 32 +#define CONV_UNROLL (4) +#define CONV_UNROLL_L (8) + + +kernel void conv1x1_gemv_g8_w4_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device MNN::uchar4x2 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + const device ftype4 *dequantScale [[buffer(5)]], + uint3 gid[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + // each threadgroup contain 2 simdgroup + // each simdgroup compute 4 data + int uz = gid.x * 2 + sgitg; + if(uz >= cst.output_slice) { + return; + } + + int rx = gid.y; + auto xy_wt = wt + uz * cst.input_slice; + auto xy_in0 = in + (int)gid.z * cst.input_size + rx + 0; + auto xy_out = out + (int)gid.z * cst.output_size + uz * cst.output_size * cst.batch + rx; + auto biasValue = FLOAT4(biasTerms[uz]); + FLOAT4 result0 = FLOAT4(0); + + int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; + + int middle_step = min(SIMD_GROUP_WIDTH, block); + int outer_step = SIMD_GROUP_WIDTH / middle_step; + int middle_index = (tiisg) % middle_step; + int outer_index = (tiisg) / middle_step; + + for (int bi= outer_index; bi> 4) - 8, (float)(w_int4[i][0] & 15) - 8, (float)(w_int4[i][1] >> 4) - 8, (float)(w_int4[i][1] & 15) - 8); + FLOAT4 res = w4 * scale[i] + dequant_bias[i]; + w_dequant[i] = res; + } + + result0 += FLOAT4(in40 * w_dequant); + + } + } + + FLOAT4 res = simd_sum(result0); + /* true */ + if (tiisg == 0) { + xy_out[0] = activate(ftype4(res + biasValue), cst.activation); + } +} + +kernel void conv1x1_gemv_g16_w4_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant conv1x1_constants& cst [[buffer(2)]], + const device MNN::uchar4x2 *wt [[buffer(3)]], + const device ftype4 *biasTerms [[buffer(4)]], + const device ftype4 *dequantScale [[buffer(5)]], + uint3 gid[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + // each threadgroup contain 2 simdgroup + // each simdgroup compute 8 data + int uz = 2 * (gid.x * 2 + sgitg); + if(uz >= cst.output_slice) { + return; + } + + auto xy_wt = wt + uz * cst.input_slice; + auto xy_in0 = in; + auto xy_out = out + (int)gid.z * cst.output_size + uz; + auto biasValue0 = FLOAT4(biasTerms[uz]); + auto biasValue1 = FLOAT4(biasTerms[uz + 1]); + + FLOAT4 result0 = FLOAT4(0); + FLOAT4 result1 = FLOAT4(0); + + int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; + + int middle_step = min(SIMD_GROUP_WIDTH, block); + int outer_step = SIMD_GROUP_WIDTH / middle_step; + int middle_index = (tiisg) % middle_step; + int outer_index = (tiisg) / middle_step; + + for (int bi= outer_index; bi> 4) - 8, (float)(w_int4[i][0] & 15) - 8, (float)(w_int4[i][1] >> 4) - 8, (float)(w_int4[i][1] & 15) - 8); + FLOAT4 res = w4 * scale0[i] + dequant_bias0[i]; + w_dequant[i] = res; + } + result0 += FLOAT4(in40 * w_dequant); + + w_int4 = xy_wt[cst.input_slice + z]; + for (int i = 0; i < 4; i += 1) { + FLOAT4 w4 = FLOAT4((float)(w_int4[i][0] >> 4) - 8, (float)(w_int4[i][0] & 15) - 8, (float)(w_int4[i][1] >> 4) - 8, (float)(w_int4[i][1] & 15) - 8); + FLOAT4 res = w4 * scale1[i] + dequant_bias1[i]; + w_dequant[i] = res; + } + + result1 += FLOAT4(in40 * w_dequant); + + } + } + + FLOAT4 res0 = simd_sum(result0); + FLOAT4 res1 = simd_sum(result1); + + /* true */ + if (tiisg == 0) { + xy_out[0] = activate(ftype4(res0 + biasValue0), cst.activation); + xy_out[1] = activate(ftype4(res1 + biasValue1), cst.activation); + + } +} +)metal"; + + +#endif + diff --git a/source/backend/metal/LayerNormSimdGroupShader.hpp b/source/backend/metal/LayerNormSimdGroupShader.hpp new file mode 100644 index 000000000..8072394ff --- /dev/null +++ b/source/backend/metal/LayerNormSimdGroupShader.hpp @@ -0,0 +1,255 @@ +// +// layerNormSimdGroupShader.hpp +// MNN +// +// Created by MNN on b'2024/12/30'. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#if MNN_METAL_ENABLED + +const char* gLayerNormSgReduce = R"metal( +#include +#include +using namespace metal; +struct layernorm_constants { + int inside; + int outside; + float eps; + int has_gamma_beta; +}; + +#define SIMD_GROUP_WIDTH 32 +#define CONV_UNROLL (4) +#define CONV_UNROLL_L (8) + +kernel void layernorm_x1_sg(const device ftype *in [[buffer(0)]], + device ftype *out [[buffer(1)]], + constant layernorm_constants& cst [[buffer(2)]], + const device float *gamma [[buffer(3)]], + const device float *beta [[buffer(4)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + if ((int)gid.x >= cst.inside || (int)gid.y >= cst.outside) { + return; + } + auto in_data = in + gid.y * cst.inside; + auto out_data = out + gid.y * cst.inside; + + float mean; + float sum = 0.0f; + float square_sum = 0.0f; + + for(int i = tiisg; i < cst.inside; i+=SIMD_GROUP_WIDTH) { + sum += in_data[i]; + } + sum = simd_sum(sum); + mean = sum / cst.inside; + + for(int i = tiisg; i < cst.inside; i+=SIMD_GROUP_WIDTH) { + float dis = (in_data[i] - mean); + square_sum += dis * dis; + } + square_sum = simd_sum(square_sum); + + if(tiisg == 0) { + float var = 1.0 / sqrt(square_sum / cst.inside + cst.eps); + + float norm = var * ((float)in_data[gid.x] - mean); + if(cst.has_gamma_beta) { + out_data[gid.x] = (ftype)(norm * gamma[gid.x] + beta[gid.x]); + } else { + out_data[gid.x] = (ftype)(norm); + } + } +} + +kernel void layernorm_x4_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant layernorm_constants& cst [[buffer(2)]], + const device float4 *gamma [[buffer(3)]], + const device float4 *beta [[buffer(4)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + if ((int)gid.x >= cst.inside/4 || (int)gid.y >= cst.outside) { + return; + } + auto in_data = in + gid.y * cst.inside/4; + auto out_data = out + gid.y * cst.inside/4; + + float mean; + float sum = 0.0f; + float square_sum = 0.0f; + + for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { + sum += in_data[i].x; + sum += in_data[i].y; + sum += in_data[i].z; + sum += in_data[i].w; + } + sum = simd_sum(sum); + mean = sum / cst.inside; + + for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { + float dis = (in_data[i].x - mean); + square_sum += dis * dis; + dis = (in_data[i].y - mean); + square_sum += dis * dis; + dis = (in_data[i].z - mean); + square_sum += dis * dis; + dis = (in_data[i].w - mean); + square_sum += dis * dis; + } + square_sum = simd_sum(square_sum); + + if(tiisg == 0) { + float var = 1.0 / sqrt(square_sum / cst.inside + cst.eps); + + float4 norm = var * ((float4)in_data[gid.x] - mean); + if(cst.has_gamma_beta) { + out_data[gid.x] = (ftype4)(norm * gamma[gid.x] + beta[gid.x]); + } else { + out_data[gid.x] = (ftype4)(norm); + } + } +} + + +kernel void layernorm_x1_rms_sg(const device ftype *in [[buffer(0)]], + device ftype *out [[buffer(1)]], + constant layernorm_constants& cst [[buffer(2)]], + const device float *gamma [[buffer(3)]], + const device float *beta [[buffer(4)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + if ((int)gid.x >= cst.inside || (int)gid.y >= cst.outside) { + return; + } + auto in_data = in + gid.y * cst.inside; + auto out_data = out + gid.y * cst.inside; + + float square_sum = 0.0f; + + for(int i = tiisg; i < cst.inside; i+=SIMD_GROUP_WIDTH) { + float dis = in_data[i]; + square_sum += dis * dis; + } + + square_sum = simd_sum(square_sum); + + if(tiisg == 0) { + float var = 1.0 / sqrt(square_sum / cst.inside + cst.eps); + + float norm = var * ((float)in_data[gid.x]); + if(cst.has_gamma_beta) { + out_data[gid.x] = (ftype)(norm * gamma[gid.x] + beta[gid.x]); + } else { + out_data[gid.x] = (ftype)(norm); + } + } +} + +kernel void layernorm_x4_rms_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant layernorm_constants& cst [[buffer(2)]], + const device float4 *gamma [[buffer(3)]], + const device float4 *beta [[buffer(4)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + if ((int)gid.x >= cst.inside/4 || (int)gid.y >= cst.outside) { + return; + } + + int in_idx = gid.x; + int out_idx = gid.y; + + auto in_data = in + out_idx * cst.inside/4; + auto out_data = out + out_idx * cst.inside/4; + + float4 square_sum = 0.0f; + float square_sum_all = 0.0f; + for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { + float4 data = float4(in_data[i]); + square_sum += data * data; + } + square_sum_all += (square_sum[0] + square_sum[1] + square_sum[2] + square_sum[3]); + square_sum_all = simd_sum(square_sum_all); + + if(tiisg == 0) { + float var = 1.0 / sqrt(square_sum_all / cst.inside + cst.eps); + + float4 norm = var * ((float4)in_data[in_idx]); + if(cst.has_gamma_beta) { + out_data[in_idx] = (ftype4)(norm * gamma[in_idx] + beta[in_idx]); + } else { + out_data[in_idx] = (ftype4)(norm); + } + } +} + +kernel void layernorm_x16_rms_sg(const device ftype4 *in [[buffer(0)]], + device ftype4 *out [[buffer(1)]], + constant layernorm_constants& cst [[buffer(2)]], + const device float4 *gamma [[buffer(3)]], + const device float4 *beta [[buffer(4)]], + uint3 gid [[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + int in_idx = gid.x * 4; + int out_idx = gid.y; + + auto in_data = in + out_idx * cst.inside/4; + auto out_data = out + out_idx * cst.inside/4; + + float4 square_sum = 0.0f; + float square_sum_all = 0.0f; + for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { + float4 data = float4(in_data[i]); + square_sum += data * data; + } + square_sum_all += (square_sum[0] + square_sum[1] + square_sum[2] + square_sum[3]); + square_sum_all = simd_sum(square_sum_all); + float var = 1.0 / sqrt(square_sum_all / cst.inside + cst.eps); + + if(tiisg == 0) { + float4 norm = var * ((float4)in_data[in_idx]); + if(cst.has_gamma_beta) { + out_data[in_idx] = (ftype4)(norm * gamma[in_idx] + beta[in_idx]); + } else { + out_data[in_idx] = (ftype4)(norm); + } + } + if(tiisg == 1 && in_idx + 1 < cst.inside/4) { + float4 norm = var * ((float4)in_data[in_idx+1]); + if(cst.has_gamma_beta) { + out_data[in_idx+1] = (ftype4)(norm * gamma[in_idx+1] + beta[in_idx+1]); + } else { + out_data[in_idx+1] = (ftype4)(norm); + } + } + if(tiisg == 2 && in_idx + 2 < cst.inside/4) { + float4 norm = var * ((float4)in_data[in_idx+2]); + if(cst.has_gamma_beta) { + out_data[in_idx+2] = (ftype4)(norm * gamma[in_idx+2] + beta[in_idx+2]); + } else { + out_data[in_idx+2] = (ftype4)(norm); + } + } + if(tiisg == 3 && in_idx + 3 < cst.inside/4) { + float4 norm = var * ((float4)in_data[in_idx+3]); + if(cst.has_gamma_beta) { + out_data[in_idx+3] = (ftype4)(norm * gamma[in_idx+3] + beta[in_idx+3]); + } else { + out_data[in_idx+3] = (ftype4)(norm); + } + } +} + +)metal"; + +#endif + diff --git a/source/backend/metal/MNNMetalContext.mm b/source/backend/metal/MNNMetalContext.mm index 2fe8a7199..f785be18e 100644 --- a/source/backend/metal/MNNMetalContext.mm +++ b/source/backend/metal/MNNMetalContext.mm @@ -24,8 +24,8 @@ @interface MNNMetalContext () @property (strong, nonatomic) id device; @property (assign, nonatomic) BOOL isIphone; // private -@property (strong, nonatomic) NSMutableDictionary> *cachesFp32; -@property (strong, nonatomic) NSMutableDictionary> *cachesFp16; +@property (strong, nonatomic) NSDictionary> *cachesFp32; +@property (strong, nonatomic) NSDictionary> *cachesFp16; @end @implementation MNNMetalContext @@ -95,11 +95,15 @@ + (BOOL)isIphone{ - (BOOL) initWithSharedContext:(const MNNMetalSharedContext*)context dev:(id)device { MNN_ASSERT(nullptr != context); _device = context->device; - _cachesFp16 = [NSMutableDictionary dictionary]; - _cachesFp32 = [NSMutableDictionary dictionary]; + NSMutableDictionary* tmp_cachesFp16 = [NSMutableDictionary dictionary]; + NSMutableDictionary* tmp_cachesFp32 = [NSMutableDictionary dictionary]; _isIphone = self.class.isIphone; - createLibrary(_device, _cachesFp16, true); - createLibrary(_device, _cachesFp32, false); + createLibrary(_device, tmp_cachesFp16, true); + createLibrary(_device, tmp_cachesFp32, false); + _cachesFp16 = [NSDictionary dictionaryWithDictionary:tmp_cachesFp16]; + _cachesFp32 = [NSDictionary dictionaryWithDictionary:tmp_cachesFp32]; + tmp_cachesFp16 = nil; + tmp_cachesFp32 = nil; return nil != _device; } @@ -141,15 +145,19 @@ - (MTLResourceOptions)optionForAccess:(MNN::MetalAccess)access { - (id)pipelineWithSourceOption:(NSString *)source name:(NSString *)name options:(MTLCompileOptions *)options { NSError *err = nil; auto library = [_device newLibraryWithSource:source options:options error:&err]; + if (err) { + NSLog(@"Warning: pipelineWithSource error: %@, source is: %@", err, source); + } if (nil == library) { - if (err) { - NSLog(@"Warning: pipelineWithSource error: %@", err); - } return nil; } id function = [library newFunctionWithName:name]; - NSError *error = nil; - id result = [_device newComputePipelineStateWithFunction:function error:&error]; + if (nil == function) { + NSLog(@"Warning: Create function failed: %@", name); + return nil; + } + err = nil; + id result = [_device newComputePipelineStateWithFunction:function error:&err]; return result; } diff --git a/source/backend/metal/MetalAttention.mm b/source/backend/metal/MetalAttention.mm index 18db999e6..04c6b4190 100644 --- a/source/backend/metal/MetalAttention.mm +++ b/source/backend/metal/MetalAttention.mm @@ -13,6 +13,7 @@ #import "MNNMetalContext.h" #import "MetalAttentionShader.hpp" #include "MNN_generated.h" +#include "core/OpCommonUtils.hpp" #if MNN_METAL_ENABLED #ifdef MNN_SUPPORT_TRANSFORMER_FUSE @@ -41,15 +42,16 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { private: void _init(); - void reallocKVCache(int history_len); + void reallocKVCache(); void compilerShader(const std::vector &inputs); bool mKVCache; std::shared_ptr mCache; float mScale; const int mExpandChunk = 64; - bool mIsDecode = false; + bool mShortSeq = false; std::shared_ptr mTempQK, mTempSoftMax; int mNumHead = 0, mHeadDim = 0, mValueH = 0, mKvNumHead = 0; + int mSeqLen; id mKernel_softmax = nil; id mKernel_qk = nil; @@ -62,6 +64,7 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { id mParamCopy; private: + KVMeta* mMeta; bool mQkSimdReduce = false; bool mQkSimdMatrix = false; bool mSftmSimdReduce = false; @@ -87,6 +90,8 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { mCache.reset(new SharedCache); auto mtbn = static_cast(backend()); auto context = (__bridge MNNMetalContext *)mtbn->context(); + mMeta = (KVMeta*)(mtbn->getRuntime()->pMeta); + mParamQKV = [context newDeviceBuffer:sizeof(Param) access:CPUWriteOnly]; mParamSoftmax = [context newDeviceBuffer:4 * sizeof(int) access:CPUWriteOnly]; mParamCopy = [context newDeviceBuffer:5 * sizeof(int) access:CPUWriteOnly]; @@ -94,63 +99,94 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { mTempSoftMax.reset(Tensor::createDevice({0, 0})); } -void AttentionBufExecution::reallocKVCache(int history_len) { - /* - when kv-cache - decoding: past_len > max_len, realloc and copy past_len cache - prefill : max_len == 0 (first prefill), realloc and copy history_len cache - prefill : max_len > 0 (not first prefill) && past_len >= max_len, realloc and copy history_len cache. copy current prompt in copy shader(not this function) - prefill : max_len > 0 (not first prefill) && past_len < max_len, not realloc and no need copy history_len cache, just copy current prompt in copy shader(not this function) - - */ +void AttentionBufExecution::reallocKVCache() { if (!mKVCache) { return; } + auto kv_seq_len = mMeta->previous + mMeta->add - mMeta->remove + mMeta->computeReverseSize(); - if (mIsDecode && mCache->mPastLength < mCache->mMaxLength) { - return; - } - - // not first prefill (do reuse_kvcache) and total past_len < max_len - if(!mIsDecode && mCache->mMaxLength > 0 && mCache->mPastLength < mCache->mMaxLength && history_len != 0) { - return; - } auto mtbn = static_cast(backend()); int byte = 4; if(mtbn->useFp16InsteadFp32()) { byte = 2; } - bool needCopy = history_len > 0; - - size_t old_size = mKvNumHead * history_len * mHeadDim * byte; - size_t old_piece_size = history_len * byte; - size_t old_piece_stride = mCache->mMaxLength * byte; - - mCache->mMaxLength = mCache->mPastLength + mExpandChunk; - // past_key: [1, numhead, headdim, maxlen] - auto new_key = Tensor::createDevice({mCache->mMaxLength, mKvNumHead, mHeadDim}); - // past_value: [1, numhead, maxlen, headdim] - auto new_value = Tensor::createDevice({mKvNumHead, mHeadDim, mCache->mMaxLength}); - size_t size = mKvNumHead * mCache->mMaxLength * mHeadDim * byte; - backend()->onAcquireBuffer(new_key, Backend::STATIC); - backend()->onAcquireBuffer(new_value, Backend::STATIC); - if (needCopy) { - auto newKeyBuf = MetalBackend::getBuffer(new_key); - auto new_key_ptr = (uint8_t*)[newKeyBuf.first contents] + newKeyBuf.second; - auto keyBuf = MetalBackend::getBuffer(mCache->mPastKey.get()); - auto key_ptr = (uint8_t*)[keyBuf.first contents] + keyBuf.second;; - ::memcpy(new_key_ptr, key_ptr, old_size); + + auto start = mCache->mPastLength - mMeta->remove; + // latest length larger than maxLen + if (kv_seq_len > mCache->mMaxLength) { + + auto copy_len = mCache->mPastLength - mMeta->remove + mMeta->computeReverseSize(); + bool needCopy = copy_len > 0; - auto newValueBuf = MetalBackend::getBuffer(new_value); - auto new_value_ptr = (uint8_t*)[newValueBuf.first contents] + newValueBuf.second; + size_t old_size = mKvNumHead * start * mHeadDim * byte; + size_t old_piece_size = start * byte; + size_t old_piece_stride = mCache->mMaxLength * byte; + + mCache->mMaxLength = kv_seq_len + mExpandChunk; + // past_key: [1, numhead, headdim, maxlen] + auto new_key = Tensor::createDevice({mCache->mMaxLength, mKvNumHead, mHeadDim}); + // past_value: [1, numhead, maxlen, headdim] + auto new_value = Tensor::createDevice({mKvNumHead, mHeadDim, mCache->mMaxLength}); + size_t size = mKvNumHead * mCache->mMaxLength * mHeadDim * byte; + auto res = backend()->onAcquireBuffer(new_key, Backend::STATIC); + res = res && backend()->onAcquireBuffer(new_value, Backend::STATIC); + if(!res) { + MNN_ERROR("attition kv cache realloc memory error:%d\n", res); + } + if (needCopy) { + auto newKeyBuf = MetalBackend::getBuffer(new_key); + auto new_key_ptr = (uint8_t*)[newKeyBuf.first contents] + newKeyBuf.second; + auto keyBuf = MetalBackend::getBuffer(mCache->mPastKey.get()); + auto key_ptr = (uint8_t*)[keyBuf.first contents] + keyBuf.second;; + ::memcpy(new_key_ptr, key_ptr, old_size); + + auto newValueBuf = MetalBackend::getBuffer(new_value); + auto new_value_ptr = (uint8_t*)[newValueBuf.first contents] + newValueBuf.second; + auto valueBuf = MetalBackend::getBuffer(mCache->mPastValue.get()); + auto value_ptr = (uint8_t*)[valueBuf.first contents] + valueBuf.second; + for(int i = 0; i < mKvNumHead * mHeadDim; i++) { + ::memcpy(new_value_ptr + i * mCache->mMaxLength * byte, value_ptr + i * old_piece_stride, old_piece_size); + } + } + mCache->mPastLength = (int)start; + + mCache->mPastKey.reset(new_key); + mCache->mPastValue.reset(new_value); + } + + // Remove + { + if (0 == mMeta->n_reserve) { + mCache->mPastLength = start; + return; + } + + auto keyBuf = MetalBackend::getBuffer(mCache->mPastKey.get()); + auto key_ptr = (uint8_t*)[keyBuf.first contents] + keyBuf.second; auto valueBuf = MetalBackend::getBuffer(mCache->mPastValue.get()); auto value_ptr = (uint8_t*)[valueBuf.first contents] + valueBuf.second; - for(int i = 0; i < mKvNumHead * mHeadDim; i++) { - ::memcpy(new_value_ptr + i * mCache->mMaxLength * byte, value_ptr + i * old_piece_stride, old_piece_size); + + // TODO: need to ensure reserve info is sorted + for (int n = 0; n < mMeta->n_reserve; ++n) { + auto begin = mMeta->reserve[2 * n]; + auto length = mMeta->reserve[2 * n + 1]; + // past_key : [mCache->mPastLength, mKvNumHead, mHeadDim] + // past_value : [mKvNumHead, mHeadDim, mCache->mMaxLength] + + auto copy_src_index = mCache->mPastLength - mMeta->remove + begin; + auto copy_dst_index = start; + for(int i = 0; i < length; i++) { + ::memcpy(key_ptr + (copy_dst_index + i) * mKvNumHead * mHeadDim * byte, key_ptr + (copy_src_index + i) * mKvNumHead * mHeadDim * byte, mKvNumHead * mHeadDim * byte); + } + for(int j = 0; j < mKvNumHead * mHeadDim; j++) { + for(int i = 0; i < length; i++) { + ::memcpy(value_ptr + (j * mCache->mMaxLength + copy_dst_index + i) * byte, value_ptr + (j * mCache->mMaxLength + copy_src_index + i) * byte, byte); + } + } + start += length; } + mCache->mPastLength = (int)start; } - mCache->mPastKey.reset(new_key); - mCache->mPastValue.reset(new_value); } void AttentionBufExecution::compilerShader(const std::vector &inputs) { @@ -173,7 +209,7 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { } // QK matmul total thread is large - mUseHeadNum2 = mIsDecode && mCache->mKv_seq_len > 1024; + mUseHeadNum2 = mShortSeq && mCache->mKv_seq_len > 1024; if(mUseHeadNum2) { qkKeys.emplace_back("HEAD_NUM_2"); } @@ -252,7 +288,25 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { MNN_ASSERT(nil != mKernel_copy); if(mSftmSimdReduce) { - mKernel_softmax = [context pipelineWithName:@"softmax_plane_sg" fp16:mtbn->useFp16InsteadFp32()]; + // basic marco info + std::string ftype = "float"; + if (mtbn->useFp16InsteadFp32()) { + ftype = "half"; + } + + MTLCompileOptions *option = [[MTLCompileOptions alloc] init]; + auto dic = [NSMutableDictionary dictionaryWithCapacity:0]; + option.preprocessorMacros = @{ + @"ftype" : @(ftype.c_str()), + }; + std::vector keys = {"softmax_sg_reduce", ftype, "softmax_plane_sg"}; + + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = mtbn->makeComputePipelineWithSourceOption(gSoftmaxSgReduce, "softmax_plane_sg", option); + rt->insertPipeline(keys, pipeline); + } + mKernel_softmax = pipeline; } else { mKernel_softmax = [context pipelineWithName:@"softmax_plane" fp16:mtbn->useFp16InsteadFp32()]; } @@ -268,67 +322,47 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { auto mtbn = static_cast(backend()); auto context = (__bridge MNNMetalContext *)mtbn->context(); auto shape = query->shape(); - int seq_len = shape[1]; + mSeqLen = shape[1]; mNumHead = shape[2]; mHeadDim = shape[3]; mScale = 1.0 / sqrt(mHeadDim); - mIsDecode = seq_len == 1; - - int history_len = mCache->mPastLength; - // first prefill set history_len to 0 - if(!mIsDecode && mask->length(2) == mask->length(3)) { - history_len = 0; - } - if (!mIsDecode) { - mCache->mPastLength = mask->length(3); - } - mCache->mKv_seq_len = mCache->mPastLength; - if(mIsDecode){ - mCache->mKv_seq_len = mCache->mPastLength + 1; - } + // currently only mSeqLen=1 means short_seq + mShortSeq = mSeqLen == 1; mKvNumHead = key->shape()[2]; + int group_size = mNumHead / mKvNumHead; + + mCache->mPastLength = mMeta->previous; + // kv-cache realloc function + reallocKVCache(); + + mCache->mKv_seq_len = mCache->mPastLength + mSeqLen; auto rt = (MetalRuntime*)mtbn->runtime(); bool supportSimdReduce = rt->supportSimdGroupReduce(); bool supportSimdMatrix = rt->supportSimdGroupMatrix(); // decode and thread number not too large - mQkSimdReduce = supportSimdReduce && seq_len == 1; + mQkSimdReduce = supportSimdReduce && mSeqLen == 1; // loop_k can divide 8, thus avoid branch - mQkSimdMatrix = supportSimdMatrix && seq_len >= 16 && mHeadDim % 8 == 0; + mQkSimdMatrix = supportSimdMatrix && mSeqLen >= 16 && mHeadDim % 8 == 0; mSftmSimdReduce = supportSimdReduce; - mQkvSimdReduce = supportSimdReduce && seq_len == 1 && mHeadDim * mNumHead < mCache->mKv_seq_len * 32; - mQkvSimdMatrix = supportSimdMatrix && seq_len >= 16; + mQkvSimdReduce = supportSimdReduce && mSeqLen == 1 && mHeadDim * mNumHead < mCache->mKv_seq_len * 32; + mQkvSimdMatrix = supportSimdMatrix && mSeqLen >= 16; // start to compile attention shaders compilerShader(inputs); - int group_size = mNumHead / mKvNumHead; - - // kv-cache realloc function - reallocKVCache(history_len); - // temp tensor alloc memory bool needMalloc = mTempQK->length(0) != mNumHead; - if (mIsDecode) { - if (mTempQK->length(1) != mCache->mMaxLength) { - needMalloc = true; - } - mTempQK->setLength(0, mNumHead); - mTempQK->setLength(1, mCache->mMaxLength); - mTempSoftMax->setLength(0, mNumHead); - mTempSoftMax->setLength(1, mCache->mMaxLength); - - } else { - if (mTempQK->length(1) != seq_len * mCache->mPastLength) { - needMalloc = true; - } - mTempQK->setLength(0, mNumHead); - mTempQK->setLength(1, seq_len * mCache->mPastLength); - mTempSoftMax->setLength(0, mNumHead); - mTempSoftMax->setLength(1, seq_len * mCache->mPastLength); + if (mTempQK->length(1) != mSeqLen * mCache->mMaxLength) { + needMalloc = true; } + mTempQK->setLength(0, mNumHead); + mTempQK->setLength(1, mSeqLen * mCache->mMaxLength); + mTempSoftMax->setLength(0, mNumHead); + mTempSoftMax->setLength(1, mSeqLen * mCache->mMaxLength); + if (needMalloc) { auto res = backend()->onAcquireBuffer(mTempQK.get(), Backend::STATIC) && backend()->onAcquireBuffer(mTempSoftMax.get(), Backend::STATIC); if (!res) { @@ -345,18 +379,12 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { param->key_seq_len = mCache->mKv_seq_len; param->head_num = mNumHead; param->group = group_size; - param->query_seq_len = seq_len; + param->query_seq_len = mSeqLen; param->max_kv_len = mCache->mMaxLength; } // For softmax parameter - int inside, outside; - if (mIsDecode) { - inside = 1; - outside = mNumHead; - } else { - inside = 1; - outside = seq_len * mNumHead; - } + int inside = 1; + int outside = mSeqLen * mNumHead; int axis = mCache->mKv_seq_len; { auto softmax = (int*)mParamSoftmax.contents; @@ -370,32 +398,16 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { // Run Copy Kernel { auto copyp = (int*)mParamCopy.contents; + /* + Key -> K-Cache : [mCache->mKv_seq_len, mKvNumHead, mHeadDim] -> [mCache->mKv_seq_len, mKvNumHead, mHeadDim] + Value -> V-Cache : [mCache->mKv_seq_len, mKvNumHead, mHeadDim] -> [mKvNumHead, mHeadDim, mCache->mMaxLength (fill when decode)] + */ copyp[0] = mKvNumHead * mHeadDim; - - int copy_line; - if(mIsDecode) { - /* - each decode fill one kv_seq. - Key -> K-Cache : [1, mKvNumHead, mHeadDim] -> [mCache->mKv_seq_len + 1, mKvNumHead, mHeadDim] - Value -> V-Cache : [1, mKvNumHead, mHeadDim] -> [mKvNumHead, mHeadDim, mCache->mKv_seq_len + 1] - */ - copyp[1] = 1; - copyp[2] = mCache->mMaxLength; - copyp[3] = (mCache->mKv_seq_len - 1) * copyp[0]; - copyp[4] = mCache->mKv_seq_len - 1; - copy_line = 1; - } else { - /* - first time copy. - Key -> K-Cache : [mCache->mKv_seq_len, mKvNumHead, mHeadDim] -> [mCache->mKv_seq_len, mKvNumHead, mHeadDim] - Value -> V-Cache : [mCache->mKv_seq_len, mKvNumHead, mHeadDim] -> [mKvNumHead, mHeadDim, mCache->mMaxLength (fill when decode)] - */ - copyp[1] = seq_len; - copyp[2] = mCache->mMaxLength; - copyp[3] = history_len * copyp[0]; - copyp[4] = history_len; - copy_line = seq_len; - } + copyp[1] = mSeqLen; + copyp[2] = mCache->mMaxLength; + copyp[3] = mCache->mPastLength * copyp[0]; + copyp[4] = mCache->mPastLength; + int copy_line = mSeqLen; id pipeline = mKernel_copy; [encoder setComputePipelineState:pipeline]; @@ -414,7 +426,7 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { // Run QK Kernel { id pipeline; - if (mIsDecode) { + if (mShortSeq) { pipeline = mKernel_qk; } else { pipeline = mKernelPrefill_qk; @@ -432,13 +444,13 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { } std::pair gl; if(mQkSimdReduce) { - gl = std::make_pair(MTLSizeMake(seq_len, decode_grid_y, mCache->mKv_seq_len), MTLSizeMake(32, 1, 1)); + gl = std::make_pair(MTLSizeMake(mSeqLen, decode_grid_y, mCache->mKv_seq_len), MTLSizeMake(32, 1, 1)); } else if(mQkSimdMatrix) { - gl = std::make_pair(MTLSizeMake(UP_DIV(seq_len, 16), UP_DIV(mCache->mKv_seq_len, 16), mNumHead), MTLSizeMake(32, 1, 1)); - } else if(mIsDecode){ - gl = [context computeBestGroupAndLocal:pipeline threads:MTLSizeMake(seq_len, decode_grid_y, mCache->mKv_seq_len)]; + gl = std::make_pair(MTLSizeMake(UP_DIV(mSeqLen, 16), UP_DIV(mCache->mKv_seq_len, 16), mNumHead), MTLSizeMake(32, 1, 1)); + } else if(mShortSeq){ + gl = [context computeBestGroupAndLocal:pipeline threads:MTLSizeMake(mSeqLen, decode_grid_y, mCache->mKv_seq_len)]; } else { - gl = [context computeBestGroupAndLocal:pipeline threads:MTLSizeMake(seq_len, mNumHead, mCache->mKv_seq_len)]; + gl = [context computeBestGroupAndLocal:pipeline threads:MTLSizeMake(mSeqLen, mNumHead, mCache->mKv_seq_len)]; } [encoder dispatchThreadgroups:gl.first threadsPerThreadgroup:gl.second]; @@ -464,7 +476,7 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { // Run QKV Kernel { id pipeline; - if (mIsDecode) { + if (mShortSeq) { pipeline = mKernel_qkv; } else { pipeline = mKernelPrefill_qkv; @@ -476,21 +488,17 @@ virtual bool onClone(Backend* bn, const Op* op, Execution** dst) override { [encoder setBuffer:mParamQKV offset:0 atIndex:3]; std::pair gl; if(mQkvSimdReduce) { - gl = std::make_pair(MTLSizeMake(seq_len, mNumHead, mHeadDim), MTLSizeMake(32, 1, 1)); + gl = std::make_pair(MTLSizeMake(mSeqLen, mNumHead, mHeadDim), MTLSizeMake(32, 1, 1)); } else if(mQkvSimdMatrix){ - gl = std::make_pair(MTLSizeMake(UP_DIV(seq_len, 16), UP_DIV(mHeadDim, 16), mNumHead), MTLSizeMake(32, 1, 1)); + gl = std::make_pair(MTLSizeMake(UP_DIV(mSeqLen, 16), UP_DIV(mHeadDim, 16), mNumHead), MTLSizeMake(32, 1, 1)); } else { - gl = [context computeBestGroupAndLocal:pipeline threads:MTLSizeMake(seq_len, mNumHead, mHeadDim)]; + gl = [context computeBestGroupAndLocal:pipeline threads:MTLSizeMake(mSeqLen, mNumHead, mHeadDim)]; } [encoder dispatchThreadgroups:gl.first threadsPerThreadgroup:gl.second]; } // Update status - if(mIsDecode){ - mCache->mPastLength += 1; - mCache->mKv_seq_len = mCache->mPastLength + 1; - } - + mCache->mPastLength += mSeqLen; return; } diff --git a/source/backend/metal/MetalAttentionShader.hpp b/source/backend/metal/MetalAttentionShader.hpp index 9209be406..b566de835 100644 --- a/source/backend/metal/MetalAttentionShader.hpp +++ b/source/backend/metal/MetalAttentionShader.hpp @@ -631,6 +631,54 @@ kernel void decode_qkv(const device T* input0 [[buffer(0)]], } )metal"; +const char* gSoftmaxSgReduce = R"metal( +#include +using namespace metal; +struct softmax_shape { + int inside_size; + int axis_length; + int outside_size; + int flat_length; +}; +#define SIMD_GROUP_WIDTH 32 + +kernel void softmax_plane_sg(const device ftype *in [[buffer(0)]], + device ftype *out [[buffer(1)]], + constant softmax_shape& s [[buffer(2)]], + uint2 gid[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]] + ) { + // threadgroup contain one simdgroup + // simdgroup compute axis data + if ((int)gid.x >= s.inside_size || (int)gid.y >= s.outside_size) return; + + auto axis_off = gid.y * s.axis_length * s.inside_size + gid.x; + auto axis_in = in + axis_off; + auto axis_out = out + axis_off; + + // get max + float max1 = -INFINITY; + for (int i = tiisg; i < s.axis_length; i+=SIMD_GROUP_WIDTH) { + max1 = max(max1, float(axis_in[i * s.inside_size])); + } + max1 = simd_max(max1); + + // get sum + float sum1 = 0; + for (int i = tiisg; i < s.axis_length; i+=SIMD_GROUP_WIDTH) { + sum1 += exp(float(axis_in[i * s.inside_size]) - float(max1)); + } + sum1 = simd_sum(sum1); + + // output + for (int i = tiisg; i < s.axis_length; i+=SIMD_GROUP_WIDTH) { + axis_out[i * s.inside_size] = ftype(exp(float(axis_in[i * s.inside_size]) - float(max1)) / sum1); + } +} + +)metal"; + #endif/* MNN_SUPPORT_TRANSFORMER_FUSE */ #endif diff --git a/source/backend/metal/MetalBackend.hpp b/source/backend/metal/MetalBackend.hpp index 1e6135a1c..643e2eb88 100644 --- a/source/backend/metal/MetalBackend.hpp +++ b/source/backend/metal/MetalBackend.hpp @@ -152,6 +152,8 @@ class MetalBackend : public Backend { */ static void addCreator(OpType type, Creator *creator); static void setTensor(const MNN::Tensor* tensor, id encoder, int index); + static void setMem(const MemChunk& chunk, id encoder, int index); + static uint8_t* getMemPtr(const MemChunk& chunk); static std::pair, int> getBuffer(const MNN::Tensor* tensor); size_t getTensorSizeInBytes(const Tensor* tensor) const; virtual bool onSelectDynamicAllocator(int index, int maxIndex) override; diff --git a/source/backend/metal/MetalBackend.mm b/source/backend/metal/MetalBackend.mm index 649c75b34..f4f62dc2c 100644 --- a/source/backend/metal/MetalBackend.mm +++ b/source/backend/metal/MetalBackend.mm @@ -252,9 +252,12 @@ MemChunk chunk() override { } } void MetalBackend::_resetDynamicMemory() const { - mCurrentAllocator->apply(); + mRuntime->pCurrentStatus = mCurrentAllocator->apply(); + if (NO_ERROR != mRuntime->pCurrentStatus) { + return; + } if (nullptr != mBufferPoolShapeImmutable.get()) { - mBufferPoolShapeImmutable->apply(); + mRuntime->pCurrentStatus = mBufferPoolShapeImmutable->apply(); } } @@ -801,6 +804,13 @@ static void _execute(id encoder, const MetalBackend::C void MetalBackend::setTensor(const MNN::Tensor* tensor, id encoder, int index) { [encoder setBuffer:((MetalRuntimeAllocator::MetalBufferAlloc *)tensor->deviceId())->getBuffer() offset:TensorUtils::getDescribe(tensor)->extra.offset atIndex:index]; } +void MetalBackend::setMem(const MemChunk& chunk, id encoder, int index) { + [encoder setBuffer:((MetalRuntimeAllocator::MetalBufferAlloc *)chunk.first)->getBuffer() offset:chunk.second atIndex:index]; +} +uint8_t* MetalBackend::getMemPtr(const MemChunk& chunk) { + return (uint8_t*)((MetalRuntimeAllocator::MetalBufferAlloc *)chunk.first)->getBuffer().contents + chunk.second; +} + std::pair, int> MetalBackend::getBuffer(const MNN::Tensor* tensor) { return std::make_pair(((MetalRuntimeAllocator::MetalBufferAlloc *)tensor->deviceId())->getBuffer(), TensorUtils::getDescribe(tensor)->extra.offset); } @@ -866,7 +876,11 @@ static void _execute(id encoder, const MetalBackend::C auto ctx = (__bridge MNNMetalContext *)context(); auto source = [[NSString alloc] initWithUTF8String:csource]; auto name = [[NSString alloc] initWithUTF8String:cname]; - return [ctx pipelineWithSourceOption:source name:name options:options]; + auto pipeline = [ctx pipelineWithSourceOption:source name:name options:options]; + if (nil == pipeline) { + mRuntime->pCurrentStatus = NOT_SUPPORT; + } + return pipeline; } void MetalRuntime::setCommandQueue(id queue, bool userSync) { mQueue = queue; @@ -880,7 +894,9 @@ static void _execute(id encoder, const MetalBackend::C return iter->second; } void MetalRuntime::insertPipeline(const std::vector& keys, id pipeline) const { - mCachePipeine.insert(std::make_pair(keys, pipeline)); + if (nil != pipeline) { + mCachePipeine.insert(std::make_pair(keys, pipeline)); + } } void MetalRuntime::setGpuMode(const int mode_num) { diff --git a/source/backend/metal/MetalConvolution.mm b/source/backend/metal/MetalConvolution.mm index d9dabb4bf..6ecc8f12d 100755 --- a/source/backend/metal/MetalConvolution.mm +++ b/source/backend/metal/MetalConvolution.mm @@ -211,6 +211,7 @@ return new MetalConvolutionWinograd(backend, op); } if (MetalConvolution1x1::isValid(conv, input)) { + return new MetalConvolution1x1(backend, op); } } diff --git a/source/backend/metal/MetalConvolution1x1.mm b/source/backend/metal/MetalConvolution1x1.mm index 7bdf0a893..c70bf1987 100644 --- a/source/backend/metal/MetalConvolution1x1.mm +++ b/source/backend/metal/MetalConvolution1x1.mm @@ -9,6 +9,7 @@ #import "backend/metal/MetalConvolution1x1.hpp" #import "core/Macro.h" #import "backend/metal/MetalBackend.hpp" +#import "ConvSimdGroupShader.hpp" #if MNN_METAL_ENABLED @@ -96,6 +97,25 @@ param->activation = mActivationType; param->scale_coef = mScaleCoef; + // basic marco info + std::string ftype2 = "float2"; + std::string ftype4 = "float4"; + std::string ftype4x4 = "float4x4"; + if (backend->useFp16InsteadFp32()) { + ftype2 = "half2"; + ftype4 = "half4"; + ftype4x4 = "half4x4"; + } + + MTLCompileOptions *option = [[MTLCompileOptions alloc] init]; + auto dic = [NSMutableDictionary dictionaryWithCapacity:0]; + option.preprocessorMacros = @{ + @"ftype2" : @(ftype2.c_str()), + @"ftype4" : @(ftype4.c_str()), + @"ftype4x4" : @(ftype4x4.c_str()), + @"MNN_METAL_FLOAT32_COMPUTER": @"1" + }; + MetalRuntime* rt = (MetalRuntime *)backend->runtime(); if (mDequantScaleBias.get()) { NSUInteger gid_x = UP_DIV(ow * oh, 4); @@ -103,36 +123,81 @@ NSUInteger gid_z = ob; std::string name = "conv1x1_g1z4_w8"; mPipeline = [context pipelineWithName:@"conv1x1_g1z4_w8" fp16:backend->useFp16InsteadFp32()]; + if (mDequantBits == 4) { if(rt->supportSimdGroupReduce() && ob * ow * oh == 1) { + std::vector baseKeys = {"conv1x1_w4_sg_reduce", ftype4, "MNN_METAL_FLOAT32_COMPUTER"}; + // unrool c for avoid memory exceed if(oc > 16384 && oc_4 % 2 == 0) { - mPipeline = [context pipelineWithName:@"conv1x1_gemv_g16_w4_sg" fp16:backend->useFp16InsteadFp32()]; - -// MNN_PRINT("g16 ic: %d oc: %d\n", input->channel(), oc); + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemv_g16_w4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1W4SgReduce, "conv1x1_gemv_g16_w4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(oc, 16), 1, 1), MTLSizeMake(64, 1, 1)); } else { - mPipeline = [context pipelineWithName:@"conv1x1_gemv_g8_w4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemv_g8_w4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1W4SgReduce, "conv1x1_gemv_g8_w4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; // MNN_PRINT("g8 ic: %d oc: %d\n", input->channel(), oc); mThreads = std::make_pair(MTLSizeMake(UP_DIV(oc, 8), 1, 1), MTLSizeMake(64, 1, 1)); } return NO_ERROR; } else if(rt->supportSimdGroupMatrix() && ob * ow * oh > 8 && oc > 8 && ic_4 % 8 == 0) { + std::vector baseKeys = {"conv1x1_w4_sg_matrix", ftype4, "MNN_METAL_FLOAT32_COMPUTER"}; + // Generally threadgroup memory >= 16KB auto smem_size = [[context device] maxThreadgroupMemoryLength]; // choose different tile for different computation if(ob * ow * oh >= 128 && oc >= 512 && ob * ow * oh * oc > 512 * 2048 && smem_size >= 8192) { - mPipeline = [context pipelineWithName:@"conv1x1_gemm_32x64_w4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemm_32x64_w4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1W4SgMatrix, "conv1x1_gemm_32x64_w4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(ob * ow * oh, 32), UP_DIV(oc, 64), 1), MTLSizeMake(128, 1, 1)); } else if(ob * ow * oh >= 32 && ob * ow * oh * oc > 128 * 2048) { - mPipeline = [context pipelineWithName:@"conv1x1_gemm_32x16_w4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemm_32x16_w4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1W4SgMatrix, "conv1x1_gemm_32x16_w4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(ob * ow * oh, 32), UP_DIV(oc, 16), 1), MTLSizeMake(32, 1, 1)); } else if(oc > 512 && ob * ow * oh * oc > 128 * 2048) { - mPipeline = [context pipelineWithName:@"conv1x1_gemm_16x32_w4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemm_16x32_w4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1W4SgMatrix, "conv1x1_gemm_16x32_w4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(ob * ow * oh, 16), UP_DIV(oc, 32), 1), MTLSizeMake(32, 1, 1)); } else { - mPipeline = [context pipelineWithName:@"conv1x1_gemm_16x16_w4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemm_16x16_w4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1W4SgMatrix, "conv1x1_gemm_16x16_w4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; // MNN_PRINT("gemm M: %d N: %d\n", ob * ow * oh, oc); mThreads = std::make_pair(MTLSizeMake(UP_DIV(ob * ow * oh, 16), UP_DIV(oc, 16), 1), MTLSizeMake(32, 1, 1)); } @@ -166,24 +231,47 @@ } if(rt->supportSimdGroupMatrix()) { + std::vector baseKeys = {"conv1x1_float_sg_matrix", ftype4, "MNN_METAL_FLOAT32_COMPUTER"}; // total computation not too small if(ob * ow * oh >= 16 && ic_4 >= 4 && ic_4 % 2 == 0 && oc_4 >= 4 && ob * ow * oh * ic_4 * oc_4 >= 64 * 64 * 64) { // Enough threads if(ob * ow * oh * oc_4 / ic_4 >= 1024) { - mPipeline = [context pipelineWithName:@"conv1x1_gemm_32x16_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemm_32x16_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1SgMatrix, "conv1x1_gemm_32x16_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(ob * ow * oh, 32), UP_DIV(oc, 16), 1), MTLSizeMake(32, 1, 1)); } else { - mPipeline = [context pipelineWithName:@"conv1x1_gemm_16x16_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_gemm_16x16_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1SgMatrix, "conv1x1_gemm_16x16_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(ob * ow * oh, 16), UP_DIV(oc, 16), 1), MTLSizeMake(32, 1, 1)); } return NO_ERROR; } } if(rt->supportSimdGroupReduce()) { + std::vector baseKeys = {"conv1x1_float_sg_reduce", ftype4, "MNN_METAL_FLOAT32_COMPUTER"}; // do input_channel reduce auto magic_num = 4.0; // total threads pretty small and loop pretty large if(ic_4 >= 32 && ic_4 % 2 == 0 && 1.0 * ob * ow * oh * oc_4 / ic_4 < magic_num) { - mPipeline = [context pipelineWithName:@"conv1x1_z4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("conv1x1_z4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gConv1x1SgReduce, "conv1x1_z4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(ow * oh, oc_4, ob), MTLSizeMake(32, 1, 1)); return NO_ERROR; } diff --git a/source/backend/metal/MetalLayerNorm.mm b/source/backend/metal/MetalLayerNorm.mm index 25591d5b9..8c454bd22 100755 --- a/source/backend/metal/MetalLayerNorm.mm +++ b/source/backend/metal/MetalLayerNorm.mm @@ -9,6 +9,7 @@ #import "backend/metal/MetalLayerNorm.hpp" #import "backend/metal/MNNMetalContext.h" #import "backend/metal/MetalBackend.hpp" +#import "LayerNormSimdGroupShader.hpp" #if MNN_METAL_ENABLED namespace MNN { @@ -77,26 +78,78 @@ bool parallel = (mInside > 32) && ((mInside & 3) == 0); auto inside = parallel ? mInside/4 : mInside; - if(((MetalRuntime *)backend->runtime())->supportSimdGroupReduce()) { + auto rt = (MetalRuntime *)backend->runtime(); + if(rt->supportSimdGroupReduce()) { + // basic marco info + std::string ftype = "float"; + std::string ftype4 = "float4"; + if (backend->useFp16InsteadFp32()) { + ftype = "half"; + ftype4 = "half4"; + } + + MTLCompileOptions *option = [[MTLCompileOptions alloc] init]; + auto dic = [NSMutableDictionary dictionaryWithCapacity:0]; + option.preprocessorMacros = @{ + @"ftype" : @(ftype.c_str()), + @"ftype4" : @(ftype4.c_str()), + }; + std::vector baseKeys = {"layernorm_sg_reduce", ftype}; + if(RMSNorm) { if(parallel) { if(inside >= 16 && inside * mOutside >= 2048) { - mPipeline = [context pipelineWithName:@"layernorm_x16_rms_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("layernorm_x16_rms_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gLayerNormSgReduce, "layernorm_x16_rms_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(UP_DIV(inside, 4), mOutside, 1), MTLSizeMake(32, 1, 1)); } else { - mPipeline = [context pipelineWithName:@"layernorm_x4_rms_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("layernorm_x4_rms_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gLayerNormSgReduce, "layernorm_x4_rms_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(inside, mOutside, 1), MTLSizeMake(32, 1, 1)); } - } else { - mPipeline = [context pipelineWithName:@"layernorm_x1_rms_sg" fp16:backend->useFp16InsteadFp32()]; + } else { + auto keys = baseKeys; + keys.emplace_back("layernorm_x1_rms_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gLayerNormSgReduce, "layernorm_x1_rms_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(inside, mOutside, 1), MTLSizeMake(32, 1, 1)); } } else { if(parallel) { - mPipeline = [context pipelineWithName:@"layernorm_x4_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("layernorm_x4_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gLayerNormSgReduce, "layernorm_x4_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(inside, mOutside, 1), MTLSizeMake(32, 1, 1)); } else { - mPipeline = [context pipelineWithName:@"layernorm_x1_sg" fp16:backend->useFp16InsteadFp32()]; + auto keys = baseKeys; + keys.emplace_back("layernorm_x1_sg"); + auto pipeline = rt->findPipeline(keys); + if (nil == pipeline) { + pipeline = backend->makeComputePipelineWithSourceOption(gLayerNormSgReduce, "layernorm_x1_sg", option); + rt->insertPipeline(keys, pipeline); + } + mPipeline = pipeline; mThreads = std::make_pair(MTLSizeMake(inside, mOutside, 1), MTLSizeMake(32, 1, 1)); } } diff --git a/source/backend/metal/MetalPReLU.hpp b/source/backend/metal/MetalPReLU.hpp index 8f3145831..afa7bf4e2 100644 --- a/source/backend/metal/MetalPReLU.hpp +++ b/source/backend/metal/MetalPReLU.hpp @@ -11,17 +11,18 @@ #import "MetalExecution.hpp" #if MNN_METAL_ENABLED +#include "core/BufferAllocator.hpp" namespace MNN { class MetalPReLU : public MetalExecution { public: MetalPReLU(Backend *backend, const float *slope, int count); - virtual ~MetalPReLU() = default; + virtual ~MetalPReLU(); virtual ErrorCode onResize(const std::vector &inputs, const std::vector &outputs) override; virtual void onEncode(const std::vector &inputs, const std::vector &outputs, id encoder) override; private: - id mSlope; + MemChunk mSlope; id mShape; id mPipeline; std::pair mThreads; diff --git a/source/backend/metal/MetalPReLU.mm b/source/backend/metal/MetalPReLU.mm index 15fae170b..07d3081a7 100755 --- a/source/backend/metal/MetalPReLU.mm +++ b/source/backend/metal/MetalPReLU.mm @@ -16,15 +16,30 @@ MetalPReLU::MetalPReLU(Backend *backend, const float *slope, int count) : MetalExecution(backend) { auto context = (__bridge MNNMetalContext *)static_cast(backend)->context(); - mSlope = [context newDeviceBuffer:UP_DIV(count, 4) * 4 * sizeof(float) bytes:slope access:CPUWriteOnly]; + auto mtbn = static_cast(backend); + auto bufferAlloc = mtbn->getStaticBufferPool(); + mSlope = bufferAlloc->alloc(UP_DIV(count, 4) * 4 * sizeof(float)); + if (nullptr == mSlope.first) { + mValid = false; + return; + } + auto buffer = ((MetalRuntimeAllocator::MetalBufferAlloc*)mSlope.first)->getBuffer(); + auto ptr = MetalBackend::getMemPtr(mSlope); + ::memset(ptr, 0, UP_DIV(count, 4) * 4 * sizeof(float)); + ::memcpy(ptr, slope, count * sizeof(float)); mShareChannel = 1 == count; if (!mShareChannel) { mShape = [context newDeviceBuffer:3 * sizeof(int) access:CPUWriteOnly]; } - auto mtbn = static_cast(backend); mPipeline = [context pipelineWithName:mShareChannel ? @"prelu" : @"prelu_slopes" fp16:mtbn->useFp16InsteadFp32()]; } - +MetalPReLU::~MetalPReLU() { + if (nullptr != mSlope.first) { + auto mtbn = static_cast(backend()); + auto bufferAlloc = mtbn->getStaticBufferPool(); + bufferAlloc->free(mSlope); + } +} ErrorCode MetalPReLU::onResize(const std::vector &inputs, const std::vector &outputs) { auto backend = static_cast(this->backend()); auto context = (__bridge MNNMetalContext *)backend->context(); @@ -44,9 +59,9 @@ void MetalPReLU::onEncode(const std::vector &inputs, const std::vector &outputs, id encoder) { auto input = inputs[0], output = outputs[0]; [encoder setComputePipelineState:mPipeline]; - [encoder setBuffer:(id)((MetalRuntimeAllocator::MetalBufferAlloc *)input->deviceId())->getBuffer() offset:TensorUtils::getDescribe(input)->extra.offset atIndex:0]; - [encoder setBuffer:(id)((MetalRuntimeAllocator::MetalBufferAlloc *)output->deviceId())->getBuffer() offset:TensorUtils::getDescribe(output)->extra.offset atIndex:1]; - [encoder setBuffer:mSlope offset:0 atIndex:2]; + MetalBackend::setTensor(input, encoder, 0); + MetalBackend::setTensor(output, encoder, 1); + MetalBackend::setMem(mSlope, encoder, 2); if (!mShareChannel) { [encoder setBuffer:mShape offset:0 atIndex:3]; } diff --git a/source/backend/metal/MetalRaster.mm b/source/backend/metal/MetalRaster.mm index 7c6f67b1a..6c2a1e256 100644 --- a/source/backend/metal/MetalRaster.mm +++ b/source/backend/metal/MetalRaster.mm @@ -300,6 +300,9 @@ kernel void main0(device int4 *out [[buffer(0)]], auto outputDes = TensorUtils::getDescribe(output); auto des = outputDes; mNeedZero = !TensorUtils::regionIsFull(output); + if (outputDes->dimensionFormat == MNN_DATA_FORMAT_NC4HW4 && output->length(1) % 4 != 0) { + mNeedZero = true; + } auto context = (__bridge MNNMetalContext *)static_cast(backend())->context(); auto mtbn = static_cast(backend()); auto bufferAlloc = mtbn->getStaticBufferPool(); diff --git a/source/backend/metal/MetalScale.hpp b/source/backend/metal/MetalScale.hpp index a4d00b330..2ffb80554 100644 --- a/source/backend/metal/MetalScale.hpp +++ b/source/backend/metal/MetalScale.hpp @@ -13,18 +13,19 @@ #import "MNN_generated.h" #if MNN_METAL_ENABLED +#include "core/BufferAllocator.hpp" namespace MNN { class MetalScale : public MetalExecution { public: MetalScale(Backend *backend, const Scale *scale); - virtual ~MetalScale() = default; + virtual ~MetalScale(); virtual ErrorCode onResize(const std::vector &inputs, const std::vector &outputs) override; virtual void onEncode(const std::vector &inputs, const std::vector &outputs, id encoder) override; private: - id mScale; - id mBias; + MemChunk mScaleBias; + size_t mBiasOffset = 0; id mConst; id mPipeline; std::pair mThreads; diff --git a/source/backend/metal/MetalScale.mm b/source/backend/metal/MetalScale.mm index 4dc1fe5d4..8c377e14c 100755 --- a/source/backend/metal/MetalScale.mm +++ b/source/backend/metal/MetalScale.mm @@ -15,16 +15,33 @@ namespace MNN { MetalScale::MetalScale(Backend *backend, const Scale *scale) : MetalExecution(backend) { - auto context = (__bridge MNNMetalContext *)static_cast(backend)->context(); auto mtbn = static_cast(backend); + auto bufferAlloc = mtbn->getStaticBufferPool(); + auto context = (__bridge MNNMetalContext *)static_cast(backend)->context(); auto channel4 = UP_DIV(scale->channels(), 4) * 4; - mScale = [context newDeviceBuffer:channel4 * sizeof(float) bytes:scale->scaleData()->data() access:CPUWriteOnly]; - mBias = scale->biasData() - ? [context newDeviceBuffer:channel4 * sizeof(float) bytes:scale->biasData()->data() access:CPUWriteOnly] - : [context newDeviceBuffer:channel4 * sizeof(float) access:CPUTransparent]; + mBiasOffset = channel4 / 4; + mScaleBias = bufferAlloc->alloc(2 * channel4 * sizeof(float)); + if (mScaleBias.first == nullptr) { + mValid = false; + return; + } + auto scalePtr = MetalBackend::getMemPtr(mScaleBias); + ::memset(scalePtr, 0, 2 * channel4 * sizeof(float)); + ::memcpy(scalePtr, scale->scaleData()->data(), scale->channels() * sizeof(float)); + auto biasPtr = scalePtr + channel4 * sizeof(float); + if (nullptr != scale->biasData()) { + ::memcpy(biasPtr, scale->biasData()->data(), scale->channels() * sizeof(float)); + } mConst = [context newDeviceBuffer:4 * sizeof(int) access:CPUWriteOnly]; mPipeline = [context pipelineWithName:@"scale_ca" fp16:mtbn->useFp16InsteadFp32()]; } +MetalScale::~MetalScale() { + auto mtbn = static_cast(backend()); + auto bufferAlloc = mtbn->getStaticBufferPool(); + if (nullptr != mScaleBias.first) { + bufferAlloc->free(mScaleBias); + } +} ErrorCode MetalScale::onResize(const std::vector &inputs, const std::vector &outputs) { auto backend = static_cast(this->backend()); @@ -39,6 +56,7 @@ ((int *)mConst.contents)[0] = w*h; ((int *)mConst.contents)[1] = z; ((int *)mConst.contents)[2] = output->batch(); + ((int *)mConst.contents)[3] = mBiasOffset; mThreads = [context computeBestGroupAndLocal:mPipeline threads:MTLSizeMake(w*h, z * outputs[0]->batch(), 1)]; return NO_ERROR; } @@ -46,11 +64,10 @@ void MetalScale::onEncode(const std::vector &inputs, const std::vector &outputs, id encoder) { auto input = inputs[0], output = outputs[0]; [encoder setComputePipelineState:mPipeline]; - [encoder setBuffer:(id)((MetalRuntimeAllocator::MetalBufferAlloc *)input->deviceId())->getBuffer() offset:TensorUtils::getDescribe(input)->extra.offset atIndex:0]; - [encoder setBuffer:(id)((MetalRuntimeAllocator::MetalBufferAlloc *)output->deviceId())->getBuffer() offset:TensorUtils::getDescribe(output)->extra.offset atIndex:1]; + MetalBackend::setTensor(input, encoder, 0); + MetalBackend::setTensor(output, encoder, 1); [encoder setBuffer:mConst offset:0 atIndex:2]; - [encoder setBuffer:mScale offset:0 atIndex:3]; - [encoder setBuffer:mBias offset:0 atIndex:4]; + MetalBackend::setMem(mScaleBias, encoder, 3); [encoder dispatchThreadgroups:mThreads.first threadsPerThreadgroup:mThreads.second]; } diff --git a/source/backend/metal/MetalUnary.mm b/source/backend/metal/MetalUnary.mm index 83766fe92..f4ce7655d 100755 --- a/source/backend/metal/MetalUnary.mm +++ b/source/backend/metal/MetalUnary.mm @@ -14,7 +14,7 @@ #if MNN_METAL_ENABLED namespace MNN { -static const char* gBinaryTemplate = R"metal( +static const char* gUnaryTemplate = R"metal( #include #include using namespace metal; @@ -162,7 +162,7 @@ kernel void main0(const device T *in [[buffer(0)]], \ @"T" : T, @"FUNC" : kernel, }; - pipeline = mtbn->makeComputePipelineWithSourceOption(gBinaryTemplate, "main0", compileOptions); + pipeline = mtbn->makeComputePipelineWithSourceOption(gUnaryTemplate, "main0", compileOptions); mtbn->runtime()->insertPipeline(keys, pipeline); } if (nil == pipeline) { diff --git a/source/backend/metal/shader/MetalConvolution.metal b/source/backend/metal/shader/MetalConvolution.metal index f4302184c..fcce1f789 100644 --- a/source/backend/metal/shader/MetalConvolution.metal +++ b/source/backend/metal/shader/MetalConvolution.metal @@ -222,7 +222,7 @@ kernel void conv_s1d1p0_w2(const device ftype4 *in [[buffer(0)]], wt4 = z_wt[z * cst.kernel_size + y * cst.kernel_x + x]; result0 += FLOAT4(in4_0 * wt4); } - in4_0 = z_in[z * cst.input_size + y * cst.input_width + cst.kernel_x]; + in4_0 = z_in[z * cst.input_size * cst.batch + y * cst.input_width + cst.kernel_x]; result1 += FLOAT4(in4_0 * wt4); } } @@ -336,16 +336,16 @@ kernel void conv_z4(const device ftype4 *in [[buffer(0)]], auto x_wt = z_wt + y * cst.kernel_x + x; auto in4 = z_in[ y * dilation_h + x * cst.dilation_x]; /* true */ result0 += FLOAT4(in4 * *x_wt); - if (valids[0]) { x_wt += ws; result1 += FLOAT4(in4 * *x_wt); } - if (valids[1]) { x_wt += ws; result2 += FLOAT4(in4 * *x_wt); } - if (valids[2]) { x_wt += ws; result3 += FLOAT4(in4 * *x_wt); } + if (valids.x) { x_wt += ws; result1 += FLOAT4(in4 * *x_wt); } + if (valids.y) { x_wt += ws; result2 += FLOAT4(in4 * *x_wt); } + if (valids.z) { x_wt += ws; result3 += FLOAT4(in4 * *x_wt); } } } } /* true */ *z_out = activate(ftype4(result0 + FLOAT4(biasTerms[uz[0]])), cst.activation); - if (valids[0]) { z_out += cst.output_size; *z_out = activate(ftype4(result1 + FLOAT4(biasTerms[uz[1]])), cst.activation); } - if (valids[1]) { z_out += cst.output_size; *z_out = activate(ftype4(result2 + FLOAT4(biasTerms[uz[2]])), cst.activation); } - if (valids[2]) { z_out += cst.output_size; *z_out = activate(ftype4(result3 + FLOAT4(biasTerms[uz[3]])), cst.activation); } + if (valids.x) { z_out += cst.output_size * cst.batch; *z_out = activate(ftype4(result1 + FLOAT4(biasTerms[uz[1]])), cst.activation); } + if (valids.y) { z_out += cst.output_size * cst.batch; *z_out = activate(ftype4(result2 + FLOAT4(biasTerms[uz[2]])), cst.activation); } + if (valids.z) { z_out += cst.output_size * cst.batch; *z_out = activate(ftype4(result3 + FLOAT4(biasTerms[uz[3]])), cst.activation); } } diff --git a/source/backend/metal/shader/MetalConvolution1x1.metal b/source/backend/metal/shader/MetalConvolution1x1.metal index 090b57415..37b1996be 100644 --- a/source/backend/metal/shader/MetalConvolution1x1.metal +++ b/source/backend/metal/shader/MetalConvolution1x1.metal @@ -1,26 +1,6 @@ #define CONV_UNROLL (4) #define CONV_UNROLL_L (8) -#define INIT_SIMDGROUP_MATRIX(a, b, d) \ - simdgroup_T8x8 sga[a];\ - simdgroup_T8x8 sgb[b];\ - simdgroup_T8x8 sgd[d];\ - for (int i = 0; i < d; i++){\ - sgd[i] = make_filled_simdgroup_matrix(0.f);\ - } - -#define SIMDGROUP_MATRIX_FMA(a, b) \ - for(int j=0; j 3) {xy_out[3] = activate(ftype4(result3), cst.activation); } } -kernel void conv1x1_z4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device ftype4x4 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - uint3 gid[[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - if ((int)gid.x >= cst.output_size || (int)gid.y >= cst.output_slice || (int)gid.z >= cst.batch) return; - - int rx = gid.x; - int uz = gid.y; - auto xy_wt = wt + uz * cst.input_slice; - auto xy_in0 = in + (int)gid.z * cst.input_size + rx + 0; - auto xy_out = out + (int)gid.z * cst.output_size + uz * cst.output_size * cst.batch + rx; - auto biasValue = FLOAT4(biasTerms[uz]); - FLOAT4 result0 = 0; - int computeSize = min(cst.output_size - rx, CONV_UNROLL); - - for (auto z = tiisg; z < cst.input_slice; z+SIMD_GROUP_WIDTH) { - auto in40 = *xy_in0; - auto w = xy_wt[z]; - - result0 += FLOAT4(in40 * w); - xy_in0 += cst.input_size * cst.batch; - } - result0 = simd_sum(result0); - - *xy_out = activate(ftype4(result0 + biasValue), cst.activation); -} - kernel void conv1x1_g1z4_w8(const device ftype4 *in [[buffer(0)]], device ftype4 *out [[buffer(1)]], constant conv1x1_constants& cst [[buffer(2)]], @@ -154,445 +103,6 @@ kernel void conv1x1_g1z4_w8(const device ftype4 *in [[buffer(0)]], } -kernel void conv1x1_gemm_16x16_w4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device uchar2 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - const device ftype4 *dequantScale [[buffer(5)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiitg[[thread_index_in_threadgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - /* - // Read: - ftype 0~127 ---> input: [M16, K8] - ftype 128~255 ---> input: [K8, N16] - // Write: - ftype 0~255 ---> input: [N2, M2, M8, N8] - */ - threadgroup FLOAT4 sdata[256] = {0.f}; - - INIT_SIMDGROUP_MATRIX(2, 2, 4); - - int rx = gid.x;// M/16 - int uz = gid.y;// N/16 - - int kl = tiitg / 16; - int rcl = tiitg % 16; -// int kl = tiitg % 2; -// int rcl = tiitg / 2; - - // boundary limit - int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); - int idx_m = (16 * rx + rcl) < cst.input_size * cst.batch ? (16 * rx + rcl) : (cst.input_size * cst.batch - 1); - - auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] - auto xy_in0 = in + idx_m + cst.input_size * cst.batch * kl;// [K/4, M, K4] - auto xy_out = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m;// [N/4, M, N4] - - int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; - for (int bi=0; bi> 4) - 8, (float)(w_int40[0] & 15) - 8, (float)(w_int40[1] >> 4) - 8, (float)(w_int40[1] & 15) - 8); - - FLOAT4 res = w40 * scale[rcl % 4] + dequant_bias[rcl % 4]; - ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 0) * 16 + rcl] = res[0]; - ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 1) * 16 + rcl] = res[1]; - ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 2) * 16 + rcl] = res[2]; - ((threadgroup FLOAT*)sdata)[256 * i + 128 + (kl * 4 + 3) * 16 + rcl] = res[3]; - } - threadgroup_barrier(mem_flags::mem_threadgroup); - - #pragma unroll(4) - for(int i = 0; i < 4; i++) { - simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata + 256*i, 8); - simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64 + 256*i, 8); - simdgroup_barrier(mem_flags::mem_none); - - simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 128 + 256*i, 16); - simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 136 + 256*i, 16); - - SIMDGROUP_MATRIX_FMA(2, 2); - } - threadgroup_barrier(mem_flags::mem_threadgroup); - } - } - - SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 4); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - if((16 * rx + rcl) < cst.input_size * cst.batch) { - if((4 * uz + 2 * kl) < cst.output_slice) { - xy_out[0] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); - } - if((4 * uz + 2 * kl + 1) < cst.output_slice) { - xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - } -} - -kernel void conv1x1_gemm_32x16_w4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device uchar2 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - const device ftype4 *dequantScale [[buffer(5)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiitg[[thread_index_in_threadgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - /* - // Read: - ftype 0~255 ---> input: [M32, K8] - ftype 256~383 ---> input: [K8, N16] - // Write: - ftype 0~511 ---> input: [N2, M4, M8, N8] - */ - threadgroup FLOAT4 sdata[128] = {0.f}; - - INIT_SIMDGROUP_MATRIX(4, 2, 8); - - int rx = gid.x;// M/32 - int uz = gid.y;// N/16 - - int kl = tiitg % 2; - int rcl = tiitg / 2; - - const int size_m = cst.input_size * cst.batch; - - // boundary limit - int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); - int idx_m0 = (16 * rx + rcl) < size_m ? (16 * rx + rcl) : (size_m - 1); - int idx_m1 = (16 * rx + rcl) + size_m / 2 < size_m ? (16 * rx + rcl) + size_m / 2: (size_m - 1); - - auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] - auto xy_in0 = in + idx_m0 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] - auto xy_in1 = in + idx_m1 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] - - auto xy_out0 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m0;// [N/4, M, N4] - auto xy_out1 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m1;// [N/4, M, N4] - - int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; - for (int bi=0; bi> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); - FLOAT4 res = w4 * scale[rcl % 4] + dequant_bias[rcl % 4]; - // sdata[32 + 2* rcl + kl] = res; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 0) * 16 + rcl] = res[0]; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 1) * 16 + rcl] = res[1]; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 2) * 16 + rcl] = res[2]; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 3) * 16 + rcl] = res[3]; - - threadgroup_barrier(mem_flags::mem_threadgroup); - - simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); - simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); - simdgroup_load(sga[2], ((const threadgroup FLOAT*)sdata) + 128, 8); - simdgroup_load(sga[3], ((const threadgroup FLOAT*)sdata) + 192, 8); - - // simdgroup_load(sgb[0], (const threadgroup FLOAT*)sdata + 128, 8, 0, true); - // simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 192, 8, 0, true); - simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 256, 16); - simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 264, 16); - - SIMDGROUP_MATRIX_FMA(4, 2); - threadgroup_barrier(mem_flags::mem_threadgroup); - - xy_in0 += 2 * cst.input_size * cst.batch; - xy_in1 += 2 * cst.input_size * cst.batch; - - } - } - - SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 8); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - if((16 * rx + rcl) < size_m) { - if((4 * uz + 2 * kl) < cst.output_slice) { - xy_out0[0] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); - } - if((4 * uz + 2 * kl + 1) < cst.output_slice) { - xy_out0[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - } - if((16 * rx + rcl) + size_m / 2 < size_m) { - if((4 * uz + 2 * kl) < cst.output_slice) { - xy_out1[0] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); - } - if((4 * uz + 2 * kl + 1) < cst.output_slice) { - xy_out1[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - } -} - -kernel void conv1x1_gemm_16x32_w4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device uchar2 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - const device ftype4 *dequantScale [[buffer(5)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiitg[[thread_index_in_threadgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - /* - // Read: - ftype 0~127 ---> input: [M16, K8] - ftype 128~383 ---> input: [K8, N32] - // Write: - ftype 0~511 ---> input: [N2, N2, M2, M8, N8] - */ - threadgroup FLOAT4 sdata[128] = {0.f}; - - INIT_SIMDGROUP_MATRIX(2, 4, 8); - - int rx = gid.x;// M/16 - int uz = gid.y;// N/32 - - int kl = tiitg % 2; - int rcl = tiitg / 2; - - // boundary limit - int idx_n40 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); - int idx_n41 = (4 * uz + rcl / 4) + cst.output_slice / 2 < cst.output_slice ? (4 * uz + rcl / 4) + cst.output_slice / 2 : (cst.output_slice - 1); - - int idx_m = (16 * rx + rcl) < cst.input_size * cst.batch ? (16 * rx + rcl) : (cst.input_size * cst.batch - 1); - - auto xy_wt0 = wt + (idx_n40 * cst.input_slice + 0) * 4 + (rcl % 4);// [N2, N/8, K/4, N4, K4] - auto xy_wt1 = wt + (idx_n41 * cst.input_slice + 0) * 4 + (rcl % 4);// [N2, N/8, K/4, N4, K4] - - auto xy_in0 = in + idx_m + cst.input_size * cst.batch * kl;// [K/4, M, K4] - auto xy_out = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m;// [N2, N/8, M, N4] - - int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; - for (int bi=0; bi> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); - FLOAT4 res = w4 * scale0[rcl % 4] + dequant_bias0[rcl % 4]; - // sdata[32 + 2* rcl + kl] = res; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 0) * 32 + rcl] = res[0]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 1) * 32 + rcl] = res[1]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 2) * 32 + rcl] = res[2]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 3) * 32 + rcl] = res[3]; - } - { - uchar2 w_int4 = xy_wt1[4*z]; // [N/4, K/4, N4, K4] - FLOAT4 w4 = FLOAT4((float)(w_int4[0] >> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); - FLOAT4 res = w4 * scale1[rcl % 4] + dequant_bias1[rcl % 4]; - // sdata[32 + 2* rcl + kl] = res; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 0) * 32 + 16 + rcl] = res[0]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 1) * 32 + 16 + rcl] = res[1]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 2) * 32 + 16 + rcl] = res[2]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 3) * 32 + 16 + rcl] = res[3]; - } - threadgroup_barrier(mem_flags::mem_threadgroup); - - simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); - simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); - - simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 128, 32); - simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 136, 32); - simdgroup_load(sgb[2], ((const threadgroup FLOAT*)sdata) + 144, 32); - simdgroup_load(sgb[3], ((const threadgroup FLOAT*)sdata) + 152, 32); - - SIMDGROUP_MATRIX_FMA(2, 4); - threadgroup_barrier(mem_flags::mem_threadgroup); - - xy_in0 += 2 * cst.input_size * cst.batch; - - } - } - - SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 8); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - if((16 * rx + rcl) < cst.input_size * cst.batch) { - if(4 * uz + 2 * kl < cst.output_slice) { - xy_out[0] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl])), cst.activation); - } - if(4 * uz + 2 * kl + 1 < cst.output_slice) { - xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - if(cst.output_slice / 2 + 4 * uz + 2 * kl < cst.output_slice) { - xy_out[cst.output_slice / 2 * cst.output_size * cst.batch] = activate(ftype4(sdata[((kl + 2) * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[cst.output_slice / 2 + 4 * uz + 2 * kl])), cst.activation); - } - if(cst.output_slice / 2 + 4 * uz + 2 * kl + 1 < cst.output_slice) { - xy_out[(cst.output_slice / 2 + 1) * cst.output_size * cst.batch] = activate(ftype4(sdata[((kl + 2) * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[cst.output_slice / 2 + 4 * uz + 2 * kl + 1])), cst.activation); - } - } -} - - -kernel void conv1x1_gemm_32x64_w4_sg(const device ftype2 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device uchar2 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - const device ftype4 *dequantScale [[buffer(5)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiitg[[thread_index_in_threadgroup]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - /* - // Read: - ftype 0~255 ---> input: [M32, K8] - ftype 256~767 ---> weight: [K8, N64] - // Write: - ftype 0~2047 ---> input: [M2, N2, N2, N2, M2, M8, N8] - */ - threadgroup FLOAT4 sdata[512] = {0.f}; - - INIT_SIMDGROUP_MATRIX(2, 4, 8); - - int rx = gid.x;// M/32 - int uz = gid.y;// N/64 - - int kl = tiitg % 2;// 0~1 -> inner K - int rcl = tiitg / 2;// 0~63 - int ko = rcl % 2;// 0~1 -> outter K - int ml = rcl / 2;// 0~31 -> m - int ni = rcl % 4;// 0~3 -> inner N - int no = rcl / 4;// 0~15 -> outter N - - /** input: - threadgroup: [M32, K8] - each thread: K2 - layout: [K/4, M, K4] -> [K/8, K2, M/32, M32, K2, K2] - index : [K/8, ko, rx, ml, kl, K2] - */ - /** weight: - threadgroup: [K8, N64] - each thread: K4 - layout: [N/4, K/4, N4, K4] -> [N/64, N16, K/8, K2, N4, K4] - index : [uz, no, K/8, kl, ni, K4] - */ - /** output: - threadgroup: [M32, N64] - each thread: M4N4 - layout: [N/4, M, N4] -> [N/16, N4, M, N4] - index : [uz*4+(2*ko+kl), N4, idx_m, N4] - */ - - // boundary limit - - int idx_n40 = (uz * 16 + no) < cst.output_slice ? (uz * 16 + no) : (cst.output_slice - 1); - int idx_m = (rx * 32 + ml) < cst.input_size * cst.batch ? (rx * 32 + ml) : (cst.input_size * cst.batch - 1); - - auto xy_wt0 = wt + ((idx_n40 * cst.input_slice / 2 + 0) * 2 + kl) * 4 + ni;// [N/4, K/4, N4, K4] - - auto xy_in0 = in + ((0 * 2 + ko) * cst.input_size * cst.batch + idx_m) * 2 + kl;// [K/4, M, K2, K2] - auto xy_out = out + ((4 * uz + 2 * ko + kl) * 4 + 0) * cst.output_size * cst.batch + idx_m;// [N2, N/8, M, N4] - - const int idx_sa = ml * 8 + ko * 4 + kl * 2; - const int idx_sb = 256 + (kl * 4 + 0) * 64 + rcl; - int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; - for (int bi=0; bi> 4) - 8, (float)(w_int4[0] & 15) - 8, (float)(w_int4[1] >> 4) - 8, (float)(w_int4[1] & 15) - 8); - FLOAT4 res = w4 * scale0[ni] + dequant_bias0[ni]; - // sdata[32 + 2* rcl + kl] = res; - ((threadgroup FLOAT*)sdata)[idx_sb] = res[0]; - ((threadgroup FLOAT*)sdata)[idx_sb + 64] = res[1]; - ((threadgroup FLOAT*)sdata)[idx_sb + 128] = res[2]; - ((threadgroup FLOAT*)sdata)[idx_sb + 192] = res[3]; - } - threadgroup_barrier(mem_flags::mem_threadgroup); - - - const threadgroup FLOAT * sdata_a = (const threadgroup FLOAT*)sdata + 16*8*(sgitg/2); - const threadgroup FLOAT * sdata_b = (const threadgroup FLOAT*)sdata + 32*8 + 32*(sgitg%2); - - simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata_a, 8); - simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata_a) + 64, 8); - - simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata_b) + 0, 64); - simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata_b) + 8, 64); - simdgroup_load(sgb[2], ((const threadgroup FLOAT*)sdata_b) + 16, 64); - simdgroup_load(sgb[3], ((const threadgroup FLOAT*)sdata_b) + 24, 64); - - SIMDGROUP_MATRIX_FMA(2, 4); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - xy_in0 += 4 * cst.input_size * cst.batch; - } - } - - threadgroup FLOAT * sdata_c = (threadgroup FLOAT*)sdata + 512*sgitg; - - SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata_c, 8); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - // sdata [M2, N2, N2, N2, M2, M8, N8] - // index [ml/16, ko, kl, N2, (ml/8)%2, ml%8, N2, N4] - if((rx * 32 + ml) < cst.input_size * cst.batch) { - if((4 * uz + 2 * ko + kl) * 4 < cst.output_slice) { - xy_out[0] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 0) * 16 + ml % 16) * 2] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4])), cst.activation); - } - if((4 * uz + 2 * ko + kl) * 4 + 1 < cst.output_slice) { - xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 0) * 16 + ml % 16) * 2 + 1] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4 + 1])), cst.activation); - } - if((4 * uz + 2 * ko + kl) * 4 + 2 < cst.output_slice) { - xy_out[cst.output_size * cst.batch * 2] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 1) * 16 + ml % 16) * 2] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4 + 2])), cst.activation); - } - if((4 * uz + 2 * ko + kl) * 4 + 3 < cst.output_slice) { - xy_out[cst.output_size * cst.batch * 3] = activate(ftype4(sdata[(((ml/16 * 4 + 2 * ko + kl) * 2 + 1) * 16 + ml % 16) * 2 + 1] + FLOAT4(biasTerms[(4 * uz + 2 * ko + kl) * 4 + 3])), cst.activation); - } - } -} - kernel void conv1x1_g1z4_w4(const device ftype4 *in [[buffer(0)]], device ftype4 *out [[buffer(1)]], constant conv1x1_constants& cst [[buffer(2)]], @@ -648,144 +158,6 @@ kernel void conv1x1_g1z4_w4(const device ftype4 *in [[buffer(0)]], if (computeSize > 3) {xy_out[3] = activate(ftype4(result3), cst.activation); } } -kernel void conv1x1_gemv_g8_w4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device MNN::uchar4x2 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - const device ftype4 *dequantScale [[buffer(5)]], - uint3 gid[[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - // each threadgroup contain 2 simdgroup - // each simdgroup compute 4 data - int uz = gid.x * 2 + sgitg; - if(uz >= cst.output_slice) { - return; - } - - int rx = gid.y; - auto xy_wt = wt + uz * cst.input_slice; - auto xy_in0 = in + (int)gid.z * cst.input_size + rx + 0; - auto xy_out = out + (int)gid.z * cst.output_size + uz * cst.output_size * cst.batch + rx; - auto biasValue = FLOAT4(biasTerms[uz]); - FLOAT4 result0 = FLOAT4(0); - - int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; - - int middle_step = min(SIMD_GROUP_WIDTH, block); - int outer_step = SIMD_GROUP_WIDTH / middle_step; - int middle_index = (tiisg) % middle_step; - int outer_index = (tiisg) / middle_step; - - for (int bi= outer_index; bi> 4) - 8, (float)(w_int4[i][0] & 15) - 8, (float)(w_int4[i][1] >> 4) - 8, (float)(w_int4[i][1] & 15) - 8); - FLOAT4 res = w4 * scale[i] + dequant_bias[i]; - w_dequant[i] = res; - } - - result0 += FLOAT4(in40 * w_dequant); - - } - } - - FLOAT4 res = simd_sum(result0); - /* true */ - if (tiisg == 0) { - xy_out[0] = activate(ftype4(res + biasValue), cst.activation); - } -} - - - - -kernel void conv1x1_gemv_g16_w4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device MNN::uchar4x2 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - const device ftype4 *dequantScale [[buffer(5)]], - uint3 gid[[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - // each threadgroup contain 2 simdgroup - // each simdgroup compute 8 data - int uz = 2 * (gid.x * 2 + sgitg); - if(uz >= cst.output_slice) { - return; - } - - auto xy_wt = wt + uz * cst.input_slice; - auto xy_in0 = in; - auto xy_out = out + (int)gid.z * cst.output_size + uz; - auto biasValue0 = FLOAT4(biasTerms[uz]); - auto biasValue1 = FLOAT4(biasTerms[uz + 1]); - - FLOAT4 result0 = FLOAT4(0); - FLOAT4 result1 = FLOAT4(0); - - int block = (cst.input_slice + cst.block_size - 1) / cst.block_size; - - int middle_step = min(SIMD_GROUP_WIDTH, block); - int outer_step = SIMD_GROUP_WIDTH / middle_step; - int middle_index = (tiisg) % middle_step; - int outer_index = (tiisg) / middle_step; - - for (int bi= outer_index; bi> 4) - 8, (float)(w_int4[i][0] & 15) - 8, (float)(w_int4[i][1] >> 4) - 8, (float)(w_int4[i][1] & 15) - 8); - FLOAT4 res = w4 * scale0[i] + dequant_bias0[i]; - w_dequant[i] = res; - } - result0 += FLOAT4(in40 * w_dequant); - - w_int4 = xy_wt[cst.input_slice + z]; - for (int i = 0; i < 4; i += 1) { - FLOAT4 w4 = FLOAT4((float)(w_int4[i][0] >> 4) - 8, (float)(w_int4[i][0] & 15) - 8, (float)(w_int4[i][1] >> 4) - 8, (float)(w_int4[i][1] & 15) - 8); - FLOAT4 res = w4 * scale1[i] + dequant_bias1[i]; - w_dequant[i] = res; - } - - result1 += FLOAT4(in40 * w_dequant); - - } - } - - FLOAT4 res0 = simd_sum(result0); - FLOAT4 res1 = simd_sum(result1); - - /* true */ - if (tiisg == 0) { - xy_out[0] = activate(ftype4(res0 + biasValue0), cst.activation); - xy_out[1] = activate(ftype4(res1 + biasValue1), cst.activation); - - } -} - kernel void conv1x1_g1z8(const device ftype4 *in [[buffer(0)]], device ftype4 *out [[buffer(1)]], constant conv1x1_constants& cst [[buffer(2)]], @@ -1034,159 +406,3 @@ kernel void conv1x1_w4c2(const device ftype4 *in [[buffer(0)]], if (widthSize > 3) {xy_out[cst.output_size * cst.batch +3] = activate(ftype4(result7), cst.activation); } } } - -kernel void conv1x1_gemm_16x16_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device ftype4 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiitg[[thread_index_in_threadgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - /* - // Read: - ftype 0~127 ---> input: [M16, K8] - ftype 128~255 ---> input: [K8, N16] - // Write: - ftype 0~255 ---> input: [N2, M2, M8, N8] - */ - threadgroup FLOAT4 sdata[64] = {0.f}; - - INIT_SIMDGROUP_MATRIX(2, 2, 4); - int rx = gid.x;// M/16 - int uz = gid.y;// N/16 - - int kl = tiitg / 16; - int rcl = tiitg % 16; - - // boundary limit - int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); - int idx_m = (16 * rx + rcl) < cst.input_size * cst.batch ? (16 * rx + rcl) : (cst.input_size * cst.batch - 1); - - auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] - auto xy_in0 = in + idx_m + cst.input_size * cst.batch * kl;// [K/4, M, K4] - auto xy_out = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m;// [N/4, M, N4] - - for (int z = kl; z < cst.input_slice; z += 2) { - sdata[2* rcl + kl] = FLOAT4(*xy_in0); - xy_in0 += 2 * cst.input_size * cst.batch; - - FLOAT4 w4 = FLOAT4(xy_wt[4 * z]); // [N/4, K/4, N4, K4] - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 0) * 16 + rcl] = w4[0]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 1) * 16 + rcl] = w4[1]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 2) * 16 + rcl] = w4[2]; - ((threadgroup FLOAT*)sdata)[128 + (kl * 4 + 3) * 16 + rcl] = w4[3]; - - threadgroup_barrier(mem_flags::mem_threadgroup); - - simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); - simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); - simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 128, 16); - simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 136, 16); - - SIMDGROUP_MATRIX_FMA(2, 2); - threadgroup_barrier(mem_flags::mem_threadgroup); - } - - SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 4); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - if((16 * rx + rcl) < cst.input_size * cst.batch) { - if((4 * uz + 2 * kl) < cst.output_slice) { - xy_out[0] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); - } - if((4 * uz + 2 * kl + 1) < cst.output_slice) { - xy_out[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - } -} - - -kernel void conv1x1_gemm_32x16_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant conv1x1_constants& cst [[buffer(2)]], - const device ftype4 *wt [[buffer(3)]], - const device ftype4 *biasTerms [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiitg[[thread_index_in_threadgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - /* - // Read: - ftype 0~255 ---> input: [M32, K8] - ftype 256~383 ---> input: [K8, N16] - // Write: - ftype 0~511 ---> input: [N2, M4, M8, N8] - */ - threadgroup FLOAT4 sdata[128] = {0.f}; - - INIT_SIMDGROUP_MATRIX(4, 2, 8); - - int rx = gid.x;// M/32 - int uz = gid.y;// N/16 - - int kl = tiitg % 2; - int rcl = tiitg / 2; - - const int size_m = cst.input_size * cst.batch; - - // boundary limit - int idx_n4 = (4 * uz + rcl / 4) < cst.output_slice ? (4 * uz + rcl / 4) : (cst.output_slice - 1); - int idx_m0 = (16 * rx + rcl) < size_m ? (16 * rx + rcl) : (size_m - 1); - int idx_m1 = (16 * rx + rcl) + size_m / 2 < size_m ? (16 * rx + rcl) + size_m / 2: (size_m - 1); - - auto xy_wt = wt + (idx_n4 * cst.input_slice + 0) * 4 + rcl % 4;// [N/4, K/4, N4, K4] - auto xy_in0 = in + idx_m0 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] - auto xy_in1 = in + idx_m1 + cst.input_size * cst.batch * kl;// [K/4, M2, M/2, K4] - - auto xy_out0 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m0;// [N/4, M, N4] - auto xy_out1 = out + (4 * uz + 2 * kl) * cst.output_size * cst.batch + idx_m1;// [N/4, M, N4] - - for (int z = kl; z < cst.input_slice; z += 2) { - sdata[2* rcl + kl] = (FLOAT4)*xy_in0; - sdata[32 + 2* rcl + kl] = (FLOAT4)*xy_in1; - - FLOAT4 w4 = FLOAT4(xy_wt[4*z]); // [N/4, K/4, N4, K4] - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 0) * 16 + rcl] = w4[0]; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 1) * 16 + rcl] = w4[1]; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 2) * 16 + rcl] = w4[2]; - ((threadgroup FLOAT*)sdata)[256 + (kl * 4 + 3) * 16 + rcl] = w4[3]; - threadgroup_barrier(mem_flags::mem_threadgroup); - - simdgroup_load(sga[0], (const threadgroup FLOAT*)sdata, 8); - simdgroup_load(sga[1], ((const threadgroup FLOAT*)sdata) + 64, 8); - simdgroup_load(sga[2], ((const threadgroup FLOAT*)sdata) + 128, 8); - simdgroup_load(sga[3], ((const threadgroup FLOAT*)sdata) + 192, 8); - - simdgroup_load(sgb[0], ((const threadgroup FLOAT*)sdata) + 256, 16); - simdgroup_load(sgb[1], ((const threadgroup FLOAT*)sdata) + 264, 16); - - SIMDGROUP_MATRIX_FMA(4, 2); - threadgroup_barrier(mem_flags::mem_threadgroup); - - xy_in0 += 2 * cst.input_size * cst.batch; - xy_in1 += 2 * cst.input_size * cst.batch; - - } - - SIMDGROUP_MATRIX_STORE((threadgroup FLOAT*)sdata, 8); - - threadgroup_barrier(mem_flags::mem_threadgroup); - - if((16 * rx + rcl) < size_m) { - if((4 * uz + 2 * kl) < cst.output_slice) { - xy_out0[0] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); - } - if((4 * uz + 2 * kl + 1) < cst.output_slice) { - xy_out0[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - } - if((16 * rx + rcl) + size_m / 2 < size_m) { - if((4 * uz + 2 * kl) < cst.output_slice) { - xy_out1[0] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 0] + FLOAT4(biasTerms[4 * uz + 2 * kl + 0])), cst.activation); - } - if((4 * uz + 2 * kl + 1) < cst.output_slice) { - xy_out1[cst.output_size * cst.batch] = activate(ftype4(sdata[(kl * 32 + 16 + rcl) * 2 + 1] + FLOAT4(biasTerms[4 * uz + 2 * kl + 1])), cst.activation); - } - } -} diff --git a/source/backend/metal/shader/MetalDefine.metal b/source/backend/metal/shader/MetalDefine.metal index 353aba06e..bcf7aa462 100644 --- a/source/backend/metal/shader/MetalDefine.metal +++ b/source/backend/metal/shader/MetalDefine.metal @@ -5,7 +5,6 @@ using namespace metal; // Macro // ––––––––––––––––––––––––––––––––––––––––––––––––––– -#define SIMD_GROUP_WIDTH 32 // setting SIMD group size is 32 #define UP_DIV(x, y) ( ((x) + (y) - 1) / (y) ) #define ROUND_UP(x, y) ( ((x) + (y) - 1) / (y) * (y) ) @@ -56,7 +55,6 @@ typedef float3x4 FLOAT3x4; typedef float4x2 FLOAT4x2; typedef float4x3 FLOAT4x3; typedef float4x4 FLOAT4x4; -typedef simdgroup_float8x8 simdgroup_T8x8; #else typedef half FLOAT; typedef half2 FLOAT2; @@ -71,7 +69,6 @@ typedef half3x4 FLOAT3x4; typedef half4x2 FLOAT4x2; typedef half4x3 FLOAT4x3; typedef half4x4 FLOAT4x4; -typedef simdgroup_half8x8 simdgroup_T8x8; #endif namespace MNN { diff --git a/source/backend/metal/shader/MetalLayerNorm.metal b/source/backend/metal/shader/MetalLayerNorm.metal index 5ed361a5b..119e6ac06 100644 --- a/source/backend/metal/shader/MetalLayerNorm.metal +++ b/source/backend/metal/shader/MetalLayerNorm.metal @@ -40,48 +40,6 @@ kernel void layernorm_x1(const device ftype *in [[buffer(0)]], } } -kernel void layernorm_x1_sg(const device ftype *in [[buffer(0)]], - device ftype *out [[buffer(1)]], - constant layernorm_constants& cst [[buffer(2)]], - const device float *gamma [[buffer(3)]], - const device float *beta [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - if ((int)gid.x >= cst.inside || (int)gid.y >= cst.outside) { - return; - } - auto in_data = in + gid.y * cst.inside; - auto out_data = out + gid.y * cst.inside; - - float mean; - float sum = 0.0f; - float square_sum = 0.0f; - - for(int i = tiisg; i < cst.inside; i+=SIMD_GROUP_WIDTH) { - sum += in_data[i]; - } - sum = simd_sum(sum); - mean = sum / cst.inside; - - for(int i = tiisg; i < cst.inside; i+=SIMD_GROUP_WIDTH) { - float dis = (in_data[i] - mean); - square_sum += dis * dis; - } - square_sum = simd_sum(square_sum); - - if(tiisg == 0) { - float var = 1.0 / sqrt(square_sum / cst.inside + cst.eps); - - float norm = var * ((float)in_data[gid.x] - mean); - if(cst.has_gamma_beta) { - out_data[gid.x] = (ftype)(norm * gamma[gid.x] + beta[gid.x]); - } else { - out_data[gid.x] = (ftype)(norm); - } - } -} - kernel void layernorm_x4(const device ftype4 *in [[buffer(0)]], device ftype4 *out [[buffer(1)]], constant layernorm_constants& cst [[buffer(2)]], @@ -126,57 +84,6 @@ kernel void layernorm_x4(const device ftype4 *in [[buffer(0)]], } } -kernel void layernorm_x4_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant layernorm_constants& cst [[buffer(2)]], - const device float4 *gamma [[buffer(3)]], - const device float4 *beta [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - if ((int)gid.x >= cst.inside/4 || (int)gid.y >= cst.outside) { - return; - } - auto in_data = in + gid.y * cst.inside/4; - auto out_data = out + gid.y * cst.inside/4; - - float mean; - float sum = 0.0f; - float square_sum = 0.0f; - - for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { - sum += in_data[i].x; - sum += in_data[i].y; - sum += in_data[i].z; - sum += in_data[i].w; - } - sum = simd_sum(sum); - mean = sum / cst.inside; - - for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { - float dis = (in_data[i].x - mean); - square_sum += dis * dis; - dis = (in_data[i].y - mean); - square_sum += dis * dis; - dis = (in_data[i].z - mean); - square_sum += dis * dis; - dis = (in_data[i].w - mean); - square_sum += dis * dis; - } - square_sum = simd_sum(square_sum); - - if(tiisg == 0) { - float var = 1.0 / sqrt(square_sum / cst.inside + cst.eps); - - float4 norm = var * ((float4)in_data[gid.x] - mean); - if(cst.has_gamma_beta) { - out_data[gid.x] = (ftype4)(norm * gamma[gid.x] + beta[gid.x]); - } else { - out_data[gid.x] = (ftype4)(norm); - } - } -} - kernel void layernorm_x1_rms(const device ftype *in [[buffer(0)]], device ftype *out [[buffer(1)]], constant layernorm_constants& cst [[buffer(2)]], @@ -205,41 +112,6 @@ kernel void layernorm_x1_rms(const device ftype *in [[buffer(0)]], } } -kernel void layernorm_x1_rms_sg(const device ftype *in [[buffer(0)]], - device ftype *out [[buffer(1)]], - constant layernorm_constants& cst [[buffer(2)]], - const device float *gamma [[buffer(3)]], - const device float *beta [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - if ((int)gid.x >= cst.inside || (int)gid.y >= cst.outside) { - return; - } - auto in_data = in + gid.y * cst.inside; - auto out_data = out + gid.y * cst.inside; - - float square_sum = 0.0f; - - for(int i = tiisg; i < cst.inside; i+=SIMD_GROUP_WIDTH) { - float dis = in_data[i]; - square_sum += dis * dis; - } - - square_sum = simd_sum(square_sum); - - if(tiisg == 0) { - float var = 1.0 / sqrt(square_sum / cst.inside + cst.eps); - - float norm = var * ((float)in_data[gid.x]); - if(cst.has_gamma_beta) { - out_data[gid.x] = (ftype)(norm * gamma[gid.x] + beta[gid.x]); - } else { - out_data[gid.x] = (ftype)(norm); - } - } -} - kernel void layernorm_x4_rms(const device ftype4 *in [[buffer(0)]], device ftype4 *out [[buffer(1)]], constant layernorm_constants& cst [[buffer(2)]], @@ -273,100 +145,3 @@ kernel void layernorm_x4_rms(const device ftype4 *in [[buffer(0)]], out_data[gid.x] = (ftype4)(norm); } } - -kernel void layernorm_x4_rms_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant layernorm_constants& cst [[buffer(2)]], - const device float4 *gamma [[buffer(3)]], - const device float4 *beta [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - if ((int)gid.x >= cst.inside/4 || (int)gid.y >= cst.outside) { - return; - } - - int in_idx = gid.x; - int out_idx = gid.y; - - auto in_data = in + out_idx * cst.inside/4; - auto out_data = out + out_idx * cst.inside/4; - - float4 square_sum = 0.0f; - float square_sum_all = 0.0f; - for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { - float4 data = float4(in_data[i]); - square_sum += data * data; - } - square_sum_all += (square_sum[0] + square_sum[1] + square_sum[2] + square_sum[3]); - square_sum_all = simd_sum(square_sum_all); - - if(tiisg == 0) { - float var = 1.0 / sqrt(square_sum_all / cst.inside + cst.eps); - - float4 norm = var * ((float4)in_data[in_idx]); - if(cst.has_gamma_beta) { - out_data[in_idx] = (ftype4)(norm * gamma[in_idx] + beta[in_idx]); - } else { - out_data[in_idx] = (ftype4)(norm); - } - } -} - -kernel void layernorm_x16_rms_sg(const device ftype4 *in [[buffer(0)]], - device ftype4 *out [[buffer(1)]], - constant layernorm_constants& cst [[buffer(2)]], - const device float4 *gamma [[buffer(3)]], - const device float4 *beta [[buffer(4)]], - uint3 gid [[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]]) { - int in_idx = gid.x * 4; - int out_idx = gid.y; - - auto in_data = in + out_idx * cst.inside/4; - auto out_data = out + out_idx * cst.inside/4; - - float4 square_sum = 0.0f; - float square_sum_all = 0.0f; - for(int i = tiisg; i < cst.inside/4; i+=SIMD_GROUP_WIDTH) { - float4 data = float4(in_data[i]); - square_sum += data * data; - } - square_sum_all += (square_sum[0] + square_sum[1] + square_sum[2] + square_sum[3]); - square_sum_all = simd_sum(square_sum_all); - float var = 1.0 / sqrt(square_sum_all / cst.inside + cst.eps); - - if(tiisg == 0) { - float4 norm = var * ((float4)in_data[in_idx]); - if(cst.has_gamma_beta) { - out_data[in_idx] = (ftype4)(norm * gamma[in_idx] + beta[in_idx]); - } else { - out_data[in_idx] = (ftype4)(norm); - } - } - if(tiisg == 1 && in_idx + 1 < cst.inside/4) { - float4 norm = var * ((float4)in_data[in_idx+1]); - if(cst.has_gamma_beta) { - out_data[in_idx+1] = (ftype4)(norm * gamma[in_idx+1] + beta[in_idx+1]); - } else { - out_data[in_idx+1] = (ftype4)(norm); - } - } - if(tiisg == 2 && in_idx + 2 < cst.inside/4) { - float4 norm = var * ((float4)in_data[in_idx+2]); - if(cst.has_gamma_beta) { - out_data[in_idx+2] = (ftype4)(norm * gamma[in_idx+2] + beta[in_idx+2]); - } else { - out_data[in_idx+2] = (ftype4)(norm); - } - } - if(tiisg == 3 && in_idx + 3 < cst.inside/4) { - float4 norm = var * ((float4)in_data[in_idx+3]); - if(cst.has_gamma_beta) { - out_data[in_idx+3] = (ftype4)(norm * gamma[in_idx+3] + beta[in_idx+3]); - } else { - out_data[in_idx+3] = (ftype4)(norm); - } - } -} diff --git a/source/backend/metal/shader/MetalScale.metal b/source/backend/metal/shader/MetalScale.metal index ead56d11e..824f7c974 100644 --- a/source/backend/metal/shader/MetalScale.metal +++ b/source/backend/metal/shader/MetalScale.metal @@ -2,17 +2,20 @@ struct scale_shape { int size; int steps; int batch; + int offset; }; kernel void scale_ca(const device ftype4 *in [[buffer(0)]], device ftype4 *out [[buffer(1)]], constant scale_shape &s [[buffer(2)]], - const device float4 *scales [[buffer(3)]], - const device float4 *biasTerms [[buffer(4)]], + const device float4 *scalesbias[[buffer(3)]], uint2 gid [[thread_position_in_grid]]) { if ((int)gid.x >= s.size || (int)gid.y >= s.steps * s.batch) return; int z = gid.y / s.batch; + int offset = s.offset; + float4 scale = scalesbias[z]; + float4 bias = scalesbias[z+offset]; out[int(gid.y) * s.size + int(gid.x)] = - in [int(gid.y) * s.size + int(gid.x)] * ftype4(scales[z]) + ftype4(biasTerms[z]); + (ftype4)((float4)in[int(gid.y) * s.size + int(gid.x)] * scale + bias); } diff --git a/source/backend/metal/shader/MetalSoftmax.metal b/source/backend/metal/shader/MetalSoftmax.metal index 7bed37c00..98e6db6d2 100644 --- a/source/backend/metal/shader/MetalSoftmax.metal +++ b/source/backend/metal/shader/MetalSoftmax.metal @@ -17,42 +17,6 @@ static inline float4 softmax_filter(float4 value, int z, int limit) { return select(0, value, z * 4 + int4(0, 1, 2, 3) < limit); } - -kernel void softmax_plane_sg(const device ftype *in [[buffer(0)]], - device ftype *out [[buffer(1)]], - constant softmax_shape& s [[buffer(2)]], - uint2 gid[[threadgroup_position_in_grid]], - uint tiisg[[thread_index_in_simdgroup]], - uint sgitg[[simdgroup_index_in_threadgroup]] - ) { - // threadgroup contain one simdgroup - // simdgroup compute axis data - if ((int)gid.x >= s.inside_size || (int)gid.y >= s.outside_size) return; - - auto axis_off = gid.y * s.axis_length * s.inside_size + gid.x; - auto axis_in = in + axis_off; - auto axis_out = out + axis_off; - - // get max - float max1 = -INFINITY; - for (int i = tiisg; i < s.axis_length; i+=SIMD_GROUP_WIDTH) { - max1 = max(max1, float(axis_in[i * s.inside_size])); - } - max1 = simd_max(max1); - - // get sum - float sum1 = 0; - for (int i = tiisg; i < s.axis_length; i+=SIMD_GROUP_WIDTH) { - sum1 += exp(float(axis_in[i * s.inside_size]) - float(max1)); - } - sum1 = simd_sum(sum1); - - // output - for (int i = tiisg; i < s.axis_length; i+=SIMD_GROUP_WIDTH) { - axis_out[i * s.inside_size] = ftype(exp(float(axis_in[i * s.inside_size]) - float(max1)) / sum1); - } -} - kernel void softmax_plane(const device ftype *in [[buffer(0)]], device ftype *out [[buffer(1)]], constant softmax_shape& s [[buffer(2)]], diff --git a/source/backend/nnapi/execution/NNAPIUnary.cpp b/source/backend/nnapi/execution/NNAPIUnary.cpp index 09599917a..7cccbae37 100644 --- a/source/backend/nnapi/execution/NNAPIUnary.cpp +++ b/source/backend/nnapi/execution/NNAPIUnary.cpp @@ -40,7 +40,7 @@ ErrorCode NNAPIUnary::onResize(const std::vector &inputs, const std::v {UnaryOpOperation_FLOOR, ANEURALNETWORKS_FLOOR}, {UnaryOpOperation_ROUND, -1}, {UnaryOpOperation_SIGN, -1}, - {UnaryOpOperation_SIGMOID, -1}, + {UnaryOpOperation_SIGMOID, ANEURALNETWORKS_LOGISTIC}, {UnaryOpOperation_LOG1P, -1}, {UnaryOpOperation_SQUARE, -1}, {UnaryOpOperation_NEG, ANEURALNETWORKS_NEG}, diff --git a/source/backend/opencl/core/OpenCLGemmTune.cpp b/source/backend/opencl/core/OpenCLGemmTune.cpp index 90a0d7400..be1c6ec04 100644 --- a/source/backend/opencl/core/OpenCLGemmTune.cpp +++ b/source/backend/opencl/core/OpenCLGemmTune.cpp @@ -204,17 +204,61 @@ std::vector getGemmParams(const std::vector &gemmSize, const return tunedGemmParams[info]; } + auto getMaxDivisor = [](uint32_t num) -> uint32_t { + std::vector divisors = {128, 64, 32}; + for (const auto& divisor : divisors) { + if (num % divisor == 0) { + return divisor; + } + } + return 16; + }; + // top gpu device and large computation + if(runtime->getGpuLevel() >= MEDIUM){ + // total computation + auto compute_ratio = 1.0 * gemmSize[4] * gemmSize[0] / 256.0 * gemmSize[1] / 256.0 * gemmSize[2] / 256.0; + auto thread_ratio = 1.0 * gemmSize[4] * gemmSize[0] / 256.0 * gemmSize[1] / 256.0; + + // each dimension is even + bool is_even = gemmSize[0] >= 256 && gemmSize[1] >= 128 && gemmSize[2] >= 128; + is_even |= gemmSize[1] >= 128 && gemmSize[2] >= 128 && gemmSize[4] >= 4; + bool is_div = gemmSize[0] % 64 == 0 && gemmSize[1] % 32 == 0; + if(compute_ratio >= 1.0 && thread_ratio >= 1.0 && is_even && is_div) { + int maxDivsorM = getMaxDivisor(gemmSize[0]); + int maxDivsorN = getMaxDivisor(gemmSize[1]); + maxDivsorM = maxDivsorM > 64 ? 64 : maxDivsorM; + maxDivsorN = maxDivsorN > 32 ? 32 : maxDivsorN; + std::vector params_prefer = {16, 2, 16, 16, 64, 8, 8, 32, 0, 0, 0, 0, 4, 4}; + params_prefer[2] = maxDivsorM / 4; + params_prefer[3] = maxDivsorM / 4; + params_prefer[4] = maxDivsorM; + params_prefer[5] = maxDivsorN / 4; + params_prefer[6] = maxDivsorN / 4; + params_prefer[7] = maxDivsorN; + + return params_prefer; + } + } if(runtime->getGpuLevel() == TOP && (runtime->getCLTuneLevel() == None || runtime->getCLTuneLevel() == Fast)) { // total computation - auto compute_ratio = 1.0 * gemmSize[4] * gemmSize[0] / 1024.0 * gemmSize[1] / 1024.0 * gemmSize[2] / 1024.0; - auto thread_ratio = 1.0 * gemmSize[4] * gemmSize[0] / 1024.0 * gemmSize[1] / 1024.0; + auto compute_ratio = 1.0 * gemmSize[4] * gemmSize[0] / 512.0 * gemmSize[1] / 512.0 * gemmSize[2] / 512.0; + auto thread_ratio = 1.0 * gemmSize[4] * gemmSize[0] / 512.0 * gemmSize[1] / 512.0; // each dimension is even - bool is_even = gemmSize[0] >= 512 && gemmSize[1] >= 256; - bool is_div = gemmSize[0] % 128 == 0 && gemmSize[1] % 128 == 0; - if(compute_ratio >= 2.0 && thread_ratio >= 2.0 && is_even && is_div) { - return {16, 2, 16, 16, 128, 16, 16, 128, 0, 0, 0, 0, 8, 8}; + bool is_even = gemmSize[0] >= 512 && gemmSize[1] >= 256 && gemmSize[2] >= 256; + is_even |= gemmSize[1] >= 128 && gemmSize[2] >= 128 && gemmSize[4] >= 4; + bool is_div = gemmSize[0] % 64 == 0 && gemmSize[1] % 64 == 0; + if(compute_ratio >= 1.0 && thread_ratio >= 1.0 && is_even && is_div) { + int maxDivsorM = getMaxDivisor(gemmSize[0]); + int maxDivsorN = getMaxDivisor(gemmSize[1]); + std::vector params_prefer = {16, 2, 16, 16, 128, 16, 16, 128, 0, 0, 0, 0, 8, 8}; + params_prefer[4] = maxDivsorM; + params_prefer[7] = maxDivsorN; + params_prefer[12] = maxDivsorM / 16; + params_prefer[13] = maxDivsorN / 16; + + return params_prefer; } } std::vector tuneLwsRes; @@ -232,15 +276,6 @@ std::vector getGemmParams(const std::vector &gemmSize, const } if(runtime->getCLTuneLevel() == None) { - auto getMaxDivisor = [](uint32_t num) -> uint32_t { - std::vector divisors = {128, 64, 32}; - for (const auto& divisor : divisors) { - if (num % divisor == 0) { - return divisor; - } - } - return 16; - }; float multiNum = 1.0 * gemmSize[0] / 512.0 * gemmSize[1] / 512.0 * gemmSize[2] / 512.0; int maxDivsorM = getMaxDivisor(gemmSize[0]); int maxDivsorN = getMaxDivisor(gemmSize[1]); diff --git a/source/backend/opencl/core/runtime/OpenCLRuntime.cpp b/source/backend/opencl/core/runtime/OpenCLRuntime.cpp index 9fc109e59..b21c7859b 100644 --- a/source/backend/opencl/core/runtime/OpenCLRuntime.cpp +++ b/source/backend/opencl/core/runtime/OpenCLRuntime.cpp @@ -66,25 +66,25 @@ OpenCLRuntime::OpenCLRuntime(const BackendConfig::PrecisionMode precision, const const std::string deviceName = mFirstGPUDevicePtr->getInfo(); mDeviceName = deviceName; const std::string deviceVersion = mFirstGPUDevicePtr->getInfo(); - std::map maliArMap { - {"Mali-T860", MIDGARD}, - {"Mali-T880", MIDGARD}, - {"Mali-G31", BIFROST}, - {"Mali-G51", BIFROST}, - {"Mali-G52", BIFROST}, - {"Mali-G71", BIFROST}, - {"Mali-G72", BIFROST}, - {"Mali-G76", BIFROST}, - {"Mali-G57", VALHALL}, - {"Mali-G68", VALHALL}, - {"Mali-G77", VALHALL}, - {"Mali-G78", VALHALL}, - {"Mali-G310", VALHALL}, - {"Mali-G510", VALHALL}, - {"Mali-G610", VALHALL}, - {"Mali-G615", VALHALL}, - {"Mali-G710", VALHALL}, - {"Mali-G715", VALHALL}, + std::map> maliArMap { + {"Mali-T860", {MIDGARD, LOW}}, + {"Mali-T880", {MIDGARD, LOW}}, + {"Mali-G31", {BIFROST, LOW}}, + {"Mali-G51", {BIFROST, LOW}}, + {"Mali-G52", {BIFROST, LOW}}, + {"Mali-G71", {BIFROST, LOW}}, + {"Mali-G72", {BIFROST, LOW}}, + {"Mali-G76", {BIFROST, MEDIUM}}, + {"Mali-G57", {VALHALL, LOW}}, + {"Mali-G68", {VALHALL, LOW}}, + {"Mali-G77", {VALHALL, MEDIUM}}, + {"Mali-G78", {VALHALL, MEDIUM}}, + {"Mali-G310", {VALHALL, LOW}}, + {"Mali-G510", {VALHALL, LOW}}, + {"Mali-G610", {VALHALL, LOW}}, + {"Mali-G615", {VALHALL, LOW}}, + {"Mali-G710", {VALHALL, TOP}}, + {"Mali-G715", {VALHALL, TOP}}, }; const std::string deviceVendor = mFirstGPUDevicePtr->getInfo(); @@ -136,9 +136,11 @@ OpenCLRuntime::OpenCLRuntime(const BackendConfig::PrecisionMode precision, const } else if (deviceName.find("Mali") != std::string::npos) { mGpuType = MALI; if(maliArMap.find(deviceName) != maliArMap.end()){ - mMaliAr = maliArMap[deviceName]; + mMaliAr = maliArMap[deviceName].first; + mGpuLevel = maliArMap[deviceName].second; }else{ mMaliAr = VALHALL; + mGpuLevel = UNDEFINED; } } else if (deviceVendor.find("Advanced Micro Devices") != std::string::npos) { // Radeon series GPU is main product of Advanced Micro Devices (AMD) diff --git a/source/backend/opencl/execution/buffer/AttentionBufExecution.cpp b/source/backend/opencl/execution/buffer/AttentionBufExecution.cpp index 2c6f4a237..e252418b9 100644 --- a/source/backend/opencl/execution/buffer/AttentionBufExecution.cpp +++ b/source/backend/opencl/execution/buffer/AttentionBufExecution.cpp @@ -113,7 +113,7 @@ ErrorCode AttentionBufExecution::longPrefillResize(const std::vector & mKVCacheCLManager->setArgs(seq_len, numHead, kvNumHead, headDim); mKVCacheCLManager->allocKVCache(); mKv_seq_len = mKVCacheCLManager->kvLength(); - int max_len = ROUND_UP(mKVCacheCLManager->maxLength(), 4); + mKeyValueMaxlen = ROUND_UP(mKVCacheCLManager->maxLength(), 4); mAlignQ = 128; mAlignKV = 128; mAlignHDK = 4; @@ -173,7 +173,7 @@ ErrorCode AttentionBufExecution::longPrefillResize(const std::vector & int tile[4] = {mAlignQ, mAlignKV, mAlignHDK, mAlignHDN}; int shape[4] = {seq_len, mKv_seq_len, numHead, headDim}; - int param[4] = {group_size, batch, max_len, 0}; + int param[4] = {group_size, batch, 0, 0}; mKernel_rearrange = runtime->buildKernel("attention_buf", "rearrange_qkv", buildOption, inputs[0], outputs[0]); auto maxWorkGroupSize = static_cast(runtime->getMaxWorkGroupSize(mKernel_rearrange)); @@ -197,13 +197,18 @@ ErrorCode AttentionBufExecution::longPrefillResize(const std::vector & ret |= mKernel_rearrange->get().setArg(index++, tile); ret |= mKernel_rearrange->get().setArg(index++, shape); ret |= mKernel_rearrange->get().setArg(index++, param); + ret |= mKernel_rearrange->get().setArg(index++, mKeyValueMaxlen); MNN_CHECK_CL_SUCCESS(ret, "setArg rearrange_qkv"); mLocalWorkSizeRearrg = localWS3DDefault(mGlobalWorkSizeRearrg, maxWorkGroupSize, runtime, "rearrange_qkv", mKernel_rearrange).first; mGlobalWorkSizeRearrg[0] = ROUND_UP(mGlobalWorkSizeRearrg[0], std::max((uint32_t)1, mLocalWorkSizeRearrg[0])); mGlobalWorkSizeRearrg[1] = ROUND_UP(mGlobalWorkSizeRearrg[1], std::max((uint32_t)1, mLocalWorkSizeRearrg[1])); mGlobalWorkSizeRearrg[2] = ROUND_UP(mGlobalWorkSizeRearrg[2], std::max((uint32_t)1, mLocalWorkSizeRearrg[2])); - mOpenCLBackend->recordKernel3d(mKernel_rearrange, mGlobalWorkSizeRearrg, mLocalWorkSizeRearrg); + mRgUpdateInfo.update_kernel_args.push_back({0, 9, sizeof(cl_mem), &(*(mKVCacheCLManager->key()))()}); + mRgUpdateInfo.update_kernel_args.push_back({0, 10, sizeof(cl_mem), &(*(mKVCacheCLManager->value()))()}); + mRgUpdateInfo.update_kernel_args.push_back({0, 14, sizeof(mKeyValueMaxlen), &mKeyValueMaxlen}); + mOpRecordUpdateInfo.emplace_back(&mRgUpdateInfo); + mOpenCLBackend->recordKernel3d(mKernel_rearrange, mGlobalWorkSizeRearrg, mLocalWorkSizeRearrg, &mRgUpdateInfo); } // mask rearaange @@ -643,7 +648,10 @@ ErrorCode AttentionBufExecution::onResize(const std::vector &inputs, c mGlobalWorkSizeRearrg[0] = ROUND_UP(mGlobalWorkSizeRearrg[0], std::max((uint32_t)1, mLocalWorkSizeRearrg[0])); mGlobalWorkSizeRearrg[1] = ROUND_UP(mGlobalWorkSizeRearrg[1], std::max((uint32_t)1, mLocalWorkSizeRearrg[1])); mGlobalWorkSizeRearrg[2] = ROUND_UP(mGlobalWorkSizeRearrg[2], std::max((uint32_t)1, mLocalWorkSizeRearrg[2])); - mOpenCLBackend->recordKernel3d(mKernel_rearrange, mGlobalWorkSizeRearrg, mLocalWorkSizeRearrg); + mRgUpdateInfo.update_kernel_args.push_back({0, 4, sizeof(cl_mem), &(*(mKVCacheCLManager->key()))()}); + mRgUpdateInfo.update_kernel_args.push_back({0, 6, sizeof(mKeyValueMaxlen), &mKeyValueMaxlen}); + mOpRecordUpdateInfo.emplace_back(&mRgUpdateInfo); + mOpenCLBackend->recordKernel3d(mKernel_rearrange, mGlobalWorkSizeRearrg, mLocalWorkSizeRearrg, &mRgUpdateInfo); } { // matmul qk @@ -677,7 +685,10 @@ ErrorCode AttentionBufExecution::onResize(const std::vector &inputs, c mGlobalWorkSizeQk[0] = ROUND_UP(mGlobalWorkSizeQk[0], std::max((uint32_t)1, mLocalWorkSizeQk[0])); mGlobalWorkSizeQk[1] = ROUND_UP(mGlobalWorkSizeQk[1], std::max((uint32_t)1, mLocalWorkSizeQk[1])); mGlobalWorkSizeQk[2] = ROUND_UP(mGlobalWorkSizeQk[2], std::max((uint32_t)1, mLocalWorkSizeQk[2])); - mOpenCLBackend->recordKernel3d(mKernel_qk, mGlobalWorkSizeQk, mLocalWorkSizeQk); + mQkUpdateInfo.update_kernel_args.push_back({0, 4, sizeof(cl_mem), &(*(mKVCacheCLManager->key()))()}); + mQkUpdateInfo.update_kernel_args.push_back({0, 10, sizeof(mKeyValueMaxlen), &mKeyValueMaxlen}); + mOpRecordUpdateInfo.emplace_back(&mQkUpdateInfo); + mOpenCLBackend->recordKernel3d(mKernel_qk, mGlobalWorkSizeQk, mLocalWorkSizeQk, &mQkUpdateInfo); } { // softmax @@ -745,7 +756,10 @@ ErrorCode AttentionBufExecution::onResize(const std::vector &inputs, c mGlobalWorkSizeRearrgV[0] = ROUND_UP(mGlobalWorkSizeRearrgV[0], std::max((uint32_t)1, mLocalWorkSizeRearrgV[0])); mGlobalWorkSizeRearrgV[1] = ROUND_UP(mGlobalWorkSizeRearrgV[1], std::max((uint32_t)1, mLocalWorkSizeRearrgV[1])); mGlobalWorkSizeRearrgV[2] = ROUND_UP(mGlobalWorkSizeRearrgV[2], std::max((uint32_t)1, mLocalWorkSizeRearrgV[2])); - mOpenCLBackend->recordKernel3d(mKernel_rearrangeV, mGlobalWorkSizeRearrgV, mLocalWorkSizeRearrgV); + mRgVUpdateInfo.update_kernel_args.push_back({0, 4, sizeof(cl_mem), &(*(mKVCacheCLManager->value()))()}); + mRgVUpdateInfo.update_kernel_args.push_back({0, 6, sizeof(mKeyValueMaxlen), &mKeyValueMaxlen}); + mOpRecordUpdateInfo.emplace_back(&mRgVUpdateInfo); + mOpenCLBackend->recordKernel3d(mKernel_rearrangeV, mGlobalWorkSizeRearrgV, mLocalWorkSizeRearrgV, &mRgVUpdateInfo); } // qk * value { @@ -775,7 +789,10 @@ ErrorCode AttentionBufExecution::onResize(const std::vector &inputs, c mGlobalWorkSizeQkv[0] = ROUND_UP(mGlobalWorkSizeQkv[0], std::max((uint32_t)1, mLocalWorkSizeQkv[0])); mGlobalWorkSizeQkv[1] = ROUND_UP(mGlobalWorkSizeQkv[1], std::max((uint32_t)1, mLocalWorkSizeQkv[1])); mGlobalWorkSizeQkv[2] = ROUND_UP(mGlobalWorkSizeQkv[2], std::max((uint32_t)1, mLocalWorkSizeQkv[2])); - mOpenCLBackend->recordKernel3d(mKernel_qkv, mGlobalWorkSizeQkv, mLocalWorkSizeQkv); + mQkvUpdateInfo.update_kernel_args.push_back({0, 4, sizeof(cl_mem), &(*(mKVCacheCLManager->value()))()}); + mQkvUpdateInfo.update_kernel_args.push_back({0, 8, sizeof(mKeyValueMaxlen), &mKeyValueMaxlen}); + mOpRecordUpdateInfo.emplace_back(&mQkvUpdateInfo); + mOpenCLBackend->recordKernel3d(mKernel_qkv, mGlobalWorkSizeQkv, mLocalWorkSizeQkv, &mQkvUpdateInfo); } } else { mKv_seq_len = mKVCacheCLManager->kvLength() + 1; @@ -1016,7 +1033,7 @@ ErrorCode AttentionBufExecution::onResize(const std::vector &inputs, c return NO_ERROR; } -ErrorCode AttentionBufExecution::DecodeSetArgs(const std::vector &inputs, const std::vector &outputs){ +ErrorCode AttentionBufExecution::UpdateArgs(const std::vector &inputs, const std::vector &outputs){ auto query = inputs[0]; auto key = inputs[1]; auto value = inputs[2]; @@ -1030,7 +1047,72 @@ ErrorCode AttentionBufExecution::DecodeSetArgs(const std::vector &inpu int headDim = shape[3]; int group_size = numHead / kvNumHead; float scale = 1.0 / sqrt(headDim); + auto mask_shape = mask->shape(); + int mask_seqlen = mask_shape[2]; + int mask_kvlen = mask_shape[3]; + // prefill + if(mIsDecode == false){ + // reset mPastLength + mKVCacheCLManager->setArgs(mask_kvlen, numHead, kvNumHead, headDim); + // key value static memory has been changed, need reset args + if(mKeyValueMaxlen != ROUND_UP(mKVCacheCLManager->maxLength(), 4)){ + mKeyValueMaxlen = ROUND_UP(mKVCacheCLManager->maxLength(), 4); + #ifndef ENABLE_OPENCL_TIME_PROFILER + if(mOpenCLBackend->isUseRecordQueue()){ + if(mLongPrefill){ + mRgUpdateInfo.update_kernel_args[0].arg_value = &(*(mKVCacheCLManager->key()))(); + mQkUpdateInfo.update_kernel_args[0].arg_value = &(*(mKVCacheCLManager->key()))(); + mRgVUpdateInfo.update_kernel_args[0].arg_value = &(*(mKVCacheCLManager->value()))(); + mQkvUpdateInfo.update_kernel_args[0].arg_value = &(*(mKVCacheCLManager->value()))(); + }else{ + mRgUpdateInfo.update_kernel_args[0].arg_value = &(*(mKVCacheCLManager->key()))(); + } + } else { + #endif + if(mLongPrefill){ + // rearrange key value + cl_int ret = CL_SUCCESS; + ret |= mKernel_rearrange->get().setArg(9, *mKVCacheCLManager->key()); + ret |= mKernel_rearrange->get().setArg(10, *mKVCacheCLManager->value()); + ret |= mKernel_rearrange->get().setArg(14, mKeyValueMaxlen); + MNN_CHECK_CL_SUCCESS(ret, "reSetArg rearrange_k"); + }else{ + { + // rearrange key + cl_int ret = CL_SUCCESS; + ret |= mKernel_rearrange->get().setArg(4, *mKVCacheCLManager->key()); + ret |= mKernel_rearrange->get().setArg(6, mKeyValueMaxlen); + MNN_CHECK_CL_SUCCESS(ret, "reSetArg rearrange_k"); + } + { + // matmul qk + cl_int ret = CL_SUCCESS; + ret |= mKernel_qk->get().setArg(4, *mKVCacheCLManager->key()); + ret |= mKernel_qk->get().setArg(10, mKeyValueMaxlen); + MNN_CHECK_CL_SUCCESS(ret, "reSetArg matmul_qk_decode"); + } + { + cl_int ret = CL_SUCCESS; + ret |= mKernel_rearrangeV->get().setArg(4, *mKVCacheCLManager->value()); + ret |= mKernel_rearrangeV->get().setArg(6, mKeyValueMaxlen); + MNN_CHECK_CL_SUCCESS(ret, "reSetArg rearrange_v"); + } + // qk * value + { + cl_int ret = CL_SUCCESS; + ret |= mKernel_qkv->get().setArg(4, *mKVCacheCLManager->value()); + ret |= mKernel_qkv->get().setArg(8, mKeyValueMaxlen); + MNN_CHECK_CL_SUCCESS(ret, "reSetArg matmul_qkv_decode"); + } + } + #ifndef ENABLE_OPENCL_TIME_PROFILER + } + #endif + } + return NO_ERROR; + } + // Decode mKv_seq_len = mKVCacheCLManager->kvLength() + 1; mKeyValueMaxlen = ROUND_UP(mKVCacheCLManager->maxLength(), 4); mKVCacheCLManager->addKvLength(); @@ -1127,8 +1209,8 @@ ErrorCode AttentionBufExecution::onExecute(const std::vector &inputs, #endif if(mIsDecode){ mKVCacheCLManager->reallocKVCache(); - DecodeSetArgs(inputs, outputs); } + UpdateArgs(inputs, outputs); #ifdef ENABLE_OPENCL_TIME_PROFILER if(mLongPrefill) { cl::Event event0, event1, event2, event3, event4, event5, event6; diff --git a/source/backend/opencl/execution/buffer/AttentionBufExecution.hpp b/source/backend/opencl/execution/buffer/AttentionBufExecution.hpp index 0f617981c..6b684301d 100644 --- a/source/backend/opencl/execution/buffer/AttentionBufExecution.hpp +++ b/source/backend/opencl/execution/buffer/AttentionBufExecution.hpp @@ -62,7 +62,7 @@ class AttentionBufExecution : public CommonExecution { AttentionBufExecution(const MNN::Op *op, Backend *backend, bool kv_cache); AttentionBufExecution(std::shared_ptr manager, const MNN::Op *op, Backend *backend); ErrorCode longPrefillResize(const std::vector &inputs, const std::vector &outputs); - ErrorCode DecodeSetArgs(const std::vector &inputs, const std::vector &outputs); + ErrorCode UpdateArgs(const std::vector &inputs, const std::vector &outputs); virtual ~AttentionBufExecution() = default; virtual ErrorCode onResize(const std::vector &inputs, const std::vector &outputs) override; diff --git a/source/backend/opencl/execution/buffer/ConvBufExecution.cpp b/source/backend/opencl/execution/buffer/ConvBufExecution.cpp index 7f67f9ddf..784ace22d 100644 --- a/source/backend/opencl/execution/buffer/ConvBufExecution.cpp +++ b/source/backend/opencl/execution/buffer/ConvBufExecution.cpp @@ -557,9 +557,9 @@ ErrorCode ConvBufExecution::onResize(const std::vector &inputs, const mKernel.resize(conv_block_num); - std::vector> kernel(actual_kernel); - std::vector> globalWorkSize(actual_kernel); - std::vector> localWorkSize(actual_kernel); + std::shared_ptr kernel[total_kernel]; + std::vector globalWorkSize[total_kernel]; + std::vector localWorkSize[total_kernel]; std::pair min_cost(INT_MAX, 0);//(min_time, min_index) for(int knl_idx = 0; knl_idx < actual_kernel; knl_idx++) { std::set buildOption = mResource->mBuildOptions; diff --git a/source/backend/opencl/execution/buffer/ConvBufExecution.hpp b/source/backend/opencl/execution/buffer/ConvBufExecution.hpp index 60e03a36c..6b1fbf3cf 100644 --- a/source/backend/opencl/execution/buffer/ConvBufExecution.hpp +++ b/source/backend/opencl/execution/buffer/ConvBufExecution.hpp @@ -36,6 +36,7 @@ struct ConvBufResource { bool mConv1x1Opt = false; bool mConv1x1C8Opt = false; bool mConv1x1Local = false; + float mCoef = 1.0f; /* 0 -> not use 1 -> use small tile diff --git a/source/backend/opencl/execution/buffer/ConvBufLowMemoryExecution.cpp b/source/backend/opencl/execution/buffer/ConvBufLowMemoryExecution.cpp index ce9df36b9..9fa9a8f52 100644 --- a/source/backend/opencl/execution/buffer/ConvBufLowMemoryExecution.cpp +++ b/source/backend/opencl/execution/buffer/ConvBufLowMemoryExecution.cpp @@ -32,48 +32,102 @@ void ConvBufLowMemoryExecution::getInfoFromOpLowMemory(std::shared_ptralpha.get(); int totalCount = quanCommon->alpha.size(); + int soSize = 1; if (quanCommon->asymmetric) { + soSize = 2; totalCount /= 2; + mResource->mBuildOptions.emplace("-DASYMMETRIC"); } int numAlpha = mResource->mOutputChannel; mResource->mBlockSize = totalCount / numAlpha; // set mDequantScale mDequantOffset int numAlphaPack = ROUND_UP(numAlpha, 4); - - mResource->dequantScaleOffset.reset(Tensor::createDevice({mResource->mBlockSize, numAlphaPack, 2})); + + mResource->dequantScaleOffset.reset(Tensor::createDevice({ROUND_UP(mResource->mBlockSize, 4), numAlphaPack, soSize})); mOpenCLBackend->onAcquireBuffer(mResource->dequantScaleOffset.get(), Backend::STATIC); cl::Buffer &dequantScaleOffsetBuffer = openCLBuffer(mResource->dequantScaleOffset.get()); // transfer data from src in cpu to dst in gpu int fpBytes = mOpenCLBackend->fpBytes(); cl_int resBias, resScaleOffset; - int mapSize = mResource->mBlockSize * numAlphaPack * sizeof(int32_t) * 2; + int mapSize = mResource->mBlockSize * numAlphaPack * fpBytes * soSize; void * dequantScaleOffsetBufferMap = mOpenCLBackend->getOpenCLRuntime()->commandQueue().enqueueMapBuffer(dequantScaleOffsetBuffer, true, CL_MAP_WRITE, 0, mapSize, nullptr, nullptr, &resScaleOffset); - // mBlockSize % 4 need equal 0 - if (dequantScaleOffsetBufferMap != nullptr && resScaleOffset == CL_SUCCESS) { - if (quanCommon->asymmetric) { + float coef = 1.0; + if(fpBytes == 2) { + float max_data = 0.0f; + if (quanCommon->asymmetric){ for (int i = 0; i < numAlpha; ++i) { auto srcZ = dequantAlpha + i * mResource->mBlockSize * 2; for(int j = 0; j < mResource->mBlockSize; ++j){ - float o = srcZ[2*j+0]; - float s = srcZ[2*j+1]; - ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2] = s; - ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2 + 1] = o; + float s = fabsf(srcZ[2*j+0]); + float b = fabsf(srcZ[2*j+1]); + float temp = ALIMAX(s, b); + if(temp > max_data) { + max_data = temp; + } } } - } else { + }else{ for (int i = 0; i < numAlpha; ++i) { auto srcZ = dequantAlpha + i * mResource->mBlockSize; for(int j = 0; j < mResource->mBlockSize; ++j){ - ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2] = srcZ[j]; - ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2 + 1] = 0.0f; + float s = fabsf(srcZ[j]); + if(s > max_data) { + max_data = s; + } } } } - } else { - MNN_ERROR("Map error dequantBufferMap == nullptr \n"); - MNN_ASSERT(false); + coef = 1000.0f / max_data; + if (dequantScaleOffsetBufferMap != nullptr && resScaleOffset == CL_SUCCESS) { + if (quanCommon->asymmetric) { + for (int i = 0; i < numAlpha; ++i) { + auto srcZ = dequantAlpha + i * mResource->mBlockSize * 2; + for(int j = 0; j < mResource->mBlockSize; ++j){ + float o = srcZ[2*j+0]; + float s = srcZ[2*j+1]; + ((half_float::half*)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2] = (half_float::half)(s * coef); + ((half_float::half*)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2 + 1] = (half_float::half)(o * coef); + } + } + } else { + for (int i = 0; i < numAlpha; ++i) { + auto srcZ = dequantAlpha + i * mResource->mBlockSize; + for(int j = 0; j < mResource->mBlockSize; ++j){ + ((half_float::half*)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i)] = (half_float::half)(srcZ[j] * coef); + } + } + } + } else { + MNN_ERROR("Map error dequantBufferMap == nullptr \n"); + MNN_ASSERT(false); + } + } else{ + if (dequantScaleOffsetBufferMap != nullptr && resScaleOffset == CL_SUCCESS) { + if (quanCommon->asymmetric) { + for (int i = 0; i < numAlpha; ++i) { + auto srcZ = dequantAlpha + i * mResource->mBlockSize * 2; + for(int j = 0; j < mResource->mBlockSize; ++j){ + float o = srcZ[2*j+0]; + float s = srcZ[2*j+1]; + ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2] = s * coef; + ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i) * 2 + 1] = o * coef; + } + } + } else { + for (int i = 0; i < numAlpha; ++i) { + auto srcZ = dequantAlpha + i * mResource->mBlockSize; + for(int j = 0; j < mResource->mBlockSize; ++j){ + ((float *)dequantScaleOffsetBufferMap)[(j * numAlphaPack + i)] = srcZ[j] * coef; + } + } + } + } else { + MNN_ERROR("Map error dequantBufferMap == nullptr \n"); + MNN_ASSERT(false); + } } + mResource->mCoef = coef; mOpenCLBackend->getOpenCLRuntime()->commandQueue().enqueueUnmapMemObject(dequantScaleOffsetBuffer, dequantScaleOffsetBufferMap); // set mFilterDataPtr mFilterDataPtr = (void *)quanCommon->weight.get(); @@ -297,6 +351,7 @@ void ConvBufLowMemoryExecution::tuneGeneralCaseLowMemory(Tensor * input, Tensor ret |= kernel[knl_idx]->get().setArg(idx++, UP_DIV(outChannel, 4)); ret |= kernel[knl_idx]->get().setArg(idx++, UP_DIV(height, itemH[knl_idx])); ret |= kernel[knl_idx]->get().setArg(idx++, blockDim); + ret |= kernel[knl_idx]->get().setArg(idx++, static_cast(mResource->mCoef)); MNN_CHECK_CL_SUCCESS(ret, "setArg ConvBufLowMemory Kernel Select"); std::pair, int> retTune; retTune = localWS2DDefault(globalWorkSize[knl_idx], maxWorkGroupSize, mOpenCLBackend->getOpenCLRuntime(), kernelName[knl_idx] + info, kernel[knl_idx]); @@ -343,6 +398,7 @@ void ConvBufLowMemoryExecution::tuneGeneralCaseLowMemory(Tensor * input, Tensor ret |= unit.kernel->get().setArg(idx++, UP_DIV(outChannel, 4)); ret |= unit.kernel->get().setArg(idx++, UP_DIV(height, itemH[min_index])); ret |= unit.kernel->get().setArg(idx++, blockDim); + ret |= unit.kernel->get().setArg(idx++, static_cast(mResource->mCoef)); MNN_CHECK_CL_SUCCESS(ret, "setArg ConvBufLowMemory"); mOpenCLBackend->recordKernel2d(unit.kernel, mGlobalWorkSize, mLocalWorkSize); unit.globalWorkSize = {mGlobalWorkSize[0], mGlobalWorkSize[1]}; @@ -423,10 +479,12 @@ void ConvBufLowMemoryExecution::useFPWeightGemmLowMemory(Tensor * input, Tensor } ret |= unit.kernel->get().setArg(idx++, openCLBuffer(mResource->dequantScaleOffset.get())); ret |= unit.kernel->get().setArg(idx++, openCLBuffer(mConvGemmWeightTensor.get())); + ret |= unit.kernel->get().setArg(idx++, static_cast(mResource->mInputChannel)); ret |= unit.kernel->get().setArg(idx++, static_cast(inputChannel4Align)); ret |= unit.kernel->get().setArg(idx++, static_cast(outputChannelAlign)); ret |= unit.kernel->get().setArg(idx++, static_cast(outputChannel4Align)); ret |= unit.kernel->get().setArg(idx++, static_cast(blockDim)); + ret |= unit.kernel->get().setArg(idx++, static_cast(mResource->mCoef)); MNN_CHECK_CL_SUCCESS(ret, "setArg inverse_quant_weight"); mLocalWorkSize = localWS2DDefault(mGlobalWorkSize, maxWorkGroupSize, runtime, "inverse_quant_weight", unit.kernel).first; @@ -544,8 +602,8 @@ void ConvBufLowMemoryExecution::tuneGemvLowMemory(Tensor * input, Tensor * outpu buildOption.emplace("-DUSE_IMAGE"); } - int local_size = 1; - if(useLocalMem){ + int local_size = 128; + if(useLocalMem && mOpenCLBackend->getOpenCLRuntime()->getCLTuneLevel() != None && mOpenCLBackend->getOpenCLRuntime()->getCLTuneLevel() != Fast){ int min_time = INT_MAX; for (int ksize = 8; ksize <= 256; ksize*=2) { auto option = buildOption; @@ -572,6 +630,7 @@ void ConvBufLowMemoryExecution::tuneGemvLowMemory(Tensor * input, Tensor * outpu ret |= kernel->get().setArg(idx++, inputChannels); ret |= kernel->get().setArg(idx++, static_cast(blockNum)); ret |= kernel->get().setArg(idx++, static_cast(blockDim)); + ret |= kernel->get().setArg(idx++, static_cast(mResource->mCoef)); MNN_CHECK_CL_SUCCESS(ret, "setArg gemv_conv1x1_buf Kernel Select"); std::pair, int> retTune; int cost_time = get2DUseLocalMemTime(gws, lws, mOpenCLBackend->getOpenCLRuntime(), kernelName + info, kernel); @@ -604,6 +663,7 @@ void ConvBufLowMemoryExecution::tuneGemvLowMemory(Tensor * input, Tensor * outpu ret |= unit.kernel->get().setArg(idx++, static_cast(inputChannels)); ret |= unit.kernel->get().setArg(idx++, static_cast(blockNum)); ret |= unit.kernel->get().setArg(idx++, static_cast(blockDim)); + ret |= unit.kernel->get().setArg(idx++, static_cast(mResource->mCoef)); MNN_CHECK_CL_SUCCESS(ret, "setArg gemv_conv_c4_0_buf"); if(useLocalMem){ mLocalWorkSize = {static_cast(local_size), 1}; @@ -671,6 +731,7 @@ void ConvBufLowMemoryExecution::tuneGemmLowMemory(Tensor * input, Tensor * outpu ret |= unit.kernel->get().setArg(idx++, static_cast(inputChannelAlign)); ret |= unit.kernel->get().setArg(idx++, static_cast(blockNum)); ret |= unit.kernel->get().setArg(idx++, static_cast(blockDim)); + ret |= unit.kernel->get().setArg(idx++, mResource->mCoef); MNN_CHECK_CL_SUCCESS(ret, "setArg gemm_conv1x1_buf"); mLocalWorkSize = localWS2DDefault(mGlobalWorkSize, maxWorkGroupSize, mOpenCLBackend->getOpenCLRuntime(), kernelName, unit.kernel).first; mOpenCLBackend->recordKernel2d(unit.kernel, mGlobalWorkSize, mLocalWorkSize); diff --git a/source/backend/opencl/execution/buffer/RasterBufExecution.cpp b/source/backend/opencl/execution/buffer/RasterBufExecution.cpp index 8db39af02..e666c9bc0 100644 --- a/source/backend/opencl/execution/buffer/RasterBufExecution.cpp +++ b/source/backend/opencl/execution/buffer/RasterBufExecution.cpp @@ -58,9 +58,9 @@ ErrorCode RasterBufExecution::onEncode(const std::vector &____inputs, } mNeedZero = !TensorUtils::regionIsFull(output); mNeedZero = mNeedZero || ((outputShape[3] % 4) != 0 && MNN_DATA_FORMAT_NC4HW4 == outputDes->dimensionFormat && !mFast); - bool cancombine = CanCombine(outputs) && (!mFast); - if(cancombine){ - regionNum = 1; + if(mFast == false){ + CanCombine(outputs); + regionNum = mCombineInfo.size(); } mUnits.resize(regionNum); if(mNeedZero) @@ -149,12 +149,11 @@ ErrorCode RasterBufExecution::onEncode(const std::vector &____inputs, return NO_ERROR; } - if(cancombine){ - auto regions = des->regions; - auto slice = regions[0]; - int nums = regions.size(); - int src_offset = regions[1].src.offset - slice.src.offset; - int dst_offset = regions[1].dst.offset - slice.dst.offset; + for(auto& info : mCombineInfo){ + auto slice = info.mRegion; + int nums = info.mCanCombineNum; + int src_offset = info.mSrc_offset; + int dst_offset = info.mDst_offset; std::set buildOptions; auto origin = slice.origin; auto inputShape = tensorShapeFormat(origin); @@ -163,7 +162,6 @@ ErrorCode RasterBufExecution::onEncode(const std::vector &____inputs, Unit &unit = mUnits[kernel_idx++]; unit.kernel = runtime->buildKernel("raster_buf", "raster_direct_buffer", buildOptions, origin, output); - const std::vector gws = {(uint32_t)slice.size[2] * nums, (uint32_t)slice.size[1], (uint32_t)slice.size[0]}; @@ -206,61 +204,6 @@ ErrorCode RasterBufExecution::onEncode(const std::vector &____inputs, unit.localWorkSize = {lws[0], lws[1], lws[2]}; unit.globalWorkSize = {gws[0], gws[1], gws[2]}; mOpenCLBackend->recordKernel3d(unit.kernel, gws, lws); - }else{ - for(auto& slice : des->regions){ - std::set buildOptions; - auto origin = slice.origin; - auto inputShape = tensorShapeFormat(origin); - int src_offset = 0; - int dst_offset = 0; - buildOptions.emplace("-DINPUT_FORMAT=" + std::to_string(TensorUtils::getDescribe(origin)->dimensionFormat)); - buildOptions.emplace("-DOUTPUT_FORMAT=" + std::to_string(outputDes->dimensionFormat)); - - Unit &unit = mUnits[kernel_idx++]; - unit.kernel = runtime->buildKernel("raster_buf", "raster_direct_buffer", buildOptions, origin, output); - const std::vector gws = {(uint32_t)slice.size[2], - (uint32_t)slice.size[1], - (uint32_t)slice.size[0]}; - uint32_t mMaxWorkGroupSize = static_cast(runtime->getMaxWorkGroupSize(unit.kernel)); - - uint32_t idx = 0; - cl_int ret = CL_SUCCESS; - ret |= unit.kernel->get().setArg(idx++, gws[0]); - ret |= unit.kernel->get().setArg(idx++, gws[1]); - ret |= unit.kernel->get().setArg(idx++, gws[2]); - ret |= unit.kernel->get().setArg(idx++, slice.size[2]); - ret |= unit.kernel->get().setArg(idx++, openCLBuffer(origin)); - ret |= unit.kernel->get().setArg(idx++, slice.src.offset); - ret |= unit.kernel->get().setArg(idx++, src_offset); - ret |= unit.kernel->get().setArg(idx++, slice.src.stride[0]); - ret |= unit.kernel->get().setArg(idx++, slice.src.stride[1]); - ret |= unit.kernel->get().setArg(idx++, slice.src.stride[2]); - ret |= unit.kernel->get().setArg(idx++, inputShape[2]); - ret |= unit.kernel->get().setArg(idx++, inputShape[1]); - ret |= unit.kernel->get().setArg(idx++, inputShape[3]); - ret |= unit.kernel->get().setArg(idx++, inputShape[0]); - ret |= unit.kernel->get().setArg(idx++, openCLBuffer(output)); - ret |= unit.kernel->get().setArg(idx++, slice.dst.offset); - ret |= unit.kernel->get().setArg(idx++, dst_offset); - ret |= unit.kernel->get().setArg(idx++, slice.dst.stride[0]); - ret |= unit.kernel->get().setArg(idx++, slice.dst.stride[1]); - ret |= unit.kernel->get().setArg(idx++, slice.dst.stride[2]); - ret |= unit.kernel->get().setArg(idx++, outputShape[2]); - ret |= unit.kernel->get().setArg(idx++, outputShape[1]); - ret |= unit.kernel->get().setArg(idx++, outputShape[3]); - ret |= unit.kernel->get().setArg(idx++, outputShape[0]); - if(ret != CL_SUCCESS) - { - MNN_PRINT("setArg err %d\n", (int)ret); - } - - std::string name = "raster_buffer"; - const std::vector lws = localWS3DDefault(gws, mMaxWorkGroupSize, mOpenCLBackend->getOpenCLRuntime(), name, unit.kernel).first; - - unit.localWorkSize = {lws[0], lws[1], lws[2]}; - unit.globalWorkSize = {gws[0], gws[1], gws[2]}; - mOpenCLBackend->recordKernel3d(unit.kernel, gws, lws); - } } #ifdef LOG_VERBOSE MNN_PRINT("end RasterBufExecution onResize !\n"); @@ -283,42 +226,103 @@ class RasterBufCreator : public OpenCLBackend::Creator { } }; -bool RasterBufExecution::CanCombine(const std::vector &outputs){ +void RasterBufExecution::CanCombine(const std::vector &outputs){ auto des = TensorUtils::getDescribe(outputs[0]); auto regions = des->regions; - if(regions.size() < 2) - return false; - auto origin = regions[0].origin; - const int size0 = regions[0].size[0]; - const int size1 = regions[0].size[1]; - const int size2 = regions[0].size[2]; - const int src_offset = regions[1].src.offset - regions[0].src.offset; - const int dst_offset = regions[1].dst.offset - regions[0].dst.offset; - const int src_sride0 = regions[0].src.stride[0]; - const int src_sride1 = regions[0].src.stride[1]; - const int src_sride2 = regions[0].src.stride[2]; - const int dst_sride0 = regions[0].dst.stride[0]; - const int dst_sride1 = regions[0].dst.stride[1]; - const int dst_sride2 = regions[0].dst.stride[2]; - bool res = true; - for(int i = 1; i < regions.size(); ++i){ - res &= regions[i].origin == origin; - res &= regions[i].size[0] == size0; - res &= regions[i].size[1] == size1; - res &= regions[i].size[2] == size2; - res &= regions[i].src.stride[0] == src_sride0; - res &= regions[i].src.stride[1] == src_sride1; - res &= regions[i].src.stride[2] == src_sride2; - res &= regions[i].dst.stride[0] == dst_sride0; - res &= regions[i].dst.stride[1] == dst_sride1; - res &= regions[i].dst.stride[2] == dst_sride2; - res &= (regions[i].src.offset - regions[i - 1].src.offset) == src_offset; - res &= (regions[i].dst.offset - regions[i - 1].dst.offset) == dst_offset; - if(res == false){ - return res; + Tensor* origin; + int size0, size1, size2, src_offset, dst_offset, last_src_offset, last_dst_offset, src_sride0, src_sride1, src_sride2, dst_sride0, dst_sride1, dst_sride2; + int canCombineNum = 0; + for(auto& slice : des->regions){ + bool res = true; + if(canCombineNum == 0){ + origin = slice.origin; + size0 = slice.size[0]; + size1 = slice.size[1]; + size2 = slice.size[2]; + src_sride0 = slice.src.stride[0]; + src_sride1 = slice.src.stride[1]; + src_sride2 = slice.src.stride[2]; + dst_sride0 = slice.dst.stride[0]; + dst_sride1 = slice.dst.stride[1]; + dst_sride2 = slice.dst.stride[2]; + canCombineNum++; + // push back + mCombineInfo.push_back(CanCombineInfo(slice, 0, 0, 1)); + } else if(canCombineNum == 1){ + res &= slice.origin == origin; + res &= slice.size[0] == size0; + res &= slice.size[1] == size1; + res &= slice.size[2] == size2; + res &= slice.src.stride[0] == src_sride0; + res &= slice.src.stride[1] == src_sride1; + res &= slice.src.stride[2] == src_sride2; + res &= slice.dst.stride[0] == dst_sride0; + res &= slice.dst.stride[1] == dst_sride1; + res &= slice.dst.stride[2] == dst_sride2; + if(res){ + src_offset = slice.src.offset - last_src_offset; + dst_offset = slice.dst.offset - last_dst_offset; + canCombineNum++; + // change canCombineNum + mCombineInfo.back().mSrc_offset = src_offset; + mCombineInfo.back().mDst_offset = dst_offset; + mCombineInfo.back().mCanCombineNum = canCombineNum; + } else{ + origin = slice.origin; + size0 = slice.size[0]; + size1 = slice.size[1]; + size2 = slice.size[2]; + src_sride0 = slice.src.stride[0]; + src_sride1 = slice.src.stride[1]; + src_sride2 = slice.src.stride[2]; + dst_sride0 = slice.dst.stride[0]; + dst_sride1 = slice.dst.stride[1]; + dst_sride2 = slice.dst.stride[2]; + // recover + canCombineNum = 1; + // push back + mCombineInfo.push_back(CanCombineInfo(slice, 0, 0, 1)); + } + } else{ + res &= slice.origin == origin; + res &= slice.size[0] == size0; + res &= slice.size[1] == size1; + res &= slice.size[2] == size2; + res &= slice.src.stride[0] == src_sride0; + res &= slice.src.stride[1] == src_sride1; + res &= slice.src.stride[2] == src_sride2; + res &= slice.dst.stride[0] == dst_sride0; + res &= slice.dst.stride[1] == dst_sride1; + res &= slice.dst.stride[2] == dst_sride2; + res &= slice.src.offset - last_src_offset == src_offset; + res &= slice.dst.offset - last_dst_offset == dst_offset; + if(res){ + canCombineNum++; + // change canCombineNum + mCombineInfo.back().mSrc_offset = src_offset; + mCombineInfo.back().mDst_offset = dst_offset; + mCombineInfo.back().mCanCombineNum = canCombineNum; + } else{ + origin = slice.origin; + size0 = slice.size[0]; + size1 = slice.size[1]; + size2 = slice.size[2]; + src_sride0 = slice.src.stride[0]; + src_sride1 = slice.src.stride[1]; + src_sride2 = slice.src.stride[2]; + dst_sride0 = slice.dst.stride[0]; + dst_sride1 = slice.dst.stride[1]; + dst_sride2 = slice.dst.stride[2]; + // recover + canCombineNum = 1; + // push back + mCombineInfo.push_back(CanCombineInfo(slice, 0, 0, 1)); + + } } + last_src_offset = slice.src.offset; + last_dst_offset = slice.dst.offset; } - return res; } REGISTER_OPENCL_OP_CREATOR(RasterBufCreator, OpType_Raster, BUFFER); diff --git a/source/backend/opencl/execution/buffer/RasterBufExecution.hpp b/source/backend/opencl/execution/buffer/RasterBufExecution.hpp index e704f0716..b19ad2b36 100644 --- a/source/backend/opencl/execution/buffer/RasterBufExecution.hpp +++ b/source/backend/opencl/execution/buffer/RasterBufExecution.hpp @@ -17,18 +17,29 @@ namespace OpenCL { class RasterBufExecution : public CommonExecution { public: + class CanCombineInfo { + public: + CanCombineInfo(const Tensor::InsideDescribe::Region region, const int src_offset, const int dst_offset, const int canCombineNum) : mRegion(region), mSrc_offset(src_offset), mDst_offset(dst_offset), mCanCombineNum(canCombineNum){ + // Do nothing + } + int mSrc_offset; + int mDst_offset; + int mCanCombineNum; + Tensor::InsideDescribe::Region mRegion; + }; RasterBufExecution(const std::vector &inputs, const MNN::Op *op, Backend *backend); virtual ~RasterBufExecution() = default; virtual ErrorCode onEncode(const std::vector &inputs, const std::vector &outputs) override; private: - bool CanCombine(const std::vector &outputs); + void CanCombine(const std::vector &outputs); std::map mTempInput; cl::Buffer *mTempOutput; OpenCLBackend *mOpenCLBackend; bool mNeedZero = false; bool mFast = false; + std::vector mCombineInfo; }; } // namespace OpenCL diff --git a/source/backend/opencl/execution/cl/attention_buf.cl b/source/backend/opencl/execution/cl/attention_buf.cl index 5b7366018..3938ce20b 100644 --- a/source/backend/opencl/execution/cl/attention_buf.cl +++ b/source/backend/opencl/execution/cl/attention_buf.cl @@ -62,7 +62,8 @@ __kernel void rearrange_qkv(GLOBAL_SIZE_3_DIMS __global FLOAT *past_v, // [batch, headNum/group, seqLenKV_4, headDim] __private const int4 tile, // [mTileQ, mTileKV, mTileHDK, mTileHDN] __private const int4 shape,// [seqLenQ, seqLenKV, headNum, headDim] - __private const int4 param // [group, batch, max_len, past_len] + __private const int4 param, // [group, batch, max_len, past_len] + __private const int maxLenKV ) { const int sl = get_global_id(0); // seqLen/4 : max(seqLenPackQ/4, seqLenPackKV/4) const int hd = get_global_id(1); // headDim/4 : max(headDimPackQK/4, headDimPackV/4) @@ -75,7 +76,6 @@ __kernel void rearrange_qkv(GLOBAL_SIZE_3_DIMS const int headDim = shape.w; const int group = param.x; const int batch = param.y; - const int maxLenKV = param.z; const int b = z % batch; const int hn = z / batch; diff --git a/source/backend/opencl/execution/cl/buffer_convert_quant.cl b/source/backend/opencl/execution/cl/buffer_convert_quant.cl index c6df69567..3bad6c053 100644 --- a/source/backend/opencl/execution/cl/buffer_convert_quant.cl +++ b/source/backend/opencl/execution/cl/buffer_convert_quant.cl @@ -224,4 +224,47 @@ __kernel void conv2d_1x1_weight_quant_buffer(GLOBAL_SIZE_2_DIMS #endif } +__kernel void conv2d_1x1_ic_oc_weight_quant_buffer(GLOBAL_SIZE_2_DIMS +#ifdef USE_LOW_BIT_WEIGHT_INT4 + __global const uchar *input_ptr, + __global uchar *output_ptr, //(Ci/packCin, Co/packCout, packCin, packCout) +#else + __global const char *input_ptr, + __global char *output_ptr, //(Ci/packCin, Co/packCout, packCin, packCout) +#endif + __private const int input_channel, + __private const int output_channel, + __private const int icPack, + __private const int ocPack) { + int x = get_global_id(0); // ic / icPack + int y = get_global_id(1); // oc / ocPack + DEAL_NON_UNIFORM_DIM2(x, y); + const int xin = x * icPack; + const int yin = y * ocPack; + const int inputChannelC4 = (input_channel + icPack - 1) / icPack; + const int outputChannelC4 = (output_channel + ocPack - 1) / ocPack; +#ifdef USE_LOW_BIT_WEIGHT_INT4 + const int inputOffset = (yin * input_channel + xin) / 2; + const int outputOffset = ((x * outputChannelC4 + y) * icPack * ocPack) / 2; + for(int i = 0; i < icPack; ++i){ + for(int j = 0; j < ocPack / 2; ++j){ + int index0 = (yin + j * 2) * input_channel + xin + i; + int index1 = (yin + j * 2 + 1) * input_channel + xin + i; + uchar s0 = input_ptr[index0/2]; + uchar s1 = input_ptr[index1/2]; + s0 = (index0 % 2) == 0 ? (s0 & 0xf0) : ((s0 & 0x0f) << 4); + s1 = (index1 % 2) == 0 ? (s1 >> 4) : (s1 & 0x0f); + output_ptr[outputOffset + i * (ocPack / 2) + j] = s0 | s1; + } + } +#else + const int inputOffset = yin * input_channel + xin; + const int outputOffset = (x * outputChannelC4 + y) * icPack * ocPack; + for(int i = 0; i < icPack; ++i){ + for(int j = 0; j < ocPack; ++j){ + output_ptr[outputOffset + i * ocPack + j] = input_ptr[inputOffset + j * input_channel + i]; + } + } +#endif +} diff --git a/source/backend/opencl/execution/cl/conv_2d_int_buf.cl b/source/backend/opencl/execution/cl/conv_2d_int_buf.cl index f482f578d..42b595308 100644 --- a/source/backend/opencl/execution/cl/conv_2d_int_buf.cl +++ b/source/backend/opencl/execution/cl/conv_2d_int_buf.cl @@ -28,7 +28,7 @@ void conv_2d_int_c4h1w1(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -43,7 +43,8 @@ void conv_2d_int_c4h1w1(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks, __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -69,10 +70,14 @@ void conv_2d_int_c4h1w1(GLOBAL_SIZE_2_DIMS const int weight_oc_offset = out_c_blocks * filter_hw.x * filter_hw.y * 4; for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); COMPUTE_FLOAT4 scale = (COMPUTE_FLOAT4)(ScaleOffset.s0, ScaleOffset.s2, ScaleOffset.s4, ScaleOffset.s6); COMPUTE_FLOAT4 offset = (COMPUTE_FLOAT4)(ScaleOffset.s1, ScaleOffset.s3, ScaleOffset.s5, ScaleOffset.s7); + #else + COMPUTE_FLOAT4 scale = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + COMPUTE_FLOAT4 offset = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx*kh*kw + kh_start*kw + kw_start, 0] int weight_offset = ((((4*in_c_idx+0)* out_c_blocks + out_c_idx) *filter_hw.x + kh_start)*filter_hw.y + kw_start) * 4; @@ -155,7 +160,7 @@ void conv_2d_int_c4h1w2(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -170,7 +175,8 @@ void conv_2d_int_c4h1w2(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks,//generate width's num __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -196,10 +202,14 @@ void conv_2d_int_c4h1w2(GLOBAL_SIZE_2_DIMS const int weight_oc_offset = out_c_blocks * filter_hw.x * filter_hw.y * 4; for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); COMPUTE_FLOAT4 scale = (COMPUTE_FLOAT4)(ScaleOffset.s0, ScaleOffset.s2, ScaleOffset.s4, ScaleOffset.s6); COMPUTE_FLOAT4 offset = (COMPUTE_FLOAT4)(ScaleOffset.s1, ScaleOffset.s3, ScaleOffset.s5, ScaleOffset.s7); + #else + COMPUTE_FLOAT4 scale = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + COMPUTE_FLOAT4 offset = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx*kh*kw + kh_start*kw + kw_start, 0] int weight_offset = ((((4*in_c_idx+0)* out_c_blocks + out_c_idx) *filter_hw.x + kh_start)*filter_hw.y + 0) * 4; @@ -298,7 +308,7 @@ void conv_2d_int_c4h1w4(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -313,7 +323,8 @@ void conv_2d_int_c4h1w4(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks, __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -343,10 +354,14 @@ void conv_2d_int_c4h1w4(GLOBAL_SIZE_2_DIMS const int weight_oc_offset = out_c_blocks * filter_hw.x * filter_hw.y * 4; for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); COMPUTE_FLOAT4 scale = (COMPUTE_FLOAT4)(ScaleOffset.s0, ScaleOffset.s2, ScaleOffset.s4, ScaleOffset.s6); COMPUTE_FLOAT4 offset = (COMPUTE_FLOAT4)(ScaleOffset.s1, ScaleOffset.s3, ScaleOffset.s5, ScaleOffset.s7); + #else + COMPUTE_FLOAT4 scale = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + COMPUTE_FLOAT4 offset = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx*kh*kw + kh_start*kw + kw_start, 0] int weight_offset = ((((4*in_c_idx+0)* out_c_blocks + out_c_idx) *filter_hw.x + kh_start)*filter_hw.y + 0) * 4; @@ -472,7 +487,7 @@ void conv_2d_int_c4h4w1(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -487,7 +502,8 @@ void conv_2d_int_c4h4w1(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks, __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -518,10 +534,14 @@ void conv_2d_int_c4h4w1(GLOBAL_SIZE_2_DIMS const int weight_oc_offset = out_c_blocks * filter_hw.x * filter_hw.y * 4; const int in_hw_size = in_hw.x * in_hw.y; for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); COMPUTE_FLOAT4 scale = (COMPUTE_FLOAT4)(ScaleOffset.s0, ScaleOffset.s2, ScaleOffset.s4, ScaleOffset.s6); COMPUTE_FLOAT4 offset = (COMPUTE_FLOAT4)(ScaleOffset.s1, ScaleOffset.s3, ScaleOffset.s5, ScaleOffset.s7); + #else + COMPUTE_FLOAT4 scale = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + COMPUTE_FLOAT4 offset = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx*kh*kw + kh_start*kw + kw_start, 0] const int inp_offset_base = (out_b_idx + in_c_idx*batch) * in_hw.x * in_hw.y * 4; @@ -653,7 +673,7 @@ void conv_2d_int_c8h4w1(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -668,7 +688,8 @@ void conv_2d_int_c8h4w1(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks, __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -707,17 +728,26 @@ void conv_2d_int_c8h4w1(GLOBAL_SIZE_2_DIMS const int weight_ic_offset = out_c_blocks * weight_oc_offset; const int in_hw_size = in_hw.x * in_hw.y; for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset0 = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_0, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset0 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_0, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #ifdef CHANNEL_BOUNDARY_PROTECT - COMPUTE_FLOAT8 ScaleOffset1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1, dequantScaleOffset + kindex)); + COMPUTE_FLOAT8 ScaleOffset1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #else - COMPUTE_FLOAT8 ScaleOffset1 = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1, dequantScaleOffset + kindex)); + COMPUTE_FLOAT8 ScaleOffset1 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #endif COMPUTE_FLOAT4 scale0 = (COMPUTE_FLOAT4)(ScaleOffset0.s0, ScaleOffset0.s2, ScaleOffset0.s4, ScaleOffset0.s6); COMPUTE_FLOAT4 offset0 = (COMPUTE_FLOAT4)(ScaleOffset0.s1, ScaleOffset0.s3, ScaleOffset0.s5, ScaleOffset0.s7); COMPUTE_FLOAT4 scale1 = (COMPUTE_FLOAT4)(ScaleOffset1.s0, ScaleOffset1.s2, ScaleOffset1.s4, ScaleOffset1.s6); COMPUTE_FLOAT4 offset1 = (COMPUTE_FLOAT4)(ScaleOffset1.s1, ScaleOffset1.s3, ScaleOffset1.s5, ScaleOffset1.s7); + #else + COMPUTE_FLOAT4 scale0 = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_0, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #ifdef CHANNEL_BOUNDARY_PROTECT + COMPUTE_FLOAT4 scale1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT4)0 : CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #else + COMPUTE_FLOAT4 scale1 = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #endif + COMPUTE_FLOAT4 offset0 = 0, offset1 = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx_0*kh*kw + kh_start*kw + kw_start, 0] const int inp_offset_base = (out_b_idx + in_c_idx*batch) * in_hw.x * in_hw.y * 4; @@ -956,7 +986,7 @@ void conv_2d_int_c8h2w1(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -971,7 +1001,8 @@ void conv_2d_int_c8h2w1(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks, __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -1005,17 +1036,26 @@ void conv_2d_int_c8h2w1(GLOBAL_SIZE_2_DIMS const int in_hw_size = in_hw.x * in_hw.y; // weight: [ic/4, oc, 4], loop: ic/4 for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset0 = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_0, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset0 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_0, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #ifdef CHANNEL_BOUNDARY_PROTECT - COMPUTE_FLOAT8 ScaleOffset1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1, dequantScaleOffset + kindex)); + COMPUTE_FLOAT8 ScaleOffset1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #else - COMPUTE_FLOAT8 ScaleOffset1 = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1, dequantScaleOffset + kindex)); + COMPUTE_FLOAT8 ScaleOffset1 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #endif COMPUTE_FLOAT4 scale0 = (COMPUTE_FLOAT4)(ScaleOffset0.s0, ScaleOffset0.s2, ScaleOffset0.s4, ScaleOffset0.s6); COMPUTE_FLOAT4 offset0 = (COMPUTE_FLOAT4)(ScaleOffset0.s1, ScaleOffset0.s3, ScaleOffset0.s5, ScaleOffset0.s7); COMPUTE_FLOAT4 scale1 = (COMPUTE_FLOAT4)(ScaleOffset1.s0, ScaleOffset1.s2, ScaleOffset1.s4, ScaleOffset1.s6); COMPUTE_FLOAT4 offset1 = (COMPUTE_FLOAT4)(ScaleOffset1.s1, ScaleOffset1.s3, ScaleOffset1.s5, ScaleOffset1.s7); + #else + COMPUTE_FLOAT4 scale0 = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_0, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #ifdef CHANNEL_BOUNDARY_PROTECT + COMPUTE_FLOAT4 scale1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT4)0 : CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #else + COMPUTE_FLOAT4 scale1 = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #endif + COMPUTE_FLOAT4 offset0 = 0, offset1 = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx_0*kh*kw + kh_start*kw + kw_start, 0] const int inp_offset_base = (out_b_idx + in_c_idx*batch) * in_hw.x * in_hw.y * 4; @@ -1197,7 +1237,7 @@ void conv_2d_int_c8h1w4(GLOBAL_SIZE_2_DIMS #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT *output, __private const int2 in_hw, @@ -1212,7 +1252,8 @@ void conv_2d_int_c8h1w4(GLOBAL_SIZE_2_DIMS __private const int out_w_blocks, __private const int out_c_blocks, __private const int out_h_blocks, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int out_c_w_idx = get_global_id(0); //c/4 w const int out_b_h_idx = get_global_id(1); //b h @@ -1250,17 +1291,26 @@ void conv_2d_int_c8h1w4(GLOBAL_SIZE_2_DIMS const int weight_oc_offset = filter_hw.x * filter_hw.y * 4; const int weight_ic_offset = out_c_blocks * weight_oc_offset; for(ushort in_c_idx = 0; in_c_idx < in_c_blocks; in_c_idx++) { - int kindex = (in_c_idx * 4) / blockDim * out_c_blocks * 8; - COMPUTE_FLOAT8 ScaleOffset0 = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_0, dequantScaleOffset + kindex)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT8 ScaleOffset0 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_0, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #ifdef CHANNEL_BOUNDARY_PROTECT - COMPUTE_FLOAT8 ScaleOffset1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1, dequantScaleOffset + kindex)); + COMPUTE_FLOAT8 ScaleOffset1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #else - COMPUTE_FLOAT8 ScaleOffset1 = CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1, dequantScaleOffset + kindex)); + COMPUTE_FLOAT8 ScaleOffset1 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 8)) / coef); #endif COMPUTE_FLOAT4 scale0 = (COMPUTE_FLOAT4)(ScaleOffset0.s0, ScaleOffset0.s2, ScaleOffset0.s4, ScaleOffset0.s6); COMPUTE_FLOAT4 offset0 = (COMPUTE_FLOAT4)(ScaleOffset0.s1, ScaleOffset0.s3, ScaleOffset0.s5, ScaleOffset0.s7); COMPUTE_FLOAT4 scale1 = (COMPUTE_FLOAT4)(ScaleOffset1.s0, ScaleOffset1.s2, ScaleOffset1.s4, ScaleOffset1.s6); COMPUTE_FLOAT4 offset1 = (COMPUTE_FLOAT4)(ScaleOffset1.s1, ScaleOffset1.s3, ScaleOffset1.s5, ScaleOffset1.s7); + #else + COMPUTE_FLOAT4 scale0 = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_0, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #ifdef CHANNEL_BOUNDARY_PROTECT + COMPUTE_FLOAT4 scale1 = out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT4)0 : CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #else + COMPUTE_FLOAT4 scale1 = CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1, dequantScaleOffset + (in_c_idx * 4) / blockDim * out_c_blocks * 4)) / coef); + #endif + COMPUTE_FLOAT4 offset0 = 0, offset1 = 0; + #endif //weights NC4HW4 [1, 4*icC4, ocC4*kh*kw, 1] xic4 //index: [0, 4*in_c_idx, out_c_idx_0*kh*kw + kh_start*kw + kw_start, 0] int weight_offset = ((((4*in_c_idx+0)* out_c_blocks + out_c_idx_0) *filter_hw.x + kh_start)*filter_hw.y + 0) * 4; diff --git a/source/backend/opencl/execution/cl/gemm_conv1x1_buf.cl b/source/backend/opencl/execution/cl/gemm_conv1x1_buf.cl index b8c503107..bdfaa22c7 100644 --- a/source/backend/opencl/execution/cl/gemm_conv1x1_buf.cl +++ b/source/backend/opencl/execution/cl/gemm_conv1x1_buf.cl @@ -24,12 +24,14 @@ __kernel void inverse_quant_weight(GLOBAL_SIZE_DIM2 __global const uchar *weight, #endif #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global FLOAT* output, + __private const int inputChannel, __private const int inputChannel4Align, __private const int outputChannelAlign, __private const int outputChannel4Align, - __private const int blockDim){ + __private const int blockDim, + __private const float coef){ const int x = get_global_id(0); //ic const int y = get_global_id(1); //oc @@ -40,13 +42,16 @@ __kernel void inverse_quant_weight(GLOBAL_SIZE_DIM2 const int oc = y << 3; const int output_offset = ic * outputChannelAlign + oc; - int kindex = (ic / blockDim) * outputChannel4Align * 2; + #ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 ScaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + kindex + oc * 2)); + COMPUTE_FLOAT16 ScaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + ((ic / blockDim) * outputChannel4Align + oc) * 2)) / coef); scale = ScaleOffset.s02468ace; offset = ScaleOffset.s13579bdf; } + #else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + (ic / blockDim) * outputChannel4Align + oc)) / coef); + #endif COMPUTE_FLOAT8 weights0, weights1, weights2, weights3; { #ifdef USE_IMAGE @@ -55,34 +60,51 @@ __kernel void inverse_quant_weight(GLOBAL_SIZE_DIM2 uchar16 charWeightsInt40 = vload16(x, weight + y * inputChannel4Align * 4); #endif char8 charWeights0; + #ifdef ASYMMETRIC UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.s0123); weights0 = CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.s4567); - weights1 = CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; + weights1 = ic + 1 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; + + UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.s89ab); + weights2 = ic + 2 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; + + UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.scdef); + weights3 = ic + 3 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; + #else + UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.s0123); + weights0 = CONVERT_COMPUTE_FLOAT8(charWeights0) * scale; + + UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.s4567); + weights1 = ic + 1 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0) * scale; UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.s89ab); - weights2 = CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; + weights2 = ic + 2 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0) * scale; UCHAR4_TO_CHAR8(charWeights0, charWeightsInt40.scdef); - weights3 = CONVERT_COMPUTE_FLOAT8(charWeights0) * scale + offset; + weights3 = ic + 3 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0) * scale; + #endif } - vstore8(weights0, 0, output+output_offset); - vstore8(weights1, 0, output+output_offset+outputChannelAlign); - vstore8(weights2, 0, output+output_offset+2*outputChannelAlign); - vstore8(weights3, 0, output+output_offset+3*outputChannelAlign); + vstore8(CONVERT_FLOAT8(weights0), 0, output+output_offset); + vstore8(CONVERT_FLOAT8(weights1), 0, output+output_offset+outputChannelAlign); + vstore8(CONVERT_FLOAT8(weights2), 0, output+output_offset+2*outputChannelAlign); + vstore8(CONVERT_FLOAT8(weights3), 0, output+output_offset+3*outputChannelAlign); #else const int ic = x << 1; const int oc = y << 3; const int output_offset = ic * outputChannelAlign + oc; - - int kindex = (ic / blockDim) * outputChannel4Align * 2; + + #ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 ScaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + kindex + oc * 2)); + COMPUTE_FLOAT16 ScaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + ((ic / blockDim) * outputChannel4Align + oc) * 2)) / coef); scale = ScaleOffset.s02468ace; offset = ScaleOffset.s13579bdf; } + #else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + (ic / blockDim) * outputChannel4Align + oc)) / coef); + #endif COMPUTE_FLOAT8 weights0, weights1; { #ifdef USE_IMAGE @@ -90,12 +112,17 @@ __kernel void inverse_quant_weight(GLOBAL_SIZE_DIM2 #else COMPUTE_FLOAT16 wei = CONVERT_COMPUTE_FLOAT16(vload16(x, weight + y * inputChannel4Align * 8)); #endif + #ifdef ASYMMETRIC weights0 = wei.s01234567 * scale + offset; - weights1 = wei.s89abcdef * scale + offset; + weights1 = ic + 1 >= inputChannel ? 0 : wei.s89abcdef * scale + offset; + #else + weights0 = wei.s01234567 * scale; + weights1 = ic + 1 >= inputChannel ? 0 : wei.s89abcdef * scale; + #endif } - vstore8(weights0, 0, output+output_offset); - vstore8(weights1, 0, output+output_offset+outputChannelAlign); -#endif + vstore8(CONVERT_FLOAT8(weights0), 0, output+output_offset); + vstore8(CONVERT_FLOAT8(weights1), 0, output+output_offset+outputChannelAlign); + #endif } #define UCHAR4_TO_FLOAT8(b, scale, offset) \ @@ -109,7 +136,6 @@ __kernel void inverse_quant_weight(GLOBAL_SIZE_DIM2 wei.s7 = (COMPUTE_FLOAT)((b.s3 & 15) - 8); \ wei = wei * scale + offset; - __kernel void gemm_b4_c8_int4_buf(GLOBAL_SIZE_DIM2 __global const FLOAT* input, #ifdef USE_IMAGE @@ -117,14 +143,15 @@ __kernel void gemm_b4_c8_int4_buf(GLOBAL_SIZE_DIM2 #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT* output, __private const int bhw, __private const int dstChannelAlign, __private const int srcChannelAlign, __private const int blockNum, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int x = get_global_id(0); //b/4 const int y = get_global_id(1); //c/8 @@ -133,7 +160,7 @@ __kernel void gemm_b4_c8_int4_buf(GLOBAL_SIZE_DIM2 const int out_b_idx = x << 2; const int out_c_idx = y << 1; - COMPUTE_FLOAT8 out0 = CONVERT_FLOAT8(vload8(0, bias + (out_c_idx << 2))); + COMPUTE_FLOAT8 out0 = CONVERT_COMPUTE_FLOAT8(vload8(0, bias + (out_c_idx << 2))); COMPUTE_FLOAT8 out1 = out0; COMPUTE_FLOAT8 out2 = out0; COMPUTE_FLOAT8 out3 = out0; @@ -154,12 +181,17 @@ __kernel void gemm_b4_c8_int4_buf(GLOBAL_SIZE_DIM2 #if INPUT_BATCH_LEAVES_NUM != 0 if(out_b_idx + 3 >= bhw){ for (int i = 0; i < blockNum; i++){ + #ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)); + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)) / coef); scale = scaleOffset.s02468ace; offset = scaleOffset.s13579bdf; } + #else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + (out_c_idx << 2) + i * dstChannelAlign)) / coef); + COMPUTE_FLOAT8 offset = 0; + #endif for (int j = 0; j < loop_end; j++) { int k = i * loop + j; COMPUTE_FLOAT8 wei; @@ -272,12 +304,17 @@ __kernel void gemm_b4_c8_int4_buf(GLOBAL_SIZE_DIM2 } else { #endif for (int i = 0; i < blockNum; i++){ + #ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)); + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)) / coef); scale = scaleOffset.s02468ace; offset = scaleOffset.s13579bdf; } + #else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + (out_c_idx << 2) + i * dstChannelAlign)) / coef); + COMPUTE_FLOAT8 offset = 0; + #endif for (int j = 0; j < loop_end; j++) { int k = i * loop + j; COMPUTE_FLOAT8 wei; @@ -395,14 +432,15 @@ __kernel void gemm_b4_c8_int8_buf(GLOBAL_SIZE_DIM2 #else __global const char *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT* output, __private const int bhw, __private const int dstChannelAlign, __private const int srcChannelAlign, __private const int blockNum, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int x = get_global_id(0); //b/4 const int y = get_global_id(1); //c/8 @@ -411,7 +449,7 @@ __kernel void gemm_b4_c8_int8_buf(GLOBAL_SIZE_DIM2 const int out_b_idx = x << 2; const int out_c_idx = y << 1; - COMPUTE_FLOAT8 out0 = CONVERT_FLOAT8(vload8(0, bias + (out_c_idx << 2))); + COMPUTE_FLOAT8 out0 = CONVERT_COMPUTE_FLOAT8(vload8(0, bias + (out_c_idx << 2))); COMPUTE_FLOAT8 out1 = out0; COMPUTE_FLOAT8 out2 = out0; COMPUTE_FLOAT8 out3 = out0; @@ -434,9 +472,15 @@ __kernel void gemm_b4_c8_int8_buf(GLOBAL_SIZE_DIM2 for (int i = 0; i < blockNum; i++){ COMPUTE_FLOAT16 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)) / coef); scale = (COMPUTE_FLOAT16)(scaleOffset.s02468ace, scaleOffset.s02468ace); offset = (COMPUTE_FLOAT16)(scaleOffset.s13579bdf, scaleOffset.s13579bdf); + #else + scale.s01234567 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + (out_c_idx << 2) + i * dstChannelAlign)) / coef); + scale.s89abcdef = scale.s01234567; + offset = 0; + #endif } for (int j = 0; j < loop_end; j++) { int k = i * loop + j; @@ -549,9 +593,15 @@ __kernel void gemm_b4_c8_int8_buf(GLOBAL_SIZE_DIM2 for (int i = 0; i < blockNum; i++){ COMPUTE_FLOAT16 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + (out_c_idx << 3) + i * dstChannelAlign * 2)) / coef); scale = (COMPUTE_FLOAT16)(scaleOffset.s02468ace, scaleOffset.s02468ace); offset = (COMPUTE_FLOAT16)(scaleOffset.s13579bdf, scaleOffset.s13579bdf); + #else + scale.s01234567 = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + (out_c_idx << 2) + i * dstChannelAlign)) / coef); + scale.s89abcdef = scale.s01234567; + offset = 0; + #endif } for (int j = 0; j < loop_end; j++) { int k = i * loop + j; diff --git a/source/backend/opencl/execution/cl/gemv_conv1x1_buf.cl b/source/backend/opencl/execution/cl/gemv_conv1x1_buf.cl index a2edaa419..306f65c41 100644 --- a/source/backend/opencl/execution/cl/gemv_conv1x1_buf.cl +++ b/source/backend/opencl/execution/cl/gemv_conv1x1_buf.cl @@ -31,14 +31,15 @@ __kernel void gemv_conv_c8_int4_buf(GLOBAL_SIZE_DIM_2 #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT* output, __private const int dstChannelC4, __private const int srcChannelC4, __private const int srcChannel, __private const int blockNum, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int lid = get_local_id(0); const int oc = get_global_id(1); //oc/8 const int oc8 = oc << 3; @@ -55,12 +56,17 @@ __kernel void gemv_conv_c8_int4_buf(GLOBAL_SIZE_DIM_2 for(int j = lid; j < loop; j+=WGS){ int k4 = j << 2; +#ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + oc8 * 2 + (k4 / blockDim) * dstChannelC4 * 8)); + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + oc8 * 2 + (k4 / blockDim) * dstChannelC4 * 8)) / coef); scale = scaleOffset.s02468ace; offset = scaleOffset.s13579bdf; } +#else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + oc8 + (k4 / blockDim) * dstChannelC4 * 4)) / coef); + COMPUTE_FLOAT8 offset = 0; +#endif COMPUTE_FLOAT8 wei; COMPUTE_FLOAT4 in = CONVERT_COMPUTE_FLOAT4(vload4(0, input + k4)); #ifdef USE_IMAGE @@ -88,14 +94,18 @@ __kernel void gemv_conv_c8_int4_buf(GLOBAL_SIZE_DIM_2 #if INPUT_CHANNEL_LEAVES_NUM != 0 { int k4 = loop << 2; +#ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + oc8 * 2 + (k4 / blockDim) * dstChannelC4 * 8)); + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + oc8 * 2 + (k4 / blockDim) * dstChannelC4 * 8)) / coef); scale = scaleOffset.s02468ace; offset = scaleOffset.s13579bdf; } +#else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + oc8 + (k4 / blockDim) * dstChannelC4 * 4)) / coef); + COMPUTE_FLOAT8 offset = 0; +#endif COMPUTE_FLOAT8 wei; - COMPUTE_FLOAT4 in = CONVERT_COMPUTE_FLOAT4(vload4(0, input + k4)); #ifdef USE_IMAGE uchar16 charWeightsInt40 = as_uchar16(read_imagei(weight, SAMPLER, (int2)(j, oc))); #else @@ -146,14 +156,15 @@ __kernel void gemv_conv_c8_int8_buf(GLOBAL_SIZE_DIM_2 #else __global const char *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT* output, __private const int dstChannelC4, __private const int srcChannelC4, __private const int srcChannel, __private const int blockNum, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int lid = get_local_id(0); const int oc = get_global_id(1); //oc/8 const int oc8 = oc << 3; @@ -171,9 +182,15 @@ __kernel void gemv_conv_c8_int8_buf(GLOBAL_SIZE_DIM_2 int k2 = j << 1; COMPUTE_FLOAT16 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + oc8 * 2 + (k2 / blockDim) * dstChannelC4 * 8)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + oc8 * 2 + (k2 / blockDim) * dstChannelC4 * 8)) / coef); scale = (COMPUTE_FLOAT16)(scaleOffset.s02468ace, scaleOffset.s02468ace); offset = (COMPUTE_FLOAT16)(scaleOffset.s13579bdf, scaleOffset.s13579bdf); + #else + COMPUTE_FLOAT8 scaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + oc8 + (k2 / blockDim) * dstChannelC4 * 4)) / coef); + scale = (COMPUTE_FLOAT16)(scaleOffset, scaleOffset); + offset = 0; + #endif } COMPUTE_FLOAT2 in = CONVERT_COMPUTE_FLOAT2(vload2(0, input + k2)); #ifdef USE_IMAGE @@ -191,12 +208,17 @@ __kernel void gemv_conv_c8_int8_buf(GLOBAL_SIZE_DIM_2 #if INPUT_CHANNEL_LEAVES_NUM != 0 { int k2 = loop << 1; - COMPUTE_FLOAT8 scale, offset; COMPUTE_FLOAT16 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + oc8 * 2 + (k2 / blockDim) * dstChannelC4 * 8)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + oc8 * 2 + (k2 / blockDim) * dstChannelC4 * 8)) / coef); scale = (COMPUTE_FLOAT16)(scaleOffset.s02468ace, scaleOffset.s02468ace); offset = (COMPUTE_FLOAT16)(scaleOffset.s13579bdf, scaleOffset.s13579bdf); + #else + COMPUTE_FLOAT8 scaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + oc8 + (k2 / blockDim) * dstChannelC4 * 4)) / coef); + scale = (COMPUTE_FLOAT16)(scaleOffset, scaleOffset); + offset = 0; + #endif } #ifdef USE_IMAGE COMPUTE_FLOAT16 wei = CONVERT_COMPUTE_FLOAT16(as_char16(read_imagei(weight, SAMPLER, (int2)(j, oc)))) * scale + offset; @@ -204,7 +226,7 @@ __kernel void gemv_conv_c8_int8_buf(GLOBAL_SIZE_DIM_2 COMPUTE_FLOAT16 wei = CONVERT_COMPUTE_FLOAT16(vload16(j, weight + weight_offset)) * scale + offset; #endif { - out0 = mad((COMPUTE_FLOAT8)in[k2], wei.s01234567, out0); + out0 = mad((COMPUTE_FLOAT8)input[k2], wei.s01234567, out0); } } #endif @@ -235,14 +257,15 @@ __kernel void gemv_conv_c8_int4_buf(GLOBAL_SIZE_DIM_2 #else __global const uchar *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT* output, __private const int dstChannelC4, __private const int srcChannelC4, __private const int srcChannel, __private const int blockNum, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int ic = get_global_id(0); const int oc = get_global_id(1); //oc/8 @@ -260,12 +283,17 @@ __kernel void gemv_conv_c8_int4_buf(GLOBAL_SIZE_DIM_2 const int weight_offset = oc * srcChannelC4 * 16; #endif for (int i = 0; i < blockNum; i++){ +#ifdef ASYMMETRIC COMPUTE_FLOAT8 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + oc8 * 2 + i * dstChannelC4 * 8)); + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + oc8 * 2 + i * dstChannelC4 * 8)) / coef); scale = scaleOffset.s02468ace; offset = scaleOffset.s13579bdf; } +#else + COMPUTE_FLOAT8 scale = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + oc8 + i * dstChannelC4 * 4)) / coef); + COMPUTE_FLOAT8 offset = 0; +#endif for (int j = 0; j < loop_end; j++) { int k = i * loop + j; COMPUTE_FLOAT8 wei; @@ -338,14 +366,15 @@ __kernel void gemv_conv_c8_int8_buf(GLOBAL_SIZE_DIM_2 #else __global const char *weight, #endif - __global const float *dequantScaleOffset, + __global const FLOAT *dequantScaleOffset, __global const FLOAT *bias, __global FLOAT* output, __private const int dstChannelC4, __private const int srcChannelC4, __private const int srcChannel, __private const int blockNum, - __private const int blockDim) { + __private const int blockDim, + __private const float coef) { const int ic = get_global_id(0); const int oc = get_global_id(1); //oc/8 UNIFORM_BOUNDRY_CHECK_2(ic, oc); @@ -363,9 +392,15 @@ __kernel void gemv_conv_c8_int8_buf(GLOBAL_SIZE_DIM_2 for (int i = 0; i < blockNum; i++){ COMPUTE_FLOAT16 scale, offset; { - COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(vload16(0, dequantScaleOffset + oc8 * 2 + i * dstChannelC4 * 8)); + #ifdef ASYMMETRIC + COMPUTE_FLOAT16 scaleOffset = CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0, dequantScaleOffset + oc8 * 2 + i * dstChannelC4 * 8)) / coef); scale = (COMPUTE_FLOAT16)(scaleOffset.s02468ace, scaleOffset.s02468ace); offset = (COMPUTE_FLOAT16)(scaleOffset.s13579bdf, scaleOffset.s13579bdf); + #else + COMPUTE_FLOAT8 scaleOffset = CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0, dequantScaleOffset + oc8 + i * dstChannelC4 * 4)) / coef); + scale = (COMPUTE_FLOAT16)(scaleOffset, scaleOffset); + offset = 0; + #endif } for (int j = 0; j < loop_end; j++) { int k = i * loop + j; diff --git a/source/backend/opencl/execution/cl/opencl_program.cc b/source/backend/opencl/execution/cl/opencl_program.cc index 7ea6914fe..a2abb3fad 100644 --- a/source/backend/opencl/execution/cl/opencl_program.cc +++ b/source/backend/opencl/execution/cl/opencl_program.cc @@ -2506,14 +2506,15 @@ const char* gemv_conv1x1_buf = "#else\n" " __global const uchar *weight,\n" "#endif\n" -" __global const float *dequantScaleOffset,\n" +" __global const FLOAT *dequantScaleOffset,\n" " __global const FLOAT *bias,\n" " __global FLOAT* output,\n" " __private const int dstChannelC4,\n" " __private const int srcChannelC4,\n" " __private const int srcChannel,\n" " __private const int blockNum,\n" -" __private const int blockDim) {\n" +" __private const int blockDim,\n" +" __private const float coef) {\n" " const int lid=get_local_id(0);\n" " const int oc=get_global_id(1); //oc/8\n" " const int oc8=oc << 3;\n" @@ -2530,12 +2531,17 @@ const char* gemv_conv1x1_buf = " \n" " for(int j=lid; j= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1,dequantScaleOffset+kindex));\n" +" COMPUTE_FLOAT8 ScaleOffset1=out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*8))/coef);\n" " #else\n" -" COMPUTE_FLOAT8 ScaleOffset1=CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1,dequantScaleOffset+kindex));\n" +" COMPUTE_FLOAT8 ScaleOffset1=CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*8))/coef);\n" " #endif\n" " COMPUTE_FLOAT4 scale0=(COMPUTE_FLOAT4)(ScaleOffset0.s0,ScaleOffset0.s2,ScaleOffset0.s4,ScaleOffset0.s6);\n" " COMPUTE_FLOAT4 offset0=(COMPUTE_FLOAT4)(ScaleOffset0.s1,ScaleOffset0.s3,ScaleOffset0.s5,ScaleOffset0.s7);\n" " COMPUTE_FLOAT4 scale1=(COMPUTE_FLOAT4)(ScaleOffset1.s0,ScaleOffset1.s2,ScaleOffset1.s4,ScaleOffset1.s6);\n" " COMPUTE_FLOAT4 offset1=(COMPUTE_FLOAT4)(ScaleOffset1.s1,ScaleOffset1.s3,ScaleOffset1.s5,ScaleOffset1.s7);\n" +" #else\n" +" COMPUTE_FLOAT4 scale0=CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_0,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #ifdef CHANNEL_BOUNDARY_PROTECT\n" +" COMPUTE_FLOAT4 scale1=out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT4)0 : CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #else\n" +" COMPUTE_FLOAT4 scale1=CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #endif\n" +" COMPUTE_FLOAT4 offset0=0,offset1=0;\n" +" #endif\n" " //weights NC4HW4 [1,4*icC4,ocC4*kh*kw,1] xic4\n" " //index: [0,4*in_c_idx,out_c_idx_0*kh*kw+kh_start*kw+kw_start,0]\n" " const int inp_offset_base=(out_b_idx+in_c_idx*batch)*in_hw.x*in_hw.y*4;\n" @@ -5090,7 +5155,7 @@ const char* conv_2d_int_buf = "#else\n" " __global const uchar *weight,\n" "#endif\n" -" __global const float *dequantScaleOffset,\n" +" __global const FLOAT *dequantScaleOffset,\n" " __global const FLOAT *bias,\n" " __global FLOAT *output,\n" " __private const int2 in_hw,\n" @@ -5105,7 +5170,8 @@ const char* conv_2d_int_buf = " __private const int out_w_blocks,\n" " __private const int out_c_blocks,\n" " __private const int out_h_blocks,\n" -" __private const int blockDim) {\n" +" __private const int blockDim,\n" +" __private const float coef) {\n" " const int out_c_w_idx=get_global_id(0); //c/4 w\n" " const int out_b_h_idx=get_global_id(1); //b h\n" " DEAL_NON_UNIFORM_DIM2(out_c_w_idx,out_b_h_idx);\n" @@ -5134,17 +5200,26 @@ const char* conv_2d_int_buf = " const int in_hw_size=in_hw.x*in_hw.y;\n" " // weight: [ic/4,oc,4],loop: ic/4\n" " for(ushort in_c_idx=0; in_c_idx= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1,dequantScaleOffset+kindex));\n" +" COMPUTE_FLOAT8 ScaleOffset1=out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*8))/coef);\n" " #else\n" -" COMPUTE_FLOAT8 ScaleOffset1=CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1,dequantScaleOffset+kindex));\n" +" COMPUTE_FLOAT8 ScaleOffset1=CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*8))/coef);\n" " #endif\n" " COMPUTE_FLOAT4 scale0=(COMPUTE_FLOAT4)(ScaleOffset0.s0,ScaleOffset0.s2,ScaleOffset0.s4,ScaleOffset0.s6);\n" " COMPUTE_FLOAT4 offset0=(COMPUTE_FLOAT4)(ScaleOffset0.s1,ScaleOffset0.s3,ScaleOffset0.s5,ScaleOffset0.s7);\n" " COMPUTE_FLOAT4 scale1=(COMPUTE_FLOAT4)(ScaleOffset1.s0,ScaleOffset1.s2,ScaleOffset1.s4,ScaleOffset1.s6);\n" " COMPUTE_FLOAT4 offset1=(COMPUTE_FLOAT4)(ScaleOffset1.s1,ScaleOffset1.s3,ScaleOffset1.s5,ScaleOffset1.s7);\n" +" #else\n" +" COMPUTE_FLOAT4 scale0=CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_0,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #ifdef CHANNEL_BOUNDARY_PROTECT\n" +" COMPUTE_FLOAT4 scale1=out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT4)0 : CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #else\n" +" COMPUTE_FLOAT4 scale1=CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #endif\n" +" COMPUTE_FLOAT4 offset0=0,offset1=0;\n" +" #endif\n" " //weights NC4HW4 [1,4*icC4,ocC4*kh*kw,1] xic4\n" " //index: [0,4*in_c_idx,out_c_idx_0*kh*kw+kh_start*kw+kw_start,0]\n" " const int inp_offset_base=(out_b_idx+in_c_idx*batch)*in_hw.x*in_hw.y*4;\n" @@ -5320,7 +5395,7 @@ const char* conv_2d_int_buf = "#else\n" " __global const uchar *weight,\n" "#endif\n" -" __global const float *dequantScaleOffset,\n" +" __global const FLOAT *dequantScaleOffset,\n" " __global const FLOAT *bias,\n" " __global FLOAT *output,\n" " __private const int2 in_hw,\n" @@ -5335,7 +5410,8 @@ const char* conv_2d_int_buf = " __private const int out_w_blocks,\n" " __private const int out_c_blocks,\n" " __private const int out_h_blocks,\n" -" __private const int blockDim) {\n" +" __private const int blockDim,\n" +" __private const float coef) {\n" " const int out_c_w_idx=get_global_id(0); //c/4 w\n" " const int out_b_h_idx=get_global_id(1); //b h\n" " DEAL_NON_UNIFORM_DIM2(out_c_w_idx,out_b_h_idx);\n" @@ -5369,17 +5445,26 @@ const char* conv_2d_int_buf = " const int weight_oc_offset=filter_hw.x*filter_hw.y*4;\n" " const int weight_ic_offset=out_c_blocks*weight_oc_offset;\n" " for(ushort in_c_idx=0; in_c_idx= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1,dequantScaleOffset+kindex));\n" +" COMPUTE_FLOAT8 ScaleOffset1=out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT8)0 : CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*8))/coef);\n" " #else\n" -" COMPUTE_FLOAT8 ScaleOffset1=CONVERT_COMPUTE_FLOAT8(vload8(out_c_idx_1,dequantScaleOffset+kindex));\n" +" COMPUTE_FLOAT8 ScaleOffset1=CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*8))/coef);\n" " #endif\n" " COMPUTE_FLOAT4 scale0=(COMPUTE_FLOAT4)(ScaleOffset0.s0,ScaleOffset0.s2,ScaleOffset0.s4,ScaleOffset0.s6);\n" " COMPUTE_FLOAT4 offset0=(COMPUTE_FLOAT4)(ScaleOffset0.s1,ScaleOffset0.s3,ScaleOffset0.s5,ScaleOffset0.s7);\n" " COMPUTE_FLOAT4 scale1=(COMPUTE_FLOAT4)(ScaleOffset1.s0,ScaleOffset1.s2,ScaleOffset1.s4,ScaleOffset1.s6);\n" " COMPUTE_FLOAT4 offset1=(COMPUTE_FLOAT4)(ScaleOffset1.s1,ScaleOffset1.s3,ScaleOffset1.s5,ScaleOffset1.s7);\n" +" #else\n" +" COMPUTE_FLOAT4 scale0=CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_0,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #ifdef CHANNEL_BOUNDARY_PROTECT\n" +" COMPUTE_FLOAT4 scale1=out_c_idx_1 >= out_c_blocks ? (COMPUTE_FLOAT4)0 : CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #else\n" +" COMPUTE_FLOAT4 scale1=CONVERT_COMPUTE_FLOAT4(convert_float4(vload4(out_c_idx_1,dequantScaleOffset+(in_c_idx*4)/blockDim*out_c_blocks*4))/coef);\n" +" #endif\n" +" COMPUTE_FLOAT4 offset0=0,offset1=0;\n" +" #endif\n" " //weights NC4HW4 [1,4*icC4,ocC4*kh*kw,1] xic4\n" " //index: [0,4*in_c_idx,out_c_idx_0*kh*kw+kh_start*kw+kw_start,0]\n" " int weight_offset=((((4*in_c_idx+0)* out_c_blocks+out_c_idx_0) *filter_hw.x+kh_start)*filter_hw.y+0)*4;\n" @@ -10601,6 +10686,49 @@ const char* buffer_convert_quant = " vstore16(out1,0,output_ptr+outputOffset+16);\n" "#endif\n" "}\n" +"__kernel void conv2d_1x1_ic_oc_weight_quant_buffer(GLOBAL_SIZE_2_DIMS\n" +"#ifdef USE_LOW_BIT_WEIGHT_INT4\n" +" __global const uchar *input_ptr,\n" +" __global uchar *output_ptr,//(Ci/packCin, Co/packCout,packCin, packCout)\n" +"#else\n" +" __global const char *input_ptr,\n" +" __global char *output_ptr,//(Ci/packCin, Co/packCout,packCin, packCout)\n" +"#endif\n" +" __private const int input_channel,\n" +" __private const int output_channel,\n" +" __private const int icPack,\n" +" __private const int ocPack) {\n" +" int x=get_global_id(0); // ic/icPack\n" +" int y=get_global_id(1); // oc/ocPack\n" +" DEAL_NON_UNIFORM_DIM2(x,y);\n" +" const int xin=x*icPack;\n" +" const int yin=y*ocPack;\n" +" const int inputChannelC4=(input_channel+icPack-1)/icPack;\n" +" const int outputChannelC4=(output_channel+ocPack-1)/ocPack;\n" +"#ifdef USE_LOW_BIT_WEIGHT_INT4\n" +" const int inputOffset=(yin*input_channel+xin)/2;\n" +" const int outputOffset=((x*outputChannelC4+y)*icPack*ocPack)/2;\n" +" for(int i=0; i> 4) : (s1 & 0x0f);\n" +" output_ptr[outputOffset+i*(ocPack/2)+j]=s0 | s1;\n" +" }\n" +" }\n" +"#else\n" +" const int inputOffset=yin*input_channel+xin;\n" +" const int outputOffset=(x*outputChannelC4+y)*icPack*ocPack;\n" +" for(int i=0; i= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0)*scale+offset;\n" +" \n" +" UCHAR4_TO_CHAR8(charWeights0,charWeightsInt40.s89ab);\n" +" weights2=ic+2 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0)*scale+offset;\n" +" \n" +" UCHAR4_TO_CHAR8(charWeights0,charWeightsInt40.scdef);\n" +" weights3=ic+3 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0)*scale+offset;\n" +" #else\n" +" UCHAR4_TO_CHAR8(charWeights0,charWeightsInt40.s0123);\n" +" weights0=CONVERT_COMPUTE_FLOAT8(charWeights0)*scale;\n" +" \n" +" UCHAR4_TO_CHAR8(charWeights0,charWeightsInt40.s4567);\n" +" weights1=ic+1 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0)*scale;\n" " \n" " UCHAR4_TO_CHAR8(charWeights0,charWeightsInt40.s89ab);\n" -" weights2=CONVERT_COMPUTE_FLOAT8(charWeights0)*scale+offset;\n" +" weights2=ic+2 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0)*scale;\n" " \n" " UCHAR4_TO_CHAR8(charWeights0,charWeightsInt40.scdef);\n" -" weights3=CONVERT_COMPUTE_FLOAT8(charWeights0)*scale+offset;\n" +" weights3=ic+3 >= inputChannel ? 0 : CONVERT_COMPUTE_FLOAT8(charWeights0)*scale;\n" +" #endif\n" " }\n" -" vstore8(weights0,0,output+output_offset);\n" -" vstore8(weights1,0,output+output_offset+outputChannelAlign);\n" -" vstore8(weights2,0,output+output_offset+2*outputChannelAlign);\n" -" vstore8(weights3,0,output+output_offset+3*outputChannelAlign);\n" +" vstore8(CONVERT_FLOAT8(weights0),0,output+output_offset);\n" +" vstore8(CONVERT_FLOAT8(weights1),0,output+output_offset+outputChannelAlign);\n" +" vstore8(CONVERT_FLOAT8(weights2),0,output+output_offset+2*outputChannelAlign);\n" +" vstore8(CONVERT_FLOAT8(weights3),0,output+output_offset+3*outputChannelAlign);\n" "#else\n" " const int ic=x << 1;\n" " const int oc=y << 3;\n" " const int output_offset=ic*outputChannelAlign+oc;\n" -" int kindex=(ic/blockDim)*outputChannel4Align*2;\n" +" \n" +" #ifdef ASYMMETRIC\n" " COMPUTE_FLOAT8 scale,offset;\n" " {\n" -" COMPUTE_FLOAT16 ScaleOffset=CONVERT_COMPUTE_FLOAT16(vload16(0,dequantScaleOffset+kindex+oc*2));\n" +" COMPUTE_FLOAT16 ScaleOffset=CONVERT_COMPUTE_FLOAT16(convert_float16(vload16(0,dequantScaleOffset+((ic/blockDim)*outputChannel4Align+oc)*2))/coef);\n" " scale=ScaleOffset.s02468ace;\n" " offset=ScaleOffset.s13579bdf;\n" " }\n" +" #else\n" +" COMPUTE_FLOAT8 scale=CONVERT_COMPUTE_FLOAT8(convert_float8(vload8(0,dequantScaleOffset+(ic/blockDim)*outputChannel4Align+oc))/coef);\n" +" #endif\n" " COMPUTE_FLOAT8 weights0,weights1;\n" " {\n" " #ifdef USE_IMAGE\n" @@ -20609,12 +20760,17 @@ const char* gemm_conv1x1_buf = " #else\n" " COMPUTE_FLOAT16 wei=CONVERT_COMPUTE_FLOAT16(vload16(x,weight+y*inputChannel4Align*8));\n" " #endif\n" +" #ifdef ASYMMETRIC\n" " weights0=wei.s01234567*scale+offset;\n" -" weights1=wei.s89abcdef*scale+offset;\n" +" weights1=ic+1 >= inputChannel ? 0 : wei.s89abcdef*scale+offset;\n" +" #else\n" +" weights0=wei.s01234567*scale;\n" +" weights1=ic+1 >= inputChannel ? 0 : wei.s89abcdef*scale;\n" +" #endif\n" " }\n" -" vstore8(weights0,0,output+output_offset);\n" -" vstore8(weights1,0,output+output_offset+outputChannelAlign);\n" -"#endif\n" +" vstore8(CONVERT_FLOAT8(weights0),0,output+output_offset);\n" +" vstore8(CONVERT_FLOAT8(weights1),0,output+output_offset+outputChannelAlign);\n" +" #endif\n" "}\n" "#define UCHAR4_TO_FLOAT8(b, scale, offset) "" wei.s0 = (COMPUTE_FLOAT)((b.s0 >> 4) - 8); "" wei.s1 = (COMPUTE_FLOAT)((b.s0 & 15) - 8); "" wei.s2 = (COMPUTE_FLOAT)((b.s1 >> 4) - 8); "" wei.s3 = (COMPUTE_FLOAT)((b.s1 & 15) - 8); "" wei.s4 = (COMPUTE_FLOAT)((b.s2 >> 4) - 8); "" wei.s5 = (COMPUTE_FLOAT)((b.s2 & 15) - 8); "" wei.s6 = (COMPUTE_FLOAT)((b.s3 >> 4) - 8); "" wei.s7 = (COMPUTE_FLOAT)((b.s3 & 15) - 8); "" wei=wei*scale+offset;\n" "__kernel void gemm_b4_c8_int4_buf(GLOBAL_SIZE_DIM2\n" @@ -20624,21 +20780,22 @@ const char* gemm_conv1x1_buf = "#else\n" " __global const uchar *weight,\n" "#endif\n" -" __global const float *dequantScaleOffset,\n" +" __global const FLOAT *dequantScaleOffset,\n" " __global const FLOAT *bias,\n" " __global FLOAT* output,\n" " __private const int bhw,\n" " __private const int dstChannelAlign,\n" " __private const int srcChannelAlign,\n" " __private const int blockNum,\n" -" __private const int blockDim) {\n" +" __private const int blockDim,\n" +" __private const float coef) {\n" " const int x=get_global_id(0); //b/4\n" " const int y=get_global_id(1); //c/8\n" " UNIFORM_BOUNDRY_CHECK(x,y);\n" " \n" " const int out_b_idx=x << 2;\n" " const int out_c_idx=y << 1;\n" -" COMPUTE_FLOAT8 out0=CONVERT_FLOAT8(vload8(0,bias+(out_c_idx << 2)));\n" +" COMPUTE_FLOAT8 out0=CONVERT_COMPUTE_FLOAT8(vload8(0,bias+(out_c_idx << 2)));\n" " COMPUTE_FLOAT8 out1=out0;\n" " COMPUTE_FLOAT8 out2=out0;\n" " COMPUTE_FLOAT8 out3=out0;\n" @@ -20658,12 +20815,17 @@ const char* gemm_conv1x1_buf = "#if INPUT_BATCH_LEAVES_NUM != 0\n" " if(out_b_idx+3 >= bhw){\n" " for (int i=0; i -#define MNN_OP_SUPPORT_LOG +// #define MNN_OP_SUPPORT_LOG //#define MNN_VULKAN_DUMP_MEMORY_USAGE namespace MNN { diff --git a/source/backend/vulkan/buffer/execution/VulkanLayernorm.cpp b/source/backend/vulkan/buffer/execution/VulkanLayernorm.cpp index 2f3114e51..82c37c842 100644 --- a/source/backend/vulkan/buffer/execution/VulkanLayernorm.cpp +++ b/source/backend/vulkan/buffer/execution/VulkanLayernorm.cpp @@ -95,12 +95,13 @@ ErrorCode VulkanLayernorm::onEncode(const std::vector& inputs, const st inside *= inputs.at(0)->length(i); } inside /= mGroup; - } - for (int i = 0; i < rank - mAxisSize; ++i) { - outside *= inputs.at(0)->length(i); - } - for (int i = rank - mAxisSize; i < rank; ++i) { - inside *= inputs.at(0)->length(i); + } else { + for (int i = 0; i < rank - mAxisSize; ++i) { + outside *= inputs.at(0)->length(i); + } + for (int i = rank - mAxisSize; i < rank; ++i) { + inside *= inputs.at(0)->length(i); + } } auto param = reinterpret_cast(mParam->map()); param->size[0] = inside; diff --git a/source/backend/vulkan/component/VulkanDevice.cpp b/source/backend/vulkan/component/VulkanDevice.cpp index 06f1eb5f2..6addd05c5 100644 --- a/source/backend/vulkan/component/VulkanDevice.cpp +++ b/source/backend/vulkan/component/VulkanDevice.cpp @@ -105,6 +105,20 @@ VulkanDevice::VulkanDevice(std::shared_ptr instance) vkGetPhysicalDeviceProperties(mPhysicalDevice, &mDeviceProty); vkGetPhysicalDeviceMemoryProperties(mPhysicalDevice, &mMemoryProty); getDeviceQueue(mQueueFamilyIndex, 0, mQueue); + + // query subgroupSize + { + VkPhysicalDeviceProperties2 deviceProperties2 = {}; + deviceProperties2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; + + VkPhysicalDeviceSubgroupProperties subgroupProperties = {}; + subgroupProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES; + + deviceProperties2.pNext = &subgroupProperties; + vkGetPhysicalDeviceProperties2(mPhysicalDevice, &deviceProperties2); + mSubgroupSize = subgroupProperties.subgroupSize; + } + #ifdef MNN_VULKAN_PRINT_EXT uint32_t pPropertyCount; vkEnumerateInstanceExtensionProperties(nullptr, &pPropertyCount, nullptr); diff --git a/source/backend/vulkan/component/VulkanDevice.hpp b/source/backend/vulkan/component/VulkanDevice.hpp index 7eae18dca..61ca8983f 100644 --- a/source/backend/vulkan/component/VulkanDevice.hpp +++ b/source/backend/vulkan/component/VulkanDevice.hpp @@ -171,6 +171,10 @@ class VulkanDevice : public NonCopyable { } } + uint32_t getSubgroupSize() const { + return mSubgroupSize; + } + private: const VkResult enumerateDeviceExtensionProperties(const VkPhysicalDevice& dev, std::vector& exts_props) const; @@ -184,6 +188,7 @@ class VulkanDevice : public NonCopyable { VkPhysicalDeviceProperties mDeviceProty; VkQueue mQueue; VkPhysicalDeviceMemoryProperties mMemoryProty; + uint32_t mSubgroupSize; }; } // namespace MNN #endif /* VulkanDevice_hpp */ diff --git a/source/backend/vulkan/component/VulkanPipeline.cpp b/source/backend/vulkan/component/VulkanPipeline.cpp index 9113476a5..aa0500b04 100644 --- a/source/backend/vulkan/component/VulkanPipeline.cpp +++ b/source/backend/vulkan/component/VulkanPipeline.cpp @@ -118,6 +118,7 @@ SharedPtr VulkanPipelineFactory::getPrivatePipeline(const std::s } VulkanPipeline * pipeline = createComputePipeline((uint8_t*)content.first, content.second, types, {}); + pipeline->mTuneName = key; SharedPtr resPipeline = pipeline; return resPipeline; } diff --git a/source/backend/vulkan/component/VulkanPipeline.hpp b/source/backend/vulkan/component/VulkanPipeline.hpp index 661303b92..9c17001d1 100644 --- a/source/backend/vulkan/component/VulkanPipeline.hpp +++ b/source/backend/vulkan/component/VulkanPipeline.hpp @@ -161,6 +161,9 @@ class VulkanPipeline : public RefCount { VulkanLayout::DescriptorSet* createSet() const; void changePipeline(const std::vector& localSize) const; +public: + std::string mTuneName; + private: const VulkanDevice& mDevice; mutable VkPipeline mPipeline; diff --git a/source/backend/vulkan/component/VulkanQueryPool.cpp b/source/backend/vulkan/component/VulkanQueryPool.cpp index 7cbe6a928..006fadff4 100644 --- a/source/backend/vulkan/component/VulkanQueryPool.cpp +++ b/source/backend/vulkan/component/VulkanQueryPool.cpp @@ -13,9 +13,9 @@ VulkanQueryPool::VulkanQueryPool(const VulkanDevice& dev) : mDevice(dev){ VkQueryPoolCreateInfo queryPoolCreateInfo = {}; queryPoolCreateInfo.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO; queryPoolCreateInfo.queryType = VK_QUERY_TYPE_TIMESTAMP; - queryPoolCreateInfo.queryCount = 2; // 需要两个时间戳,一个用于开始,一个用于结束 - - vkCreateQueryPool(mDevice.get(), &queryPoolCreateInfo, nullptr, &queryPool); + queryPoolCreateInfo.queryCount = 2; + + CALL_VK(vkCreateQueryPool(mDevice.get(), &queryPoolCreateInfo, nullptr, &queryPool)); } VulkanQueryPool::~VulkanQueryPool(){ @@ -32,10 +32,10 @@ void VulkanQueryPool::VulkanCmdWriteTimestamp(VkCommandBuffer commandBuffer, int float VulkanQueryPool::VulkanGetQueryPoolResults(){ uint64_t timestamps[2]; - vkGetQueryPoolResults(mDevice.get(), queryPool, 0, 2, sizeof(uint64_t) * 2, timestamps, sizeof(uint64_t), VK_QUERY_RESULT_WAIT_BIT); - - float timestampPeriod = mDevice.getTimestampPeriod(); - float executionTime = (timestamps[1] - timestamps[0]) * timestampPeriod * 1e-3f; // us + CALL_VK(vkGetQueryPoolResults(mDevice.get(), queryPool, 0, 2, sizeof(uint64_t) * 2, timestamps, sizeof(uint64_t), VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT)); + + double timestampPeriod = mDevice.getTimestampPeriod(); + double executionTime = (timestamps[1] - timestamps[0]) * timestampPeriod / double(1e6); // us return executionTime; } } // namespace MNN diff --git a/source/backend/vulkan/image/backend/VulkanBackend.cpp b/source/backend/vulkan/image/backend/VulkanBackend.cpp index 1362641bc..bd5e089eb 100644 --- a/source/backend/vulkan/image/backend/VulkanBackend.cpp +++ b/source/backend/vulkan/image/backend/VulkanBackend.cpp @@ -22,7 +22,7 @@ #ifdef MNN_USE_NEON #include #endif -#define MNN_OP_SUPPORT_LOG +// #define MNN_OP_SUPPORT_LOG //#define MNN_VULKAN_DUMP_MEMORY_USAGE #define MNN_VULKAN_MAX_CACHE_CONVSIZE 50 namespace MNN { @@ -57,7 +57,7 @@ static void _copyTensorToBuffer(const Tensor* source, const VulkanBuffer* dest) VulkanBackend::VulkanBackend(const VulkanRuntime* runtime, const Backend::Info& info) : Backend(MNN_FORWARD_VULKAN) { mRuntime = runtime; - mDirect = Backend::Info::INDIRECT != info.mode; + mDirect = (mRuntime->mGpuMode & MNNGpuMode::MNN_GPU_RECORD_BATCH) == 0; mDynamicMemoryPool.reset(new VulkanMemoryPool(runtime->mMemoryPool.get())); auto& dev = device(); @@ -500,5 +500,114 @@ void VulkanBackend::copyBufferToImage(const VulkanBuffer* buffer, const VulkanIm mRuntime->mCmdPool->submitAndWait(cmdbuffer->get()); } +float VulkanBackend::getPipelineTime(const VulkanPipeline* pipeline, std::shared_ptr des, std::vector groupSize) { + std::shared_ptr cmd; + cmd.reset(const_cast(mRuntime->mCmdPool->allocBuffer())); + cmd->begin(0); + mRuntime->mQueryPool->VulkanCmdResetQueryPool(cmd.get()->get()); + mRuntime->mQueryPool->VulkanCmdWriteTimestamp(cmd.get()->get(), 0); + pipeline->bind(cmd.get()->get(), des->get()); + vkCmdDispatch(cmd.get()->get(), groupSize[0], groupSize[1], groupSize[2]); + mRuntime->mQueryPool->VulkanCmdWriteTimestamp(cmd.get()->get(), 1); + cmd->end(); + mRuntime->mCmdPool->submitAndWait(cmd.get()->get()); + float time = mRuntime->mQueryPool->VulkanGetQueryPoolResults(); + return time; +} + + +std::vector VulkanBackend::autoTunePipeline(SharedPtr pipeline, std::shared_ptr des, const std::vector gws, const uint32_t tuneDimension, std::vector defaultLws,float * const minCostPtr) { + bool isPrivate = !(pipeline->mTuneName.empty()); + MNN_ASSERT(isPrivate); + if (mRuntime->mGpuMode & MNNGpuMode::MNN_GPU_TUNING_NONE) { + MNN_ASSERT(defaultLws.size() == 3); + MNN_ASSERT(minCostPtr == nullptr); + pipeline->changePipeline(defaultLws); + return defaultLws; + } + MNN_ASSERT(tuneDimension > 0 && tuneDimension <= 3); + + std::unordered_map & tuneMap = mRuntime->mTuneMap; + VKTuneKey tuneKey = {pipeline->mTuneName, {gws[0], gws[1], gws[2]}}; + if (tuneMap.find(tuneKey) != tuneMap.end()) { + VKTuneValue tuneValue = tuneMap[tuneKey]; + if (minCostPtr) { + *minCostPtr = tuneValue.optimalCost; + } + pipeline->changePipeline({tuneValue.optimalLws[0], tuneValue.optimalLws[1], tuneValue.optimalLws[2]}); + return {tuneValue.optimalLws[0], tuneValue.optimalLws[1], tuneValue.optimalLws[2]}; + } + + std::vector workGroupCount(3, 1); + std::vector lwsOptimal(3, 1); + float minCost = -1.0f; + + std::vector maxLocalWorkGroupSize(3, 1); + int maxNumInvocation = mRuntime->mDevice->getMaxComputeWorkGroupInvocations(); + mRuntime->mDevice->getMaxComputeWorkGroupSize(maxLocalWorkGroupSize); + uint32_t subgroupSize = mRuntime->mDevice->getSubgroupSize(); + + uint32_t minLocalSize, maxLocalX, maxLocalY, maxLocalZ; + minLocalSize = 1; + maxLocalX = ALIMIN(maxLocalWorkGroupSize[0], gws[0] << 1); + maxLocalY = ALIMIN(maxLocalWorkGroupSize[1], gws[1] << 1); + maxLocalZ = ALIMIN(maxLocalWorkGroupSize[2], gws[2] << 1); + + std::pair localSizeRangeX = std::pair(minLocalSize, maxLocalX); + std::pair localSizeRangeY = (tuneDimension > 1) ? std::pair(minLocalSize, maxLocalY) : std::pair(1, 1); + std::pair localSizeRangeZ = (tuneDimension > 2) ? std::pair(minLocalSize, maxLocalZ) : std::pair(1, 1); + + bool tuneNormalFlag = (mRuntime->mGpuMode & MNNGpuMode::MNN_GPU_TUNING_WIDE); + + auto checkInvalid = tuneNormalFlag + ? [](uint32_t x, uint32_t y, uint32_t z, uint32_t subgroupSize) -> bool { return x * y * z > 4 * subgroupSize || x > 128 || y > 128 || z > 128 ; } // MNN_GPU_TUNING_WIDE + : [](uint32_t x, uint32_t y, uint32_t z, uint32_t subgroupSize) -> bool { return x * y * z > 16 * subgroupSize; }; // MNN_GPU_TUNING_HEAVY + + for (uint32_t z = localSizeRangeZ.first; z <= localSizeRangeZ.second; z = z << 1) { + for (uint32_t y = localSizeRangeY.first; y <= localSizeRangeY.second; y = y << 1) { + for (uint32_t x = localSizeRangeX.first; x <= localSizeRangeX.second; x = x << 1) { + if (x * y * z > maxNumInvocation) { + continue; + } + if (x * y * z <= 16) { + continue; + } + if (checkInvalid(x, y, z, subgroupSize)) { + continue; + } + + workGroupCount[0] = UP_DIV(gws[0], x); + workGroupCount[1] = UP_DIV(gws[1], y); + workGroupCount[2] = UP_DIV(gws[2], z); + pipeline->changePipeline({x, y, z}); + auto costTime = getPipelineTime(pipeline.get(), des, {workGroupCount[0], workGroupCount[1], workGroupCount[2]}); + // MNN_PRINT("LWS[%4u,%4u,%4u]---Time[%4.2f]ms\n", x, y, z, costTime); + if(costTime < minCost || minCost < 0.0f) { + minCost = costTime; + lwsOptimal[0] = x; + lwsOptimal[1] = y; + lwsOptimal[2] = z; + } + + } + } + } + + // MNN_PRINT("Optimal LWS[%4u, %4u, %4u]. GWS[%4u, %4u, %4u]. Time[%4.2f]ms\n", lwsOptimal[0], lwsOptimal[1], lwsOptimal[2], + // gws[0], gws[1], gws[2], + // minCost); + + pipeline->changePipeline(lwsOptimal); + + if (minCostPtr) { + *minCostPtr = minCost; + } + + tuneMap[tuneKey] = {{lwsOptimal[0], lwsOptimal[1], lwsOptimal[2]}, minCost}; + + return lwsOptimal; +} + + } // namespace MNN diff --git a/source/backend/vulkan/image/backend/VulkanBackend.hpp b/source/backend/vulkan/image/backend/VulkanBackend.hpp index 1ea259882..20e7421d0 100644 --- a/source/backend/vulkan/image/backend/VulkanBackend.hpp +++ b/source/backend/vulkan/image/backend/VulkanBackend.hpp @@ -82,6 +82,11 @@ class VulkanBackend : public Backend { const VulkanCommandPool::Buffer* getInitCommandBuffer() const { return mInitBuffer.get(); } + + std::vector autoTunePipeline(SharedPtr pipeline, std::shared_ptr des, const std::vector gws, const uint32_t tuneDimension = 3, std::vector defaultLws = {}, float * const minCostPtr = nullptr); + + float getPipelineTime(const VulkanPipeline* pipeline, std::shared_ptr des, std::vector groupSize); + private: bool _supportImageSize(const Tensor* tensor); const VulkanDevice& device() const; diff --git a/source/backend/vulkan/image/compiler/AllShader.cpp b/source/backend/vulkan/image/compiler/AllShader.cpp index 6d70d11a2..386e4b90b 100644 --- a/source/backend/vulkan/image/compiler/AllShader.cpp +++ b/source/backend/vulkan/image/compiler/AllShader.cpp @@ -2127,7 +2127,7 @@ unsigned int glsl_softmaxImage_AXIS_C_comp_len = 5204; const unsigned char glsl_convolutionDepthwiseMali_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -2138,198 +2138,141 @@ const unsigned char glsl_convolutionDepthwiseMali_comp[] = { 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x6f, 0x7a, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x6f, 0x62, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x64, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x66, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x73, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x73, 0x78, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xda, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x68, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, @@ -2337,691 +2280,169 @@ const unsigned char glsl_convolutionDepthwiseMali_comp[] = { 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x96, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x96, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, - 0x38, 0x00, 0x01, 0x00 -}; -unsigned int glsl_convolutionDepthwiseMali_comp_len = 5260; - -const unsigned char glsl_convolutionDepthwiseMali_RELU_comp[] = { - 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x6f, 0x7a, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x6f, 0x62, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x64, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x66, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x73, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x73, 0x78, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x66, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0xca, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x6d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x90, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0xae, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwiseMali_RELU_comp_len = 5360; +unsigned int glsl_convolutionDepthwiseMali_comp_len = 3724; -const unsigned char glsl_convolutionDepthwiseMali_RELU6_comp[] = { +const unsigned char glsl_relu_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -3029,476 +2450,21 @@ const unsigned char glsl_convolutionDepthwiseMali_RELU6_comp[] = { 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x6f, 0x7a, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x6f, 0x62, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x64, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x66, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x73, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x73, 0x78, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x66, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x2c, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x99, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x9d, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x69, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0xd1, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 -}; -unsigned int glsl_convolutionDepthwiseMali_RELU6_comp_len = 5408; - -const unsigned char glsl_relu_comp[] = { - 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x72, 0x65, 0x6c, 0x75, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6d, 0x67, 0x53, - 0x69, 0x7a, 0x65, 0x00, 0x06, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x75, 0x52, 0x65, 0x6c, - 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x05, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x72, 0x65, 0x6c, 0x75, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6d, 0x67, 0x53, + 0x69, 0x7a, 0x65, 0x00, 0x06, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x75, 0x52, 0x65, 0x6c, + 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, @@ -3615,7 +2581,7 @@ unsigned int glsl_relu_comp_len = 1620; const unsigned char glsl_unaryImage_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -3626,66 +2592,57 @@ const unsigned char glsl_unaryImage_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -3703,68 +2660,43 @@ const unsigned char glsl_unaryImage_comp[] = { 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, - 0x38, 0x00, 0x01, 0x00 + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_comp_len = 1732; +unsigned int glsl_unaryImage_comp_len = 1332; const unsigned char glsl_unaryImage_SIGMOID_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -3775,66 +2707,57 @@ const unsigned char glsl_unaryImage_SIGMOID_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -3851,20 +2774,16 @@ const unsigned char glsl_unaryImage_SIGMOID_comp[] = { 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, @@ -3872,63 +2791,38 @@ const unsigned char glsl_unaryImage_SIGMOID_comp[] = { 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_SIGMOID_comp_len = 1912; +unsigned int glsl_unaryImage_SIGMOID_comp_len = 1456; const unsigned char glsl_unaryImage_TANH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -3939,66 +2833,57 @@ const unsigned char glsl_unaryImage_TANH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -4016,72 +2901,45 @@ const unsigned char glsl_unaryImage_TANH_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_TANH_comp_len = 1784; +unsigned int glsl_unaryImage_TANH_comp_len = 1356; const unsigned char glsl_unaryImage_ABS_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -4092,69 +2950,60 @@ const unsigned char glsl_unaryImage_ABS_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, @@ -4169,72 +3018,45 @@ const unsigned char glsl_unaryImage_ABS_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ABS_comp_len = 1784; +unsigned int glsl_unaryImage_ABS_comp_len = 1356; const unsigned char glsl_unaryImage_SQRT_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -4245,66 +3067,57 @@ const unsigned char glsl_unaryImage_SQRT_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -4322,72 +3135,45 @@ const unsigned char glsl_unaryImage_SQRT_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_SQRT_comp_len = 1784; +unsigned int glsl_unaryImage_SQRT_comp_len = 1356; const unsigned char glsl_unaryImage_RSQRT_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -4398,66 +3184,57 @@ const unsigned char glsl_unaryImage_RSQRT_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -4475,72 +3252,45 @@ const unsigned char glsl_unaryImage_RSQRT_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_RSQRT_comp_len = 1784; +unsigned int glsl_unaryImage_RSQRT_comp_len = 1356; const unsigned char glsl_unaryImage_NEG_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -4551,66 +3301,57 @@ const unsigned char glsl_unaryImage_NEG_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -4628,71 +3369,45 @@ const unsigned char glsl_unaryImage_NEG_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_NEG_comp_len = 1776; +unsigned int glsl_unaryImage_NEG_comp_len = 1348; const unsigned char glsl_unaryImage_SQUARE_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -4703,66 +3418,57 @@ const unsigned char glsl_unaryImage_SQUARE_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -4780,73 +3486,45 @@ const unsigned char glsl_unaryImage_SQUARE_comp[] = { 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_SQUARE_comp_len = 1796; +unsigned int glsl_unaryImage_SQUARE_comp_len = 1352; const unsigned char glsl_unaryImage_EXP_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -4857,66 +3535,57 @@ const unsigned char glsl_unaryImage_EXP_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -4934,72 +3603,45 @@ const unsigned char glsl_unaryImage_EXP_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_EXP_comp_len = 1784; +unsigned int glsl_unaryImage_EXP_comp_len = 1356; const unsigned char glsl_unaryImage_SIGN_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5010,66 +3652,57 @@ const unsigned char glsl_unaryImage_SIGN_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -5087,72 +3720,45 @@ const unsigned char glsl_unaryImage_SIGN_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_SIGN_comp_len = 1784; +unsigned int glsl_unaryImage_SIGN_comp_len = 1356; const unsigned char glsl_unaryImage_LOG_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5163,66 +3769,57 @@ const unsigned char glsl_unaryImage_LOG_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -5244,74 +3841,47 @@ const unsigned char glsl_unaryImage_LOG_comp[] = { 0x48, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_LOG_comp_len = 1856; +unsigned int glsl_unaryImage_LOG_comp_len = 1428; const unsigned char glsl_unaryImage_TAN_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5322,66 +3892,57 @@ const unsigned char glsl_unaryImage_TAN_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -5399,72 +3960,45 @@ const unsigned char glsl_unaryImage_TAN_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_TAN_comp_len = 1784; +unsigned int glsl_unaryImage_TAN_comp_len = 1356; const unsigned char glsl_unaryImage_COS_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5475,66 +4009,57 @@ const unsigned char glsl_unaryImage_COS_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -5552,72 +4077,45 @@ const unsigned char glsl_unaryImage_COS_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_COS_comp_len = 1784; +unsigned int glsl_unaryImage_COS_comp_len = 1356; const unsigned char glsl_unaryImage_SIN_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5628,66 +4126,57 @@ const unsigned char glsl_unaryImage_SIN_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -5705,72 +4194,45 @@ const unsigned char glsl_unaryImage_SIN_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_SIN_comp_len = 1784; +unsigned int glsl_unaryImage_SIN_comp_len = 1356; const unsigned char glsl_unaryImage_CEIL_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5781,66 +4243,57 @@ const unsigned char glsl_unaryImage_CEIL_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -5858,72 +4311,45 @@ const unsigned char glsl_unaryImage_CEIL_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_CEIL_comp_len = 1784; +unsigned int glsl_unaryImage_CEIL_comp_len = 1356; const unsigned char glsl_unaryImage_FLOOR_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -5934,66 +4360,57 @@ const unsigned char glsl_unaryImage_FLOOR_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6011,72 +4428,45 @@ const unsigned char glsl_unaryImage_FLOOR_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_FLOOR_comp_len = 1784; +unsigned int glsl_unaryImage_FLOOR_comp_len = 1356; const unsigned char glsl_unaryImage_EXPM1_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -6087,66 +4477,57 @@ const unsigned char glsl_unaryImage_EXPM1_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6168,73 +4549,47 @@ const unsigned char glsl_unaryImage_EXPM1_comp[] = { 0x48, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x63, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_EXPM1_comp_len = 1848; +unsigned int glsl_unaryImage_EXPM1_comp_len = 1420; const unsigned char glsl_unaryImage_RECIPROCAL_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -6245,66 +4600,57 @@ const unsigned char glsl_unaryImage_RECIPROCAL_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6326,71 +4672,45 @@ const unsigned char glsl_unaryImage_RECIPROCAL_comp[] = { 0x47, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x63, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_RECIPROCAL_comp_len = 1824; +unsigned int glsl_unaryImage_RECIPROCAL_comp_len = 1396; const unsigned char glsl_unaryImage_SINH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -6401,66 +4721,57 @@ const unsigned char glsl_unaryImage_SINH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6478,72 +4789,45 @@ const unsigned char glsl_unaryImage_SINH_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 -}; -unsigned int glsl_unaryImage_SINH_comp_len = 1784; + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_unaryImage_SINH_comp_len = 1356; const unsigned char glsl_unaryImage_ASINH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -6554,66 +4838,57 @@ const unsigned char glsl_unaryImage_ASINH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6631,72 +4906,45 @@ const unsigned char glsl_unaryImage_ASINH_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ASINH_comp_len = 1784; +unsigned int glsl_unaryImage_ASINH_comp_len = 1356; const unsigned char glsl_unaryImage_ASIN_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -6707,66 +4955,57 @@ const unsigned char glsl_unaryImage_ASIN_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6784,72 +5023,45 @@ const unsigned char glsl_unaryImage_ASIN_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ASIN_comp_len = 1784; +unsigned int glsl_unaryImage_ASIN_comp_len = 1356; const unsigned char glsl_unaryImage_COSH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -6860,66 +5072,57 @@ const unsigned char glsl_unaryImage_COSH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -6937,72 +5140,45 @@ const unsigned char glsl_unaryImage_COSH_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_COSH_comp_len = 1784; +unsigned int glsl_unaryImage_COSH_comp_len = 1356; const unsigned char glsl_unaryImage_ACOS_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7013,66 +5189,57 @@ const unsigned char glsl_unaryImage_ACOS_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -7090,72 +5257,45 @@ const unsigned char glsl_unaryImage_ACOS_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ACOS_comp_len = 1784; +unsigned int glsl_unaryImage_ACOS_comp_len = 1356; const unsigned char glsl_unaryImage_ACOSH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7166,66 +5306,57 @@ const unsigned char glsl_unaryImage_ACOSH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -7243,72 +5374,45 @@ const unsigned char glsl_unaryImage_ACOSH_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ACOSH_comp_len = 1784; +unsigned int glsl_unaryImage_ACOSH_comp_len = 1356; const unsigned char glsl_unaryImage_ATAN_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7319,66 +5423,57 @@ const unsigned char glsl_unaryImage_ATAN_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -7396,72 +5491,45 @@ const unsigned char glsl_unaryImage_ATAN_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ATAN_comp_len = 1784; +unsigned int glsl_unaryImage_ATAN_comp_len = 1356; const unsigned char glsl_unaryImage_ATANH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7472,66 +5540,57 @@ const unsigned char glsl_unaryImage_ATANH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -7549,72 +5608,45 @@ const unsigned char glsl_unaryImage_ATANH_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ATANH_comp_len = 1784; +unsigned int glsl_unaryImage_ATANH_comp_len = 1356; const unsigned char glsl_unaryImage_LOG1P_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7625,68 +5657,59 @@ const unsigned char glsl_unaryImage_LOG1P_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, @@ -7706,73 +5729,47 @@ const unsigned char glsl_unaryImage_LOG1P_comp[] = { 0x48, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x63, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_LOG1P_comp_len = 1848; +unsigned int glsl_unaryImage_LOG1P_comp_len = 1420; const unsigned char glsl_unaryImage_ROUND_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7783,66 +5780,57 @@ const unsigned char glsl_unaryImage_ROUND_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -7860,72 +5848,45 @@ const unsigned char glsl_unaryImage_ROUND_comp[] = { 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_ROUND_comp_len = 1784; +unsigned int glsl_unaryImage_ROUND_comp_len = 1356; const unsigned char glsl_unaryImage_HARDSWISH_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -7936,23 +5897,16 @@ const unsigned char glsl_unaryImage_HARDSWISH_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x6c, 0x65, 0x66, 0x74, - 0x4d, 0x61, 0x73, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x72, 0x69, 0x67, 0x68, 0x74, 0x4d, 0x61, 0x73, - 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -7972,82 +5926,70 @@ const unsigned char glsl_unaryImage_HARDSWISH_comp[] = { 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, - 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x2c, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, - 0x19, 0x00, 0x09, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, + 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xab, 0xaa, 0x2a, 0x3e, 0x2c, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, @@ -8055,87 +5997,49 @@ const unsigned char glsl_unaryImage_HARDSWISH_comp[] = { 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xba, 0x00, 0x05, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x05, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_HARDSWISH_comp_len = 2472; +unsigned int glsl_unaryImage_HARDSWISH_comp_len = 1788; const unsigned char glsl_unaryImage_GELU_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -8146,22 +6050,17 @@ const unsigned char glsl_unaryImage_GELU_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x74, 0x65, 0x6d, 0x70, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, @@ -8180,78 +6079,65 @@ const unsigned char glsl_unaryImage_GELU_comp[] = { 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x13, 0x27, 0x37, 0x3d, - 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x13, 0x27, 0x37, 0x3d, 0x2c, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x2a, 0x42, 0x4c, 0x3f, 0x2c, 0x00, 0x07, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x2a, 0x42, 0x4c, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, + 0x2c, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x2c, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x56, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, @@ -8259,77 +6145,46 @@ const unsigned char glsl_unaryImage_GELU_comp[] = { 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x59, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_GELU_comp_len = 2272; +unsigned int glsl_unaryImage_GELU_comp_len = 1684; const unsigned char glsl_unaryImage_SILU_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -8340,66 +6195,57 @@ const unsigned char glsl_unaryImage_SILU_comp[] = { 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x54, 0x6d, 0x70, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x35, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, @@ -8416,20 +6262,16 @@ const unsigned char glsl_unaryImage_SILU_comp[] = { 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, @@ -8437,58 +6279,34 @@ const unsigned char glsl_unaryImage_SILU_comp[] = { 0x13, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x88, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_unaryImage_SILU_comp_len = 1900; +unsigned int glsl_unaryImage_SILU_comp_len = 1456; const unsigned char glsl_im2col_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, @@ -8862,7 +6680,7 @@ unsigned int glsl_im2col_comp_len = 4392; const unsigned char glsl_convolutionDepthwise_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -8870,442 +6688,320 @@ const unsigned char glsl_convolutionDepthwise_comp[] = { 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x6f, 0x7a, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x6f, 0x62, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x64, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x66, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x73, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x73, 0x78, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xda, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x68, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, + 0x07, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x96, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x96, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0xa3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, - 0x38, 0x00, 0x01, 0x00 + 0x42, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x93, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwise_comp_len = 5260; +unsigned int glsl_convolutionDepthwise_comp_len = 3804; -const unsigned char glsl_convolutionDepthwise_RELU_comp[] = { +const unsigned char glsl_convolutionDepthwise_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -9313,450 +7009,320 @@ const unsigned char glsl_convolutionDepthwise_RELU_comp[] = { 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x6f, 0x7a, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x6f, 0x62, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x64, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x66, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x73, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x73, 0x78, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x66, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0xca, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, + 0x07, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x6d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x90, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0xae, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0xb5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x73, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x93, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwise_RELU_comp_len = 5360; +unsigned int glsl_convolutionDepthwise_FP32_comp_len = 3804; -const unsigned char glsl_convolutionDepthwise_RELU6_comp[] = { +const unsigned char glsl_convolutionDepthwise_RELU_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -9764,1922 +7330,7163 @@ const unsigned char glsl_convolutionDepthwise_RELU6_comp[] = { 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x6f, 0x7a, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x6f, 0x62, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, 0x73, 0x74, 0x61, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x6e, 0x64, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x66, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x73, 0x79, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x66, 0x78, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x73, 0x78, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x66, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x2c, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xf1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x08, 0x00, 0x07, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x04, 0x00, 0x79, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x99, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x9d, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x69, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x73, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x69, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0xd1, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x20, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x03, 0x01, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x93, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xec, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xec, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwise_RELU6_comp_len = 5408; +unsigned int glsl_convolutionDepthwise_RELU_FP32_comp_len = 3876; -const unsigned char glsl_gridSampleBilinear_comp[] = { +const unsigned char glsl_convolutionDepthwise_RELU6_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x67, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, - 0x6d, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, - 0x61, 0x70, 0x65, 0x00, 0x06, 0x00, 0x06, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, - 0x6e, 0x65, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, - 0x64, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x46, 0x01, 0x00, 0x00, - 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xba, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x46, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x46, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x46, 0x01, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, - 0x2c, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x44, 0x01, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x09, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x66, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x45, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x45, 0x01, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x4c, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x58, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x58, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x90, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x38, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x05, 0x00, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0xcd, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0xce, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x53, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x56, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x58, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5d, 0x01, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, - 0x57, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x63, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, - 0x58, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x65, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x52, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x77, 0x01, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, - 0x77, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, - 0x7e, 0x01, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, - 0x60, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, - 0x96, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x98, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, - 0x97, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, - 0x77, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, - 0xb2, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x1a, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x1c, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x26, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0xd0, 0x01, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, - 0x26, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, - 0x26, 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x2b, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, - 0x7f, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, - 0x32, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x3a, 0x01, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, - 0x1d, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, - 0x2b, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x43, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x33, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x44, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, - 0x46, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x49, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x47, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x61, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x61, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x03, 0x01, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x84, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x93, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_gridSampleBilinear_comp_len = 3672; +unsigned int glsl_convolutionDepthwise_RELU6_FP32_comp_len = 3924; -const unsigned char glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp[] = { +const unsigned char glsl_convolutionDepthwise_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x67, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, - 0x6d, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, - 0x61, 0x70, 0x65, 0x00, 0x06, 0x00, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, - 0x6e, 0x65, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, - 0x64, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, + 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4f, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4f, 0x01, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x55, 0x01, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, - 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x4d, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xca, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, + 0x07, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf1, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xca, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolutionDepthwise_FP16_comp_len = 3940; + +const unsigned char glsl_convolutionDepthwise_RELU_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, + 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x54, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, - 0x54, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x61, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x62, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x62, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x99, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xab, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0xa9, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xb3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xf6, 0x01, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xf6, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x5e, 0x01, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, - 0x60, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x64, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, - 0x61, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x76, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x65, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x66, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x76, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6b, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, - 0x6b, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x72, 0x01, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, - 0x6d, 0x01, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, - 0x74, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x76, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x76, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x66, 0x01, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x80, 0x01, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, - 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, - 0x80, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, - 0x64, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x98, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x87, 0x01, 0x00, 0x00, - 0x88, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x88, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x98, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x89, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x92, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, - 0x92, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, - 0x94, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x96, 0x01, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, - 0x95, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x98, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x98, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0xfb, 0x01, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, - 0x97, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0xa5, 0x01, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, - 0xaf, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, - 0xa8, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xba, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xa9, 0x01, 0x00, 0x00, - 0xaa, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xaa, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xba, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xab, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb4, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, - 0xb4, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x38, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, - 0xb6, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xb8, 0x01, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, - 0xb7, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xba, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xba, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0xfc, 0x01, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, - 0xb9, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, - 0xa4, 0x01, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0xcb, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, - 0xcd, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xcc, 0x01, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xdc, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xce, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd3, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd6, 0x01, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0xd6, 0x01, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, - 0xd9, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, - 0xce, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, - 0xdb, 0x01, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0xdc, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x01, 0x00, 0x00, - 0xf5, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, - 0xcd, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x23, 0x01, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, - 0x25, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x2f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0xf9, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, - 0x2f, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, - 0x2f, 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x34, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, - 0xfb, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, - 0x3b, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x43, 0x01, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, - 0x26, 0x01, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, - 0x34, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x4c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3c, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, - 0x4f, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x52, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x50, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0xe0, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp_len = 4524; +unsigned int glsl_convolutionDepthwise_RELU_FP16_comp_len = 4044; -const unsigned char glsl_gridSampleNearest_comp[] = { +const unsigned char glsl_convolutionDepthwise_RELU6_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, - 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, 0x6d, 0x67, 0x53, 0x69, - 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x73, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, + 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x57, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x03, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3b, 0x00, 0x04, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x6d, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0xab, 0x00, 0x05, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, - 0x57, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, - 0x57, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, - 0x57, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x12, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xc3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x37, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0xb4, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xea, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x11, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x73, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x11, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_gridSampleNearest_comp_len = 2952; +unsigned int glsl_convolutionDepthwise_RELU6_FP16_comp_len = 4092; -const unsigned char glsl_gridSampleNearest_PAD_MODE_ZEROS_comp[] = { +const unsigned char glsl_gridSampleBilinear_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, - 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, 0x6d, 0x67, 0x53, 0x69, - 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x73, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x67, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, + 0x6d, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, + 0x61, 0x70, 0x65, 0x00, 0x06, 0x00, 0x06, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, + 0x6e, 0x65, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, + 0x64, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x46, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x46, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x46, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x57, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x03, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x2c, 0x00, 0x07, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x2c, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x45, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x45, 0x01, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x4c, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x58, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x6d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x57, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xad, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xad, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x25, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xb5, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0xb5, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd1, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x00, - 0xda, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x05, 0x00, 0x50, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x53, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x58, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, + 0x58, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0x7e, 0x01, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x96, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x98, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0xb2, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, + 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x33, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x44, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x37, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x47, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x61, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x61, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_gridSampleNearest_PAD_MODE_ZEROS_comp_len = 3264; +unsigned int glsl_gridSampleBilinear_comp_len = 3672; -const unsigned char glsl_relu6_comp[] = { +const unsigned char glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x72, 0x65, 0x6c, 0x75, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6d, 0x67, 0x53, - 0x69, 0x7a, 0x65, 0x00, 0x06, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x75, 0x52, 0x65, 0x6c, - 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x67, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, + 0x6d, 0x67, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, + 0x61, 0x70, 0x65, 0x00, 0x06, 0x00, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, + 0x6e, 0x65, 0x72, 0x73, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, + 0x64, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x08, 0x00, 0x13, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 -}; -unsigned int glsl_relu6_comp_len = 1644; - -const unsigned char glsl_binaryImage_comp[] = { - 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x6f, 0x73, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x22, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4f, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, + 0x2b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x2c, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x4d, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x4e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x54, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x54, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x61, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x62, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x62, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x42, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xab, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xf6, 0x01, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xf6, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x5e, 0x01, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x64, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x76, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x66, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x76, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x01, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, + 0x74, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x76, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x76, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, + 0x64, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x98, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x88, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x88, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x98, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x89, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x92, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, + 0x92, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x94, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x96, 0x01, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x98, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x98, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0xa8, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xba, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0xaa, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xaa, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xba, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xab, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb4, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0xb4, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xb8, 0x01, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xba, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xba, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xfc, 0x01, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, + 0xb9, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0xa4, 0x01, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xdc, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd6, 0x01, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0xd6, 0x01, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xd9, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xdb, 0x01, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xdc, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x01, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x4c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x4f, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp_len = 4524; + +const unsigned char glsl_convolution1x1_c8w4_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x0b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x22, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc7, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc8, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc9, 0x02, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x67, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x20, 0x02, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x21, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x02, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xc7, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xc8, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xc9, 0x02, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, + 0xc7, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xca, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xcb, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xcb, 0x02, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xca, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xfb, 0x02, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf7, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x05, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf4, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf0, 0x02, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0xf1, 0x02, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x6f, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, 0xfb, 0x02, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xa1, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xff, 0x02, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xbb, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc1, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, + 0xf4, 0x02, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xdb, 0x01, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, + 0xdf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe5, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, + 0xe1, 0x01, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf3, 0x01, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0xf5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xff, 0x01, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x05, 0x02, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, + 0x09, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x0f, 0x02, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, + 0x0b, 0x02, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x17, 0x02, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, + 0x1b, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x02, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, + 0x23, 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x02, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x2e, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x30, 0x02, 0x00, 0x00, 0x29, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x23, 0x02, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x35, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x37, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x35, 0x02, 0x00, 0x00, 0x36, 0x02, 0x00, 0x00, + 0x37, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x36, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x45, 0x02, 0x00, 0x00, + 0x3e, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x38, 0x02, 0x00, 0x00, 0x45, 0x02, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x37, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x37, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x4c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x4a, 0x02, 0x00, 0x00, 0x4b, 0x02, 0x00, 0x00, + 0x4c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4b, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x4d, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x53, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0x53, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x4d, 0x02, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, 0xf4, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x4c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x4c, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x5f, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x61, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x5f, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, + 0x61, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x60, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x61, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x61, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x74, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x76, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x74, 0x02, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, + 0x76, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x75, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x77, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7c, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, + 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x77, 0x02, 0x00, 0x00, + 0x84, 0x02, 0x00, 0x00, 0xfb, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x8b, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x35, 0x02, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x20, 0x02, 0x00, 0x00, 0x8c, 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, + 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x8c, 0x02, 0x00, 0x00, + 0x99, 0x02, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8b, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x4a, 0x02, 0x00, 0x00, 0x9f, 0x02, 0x00, 0x00, + 0xa0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9f, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0xa1, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa7, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, + 0xa7, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xa1, 0x02, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xa0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xa0, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb5, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x5f, 0x02, 0x00, 0x00, + 0xb4, 0x02, 0x00, 0x00, 0xb5, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb4, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, + 0xb6, 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x7c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xc3, 0x02, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xb6, 0x02, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, + 0x0a, 0x03, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb5, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb5, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x76, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x76, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xca, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xca, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_comp_len = 6408; + +const unsigned char glsl_convolution1x1_c8w4_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x0b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x22, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc7, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc8, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc9, 0x02, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x67, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x20, 0x02, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x21, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x02, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x21, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xc7, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xc8, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xc9, 0x02, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, + 0xc7, 0x02, 0x00, 0x00, 0xc8, 0x02, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xca, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xcb, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xcb, 0x02, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xca, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x04, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xfb, 0x02, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf7, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x05, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf4, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf0, 0x02, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0xf1, 0x02, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x6f, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, 0xfb, 0x02, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xa1, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xff, 0x02, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xbb, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc1, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, + 0xf4, 0x02, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xdb, 0x01, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, + 0xdf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe5, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, + 0xe1, 0x01, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf3, 0x01, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0xf5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xff, 0x01, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x05, 0x02, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, + 0x09, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x0f, 0x02, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, + 0x0b, 0x02, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x17, 0x02, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, + 0x1b, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x02, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, + 0x23, 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x02, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x2e, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x30, 0x02, 0x00, 0x00, 0x29, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x23, 0x02, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x35, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x37, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x35, 0x02, 0x00, 0x00, 0x36, 0x02, 0x00, 0x00, + 0x37, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x36, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x45, 0x02, 0x00, 0x00, + 0x3e, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x38, 0x02, 0x00, 0x00, 0x45, 0x02, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x37, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x37, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x4c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x4a, 0x02, 0x00, 0x00, 0x4b, 0x02, 0x00, 0x00, + 0x4c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4b, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x4d, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x53, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0x53, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x4d, 0x02, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, 0xf4, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x4c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x4c, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x5f, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x61, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x5f, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, + 0x61, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x60, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x61, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x61, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x74, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x76, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x74, 0x02, 0x00, 0x00, 0x75, 0x02, 0x00, 0x00, + 0x76, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x75, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0x77, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7c, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, + 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x77, 0x02, 0x00, 0x00, + 0x84, 0x02, 0x00, 0x00, 0xfb, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x8b, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x35, 0x02, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x8b, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x20, 0x02, 0x00, 0x00, 0x8c, 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, + 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x8c, 0x02, 0x00, 0x00, + 0x99, 0x02, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8b, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x4a, 0x02, 0x00, 0x00, 0x9f, 0x02, 0x00, 0x00, + 0xa0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9f, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, 0xa1, 0x02, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa7, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, + 0xa7, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xa1, 0x02, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xa0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xa0, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb5, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x5f, 0x02, 0x00, 0x00, + 0xb4, 0x02, 0x00, 0x00, 0xb5, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb4, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x20, 0x02, 0x00, 0x00, + 0xb6, 0x02, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x7c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xc3, 0x02, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xb6, 0x02, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, + 0x0a, 0x03, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb5, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb5, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x76, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x76, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xca, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xca, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_FP32_comp_len = 6408; + +const unsigned char glsl_convolution1x1_c8w4_RELU_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x02, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x67, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x63, 0x00, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, + 0x21, 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x5a, 0x02, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x5b, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, + 0x02, 0x03, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x05, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x03, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x04, 0x03, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x31, 0x03, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x30, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x2f, 0x03, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2e, 0x03, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2d, 0x03, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2b, 0x03, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x03, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x1f, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x2a, 0x03, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x2a, 0x03, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x2a, 0x03, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, + 0x2b, 0x03, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x67, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x73, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, + 0x6f, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x85, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x93, 0x01, 0x00, 0x00, 0x2d, 0x03, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x99, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0xa1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0x2e, 0x03, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0xbb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, 0x2f, 0x03, 0x00, 0x00, + 0xc1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd9, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, + 0x30, 0x03, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe1, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, + 0xe5, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xeb, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0xe7, 0x01, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf1, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, + 0x31, 0x03, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf7, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0xf3, 0x01, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xfd, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, + 0xff, 0x01, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x0b, 0x02, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, + 0x0f, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x15, 0x02, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, + 0x11, 0x02, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x1d, 0x02, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, + 0x2a, 0x03, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2b, 0x03, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2a, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2c, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x31, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x2d, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2e, 0x03, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3f, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2f, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x46, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x4d, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x31, 0x03, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x54, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x32, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5a, 0x02, 0x00, 0x00, 0x5d, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x63, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0x63, 0x02, 0x00, 0x00, + 0x69, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x5d, 0x02, 0x00, 0x00, + 0x6a, 0x02, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x71, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x6f, 0x02, 0x00, 0x00, + 0x70, 0x02, 0x00, 0x00, 0x71, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x70, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0x72, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x7f, 0x02, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x72, 0x02, 0x00, 0x00, 0x7f, 0x02, 0x00, 0x00, + 0x31, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x71, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x71, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x84, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x86, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x84, 0x02, 0x00, 0x00, + 0x85, 0x02, 0x00, 0x00, 0x86, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x85, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0x87, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x94, 0x02, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x87, 0x02, 0x00, 0x00, 0x94, 0x02, 0x00, 0x00, + 0x3f, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x86, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x86, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x9b, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x99, 0x02, 0x00, 0x00, + 0x9a, 0x02, 0x00, 0x00, 0x9b, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x9a, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0x9c, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa2, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xa9, 0x02, 0x00, 0x00, 0xa2, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9c, 0x02, 0x00, 0x00, 0xa9, 0x02, 0x00, 0x00, + 0x4d, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9b, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9b, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0xae, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb0, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xae, 0x02, 0x00, 0x00, + 0xaf, 0x02, 0x00, 0x00, 0xb0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xaf, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0xb1, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb7, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xbe, 0x02, 0x00, 0x00, + 0xb7, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xb1, 0x02, 0x00, 0x00, 0xbe, 0x02, 0x00, 0x00, 0x2a, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xc5, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x6f, 0x02, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, + 0xc5, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc4, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, + 0xcc, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x38, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xc5, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc5, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xda, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x84, 0x02, 0x00, 0x00, + 0xd9, 0x02, 0x00, 0x00, 0xda, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xd9, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0xdb, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe1, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xb6, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xe8, 0x02, 0x00, 0x00, 0xe1, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xdb, 0x02, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, + 0x46, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xda, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xda, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xef, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x99, 0x02, 0x00, 0x00, 0xee, 0x02, 0x00, 0x00, 0xef, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xee, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5a, 0x02, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf6, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xfd, 0x02, 0x00, 0x00, 0xf6, 0x02, 0x00, 0x00, + 0x69, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xf0, 0x02, 0x00, 0x00, + 0xfd, 0x02, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xef, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xef, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb0, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x04, 0x03, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x04, 0x03, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_RELU_FP32_comp_len = 6676; + +const unsigned char glsl_convolution1x1_c8w4_RELU6_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x35, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x5e, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x02, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x03, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x04, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x05, 0x03, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x67, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x63, 0x00, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, + 0x21, 0x02, 0x00, 0x00, 0x21, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, + 0x23, 0x02, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, + 0x23, 0x02, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x5d, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x5d, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x05, 0x03, 0x00, 0x00, + 0x02, 0x03, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x06, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x07, 0x03, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x06, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x34, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x1d, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x31, 0x03, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xd5, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2f, 0x03, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2e, 0x03, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x2d, 0x03, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x90, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x15, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x2d, 0x03, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, + 0x67, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, + 0x73, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x2e, 0x03, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0x85, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x2f, 0x03, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x93, 0x01, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x99, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0xa1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xbd, 0x01, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0x31, 0x03, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd5, 0x01, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00, + 0xd9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xdf, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, + 0xdb, 0x01, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe7, 0x01, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, + 0xeb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, + 0xf1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xf5, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, + 0xf7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0xfd, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x09, 0x02, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, + 0x34, 0x03, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0xf5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x11, 0x02, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, + 0x15, 0x02, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x1b, 0x02, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, + 0x17, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, 0x2c, 0x03, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x25, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2d, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x24, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2c, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2e, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x64, 0x00, 0x00, 0x00, 0x33, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x03, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x24, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x41, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x31, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x64, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x4f, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x24, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x56, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x34, 0x03, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5c, 0x02, 0x00, 0x00, 0x5f, 0x02, 0x00, 0x00, + 0x5e, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x64, 0x02, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x02, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6b, 0x02, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, + 0x65, 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x5f, 0x02, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x25, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x71, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x71, 0x02, 0x00, 0x00, 0x72, 0x02, 0x00, 0x00, 0x73, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x72, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0x74, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7a, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x81, 0x02, 0x00, 0x00, 0x7a, 0x02, 0x00, 0x00, + 0x6b, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x74, 0x02, 0x00, 0x00, + 0x81, 0x02, 0x00, 0x00, 0x33, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x73, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x73, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x86, 0x02, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x88, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x86, 0x02, 0x00, 0x00, 0x87, 0x02, 0x00, 0x00, 0x88, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x87, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0x89, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8f, 0x02, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x96, 0x02, 0x00, 0x00, 0x8f, 0x02, 0x00, 0x00, + 0x6b, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x89, 0x02, 0x00, 0x00, + 0x96, 0x02, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x88, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x88, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x9b, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x9d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x9b, 0x02, 0x00, 0x00, 0x9c, 0x02, 0x00, 0x00, 0x9d, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9c, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0x9e, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xab, 0x02, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x00, + 0x6b, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x9e, 0x02, 0x00, 0x00, + 0xab, 0x02, 0x00, 0x00, 0x4f, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9d, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9d, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0xb0, 0x02, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xb2, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0xb0, 0x02, 0x00, 0x00, 0xb1, 0x02, 0x00, 0x00, 0xb2, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0xb3, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0xb8, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xc0, 0x02, 0x00, 0x00, 0xb9, 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xb3, 0x02, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, + 0x2c, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc7, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x71, 0x02, 0x00, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0xc7, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5c, 0x02, 0x00, 0x00, + 0xc8, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xce, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xb8, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xd5, 0x02, 0x00, 0x00, 0xce, 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xc8, 0x02, 0x00, 0x00, 0xd5, 0x02, 0x00, 0x00, + 0x3a, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc7, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc7, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xdc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x86, 0x02, 0x00, 0x00, 0xdb, 0x02, 0x00, 0x00, 0xdc, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xdb, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5c, 0x02, 0x00, 0x00, 0xdd, 0x02, 0x00, 0x00, 0x5e, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe3, 0x02, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0xea, 0x02, 0x00, 0x00, 0xe3, 0x02, 0x00, 0x00, + 0x6b, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xdd, 0x02, 0x00, 0x00, + 0xea, 0x02, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xdc, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xf1, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x9b, 0x02, 0x00, 0x00, 0xf0, 0x02, 0x00, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xf0, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5c, 0x02, 0x00, 0x00, 0xf2, 0x02, 0x00, 0x00, + 0x5e, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf8, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, + 0xf8, 0x02, 0x00, 0x00, 0x6b, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xf2, 0x02, 0x00, 0x00, 0xff, 0x02, 0x00, 0x00, 0x56, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xf1, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xf1, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb2, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x06, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x06, 0x03, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_RELU6_FP32_comp_len = 6752; + +const unsigned char glsl_convolution1x1_c8w4_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xdd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xec, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xec, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x98, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x99, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9b, 0x02, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xea, 0x01, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xeb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xea, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x98, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x9a, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x9b, 0x02, 0x00, 0x00, 0x98, 0x02, 0x00, 0x00, + 0x99, 0x02, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x9c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x9d, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9d, 0x02, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xdc, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd6, 0x02, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd1, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xcd, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc9, 0x02, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc2, 0x02, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xe9, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xc2, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xc2, 0x02, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xc2, 0x02, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x11, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0xc3, 0x02, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x33, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x45, 0x01, 0x00, 0x00, 0xcd, 0x02, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x4f, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x6f, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, + 0x73, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0x85, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x89, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0xc6, 0x02, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0xd6, 0x02, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xbb, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, + 0xc9, 0x02, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc1, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, + 0xbd, 0x01, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0xb9, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd5, 0x01, 0x00, 0x00, 0xdc, 0x02, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, + 0xd9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xdf, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, + 0xdb, 0x01, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe7, 0x01, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe9, 0x01, 0x00, 0x00, + 0xc2, 0x02, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x89, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xea, 0x01, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf2, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xf2, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, + 0xf3, 0x01, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0xc3, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xed, 0x01, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, + 0xfc, 0x01, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x02, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xea, 0x01, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x09, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xf2, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, + 0x09, 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x12, 0x02, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x03, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, + 0x12, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x18, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x16, 0x02, 0x00, 0x00, + 0x17, 0x02, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x17, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xea, 0x01, 0x00, 0x00, + 0x19, 0x02, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf2, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x26, 0x02, 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, + 0xc6, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x19, 0x02, 0x00, 0x00, + 0x26, 0x02, 0x00, 0x00, 0x28, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x18, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x18, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2e, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2c, 0x02, 0x00, 0x00, 0x2d, 0x02, 0x00, 0x00, 0x2e, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2d, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xea, 0x01, 0x00, 0x00, 0x2f, 0x02, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xf2, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0x35, 0x02, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x3e, 0x02, 0x00, 0x00, 0xc9, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x2f, 0x02, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0x3e, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2e, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x42, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x44, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x42, 0x02, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, + 0x44, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x43, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xea, 0x01, 0x00, 0x00, 0x45, 0x02, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4b, 0x02, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, 0x4b, 0x02, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x54, 0x02, 0x00, 0x00, 0xcd, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x45, 0x02, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, 0x54, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x5a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x59, 0x02, 0x00, 0x00, + 0x5a, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x59, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xea, 0x01, 0x00, 0x00, 0x5b, 0x02, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x61, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, + 0x61, 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x6a, 0x02, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x5b, 0x02, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, + 0x6a, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5a, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x5a, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x70, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x16, 0x02, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, 0x70, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6f, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xea, 0x01, 0x00, 0x00, 0x71, 0x02, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x77, 0x02, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x7e, 0x02, 0x00, 0x00, 0x77, 0x02, 0x00, 0x00, + 0xf9, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x80, 0x02, 0x00, 0x00, 0xd6, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x71, 0x02, 0x00, 0x00, 0x7e, 0x02, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x70, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x70, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x86, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x02, 0x00, 0x00, + 0x85, 0x02, 0x00, 0x00, 0x86, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x85, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xea, 0x01, 0x00, 0x00, + 0x87, 0x02, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x94, 0x02, 0x00, 0x00, 0x8d, 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x96, 0x02, 0x00, 0x00, + 0xdc, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x87, 0x02, 0x00, 0x00, + 0x94, 0x02, 0x00, 0x00, 0x96, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x86, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x86, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x44, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x44, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9c, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9c, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_FP16_comp_len = 6832; + +const unsigned char glsl_convolution1x1_c8w4_RELU_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xed, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0e, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xba, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xbb, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xbc, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbd, 0x02, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x0c, 0x02, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0d, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0d, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xba, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xbb, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xbd, 0x02, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0xbb, 0x02, 0x00, 0x00, + 0xbc, 0x02, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xbe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xbf, 0x02, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xbe, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x89, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xec, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xe7, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xea, 0x02, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe9, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe7, 0x02, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe6, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe5, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe4, 0x02, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xe9, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xe4, 0x02, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0xe4, 0x02, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0xe4, 0x02, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x11, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x1b, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0xe5, 0x02, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, + 0xe6, 0x02, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x4f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x51, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0xe7, 0x02, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x67, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x89, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0xe9, 0x02, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x93, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x99, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0xea, 0x02, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xb9, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, + 0xbb, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, + 0xc1, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, + 0xec, 0x02, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xdb, 0x01, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, + 0xdf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe5, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, + 0xe1, 0x01, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe9, 0x01, 0x00, 0x00, 0xe4, 0x02, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0xe5, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf2, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf3, 0x01, 0x00, 0x00, 0xf2, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, 0xe7, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf7, 0x01, 0x00, 0x00, 0xf6, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0xfa, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, 0xe9, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xff, 0x01, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xea, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x06, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, 0xec, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x0b, 0x02, 0x00, 0x00, 0x0a, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0c, 0x02, 0x00, 0x00, 0x0f, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x14, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1a, 0x02, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x1a, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x1c, 0x02, 0x00, 0x00, 0x15, 0x02, 0x00, 0x00, + 0x1b, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x1e, 0x02, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x0f, 0x02, 0x00, 0x00, 0x1c, 0x02, 0x00, 0x00, 0x1e, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x22, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x24, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x23, 0x02, 0x00, 0x00, 0x24, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x23, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0c, 0x02, 0x00, 0x00, 0x25, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x32, 0x02, 0x00, 0x00, 0x2b, 0x02, 0x00, 0x00, + 0x1b, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x34, 0x02, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x25, 0x02, 0x00, 0x00, 0x32, 0x02, 0x00, 0x00, 0x34, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x24, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x24, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x38, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x38, 0x02, 0x00, 0x00, 0x39, 0x02, 0x00, 0x00, + 0x3a, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x39, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x02, 0x00, 0x00, 0x3b, 0x02, 0x00, 0x00, + 0x0e, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x41, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, + 0x41, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x4a, 0x02, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x3b, 0x02, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x3a, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x3a, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x4e, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x50, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x4e, 0x02, 0x00, 0x00, + 0x4f, 0x02, 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x4f, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x02, 0x00, 0x00, + 0x51, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x14, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x5e, 0x02, 0x00, 0x00, 0x57, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x51, 0x02, 0x00, 0x00, + 0x5e, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x50, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x50, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x64, 0x02, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x66, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x64, 0x02, 0x00, 0x00, 0x65, 0x02, 0x00, 0x00, 0x66, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x65, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0c, 0x02, 0x00, 0x00, 0x67, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x02, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x6c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x74, 0x02, 0x00, 0x00, 0x6d, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, + 0xf3, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x67, 0x02, 0x00, 0x00, + 0x74, 0x02, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x7c, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x22, 0x02, 0x00, 0x00, 0x7b, 0x02, 0x00, 0x00, 0x7c, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0c, 0x02, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x02, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x83, 0x02, 0x00, 0x00, + 0x1b, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x8c, 0x02, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x7d, 0x02, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x8c, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x7c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x7c, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x92, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x38, 0x02, 0x00, 0x00, + 0x91, 0x02, 0x00, 0x00, 0x92, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x91, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x02, 0x00, 0x00, + 0x93, 0x02, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x6c, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xa0, 0x02, 0x00, 0x00, 0x99, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0xa2, 0x02, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x93, 0x02, 0x00, 0x00, + 0xa0, 0x02, 0x00, 0x00, 0xa2, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x92, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x92, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xa8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x4e, 0x02, 0x00, 0x00, 0xa7, 0x02, 0x00, 0x00, + 0xa8, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xa7, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0c, 0x02, 0x00, 0x00, 0xa9, 0x02, 0x00, 0x00, + 0x0e, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xaf, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x6c, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, + 0xaf, 0x02, 0x00, 0x00, 0x1b, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xa9, 0x02, 0x00, 0x00, 0xb6, 0x02, 0x00, 0x00, + 0xb8, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xa8, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xa8, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x66, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x66, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xbe, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xbe, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_RELU_FP16_comp_len = 7356; + +const unsigned char glsl_convolution1x1_c8w4_RELU6_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xef, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x10, 0x02, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x10, 0x02, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x10, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x10, 0x02, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbc, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xbd, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xbe, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbf, 0x02, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x67, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x67, 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0xee, 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, + 0xee, 0x01, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0f, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0f, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xbc, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xbd, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xbe, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, + 0xbc, 0x02, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0xbe, 0x02, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc0, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xc1, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc1, 0x02, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xc0, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x89, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xee, 0x02, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xed, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xec, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xea, 0x02, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe9, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe7, 0x02, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x3f, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xe9, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0xe6, 0x02, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x1b, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0xe7, 0x02, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x33, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x3f, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x45, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x51, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0xe9, 0x02, 0x00, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, + 0x67, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x73, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, + 0xea, 0x02, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x85, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0xeb, 0x02, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x93, 0x01, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x99, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0x89, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0xec, 0x02, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xb9, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xbd, 0x01, 0x00, 0x00, 0xed, 0x02, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x63, 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0xee, 0x02, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xd9, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, + 0xd5, 0x01, 0x00, 0x00, 0xd9, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe1, 0x01, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe5, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe7, 0x01, 0x00, 0x00, 0xe1, 0x01, 0x00, 0x00, + 0xe5, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe9, 0x01, 0x00, 0x00, 0xe6, 0x02, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x89, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xeb, 0x01, 0x00, 0x00, 0xe7, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xf1, 0x01, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf3, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf7, 0x01, 0x00, 0x00, + 0xe9, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf7, 0x01, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xfb, 0x01, 0x00, 0x00, 0xea, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xfb, 0x01, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xfd, 0x01, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xeb, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, + 0xec, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x04, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x03, 0x02, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, + 0x04, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x07, 0x02, 0x00, 0x00, 0xed, 0x02, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x07, 0x02, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x09, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, 0xee, 0x02, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x72, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x0b, 0x02, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x0d, 0x02, 0x00, 0x00, 0x0c, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x11, 0x02, 0x00, 0x00, + 0x10, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x02, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x02, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x02, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x02, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x1c, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1e, 0x02, 0x00, 0x00, + 0x17, 0x02, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x11, 0x02, 0x00, 0x00, 0x1e, 0x02, 0x00, 0x00, + 0x20, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x24, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x26, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x24, 0x02, 0x00, 0x00, 0x25, 0x02, 0x00, 0x00, + 0x26, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x25, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x27, 0x02, 0x00, 0x00, + 0x10, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2d, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x34, 0x02, 0x00, 0x00, + 0x2d, 0x02, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x36, 0x02, 0x00, 0x00, 0xf9, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x27, 0x02, 0x00, 0x00, 0x34, 0x02, 0x00, 0x00, + 0x36, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x26, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x26, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3a, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x3c, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x3a, 0x02, 0x00, 0x00, + 0x3b, 0x02, 0x00, 0x00, 0x3c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3b, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0x3d, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x16, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0x4c, 0x02, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x3d, 0x02, 0x00, 0x00, + 0x4a, 0x02, 0x00, 0x00, 0x4c, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x3c, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3c, 0x02, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, 0x50, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x52, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x50, 0x02, 0x00, 0x00, 0x51, 0x02, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x51, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0e, 0x02, 0x00, 0x00, 0x53, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x59, 0x02, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x16, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x59, 0x02, 0x00, 0x00, + 0x1d, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x62, 0x02, 0x00, 0x00, 0x09, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x53, 0x02, 0x00, 0x00, 0x60, 0x02, 0x00, 0x00, 0x62, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x52, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x52, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x66, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x68, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x66, 0x02, 0x00, 0x00, 0x67, 0x02, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x69, 0x02, 0x00, 0x00, + 0x10, 0x02, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x6e, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, 0x6f, 0x02, 0x00, 0x00, + 0x1d, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x78, 0x02, 0x00, 0x00, 0xf5, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x69, 0x02, 0x00, 0x00, 0x76, 0x02, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x7e, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x24, 0x02, 0x00, 0x00, 0x7d, 0x02, 0x00, 0x00, + 0x7e, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7d, 0x02, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, 0x7f, 0x02, 0x00, 0x00, + 0x10, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x85, 0x02, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x6e, 0x02, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x8c, 0x02, 0x00, 0x00, + 0x85, 0x02, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x8e, 0x02, 0x00, 0x00, 0xfd, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x7f, 0x02, 0x00, 0x00, 0x8c, 0x02, 0x00, 0x00, + 0x8e, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x7e, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7e, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x94, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x3a, 0x02, 0x00, 0x00, 0x93, 0x02, 0x00, 0x00, 0x94, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x93, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0e, 0x02, 0x00, 0x00, 0x95, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9b, 0x02, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x6e, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xa2, 0x02, 0x00, 0x00, 0x9b, 0x02, 0x00, 0x00, + 0x1d, 0x02, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xa4, 0x02, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x95, 0x02, 0x00, 0x00, 0xa2, 0x02, 0x00, 0x00, 0xa4, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x94, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x94, 0x02, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xaa, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x50, 0x02, 0x00, 0x00, + 0xa9, 0x02, 0x00, 0x00, 0xaa, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xa9, 0x02, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x02, 0x00, 0x00, + 0xab, 0x02, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb1, 0x02, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xb8, 0x02, 0x00, 0x00, 0xb1, 0x02, 0x00, 0x00, 0x1d, 0x02, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x72, 0x00, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, + 0x0d, 0x02, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xab, 0x02, 0x00, 0x00, + 0xb8, 0x02, 0x00, 0x00, 0xba, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xaa, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xaa, 0x02, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x68, 0x02, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x68, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc0, 0x02, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc0, 0x02, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_c8w4_RELU6_FP16_comp_len = 7432; + +const unsigned char glsl_gridSampleNearest_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, 0x6d, 0x67, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x73, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x57, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3b, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0xab, 0x00, 0x05, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, + 0x57, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, + 0x57, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x06, 0x00, + 0x57, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x12, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x37, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_gridSampleNearest_comp_len = 2952; + +const unsigned char glsl_gridSampleNearest_PAD_MODE_ZEROS_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x67, 0x72, 0x69, 0x64, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x49, 0x6d, 0x67, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6f, 0x75, 0x74, 0x53, 0x68, 0x61, 0x70, 0x65, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x43, 0x6f, 0x72, 0x6e, 0x65, 0x72, 0x73, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x75, 0x47, 0x72, 0x69, 0x64, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x75, 0x47, 0x72, 0x69, 0x64, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x13, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x06, 0x00, 0x13, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x57, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x3f, 0x2b, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x2c, 0x00, 0x07, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x04, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x05, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x57, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x57, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x06, 0x00, 0x57, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xab, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xac, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xad, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x25, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xbe, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x9e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x12, 0x00, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x37, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_gridSampleNearest_PAD_MODE_ZEROS_comp_len = 3264; + +const unsigned char glsl_relu6_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc2, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x72, 0x65, 0x6c, 0x75, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6d, 0x67, 0x53, + 0x69, 0x7a, 0x65, 0x00, 0x06, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x73, 0x6c, 0x6f, 0x70, 0x65, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x75, 0x52, 0x65, 0x6c, + 0x75, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x34, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x32, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x13, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_relu6_comp_len = 1644; + +const unsigned char glsl_binaryImage_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, + 0x64, 0x65, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x70, 0x6f, 0x73, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x07, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x14, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x22, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, @@ -21835,7 +24642,1980 @@ const unsigned char glsl_winogradTransformSource2_3_1_comp[] = { 0xf8, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_winogradTransformSource2_3_1_comp_len = 8764; +unsigned int glsl_winogradTransformSource2_3_1_comp_len = 8764; + +const unsigned char glsl_convolution1x1_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xec, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_comp_len = 3188; + +const unsigned char glsl_convolution1x1_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xec, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_FP32_comp_len = 3188; + +const unsigned char glsl_convolution1x1_RELU_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xec, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_RELU_FP32_comp_len = 3260; + +const unsigned char glsl_convolution1x1_RELU6_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x68, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xf3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_RELU6_FP32_comp_len = 3308; + +const unsigned char glsl_convolution1x1_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x64, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_FP16_comp_len = 3372; + +const unsigned char glsl_convolution1x1_RELU_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xda, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_RELU_FP16_comp_len = 3476; + +const unsigned char glsl_convolution1x1_RELU6_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x17, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x50, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xc7, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xde, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x64, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x8d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x49, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x55, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_RELU6_FP16_comp_len = 3524; const unsigned char glsl_col2Im_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, @@ -25156,323 +29936,1480 @@ const unsigned char glsl_binary_blit_VMIN_comp[] = { 0xa8, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0xab, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x73, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x92, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x92, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x50, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_binary_blit_VMIN_comp_len = 2816; + +const unsigned char glsl_binary_blit_SQUDIFF_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, + 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x73, 0x72, 0x63, 0x76, 0x69, 0x65, 0x77, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x73, 0x72, 0x63, 0x76, 0x69, 0x65, 0x77, 0x31, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x64, 0x73, 0x74, 0x76, 0x69, 0x65, 0x77, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x06, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x92, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, + 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x30, 0x00, 0x06, 0x00, 0x05, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x31, 0x00, 0x47, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x51, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x03, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, + 0x43, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xb5, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x73, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe3, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe9, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0xeb, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x92, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x99, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x92, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x50, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x50, 0x00, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe7, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x96, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x96, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x54, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_binary_blit_VMIN_comp_len = 2816; +unsigned int glsl_binary_blit_SQUDIFF_comp_len = 2828; + +const unsigned char glsl_convolutionDepthwise_s1d1_w2_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x29, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x16, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x13, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x15, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x14, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x24, 0x01, 0x00, 0x00, + 0x27, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x14, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x14, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2d, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolutionDepthwise_s1d1_w2_comp_len = 4560; -const unsigned char glsl_binary_blit_SQUDIFF_comp[] = { +const unsigned char glsl_convolutionDepthwise_s1d1_w2_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, - 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x73, 0x72, 0x63, 0x76, 0x69, 0x65, 0x77, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x73, 0x72, 0x63, 0x76, 0x69, 0x65, 0x77, 0x31, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x64, 0x73, 0x74, 0x76, 0x69, 0x65, 0x77, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x73, 0x69, 0x7a, 0x65, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x92, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, - 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x30, 0x00, 0x06, 0x00, 0x05, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x31, 0x00, 0x47, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x91, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x29, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x16, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x0b, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x13, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, + 0x05, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x15, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x14, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x24, 0x01, 0x00, 0x00, + 0x27, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x14, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x14, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2d, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolutionDepthwise_s1d1_w2_FP32_comp_len = 4560; + +const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x25, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x39, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x51, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x03, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x93, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x43, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0xb5, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x77, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe1, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe7, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, - 0xef, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x96, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x83, 0x00, 0x05, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x96, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x54, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x24, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x93, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, + 0x47, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x4f, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x51, 0x01, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xb7, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xbe, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x4f, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x47, 0x01, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x1f, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x22, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x31, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x23, 0x01, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x32, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x22, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3b, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_binary_blit_SQUDIFF_comp_len = 2828; +unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp_len = 4616; -const unsigned char glsl_convolutionDepthwise_s1d1_w2_comp[] = { +const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x17, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x62, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -25480,71 +31417,33 @@ const unsigned char glsl_convolutionDepthwise_s1d1_w2_comp[] = { 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x57, - 0x32, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x12, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x57, 0x32, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, - 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x43, 0x34, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, - 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x30, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x31, 0x00, 0x05, 0x00, 0x07, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x65, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x79, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x6f, 0x73, - 0x48, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x57, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x31, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x06, 0x00, 0xea, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x50, 0x6f, 0x73, 0x58, 0x42, 0x61, 0x73, 0x65, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x50, 0x6f, 0x73, 0x59, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x03, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x27, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -25564,507 +31463,763 @@ const unsigned char glsl_convolutionDepthwise_s1d1_w2_comp[] = { 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x03, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x03, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x27, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x27, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x27, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x44, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x76, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x92, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x93, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x94, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x94, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0x4c, 0x01, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4d, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0x4d, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xca, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe5, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x4d, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x61, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1b, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x22, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x23, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x28, 0x01, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x25, 0x01, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x27, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x24, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x33, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x24, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x24, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x3d, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp_len = 4668; + +const unsigned char glsl_convolutionDepthwise_s1d1_w2_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, + 0x64, 0x65, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x64, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x09, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x21, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x01, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x15, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, - 0x15, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x08, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x65, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x75, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, - 0xa3, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x97, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x74, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x92, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xab, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x8b, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xdc, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0xdc, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x47, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xe3, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xe5, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe6, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0xe7, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x74, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xeb, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xea, 0x00, 0x00, 0x00, - 0xf1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xf3, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xed, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0xf3, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, - 0xfc, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xfe, 0x00, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x01, 0x01, 0x00, 0x00, - 0x04, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x04, 0x01, 0x00, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x01, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, - 0xea, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x0b, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x0d, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x09, 0x01, 0x00, 0x00, - 0x0d, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x00, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x0f, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x01, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, - 0x03, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x11, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x11, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x10, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x14, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x04, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x17, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x07, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x0d, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x0d, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x06, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x1d, 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x06, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x06, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x22, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwise_s1d1_w2_comp_len = 6820; +unsigned int glsl_convolutionDepthwise_s1d1_w2_FP16_comp_len = 4744; -const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_comp[] = { +const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x1b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x57, - 0x32, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x12, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x57, 0x32, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, @@ -26080,573 +32235,404 @@ const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_comp[] = { 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x43, 0x34, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, - 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x30, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x31, 0x00, 0x05, 0x00, 0x07, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x65, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x79, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x6f, 0x73, - 0x48, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x57, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x31, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x06, 0x00, 0xee, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x50, 0x6f, 0x73, 0x58, 0x42, 0x61, 0x73, 0x65, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x50, 0x6f, 0x73, 0x59, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x07, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1a, 0x01, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x13, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x28, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x29, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x05, 0x01, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x06, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x19, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, - 0x19, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x11, 0x01, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x28, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2d, 0x01, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x2d, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x65, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x75, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x75, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x9f, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, - 0xa3, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x97, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xab, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xc9, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x8b, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0xda, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0xdb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xdc, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0xdc, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x47, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xe3, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xe5, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe6, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0xe7, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x74, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xea, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, - 0xec, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x52, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, - 0xef, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xf4, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xee, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xfc, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x02, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x03, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x05, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, - 0xee, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x0a, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, - 0x0a, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x0c, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x08, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x05, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x0e, 0x01, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x10, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, - 0x10, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x12, 0x01, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x0d, 0x01, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x04, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x13, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x05, 0x01, 0x00, 0x00, - 0x14, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, - 0xf6, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x17, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x14, 0x01, 0x00, 0x00, - 0x17, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x04, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x04, 0x01, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x97, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0xad, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xac, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xdf, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, + 0x40, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xad, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf1, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x0d, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x11, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x14, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x19, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x10, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x21, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x10, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x10, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU_comp_len = 6932; +unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp_len = 4908; -const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_comp[] = { +const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x1d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x57, - 0x32, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x12, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x17, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x57, 0x32, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x00, 0x06, 0x00, 0x06, 0x00, @@ -26662,554 +32648,388 @@ const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_comp[] = { 0x06, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x43, 0x34, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, - 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x30, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x31, 0x00, 0x05, 0x00, 0x07, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x65, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x79, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x6f, 0x73, - 0x48, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x30, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x57, 0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x31, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x57, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x06, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x50, 0x6f, 0x73, 0x58, 0x42, 0x61, 0x73, 0x65, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x50, 0x6f, 0x73, 0x59, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x09, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x09, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x09, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x09, 0x01, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1c, 0x01, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x15, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, - 0x2c, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0xeb, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, - 0xeb, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x08, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x1c, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x95, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x46, 0x00, 0x00, 0x00, - 0xcf, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x2c, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x13, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x2b, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x32, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x33, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x67, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x71, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x71, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x75, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x77, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x72, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x7a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x8f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x96, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x97, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x8b, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0xab, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xae, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0xae, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x85, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x07, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x88, 0x00, 0x00, 0x00, - 0xb5, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, - 0x26, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0xb9, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0xb7, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xbf, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xce, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, - 0xda, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x85, 0x00, 0x05, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xe1, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0xe1, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x05, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0xe4, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x52, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xe7, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0xa7, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0xe8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x71, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xed, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xea, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x47, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, - 0xef, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xee, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xf4, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x74, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x74, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x7b, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x92, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x92, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x99, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, + 0xa6, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0xa7, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x42, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0xad, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xb3, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xac, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xff, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x26, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xac, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xc9, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x02, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x45, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0xe1, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x45, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xae, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xab, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xad, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x77, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x74, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xf1, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x09, 0x01, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x04, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x04, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, - 0x15, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x07, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, - 0x09, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x0b, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, - 0x0b, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, - 0x0e, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x0f, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, - 0x10, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x11, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x0f, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x14, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x06, 0x01, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x15, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x18, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, - 0x18, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x1a, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x16, 0x01, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x06, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x06, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x10, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x10, 0x01, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, + 0x23, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x11, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x15, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x19, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, + 0xf7, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x19, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0x03, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x12, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x23, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x29, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x12, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x12, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU6_comp_len = 6984; +unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp_len = 4960; const unsigned char glsl_matmul_output_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, @@ -28193,7 +34013,7 @@ unsigned int glsl_matmul_output_TRANSPOSE_BIAS_comp_len = 3216; const unsigned char glsl_gemm16x16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x54, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, @@ -28201,11 +34021,10 @@ const unsigned char glsl_gemm16x16_comp[] = { 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, @@ -28213,59 +34032,43 @@ const unsigned char glsl_gemm16x16_comp[] = { 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x6f, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x6f, 0x31, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x6f, 0x32, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x6f, 0x33, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x32, 0x00, 0x00, 0x00, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x59, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x00, 0x73, 0x72, 0x63, 0x59, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x6b, 0x30, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x6b, 0x31, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x6b, 0x32, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x6b, 0x33, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x73, 0x30, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x73, 0x31, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x73, 0x32, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x73, 0x33, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x31, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x31, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x94, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x31, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x31, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x53, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x31, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x31, 0x01, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x53, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, @@ -28277,550 +34080,267 @@ const unsigned char glsl_gemm16x16_comp[] = { 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xce, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x53, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x30, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x30, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x52, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, - 0x52, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, + 0x54, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x74, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x70, 0x01, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, - 0x6f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x7d, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x75, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x8f, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x8d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x90, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x97, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x93, 0x00, 0x00, 0x00, - 0xa1, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, - 0xa3, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, - 0xa7, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, - 0xa9, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xad, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0xa9, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xbd, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0xbb, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x54, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xc1, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, - 0x53, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0xc5, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0xc7, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xbe, 0x00, 0x00, 0x00, - 0xcb, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, - 0xcd, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0xd1, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, - 0xd7, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xd9, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, - 0xda, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0xdd, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xdf, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, - 0x93, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, - 0xe3, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0xe4, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xe5, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0xe6, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0xe9, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xea, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xeb, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, - 0xec, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, - 0xef, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xf1, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, - 0xa2, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, - 0xfb, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xfc, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x02, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x03, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x04, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x07, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x08, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x09, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, - 0x0a, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, - 0x0d, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x0e, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x0f, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x10, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, - 0x13, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x14, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x15, 0x01, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, - 0x16, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, - 0x19, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x1a, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x1b, 0x01, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, - 0x1c, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, - 0x1f, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x20, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x21, 0x01, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, - 0x22, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, - 0x25, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x26, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x27, 0x01, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0xce, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, - 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, - 0x28, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x27, 0x01, 0x00, 0x00, - 0x2b, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x2c, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x06, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, 0x19, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x1f, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, - 0x2d, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x70, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, - 0x31, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x33, 0x01, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, - 0x33, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x35, 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, - 0x35, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, - 0x36, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x32, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, - 0x39, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2f, 0x01, 0x00, 0x00, - 0x3a, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3c, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x3c, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3e, 0x01, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x40, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x3a, 0x01, 0x00, 0x00, - 0x40, 0x01, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2f, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, - 0x79, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x47, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, - 0x47, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x49, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x42, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x72, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x42, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, - 0x31, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x4b, 0x01, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, - 0x4b, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4d, 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, - 0x4d, 0x01, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x31, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4e, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, - 0x4e, 0x01, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, - 0x51, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, - 0x38, 0x00, 0x01, 0x00 + 0x4e, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_gemm16x16_comp_len = 7468; +unsigned int glsl_gemm16x16_comp_len = 3876; const unsigned char glsl_gemm16x16_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, @@ -28828,14 +34348,13 @@ const unsigned char glsl_gemm16x16_FP16_comp[] = { 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, 0x70, 0x6f, 0x73, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, @@ -28843,60 +34362,44 @@ const unsigned char glsl_gemm16x16_FP16_comp[] = { 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x6f, 0x30, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x6f, 0x31, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x6f, 0x32, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x6f, 0x33, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x00, 0x05, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x59, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x73, 0x72, 0x63, 0x59, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, 0x6b, 0x30, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, - 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x03, 0x00, 0x64, 0x00, 0x00, 0x00, - 0x6b, 0x31, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x6b, 0x32, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x6b, 0x33, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x73, 0x30, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x90, 0x00, 0x00, 0x00, 0x73, 0x31, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0x9a, 0x00, 0x00, 0x00, 0x73, 0x32, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x73, 0x33, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x13, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x86, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x57, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x13, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x39, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x86, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x13, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x13, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x3b, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, @@ -28907,493 +34410,282 @@ const unsigned char glsl_gemm16x16_FP16_comp[] = { 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x55, 0x00, 0x00, 0x00, - 0x54, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x73, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0xb0, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x11, 0x01, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x12, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x38, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, - 0x38, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0xa4, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x3b, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x32, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x3c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x36, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x5a, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0xc6, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x5c, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x58, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x69, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0x65, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x64, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x71, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x76, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x81, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, - 0x7b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x8c, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x8e, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x85, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x92, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x94, 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x96, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, - 0x91, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x90, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x9c, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0xa0, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x8d, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x97, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x97, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x9a, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, - 0x86, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0xa6, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0xa8, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0xaa, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, - 0xa5, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, - 0xac, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xaf, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, - 0xb2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xb4, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xb6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, - 0xb8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xba, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xbc, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, - 0xbe, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, - 0xc4, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xc6, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2c, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xc8, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0xca, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xcc, 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xce, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xd2, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xd4, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, - 0xd6, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xd8, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xda, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xdc, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, - 0xdc, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xde, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xe0, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xe2, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, - 0xe2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xe4, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xe6, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xe8, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, - 0xe8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xea, 0x00, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xec, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xee, 0x00, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, - 0xee, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xf2, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xf4, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, - 0xf4, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xf6, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xfc, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0xfe, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x02, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x04, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x06, 0x01, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, - 0x06, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x08, 0x01, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x0a, 0x01, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0xb0, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x0c, 0x01, 0x00, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, - 0x0c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x0e, 0x01, 0x00, 0x00, 0x09, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, - 0x3e, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x0f, 0x01, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x0f, 0x01, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x10, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x61, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xb3, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xc5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x58, 0x01, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xd1, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xd7, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xe3, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x5a, 0x01, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x07, 0x01, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x07, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x0d, 0x01, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x0d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x4a, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x19, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, - 0x5e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, - 0x19, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x1b, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x14, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, - 0x1c, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, - 0x1d, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1f, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, - 0x1f, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x21, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x23, 0x01, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x25, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x1d, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, - 0x13, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x27, 0x01, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, - 0x27, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x29, 0x01, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, - 0x29, 0x01, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, - 0x2a, 0x01, 0x00, 0x00, 0x2b, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x2d, 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, 0x1d, 0x01, 0x00, 0x00, + 0x13, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x21, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x1d, 0x01, 0x00, 0x00, 0x23, 0x01, 0x00, 0x00, + 0x25, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, - 0x2d, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x26, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x01, 0x00, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x13, 0x01, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, - 0x7e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x34, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x17, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, - 0x34, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x36, 0x01, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, - 0x63, 0x00, 0x04, 0x00, 0x2f, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, - 0x37, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, - 0x38, 0x00, 0x01, 0x00 + 0x48, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x2f, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_gemm16x16_FP16_comp_len = 6868; +unsigned int glsl_gemm16x16_FP16_comp_len = 4140; const unsigned char glsl_deconvolutionDepthwise_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, @@ -31685,800 +36977,4001 @@ const unsigned char glsl_deconvIm2Col_RELU6_comp[] = { 0x5f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x5f, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_deconvIm2Col_RELU6_comp_len = 4292; +unsigned int glsl_deconvIm2Col_RELU6_comp_len = 4292; + +const unsigned char glsl_buffer2Image1D_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x03, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_buffer2Image1D_comp_len = 1244; + +const unsigned char glsl_scale_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6d, 0x67, 0x53, + 0x69, 0x7a, 0x65, 0x00, 0x05, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x75, 0x53, 0x63, 0x61, + 0x6c, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x62, 0x69, 0x61, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x3b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x43, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x4f, 0x00, 0x07, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x46, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x24, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_scale_comp_len = 2184; + +const unsigned char glsl_argmax_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, + 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, + 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x03, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0xba, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_argmax_comp_len = 2096; + +const unsigned char glsl_argmax_ARGMIN_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, + 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, + 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, + 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0x03, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x45, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x61, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, + 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x62, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x68, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, + 0x74, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_argmax_ARGMIN_comp_len = 2096; + +const unsigned char glsl_buffer2Image3D_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x68, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x06, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x05, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x49, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_buffer2Image3D_comp_len = 1664; -const unsigned char glsl_buffer2Image1D_comp[] = { +const unsigned char glsl_convolution1x1_w4_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, - 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, - 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x24, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x23, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xb2, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb4, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x03, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x2c, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0x13, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xb4, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, + 0xb3, 0x01, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xb6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb7, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x06, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x36, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x42, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4e, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x6a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x68, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6a, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x69, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x6e, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x6e, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6a, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x77, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x75, 0x01, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x76, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x78, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x7d, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x88, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x88, 0x01, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9f, 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xa5, 0x01, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_w4_comp_len = 5128; + +const unsigned char glsl_convolution1x1_w4_FP32_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xb2, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb4, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6c, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xb4, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0xb2, 0x01, 0x00, 0x00, + 0xb3, 0x01, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0xb6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb7, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x92, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xae, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x06, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x36, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x42, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4e, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x6a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x68, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, 0x6a, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x69, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x6e, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x6e, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6a, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x77, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x75, 0x01, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x76, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x7b, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x78, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x7d, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x7d, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x77, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x88, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x88, 0x01, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9f, 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0xce, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xa5, 0x01, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x59, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xab, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb6, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_buffer2Image1D_comp_len = 1244; +unsigned int glsl_convolution1x1_w4_FP32_comp_len = 5128; -const unsigned char glsl_scale_comp[] = { +const unsigned char glsl_convolution1x1_w4_RELU_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6d, 0x67, 0x53, - 0x69, 0x7a, 0x65, 0x00, 0x05, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x42, 0x75, 0x66, - 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x05, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x75, 0x53, 0x63, 0x61, - 0x6c, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x62, 0x69, 0x61, 0x73, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, - 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x3b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x71, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd2, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x12, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x12, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x13, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, - 0x38, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x3a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x43, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x43, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x09, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x03, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x5e, 0x00, 0x00, 0x00, - 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x6a, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x54, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x89, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x03, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x07, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x4f, 0x00, 0x07, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0x9b, 0x00, 0x04, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x24, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, - 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x3d, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x35, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x46, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, - 0x4c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x56, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x52, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x59, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, - 0x50, 0x00, 0x05, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, - 0x64, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x60, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x63, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, - 0x35, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x00, 0x00, - 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, - 0x6d, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x24, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x8a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xd0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, + 0xd2, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xd4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xd5, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xd4, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xed, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xea, 0x01, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, + 0xea, 0x01, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x73, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0xea, 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0x69, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x7a, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xea, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, + 0xd9, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xeb, 0x01, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x06, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x28, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, + 0x36, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x40, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x42, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0xdd, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x4c, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x4e, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0xea, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6d, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xeb, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xee, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x76, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x7d, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x84, 0x01, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, + 0x84, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x88, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x87, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x89, 0x01, 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x8c, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xd4, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x88, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x93, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x95, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x93, 0x01, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x94, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x99, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x96, 0x01, 0x00, 0x00, 0x99, 0x01, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9b, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xd4, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x95, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0xa4, 0x01, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xa4, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, + 0xa6, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xa9, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, + 0x7e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xa6, 0x01, 0x00, 0x00, + 0xa9, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x89, 0x01, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, + 0x7e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x89, 0x01, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0x7e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x64, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xd4, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xbb, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xb8, 0x01, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, + 0xbd, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc1, 0x01, 0x00, 0x00, 0xbf, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xbd, 0x01, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0xc5, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xc3, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, + 0x64, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x89, 0x01, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xc9, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, + 0x6b, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xd4, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xd4, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_scale_comp_len = 2184; +unsigned int glsl_convolution1x1_w4_RELU_FP32_comp_len = 5284; -const unsigned char glsl_argmax_comp[] = { +const unsigned char glsl_convolution1x1_w4_RELU6_FP32_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, - 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, + 0xf1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, + 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x75, 0x42, 0x69, 0x61, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, + 0x6e, 0x65, 0x6c, 0x00, 0x05, 0x00, 0x04, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x75, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x83, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x03, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0xbc, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd2, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xd4, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xd5, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x54, 0x01, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x56, 0x01, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x8c, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x8c, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xd3, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xd5, 0x01, 0x00, 0x00, + 0xd2, 0x01, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0xd4, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0xba, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x68, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xd6, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xd7, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xd7, 0x01, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xd7, 0x01, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xd6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xee, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x72, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x73, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x57, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0x79, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, + 0x83, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xec, 0x01, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xbd, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, + 0xce, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0xdb, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, + 0xe9, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0x89, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0xef, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x28, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x40, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x4c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x4e, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, + 0xec, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xed, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xee, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0xef, 0x01, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x6d, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x57, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x01, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x7f, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, + 0x86, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x8a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x88, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x89, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0x8e, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x8e, 0x01, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xd6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x8a, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x97, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x95, 0x01, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x96, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x98, 0x01, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0x58, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xa1, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x9d, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xd6, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x97, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xa7, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0xa6, 0x01, 0x00, 0x00, 0xa7, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xa6, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0xa8, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xa8, 0x01, 0x00, 0x00, + 0xab, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xad, 0x01, 0x00, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x8b, 0x01, 0x00, 0x00, 0xb3, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x79, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x58, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0xd6, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xa7, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, 0xba, 0x01, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xbd, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xba, 0x01, 0x00, 0x00, 0xbd, 0x01, 0x00, 0x00, + 0x58, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0xbf, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc3, 0x01, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xbf, 0x01, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0xc5, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xc5, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x8d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0xad, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x58, 0x00, 0x00, 0x00, + 0xcf, 0x01, 0x00, 0x00, 0xcd, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xcb, 0x01, 0x00, 0x00, 0xcf, 0x01, 0x00, 0x00, + 0x6d, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xd6, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xd6, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 +}; +unsigned int glsl_convolution1x1_w4_RELU6_FP32_comp_len = 5344; + +const unsigned char glsl_convolution1x1_w4_FP16_comp[] = { + 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, + 0xb9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9a, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x9c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x9d, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x53, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x59, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x49, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x9c, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, + 0x9b, 0x01, 0x00, 0x00, 0x9c, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x9e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x36, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x71, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0xb4, 0x01, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x96, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0xb4, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0xc8, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0xb6, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0xec, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0xb8, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x20, 0x01, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0x28, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0xb4, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x46, 0x01, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x47, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x4c, 0x01, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x51, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9e, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x48, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x54, 0x01, 0x00, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x55, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5c, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x57, 0x01, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x9e, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x56, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x66, 0x01, 0x00, 0x00, + 0x67, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x67, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x6e, 0x01, 0x00, 0x00, 0xb5, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x69, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x6e, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x76, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x7a, 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, + 0xb7, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x76, 0x01, 0x00, 0x00, + 0x7a, 0x01, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, + 0xb5, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x7e, 0x01, 0x00, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, + 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x8a, 0x01, 0x00, 0x00, 0xb6, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x84, 0x01, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, 0x8b, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x8d, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0xb7, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x8b, 0x01, 0x00, 0x00, 0x8f, 0x01, 0x00, 0x00, + 0x91, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x92, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x96, 0x01, 0x00, 0x00, 0x94, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, + 0xb8, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x92, 0x01, 0x00, 0x00, + 0x96, 0x01, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x9e, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x9e, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_argmax_comp_len = 2096; +unsigned int glsl_convolution1x1_w4_FP16_comp_len = 5504; -const unsigned char glsl_argmax_ARGMIN_comp[] = { +const unsigned char glsl_convolution1x1_w4_RELU_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, - 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, - 0xb8, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, - 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x6b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x30, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74, 0x42, 0x75, 0x66, 0x66, - 0x65, 0x72, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x76, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x16, 0x00, 0x03, 0x00, 0x17, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x26, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x03, 0x00, 0x48, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x4d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x1d, 0x00, 0x03, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x03, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x6e, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x2c, 0x00, 0x06, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, - 0x75, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xb1, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x32, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, - 0x34, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x2f, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x36, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x45, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x4e, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, - 0x37, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, - 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x83, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, - 0x6c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x28, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, - 0x5a, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x53, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, + 0x81, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xac, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xad, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xae, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xaf, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x53, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x59, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x33, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x5c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x01, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x5c, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xac, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0xad, 0x01, 0x00, 0x00, + 0xae, 0x01, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0xb0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0xb1, 0x01, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x61, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x06, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, - 0x4b, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x62, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x05, 0x00, 0x28, 0x00, 0x00, 0x00, - 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, - 0xf9, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, - 0x68, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x89, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, - 0x85, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x8a, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x55, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, - 0x3f, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x52, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x54, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, - 0x74, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x38, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x22, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x29, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x2d, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, + 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, + 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x30, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb0, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x39, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x5b, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xca, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xc7, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x6f, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x71, 0x00, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x71, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, + 0x76, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x90, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x99, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, + 0xa0, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xb0, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, + 0xb6, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0xc1, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xc3, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xcb, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, + 0xd2, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xd8, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, + 0xde, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, + 0xea, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, + 0xf6, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x06, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, + 0x0e, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0xb2, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, + 0x1a, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0xbb, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x20, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, + 0x26, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x8e, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0xcd, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0xc6, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0xc7, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, + 0x39, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x3d, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x40, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0x41, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x48, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x4f, 0x01, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x5a, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x59, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x01, 0x00, 0x00, + 0x5e, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x63, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x5e, 0x01, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb0, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5a, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x66, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x66, 0x01, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x68, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x67, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x6c, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x6e, 0x01, 0x00, 0x00, + 0x36, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x6c, 0x01, 0x00, 0x00, 0x6e, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x6f, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x75, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x6f, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb0, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x68, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x78, 0x01, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x7a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x78, 0x01, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x7a, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x79, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x7e, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x36, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x7e, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x81, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x01, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8a, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, + 0x8a, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x8e, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x88, 0x01, 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, + 0x8e, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb0, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7a, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x90, 0x01, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, + 0x95, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x01, 0x00, 0x00, + 0x96, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x9a, 0x01, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x9c, 0x01, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x96, 0x01, 0x00, 0x00, + 0x9a, 0x01, 0x00, 0x00, 0x9c, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x9d, 0x01, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x49, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xa3, 0x01, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x9d, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5b, 0x01, 0x00, 0x00, 0xa4, 0x01, 0x00, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa6, 0x01, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, + 0xa6, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xa4, 0x01, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x00, + 0xaa, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb0, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb0, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_argmax_ARGMIN_comp_len = 2096; +unsigned int glsl_convolution1x1_w4_RELU_FP16_comp_len = 5788; -const unsigned char glsl_buffer2Image3D_comp[] = { +const unsigned char glsl_convolution1x1_w4_RELU6_FP16_comp[] = { 0x03, 0x02, 0x23, 0x07, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, - 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x06, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x06, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, 0x00, - 0x67, 0x6c, 0x5f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x04, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x68, 0x00, 0x00, 0x00, 0x06, 0x00, 0x04, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, - 0x05, 0x00, 0x06, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x6b, 0x65, 0x72, 0x6e, - 0x65, 0x6c, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x64, 0x61, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, - 0x05, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xcd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x02, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, + 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x06, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, + 0x02, 0x00, 0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x04, 0x00, 0x09, 0x00, + 0x47, 0x4c, 0x5f, 0x41, 0x4d, 0x44, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x73, + 0x68, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x47, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x42, 0x75, 0x66, + 0x66, 0x65, 0x72, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x69, 0x7a, + 0x65, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x69, + 0x7a, 0x65, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x75, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x75, 0x42, 0x69, 0x61, + 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, + 0x75, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x75, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x00, + 0x05, 0x00, 0x04, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x75, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x00, 0x47, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x17, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x2d, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x48, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x49, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x03, 0x00, 0x19, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x55, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0x81, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x03, 0x00, 0x49, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x47, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x17, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x05, 0x00, - 0x15, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x16, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, - 0x16, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, - 0x0a, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, 0x29, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x2a, 0x00, 0x00, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x03, 0x00, - 0x2d, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, - 0x2e, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x2f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x44, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, - 0x47, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, - 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x3b, 0x00, 0x04, 0x00, 0x48, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x06, 0x00, - 0x0b, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, - 0x53, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, - 0x0d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0x1a, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x1c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x1e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, - 0x19, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, - 0x22, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x05, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x24, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, - 0xf8, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, - 0xf7, 0x00, 0x03, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xfa, 0x00, 0x04, 0x00, 0x26, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, - 0x51, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, - 0x1b, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x19, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, - 0x39, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, - 0x44, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, - 0x18, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, - 0x2a, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, - 0x3d, 0x00, 0x04, 0x00, 0x47, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x49, 0x00, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x0f, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, - 0x28, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x28, 0x00, 0x00, 0x00, - 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00 + 0x81, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xaa, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xae, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x04, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x13, 0x00, 0x02, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x3b, 0x00, 0x04, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x16, 0x00, 0x03, 0x00, + 0x4d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x03, 0x00, 0x51, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x09, 0x00, 0x52, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x03, 0x00, 0x53, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x53, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x54, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x04, 0x00, 0x59, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x54, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x04, 0x00, 0x51, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, + 0x33, 0x01, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, + 0x2c, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, + 0x35, 0x01, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x5e, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, + 0x5e, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0xae, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, + 0xaf, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x32, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x06, 0x00, 0x0a, 0x00, 0x00, 0x00, 0xb1, 0x01, 0x00, 0x00, + 0xae, 0x01, 0x00, 0x00, 0xaf, 0x01, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, + 0x36, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0xb2, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x03, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xb3, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0xb3, 0x01, 0x00, 0x00, + 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x09, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x27, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x23, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x04, 0x00, 0x24, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x2f, 0x00, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x31, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, + 0xb3, 0x01, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x37, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x39, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x87, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x5a, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, + 0x56, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x5d, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x69, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x2e, 0x01, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xcb, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, + 0x39, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0xf5, 0x00, 0x07, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, + 0x6a, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xc8, 0x01, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, + 0x30, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, + 0xc8, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x04, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x71, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x6b, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6a, 0x00, 0x00, 0x00, + 0x41, 0x00, 0x06, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x75, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x77, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, + 0x1d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0x86, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, + 0x85, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x87, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, + 0x8c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x8f, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x98, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, + 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x9a, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, + 0xa2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, + 0xa4, 0x00, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x53, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0xaa, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0xaf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xb1, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0xa8, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, + 0xb9, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, + 0xb8, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xba, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, + 0xbf, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x64, 0x00, 0x04, 0x00, + 0x52, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, + 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xc4, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, + 0x9f, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0xca, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x04, 0x00, 0x52, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, + 0xab, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x07, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xd0, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xd4, 0x00, 0x00, 0x00, 0xc9, 0x01, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xd6, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xda, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xe6, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xec, 0x00, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0xee, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf2, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, + 0x91, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x04, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x06, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x0a, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x0c, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x10, 0x01, 0x00, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x0e, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, + 0x9b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0x12, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x16, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x00, + 0x18, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x1c, 0x01, 0x00, 0x00, 0xcc, 0x01, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, + 0x1e, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x22, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, + 0x24, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x28, 0x01, 0x00, 0x00, 0x22, 0x01, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, + 0x51, 0x00, 0x05, 0x00, 0x4d, 0x00, 0x00, 0x00, 0x2a, 0x01, 0x00, 0x00, + 0xa5, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x05, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, + 0x2a, 0x01, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x2e, 0x01, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x2c, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, + 0xc8, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, + 0x69, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x6b, 0x00, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, + 0xc9, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x32, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x37, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x3a, 0x01, 0x00, 0x00, 0xca, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x3a, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x36, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x3b, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, 0xcb, 0x01, 0x00, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x3e, 0x01, 0x00, 0x00, + 0x34, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x4e, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, + 0xcc, 0x01, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, + 0x42, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x43, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4a, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x67, 0x00, 0x00, 0x00, 0x4a, 0x01, 0x00, 0x00, 0x84, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, + 0x82, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x5a, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x03, 0x00, 0x5c, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x04, 0x00, 0x5a, 0x01, 0x00, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5b, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x65, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x60, 0x01, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x5c, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x68, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x6a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x68, 0x01, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x6a, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x69, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x6e, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x6b, 0x01, 0x00, 0x00, + 0x6e, 0x01, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x71, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x77, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x71, 0x01, 0x00, 0x00, 0x75, 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, + 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, + 0x6a, 0x01, 0x00, 0x00, 0xaa, 0x00, 0x05, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x7a, 0x01, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0xf7, 0x00, 0x03, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x04, 0x00, 0x7a, 0x01, 0x00, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x7c, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x02, 0x00, 0x7b, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x7d, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, + 0x38, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x7d, 0x01, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x85, 0x01, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0x89, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x83, 0x01, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0x8a, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x8c, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x8e, 0x01, 0x00, 0x00, + 0x8c, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x8a, 0x01, 0x00, 0x00, 0x8e, 0x01, 0x00, 0x00, + 0x90, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0x92, 0x01, 0x00, 0x00, 0x95, 0x01, 0x00, 0x00, + 0x97, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, + 0x98, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, + 0x9c, 0x01, 0x00, 0x00, 0x9a, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, + 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x00, 0x00, + 0x3c, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, 0x98, 0x01, 0x00, 0x00, + 0x9c, 0x01, 0x00, 0x00, 0x9e, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, + 0x5d, 0x01, 0x00, 0x00, 0x9f, 0x01, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, + 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0x4b, 0x01, 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, + 0x59, 0x00, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0xa1, 0x01, 0x00, 0x00, + 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, 0x5c, 0x00, 0x00, 0x00, + 0xa5, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x63, 0x00, 0x04, 0x00, + 0x9f, 0x01, 0x00, 0x00, 0xa3, 0x01, 0x00, 0x00, 0xa5, 0x01, 0x00, 0x00, + 0x3d, 0x00, 0x04, 0x00, 0x5d, 0x01, 0x00, 0x00, 0xa6, 0x01, 0x00, 0x00, + 0x5f, 0x01, 0x00, 0x00, 0x80, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, + 0xa8, 0x01, 0x00, 0x00, 0x4b, 0x01, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x05, 0x00, 0x59, 0x00, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, + 0xa8, 0x01, 0x00, 0x00, 0x52, 0x01, 0x00, 0x00, 0x73, 0x00, 0x04, 0x00, + 0x5c, 0x00, 0x00, 0x00, 0xac, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x63, 0x00, 0x04, 0x00, 0xa6, 0x01, 0x00, 0x00, 0xaa, 0x01, 0x00, 0x00, + 0xac, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0xb2, 0x01, 0x00, 0x00, + 0xf8, 0x00, 0x02, 0x00, 0xb2, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, + 0x38, 0x00, 0x01, 0x00 }; -unsigned int glsl_buffer2Image3D_comp_len = 1664; +unsigned int glsl_convolution1x1_w4_RELU6_FP16_comp_len = 5848; diff --git a/source/backend/vulkan/image/compiler/VulkanShaderMap.cpp b/source/backend/vulkan/image/compiler/VulkanShaderMap.cpp index 513d88dc8..0fc6db6f1 100644 --- a/source/backend/vulkan/image/compiler/VulkanShaderMap.cpp +++ b/source/backend/vulkan/image/compiler/VulkanShaderMap.cpp @@ -11,8 +11,6 @@ mMaps.insert(std::make_pair("glsl_softmaxImage_AXIS_H_comp", std::make_pair(glsl mMaps.insert(std::make_pair("glsl_softmaxImage_AXIS_W_comp", std::make_pair(glsl_softmaxImage_AXIS_W_comp,glsl_softmaxImage_AXIS_W_comp_len))); mMaps.insert(std::make_pair("glsl_softmaxImage_AXIS_C_comp", std::make_pair(glsl_softmaxImage_AXIS_C_comp,glsl_softmaxImage_AXIS_C_comp_len))); mMaps.insert(std::make_pair("glsl_convolutionDepthwiseMali_comp", std::make_pair(glsl_convolutionDepthwiseMali_comp,glsl_convolutionDepthwiseMali_comp_len))); -mMaps.insert(std::make_pair("glsl_convolutionDepthwiseMali_RELU_comp", std::make_pair(glsl_convolutionDepthwiseMali_RELU_comp,glsl_convolutionDepthwiseMali_RELU_comp_len))); -mMaps.insert(std::make_pair("glsl_convolutionDepthwiseMali_RELU6_comp", std::make_pair(glsl_convolutionDepthwiseMali_RELU6_comp,glsl_convolutionDepthwiseMali_RELU6_comp_len))); mMaps.insert(std::make_pair("glsl_relu_comp", std::make_pair(glsl_relu_comp,glsl_relu_comp_len))); mMaps.insert(std::make_pair("glsl_unaryImage_comp", std::make_pair(glsl_unaryImage_comp,glsl_unaryImage_comp_len))); mMaps.insert(std::make_pair("glsl_unaryImage_SIGMOID_comp", std::make_pair(glsl_unaryImage_SIGMOID_comp,glsl_unaryImage_SIGMOID_comp_len))); @@ -47,10 +45,21 @@ mMaps.insert(std::make_pair("glsl_unaryImage_GELU_comp", std::make_pair(glsl_una mMaps.insert(std::make_pair("glsl_unaryImage_SILU_comp", std::make_pair(glsl_unaryImage_SILU_comp,glsl_unaryImage_SILU_comp_len))); mMaps.insert(std::make_pair("glsl_im2col_comp", std::make_pair(glsl_im2col_comp,glsl_im2col_comp_len))); mMaps.insert(std::make_pair("glsl_convolutionDepthwise_comp", std::make_pair(glsl_convolutionDepthwise_comp,glsl_convolutionDepthwise_comp_len))); -mMaps.insert(std::make_pair("glsl_convolutionDepthwise_RELU_comp", std::make_pair(glsl_convolutionDepthwise_RELU_comp,glsl_convolutionDepthwise_RELU_comp_len))); -mMaps.insert(std::make_pair("glsl_convolutionDepthwise_RELU6_comp", std::make_pair(glsl_convolutionDepthwise_RELU6_comp,glsl_convolutionDepthwise_RELU6_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_FP32_comp", std::make_pair(glsl_convolutionDepthwise_FP32_comp,glsl_convolutionDepthwise_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_RELU_FP32_comp", std::make_pair(glsl_convolutionDepthwise_RELU_FP32_comp,glsl_convolutionDepthwise_RELU_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_RELU6_FP32_comp", std::make_pair(glsl_convolutionDepthwise_RELU6_FP32_comp,glsl_convolutionDepthwise_RELU6_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_FP16_comp", std::make_pair(glsl_convolutionDepthwise_FP16_comp,glsl_convolutionDepthwise_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_RELU_FP16_comp", std::make_pair(glsl_convolutionDepthwise_RELU_FP16_comp,glsl_convolutionDepthwise_RELU_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_RELU6_FP16_comp", std::make_pair(glsl_convolutionDepthwise_RELU6_FP16_comp,glsl_convolutionDepthwise_RELU6_FP16_comp_len))); mMaps.insert(std::make_pair("glsl_gridSampleBilinear_comp", std::make_pair(glsl_gridSampleBilinear_comp,glsl_gridSampleBilinear_comp_len))); mMaps.insert(std::make_pair("glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp", std::make_pair(glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp,glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_comp", std::make_pair(glsl_convolution1x1_c8w4_comp,glsl_convolution1x1_c8w4_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_FP32_comp", std::make_pair(glsl_convolution1x1_c8w4_FP32_comp,glsl_convolution1x1_c8w4_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_RELU_FP32_comp", std::make_pair(glsl_convolution1x1_c8w4_RELU_FP32_comp,glsl_convolution1x1_c8w4_RELU_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_RELU6_FP32_comp", std::make_pair(glsl_convolution1x1_c8w4_RELU6_FP32_comp,glsl_convolution1x1_c8w4_RELU6_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_FP16_comp", std::make_pair(glsl_convolution1x1_c8w4_FP16_comp,glsl_convolution1x1_c8w4_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_RELU_FP16_comp", std::make_pair(glsl_convolution1x1_c8w4_RELU_FP16_comp,glsl_convolution1x1_c8w4_RELU_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_c8w4_RELU6_FP16_comp", std::make_pair(glsl_convolution1x1_c8w4_RELU6_FP16_comp,glsl_convolution1x1_c8w4_RELU6_FP16_comp_len))); mMaps.insert(std::make_pair("glsl_gridSampleNearest_comp", std::make_pair(glsl_gridSampleNearest_comp,glsl_gridSampleNearest_comp_len))); mMaps.insert(std::make_pair("glsl_gridSampleNearest_PAD_MODE_ZEROS_comp", std::make_pair(glsl_gridSampleNearest_PAD_MODE_ZEROS_comp,glsl_gridSampleNearest_PAD_MODE_ZEROS_comp_len))); mMaps.insert(std::make_pair("glsl_relu6_comp", std::make_pair(glsl_relu6_comp,glsl_relu6_comp_len))); @@ -94,6 +103,13 @@ mMaps.insert(std::make_pair("glsl_winogradTransformDest2_3_1_comp", std::make_pa mMaps.insert(std::make_pair("glsl_winogradTransformDest2_3_1_RELU_comp", std::make_pair(glsl_winogradTransformDest2_3_1_RELU_comp,glsl_winogradTransformDest2_3_1_RELU_comp_len))); mMaps.insert(std::make_pair("glsl_winogradTransformDest2_3_1_RELU6_comp", std::make_pair(glsl_winogradTransformDest2_3_1_RELU6_comp,glsl_winogradTransformDest2_3_1_RELU6_comp_len))); mMaps.insert(std::make_pair("glsl_winogradTransformSource2_3_1_comp", std::make_pair(glsl_winogradTransformSource2_3_1_comp,glsl_winogradTransformSource2_3_1_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_comp", std::make_pair(glsl_convolution1x1_comp,glsl_convolution1x1_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_FP32_comp", std::make_pair(glsl_convolution1x1_FP32_comp,glsl_convolution1x1_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_RELU_FP32_comp", std::make_pair(glsl_convolution1x1_RELU_FP32_comp,glsl_convolution1x1_RELU_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_RELU6_FP32_comp", std::make_pair(glsl_convolution1x1_RELU6_FP32_comp,glsl_convolution1x1_RELU6_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_FP16_comp", std::make_pair(glsl_convolution1x1_FP16_comp,glsl_convolution1x1_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_RELU_FP16_comp", std::make_pair(glsl_convolution1x1_RELU_FP16_comp,glsl_convolution1x1_RELU_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_RELU6_FP16_comp", std::make_pair(glsl_convolution1x1_RELU6_FP16_comp,glsl_convolution1x1_RELU6_FP16_comp_len))); mMaps.insert(std::make_pair("glsl_col2Im_comp", std::make_pair(glsl_col2Im_comp,glsl_col2Im_comp_len))); mMaps.insert(std::make_pair("glsl_col2Im_RELU_comp", std::make_pair(glsl_col2Im_RELU_comp,glsl_col2Im_RELU_comp_len))); mMaps.insert(std::make_pair("glsl_col2Im_RELU6_comp", std::make_pair(glsl_col2Im_RELU6_comp,glsl_col2Im_RELU6_comp_len))); @@ -109,8 +125,12 @@ mMaps.insert(std::make_pair("glsl_binary_blit_VMAX_comp", std::make_pair(glsl_bi mMaps.insert(std::make_pair("glsl_binary_blit_VMIN_comp", std::make_pair(glsl_binary_blit_VMIN_comp,glsl_binary_blit_VMIN_comp_len))); mMaps.insert(std::make_pair("glsl_binary_blit_SQUDIFF_comp", std::make_pair(glsl_binary_blit_SQUDIFF_comp,glsl_binary_blit_SQUDIFF_comp_len))); mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_comp,glsl_convolutionDepthwise_s1d1_w2_comp_len))); -mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_RELU_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_RELU_comp,glsl_convolutionDepthwise_s1d1_w2_RELU_comp_len))); -mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_RELU6_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_RELU6_comp,glsl_convolutionDepthwise_s1d1_w2_RELU6_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_FP32_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_FP32_comp,glsl_convolutionDepthwise_s1d1_w2_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp,glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp,glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_FP16_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_FP16_comp,glsl_convolutionDepthwise_s1d1_w2_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp,glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp", std::make_pair(glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp,glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp_len))); mMaps.insert(std::make_pair("glsl_matmul_output_comp", std::make_pair(glsl_matmul_output_comp,glsl_matmul_output_comp_len))); mMaps.insert(std::make_pair("glsl_matmul_output_BIAS_comp", std::make_pair(glsl_matmul_output_BIAS_comp,glsl_matmul_output_BIAS_comp_len))); mMaps.insert(std::make_pair("glsl_matmul_output_TRANSPOSE_comp", std::make_pair(glsl_matmul_output_TRANSPOSE_comp,glsl_matmul_output_TRANSPOSE_comp_len))); @@ -129,5 +149,12 @@ mMaps.insert(std::make_pair("glsl_scale_comp", std::make_pair(glsl_scale_comp,gl mMaps.insert(std::make_pair("glsl_argmax_comp", std::make_pair(glsl_argmax_comp,glsl_argmax_comp_len))); mMaps.insert(std::make_pair("glsl_argmax_ARGMIN_comp", std::make_pair(glsl_argmax_ARGMIN_comp,glsl_argmax_ARGMIN_comp_len))); mMaps.insert(std::make_pair("glsl_buffer2Image3D_comp", std::make_pair(glsl_buffer2Image3D_comp,glsl_buffer2Image3D_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_comp", std::make_pair(glsl_convolution1x1_w4_comp,glsl_convolution1x1_w4_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_FP32_comp", std::make_pair(glsl_convolution1x1_w4_FP32_comp,glsl_convolution1x1_w4_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_RELU_FP32_comp", std::make_pair(glsl_convolution1x1_w4_RELU_FP32_comp,glsl_convolution1x1_w4_RELU_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_RELU6_FP32_comp", std::make_pair(glsl_convolution1x1_w4_RELU6_FP32_comp,glsl_convolution1x1_w4_RELU6_FP32_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_FP16_comp", std::make_pair(glsl_convolution1x1_w4_FP16_comp,glsl_convolution1x1_w4_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_RELU_FP16_comp", std::make_pair(glsl_convolution1x1_w4_RELU_FP16_comp,glsl_convolution1x1_w4_RELU_FP16_comp_len))); +mMaps.insert(std::make_pair("glsl_convolution1x1_w4_RELU6_FP16_comp", std::make_pair(glsl_convolution1x1_w4_RELU6_FP16_comp,glsl_convolution1x1_w4_RELU6_FP16_comp_len))); } } diff --git a/source/backend/vulkan/image/execution/VulkanConvolution.cpp b/source/backend/vulkan/image/execution/VulkanConvolution.cpp index ca43921b1..9a56ac206 100644 --- a/source/backend/vulkan/image/execution/VulkanConvolution.cpp +++ b/source/backend/vulkan/image/execution/VulkanConvolution.cpp @@ -118,22 +118,15 @@ bool VulkanConvolutionDepthwise::_init(const float* weightData, size_t weightSiz VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER}; MNN_ASSERT(OpType_ConvolutionDepthwise == convOp->type()); - auto macro = getPostTreatMacro(common); + auto macroRelu = getPostTreatMacro(common); + bool useFP16 = (extra->gpuType() == VulkanRuntime::ADRENO || extra->gpuType() == VulkanRuntime::MALI) && extra->getMemoryPool().permitFp16(); + std::string macroPrecision = (useFP16) ? "FP16_" : "FP32_"; + std::string macro = macroRelu + macroPrecision; if (common->strideX() == 1 && common->strideY() == 1 && common->dilateX() == 1 && common->dilateY() == 1 ) { - mConvPipeline = extra->getPipeline("glsl_convolutionDepthwise_s1d1_w2_" + macro + "comp", convTypes); + mConvPipeline = extra->getPrivatePipeline("glsl_convolutionDepthwise_s1d1_w2_" + macro + "comp", convTypes); mUseS1D1W2 = true; - mLocalX = 8; - mLocalY = 8; } else { - if (extra->gpuType() == VulkanRuntime::ADRENO) { - mConvPipeline = extra->getPipeline("glsl_convolutionDepthwise_" + macro + "comp", convTypes); - mLocalX = 16; - mLocalY = 16; - } else { - mConvPipeline = extra->getPipeline("glsl_convolutionDepthwiseMali_" + macro + "comp", convTypes); - mLocalX = 8; - mLocalY = 8; - } + mConvPipeline = extra->getPrivatePipeline("glsl_convolutionDepthwise_" + macro + "comp", convTypes); } auto c4 = UP_DIV(common->outputCount(), 4); @@ -223,6 +216,13 @@ ErrorCode VulkanConvolutionDepthwise::onEncodeConvolution(const Convolution2DCom extra->copyBufferToImage(biasBuffer.get(), mBias.get()); bias = mBias.get(); } + + if (mUseS1D1W2) { + mGws = {(uint32_t)UP_DIV(ow, 2), (uint32_t)oh, (uint32_t)ocDiv4 * input->batch()}; + } else { + mGws = {(uint32_t)ow, (uint32_t)oh, (uint32_t)ocDiv4 * input->batch()}; + } + /*Write Command Buffer*/ mConvSet.reset(mConvPipeline->createSet()); mConvSet->writeImage(((VulkanTensor*)output->deviceId())->image()->view(), mSampler->get(), VK_IMAGE_LAYOUT_GENERAL, 0); @@ -231,16 +231,13 @@ ErrorCode VulkanConvolutionDepthwise::onEncodeConvolution(const Convolution2DCom mConvSet->writeImage(mKernel->view(), mSampler->get(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, 2); mConvSet->writeImage(bias->view(), mSampler->get(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, 3); mConvSet->writeBuffer(convCons->buffer(), 4, convCons->size()); + mLws = extra->autoTunePipeline(mConvPipeline, mConvSet, mGws, 2, {8, 8, 1}); mConvPipeline->bind(cmdBuffer->get(), mConvSet->get()); mKernel->barrierRead(cmdBuffer->get()); mBias->barrierRead(cmdBuffer->get()); ((VulkanTensor*)input->deviceId())->image()->barrierRead(cmdBuffer->get()); ((VulkanTensor*)output->deviceId())->image()->barrierWrite(cmdBuffer->get()); - if (mUseS1D1W2) { - vkCmdDispatch(cmdBuffer->get(), UP_DIV(UP_DIV(ow, 2), mLocalX), UP_DIV(oh, mLocalY), ocDiv4 * input->batch()); - } else { - vkCmdDispatch(cmdBuffer->get(), UP_DIV(ow, mLocalX), UP_DIV(oh, mLocalY), ocDiv4 * input->batch()); - } + vkCmdDispatch(cmdBuffer->get(), UP_DIV(mGws[0], mLws[0]), UP_DIV(mGws[1], mLws[1]), UP_DIV(mGws[2], mLws[2])); return NO_ERROR; } diff --git a/source/backend/vulkan/image/execution/VulkanConvolution.hpp b/source/backend/vulkan/image/execution/VulkanConvolution.hpp index 9f49fc2b8..1b238070e 100644 --- a/source/backend/vulkan/image/execution/VulkanConvolution.hpp +++ b/source/backend/vulkan/image/execution/VulkanConvolution.hpp @@ -92,7 +92,7 @@ class VulkanConvolutionDepthwise : public VulkanConvolutionCommon { bool _init(const float* weightData, size_t weightSize, const Op* op, Backend* bn); std::shared_ptr mKernel; - const VulkanPipeline* mConvPipeline; + SharedPtr mConvPipeline; std::shared_ptr mConvSet; const VulkanSampler* mSampler; @@ -100,9 +100,10 @@ class VulkanConvolutionDepthwise : public VulkanConvolutionCommon { std::vector> mExtraSets; std::vector> mExtraBuffers; - int mLocalX = 0; - int mLocalY = 0; bool mUseS1D1W2 = false; + + std::vector mGws; + std::vector mLws; }; } // namespace MNN diff --git a/source/backend/vulkan/image/execution/VulkanConvolution1x1.cpp b/source/backend/vulkan/image/execution/VulkanConvolution1x1.cpp new file mode 100644 index 000000000..d1982f94d --- /dev/null +++ b/source/backend/vulkan/image/execution/VulkanConvolution1x1.cpp @@ -0,0 +1,152 @@ +// +// VulkanConvolutionImpl.hpp +// MNN +// +// Created by MNN on 2025/01/10. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#include "VulkanConvolution1x1.hpp" +#include "VulkanConvolution.hpp" +#include "VulkanMatMul.hpp" + +namespace MNN{ + +static void writeParameters(VulkanMatMul::Reorder::nchwBuffer& parameters, int co, int ci, int kh, int kw) { + parameters.size[0] = co; + parameters.size[1] = ci; + parameters.size[2] = kh; + parameters.size[3] = kw; + parameters.stride[0] = ci * kh * kw; + parameters.stride[1] = kh * kw; + parameters.stride[2] = kw; + parameters.stride[3] = 1; +} + +struct VulkanImageConv1x1Param { + ivec4 inputSize; + ivec4 outputSize; +}; + +VulkanConvolution1x1::VulkanConvolution1x1(VulkanBackend* vkBn, const Convolution2DCommon* convCommon, const float* weightPtr, const float* biasPtr, const int ic, const int oc) : VulkanBasicExecution(vkBn) { + mConvCommon = convCommon; + + mConv1x1Param = std::make_shared(vkBn->getMemoryPool(), false, sizeof(VulkanImageConv1x1Param), nullptr, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT); + + std::vector types{VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER}; + auto macroRelu = VulkanConvolutionCommon::getPostTreatMacro(mConvCommon); + bool useFP16 = (vkBn->gpuType() == VulkanRuntime::ADRENO || vkBn->gpuType() == VulkanRuntime::MALI) && vkBn->getMemoryPool().permitFp16(); + std::string macroPrecision = useFP16 ? "FP16_" : "FP32_"; + std::string macro = macroRelu + macroPrecision; + + mCands.push_back(vkBn->getPrivatePipeline("glsl_convolution1x1_" + macro + "comp", types)); + mCands.push_back(vkBn->getPrivatePipeline("glsl_convolution1x1_w4_" + macro + "comp", types)); + mCands.push_back(vkBn->getPrivatePipeline("glsl_convolution1x1_c8w4_" + macro + "comp", types)); + + mDescriptorSet.reset(mCands[0]->createSet()); + + // write mBias + mBias.reset(new VulkanImage(vkBn->getMemoryPool(), false, {UP_DIV(oc, 4), 1})); + auto biasBuffer = std::make_shared(vkBn->getMemoryPool(), false, sizeof(float) * ALIGN_UP4(oc)); + auto bias = biasBuffer->map(); + ::memset(bias, 0, sizeof(float) * ALIGN_UP4(oc)); + if (biasPtr != nullptr) { + ::memcpy(bias, biasPtr, sizeof(float) * ALIGN_UP4(oc)); + } + biasBuffer->unmap(); + vkBn->copyBufferToImage(biasBuffer.get(), mBias.get(), VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL); + +{ + if (nullptr != weightPtr) { + size_t weightSize = sizeof(float) * ALIGN_UP4(ic) * ALIGN_UP4(oc); + std::shared_ptr kernelStageBuffer = std::make_shared(vkBn->getMemoryPool(), false, weightSize, nullptr, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); + auto kernelPtr = (float*)kernelStageBuffer->map(); + ::memset(kernelPtr, 0, weightSize); + for (int indexOc = 0; indexOc < oc; indexOc++) { + int indexOcOut = indexOc / 4; + int indexOcIn = indexOc % 4; + for (int indexIc = 0; indexIc < ic; indexIc++) { + int dstOffset = indexOcIn + indexIc * 4 + 4 * ALIGN_UP4(ic) * indexOcOut; + kernelPtr[dstOffset] = weightPtr[indexIc + indexOc * ic]; + } + } + kernelStageBuffer->unmap(); + mKernel = std::make_shared(vkBn->getMemoryPool(), false, ALIGN_UP4(ic), UP_DIV(oc, 4)); + vkBn->copyBufferToImage(kernelStageBuffer.get(), mKernel.get()); + } +} + +} + + +VulkanConvolution1x1::~VulkanConvolution1x1() { + // Do nothing +} + + +ErrorCode VulkanConvolution1x1::onEncode(const std::vector& inputs, const std::vector& outputs, const VulkanCommandPool::Buffer* cmdBuffer) { + auto vkBn = (VulkanBackend*)backend(); + + auto input = inputs[0]; + auto output = outputs[0]; + + int icDiv4 = UP_DIV(input->channel(), 4); + int ocDiv4 = UP_DIV(output->channel(), 4); + + { + auto conv1x1Param = reinterpret_cast(mConv1x1Param->map()); + conv1x1Param->inputSize[0] = input->width(); + conv1x1Param->inputSize[1] = input->height(); + conv1x1Param->inputSize[2] = icDiv4; + conv1x1Param->inputSize[3] = input->batch(); + conv1x1Param->outputSize[0] = output->width(); + conv1x1Param->outputSize[1] = output->height(); + conv1x1Param->outputSize[2] = ocDiv4; + conv1x1Param->outputSize[3] = output->batch(); + mConv1x1Param->unmap(); + } + + mDescriptorSet->writeImage(((VulkanTensor*)output->deviceId())->image()->view(), vkBn->getCommonSampler()->get(), VK_IMAGE_LAYOUT_GENERAL, 0); + mDescriptorSet->writeImage(((VulkanTensor*)input->deviceId())->image()->view(), vkBn->getCommonSampler()->get(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, 1); + mDescriptorSet->writeImage(mKernel->view(), vkBn->getCommonSampler()->get(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, 2); + mDescriptorSet->writeImage(mBias->view(), vkBn->getCommonSampler()->get(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, 3); + mDescriptorSet->writeBuffer(mConv1x1Param->buffer(), 4, mConv1x1Param->size()); + + mKernel->barrierRead(cmdBuffer->get()); + mBias->barrierRead(cmdBuffer->get()); + ((VulkanTensor*)input->deviceId())->image()->barrierRead(cmdBuffer->get()); + ((VulkanTensor*)output->deviceId())->image()->barrierWrite(cmdBuffer->get()); + + std::vector gws, lws; + + mCandidataGws.push_back({output->width() * output->height() * output->batch(), ocDiv4, 1}); + mCandidataGws.push_back({UP_DIV(output->width(), 4) * output->height() * output->batch(), ocDiv4, 1}); + mCandidataGws.push_back({UP_DIV(output->width(), 4) * output->height() * output->batch(), UP_DIV(ocDiv4, 2), 1}); + + float costMin = -1.0f; + float costCurr; + int optimalIndex = -1; + for (int i = 0; i < mCands.size(); i++) { + auto lwsCurr = vkBn->autoTunePipeline(mCands[i], mDescriptorSet, {(uint32_t)mCandidataGws[i][0], (uint32_t)mCandidataGws[i][1], (uint32_t)mCandidataGws[i][2]}, 2, {8, 8, 1}, &costCurr); + if (costCurr < costMin || costMin < 0) { + optimalIndex = i; + costMin = costCurr; + lws = lwsCurr; + } + } + mPipeline = mCands[optimalIndex]; + gws = {(uint32_t)mCandidataGws[optimalIndex][0], (uint32_t)mCandidataGws[optimalIndex][1], (uint32_t)mCandidataGws[optimalIndex][2]}; + + + mPipeline->bind(cmdBuffer->get(), mDescriptorSet->get()); + + vkCmdDispatch(cmdBuffer->get(), UP_DIV(gws[0], lws[0]), UP_DIV(gws[1], lws[1]), UP_DIV(gws[2], lws[2])); + + return NO_ERROR; +} + +} // end namespace MNN diff --git a/source/backend/vulkan/image/execution/VulkanConvolutionImpl.cpp b/source/backend/vulkan/image/execution/VulkanConvolutionImpl.cpp index f5b3f0b29..ef4ca3329 100644 --- a/source/backend/vulkan/image/execution/VulkanConvolutionImpl.cpp +++ b/source/backend/vulkan/image/execution/VulkanConvolutionImpl.cpp @@ -11,6 +11,7 @@ #include "VulkanConvolution.hpp" #include "VulkanConvolutionWinograd.hpp" #include "VulkanMatMul.hpp" +#include "VulkanConvolution1x1.hpp" //#define MNN_OPEN_TIME_TRACE #include namespace MNN { @@ -219,6 +220,13 @@ VulkanBasicExecution* VulkanConvolutionImpl::create(VulkanBackend* backend, cons if (ALIGN_UP4(ci) * convOption->kernelX() * convOption->kernelY() > imageLimit) { return nullptr; } + + if (convOption->kernelX() == 1 && convOption->kernelY() == 1 && + convOption->strideX() == 1 && convOption->strideY() == 1 && + inputs[0]->width() == output->width() && inputs[0]->height() == output->height()) { + return new VulkanConvolution1x1(backend, convOption, weightPtr, biasPtr, ci, co); + } + return new VulkanConvolutionIm2Col(backend, convOption, weightPtr, biasPtr, ci, co); } diff --git a/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.cpp b/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.cpp index 5d70ae5e3..190d5084a 100644 --- a/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.cpp +++ b/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.cpp @@ -49,9 +49,9 @@ VulkanMatrixMultier4x4::VulkanMatrixMultier4x4(VulkanBackend* backend, const flo VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER}; bool supportFp16 = backend->getMemoryPool().permitFp16(); if ((backend->gpuType() == VulkanRuntime::ADRENO || backend->gpuType() == VulkanRuntime::MALI) && supportFp16) { - mPipeline = mBackend->getPipeline("glsl_gemm16x16_FP16_comp", types); + mPipeline = mBackend->getPrivatePipeline("glsl_gemm16x16_FP16_comp", types); } else { - mPipeline = mBackend->getPipeline("glsl_gemm16x16_comp", types); + mPipeline = mBackend->getPrivatePipeline("glsl_gemm16x16_comp", types); } } mDescriptorSet.reset(mPipeline->createSet()); @@ -101,6 +101,7 @@ void VulkanMatrixMultier4x4::prepare(const VulkanCommandPool::Buffer* commandBuf mDescriptorSet->writeBuffer(mConstBuffer->buffer(), 3, mConstBuffer->size()); mOutputWidth = ow; mOutputHeight = oh; + mLws = mBackend->autoTunePipeline(mPipeline, mDescriptorSet, {(uint32_t)mOutputWidth, (uint32_t)mOutputHeight / 4, (uint32_t)mDepth}, 2, {8, 8, 1}); } void VulkanMatrixMultier4x4::compute(const VulkanCommandPool::Buffer* commandBuffer) const { @@ -108,7 +109,7 @@ void VulkanMatrixMultier4x4::compute(const VulkanCommandPool::Buffer* commandBuf mDest->barrierWrite(commandBuffer->get()); mSource->barrierRead(commandBuffer->get()); mKernel->barrierRead(commandBuffer->get()); - vkCmdDispatch(commandBuffer->get(), UP_DIV(mOutputWidth, 8), UP_DIV(mOutputHeight / 4, 8), mDepth); + vkCmdDispatch(commandBuffer->get(), UP_DIV(mOutputWidth, mLws[0]), UP_DIV(mOutputHeight / 4, mLws[1]), mDepth); } } // namespace MNN diff --git a/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.hpp b/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.hpp index d139f0dee..f96ee77a0 100644 --- a/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.hpp +++ b/source/backend/vulkan/image/execution/VulkanMatrixMultier4x4.hpp @@ -29,7 +29,7 @@ class VulkanMatrixMultier4x4 : public NonCopyable { } private: - const VulkanPipeline* mPipeline; + SharedPtr mPipeline; std::shared_ptr mDescriptorSet; VulkanBackend* mBackend; @@ -46,6 +46,7 @@ class VulkanMatrixMultier4x4 : public NonCopyable { int mOutputWidth = 0; int mOutputHeight = 0; + std::vector mLws; }; } // namespace MNN diff --git a/source/backend/vulkan/image/execution/Vulkanconvolution1x1.hpp b/source/backend/vulkan/image/execution/Vulkanconvolution1x1.hpp new file mode 100644 index 000000000..76bc1899a --- /dev/null +++ b/source/backend/vulkan/image/execution/Vulkanconvolution1x1.hpp @@ -0,0 +1,38 @@ +// +// VulkanConvolutionImpl.hpp +// MNN +// +// Created by MNN on 2025/01/10. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#ifndef VulkanConvolution1x1_hpp +#define VulkanConvolution1x1_hpp + +#include "VulkanBasicExecution.hpp" + + +namespace MNN { + +class VulkanConvolution1x1 : public VulkanBasicExecution { +public: + VulkanConvolution1x1(VulkanBackend* backend, const Convolution2DCommon* convCommon, const float* weightPtr, const float* biasPtr, const int ic, const int oc); + ~VulkanConvolution1x1(); + ErrorCode onEncode(const std::vector& inputs, const std::vector& outputs, + const VulkanCommandPool::Buffer* cmdBuffer) override; + +private: + SharedPtr mPipeline; + std::vector> mCands; + std::shared_ptr mDescriptorSet; + std::shared_ptr mConv1x1Param; + const Convolution2DCommon* mConvCommon; + std::shared_ptr mKernel; + std::shared_ptr mKernelBuffer; + std::shared_ptr mBias; + std::vector> mCandidataGws; +}; + +} // end namespace MNN + +#endif /* VulkanConvolution1x1_hpp */ diff --git a/source/backend/vulkan/image/execution/glsl/convolution1x1.comp b/source/backend/vulkan/image/execution/glsl/convolution1x1.comp new file mode 100644 index 000000000..516bf7293 --- /dev/null +++ b/source/backend/vulkan/image/execution/glsl/convolution1x1.comp @@ -0,0 +1,69 @@ +#version 440 core + +#if defined(FP16) || defined(RELU_FP16) || defined(RELU6_FP16) +#extension GL_AMD_gpu_shader_half_float: enable +#define FLOAT4 f16vec4 +#else +#define FLOAT4 vec4 +#endif + +layout(set=0, binding=0) writeonly uniform image2D uOutput; + +layout(set=0, binding=1) uniform sampler2D uInput; + +layout(set=0, binding=2) uniform sampler2D uKernel; + +layout(set=0, binding=3) uniform sampler2D uBias; + +layout(set=0, binding=4) readonly uniform constBuffer { + ivec4 inputSize; // w h icDiv4 n + ivec4 outputSize; // w h ocDiv4 n +} uConstant; + +#define UP_DIV(x, y) (((x)+(y)-1)/(y)) + +// ow * oh * ocDiv4 on +layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; + +void main() { + // ------------- + int outputIndexNHW = int(gl_GlobalInvocationID.x); + int outputIndexC4 = int(gl_GlobalInvocationID.y); + + if (outputIndexNHW >= uConstant.outputSize.w * uConstant.outputSize.y * uConstant.outputSize.x || outputIndexC4 >= uConstant.outputSize.z) { + return; + } + + int outputIndexW = outputIndexNHW % uConstant.outputSize.x; + int outputIndexNH = outputIndexNHW / uConstant.outputSize.x; + int outputIndexH = outputIndexNH % uConstant.outputSize.y; + int outputIndexN = outputIndexNH / uConstant.outputSize.y; + // ------------- + + FLOAT4 result = FLOAT4(texelFetch(uBias, ivec2(outputIndexC4, 0), 0)); + + for (int inputIndexC4 = 0; inputIndexC4 < uConstant.inputSize.z; inputIndexC4 ++) { + FLOAT4 inputValue = FLOAT4(texelFetch(uInput, ivec2(outputIndexW + inputIndexC4 * uConstant.inputSize.x, outputIndexH + outputIndexN * uConstant.inputSize.y), 0)); + int kernelIndexXbase = inputIndexC4 * 4; + FLOAT4 weight0 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 0, outputIndexC4), 0)); + FLOAT4 weight1 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 1, outputIndexC4), 0)); + FLOAT4 weight2 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 2, outputIndexC4), 0)); + FLOAT4 weight3 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 3, outputIndexC4), 0)); + + result += inputValue.x * weight0; + result += inputValue.y * weight1; + result += inputValue.z * weight2; + result += inputValue.w * weight3; + } + +#if defined(RELU_FP32) || defined(RELU_FP16) + result = FLOAT4(max(result, FLOAT4(0))); +#endif +#if defined(RELU6_FP32) || defined(RELU6_FP16) + result = FLOAT4(clamp(result, FLOAT4(0), FLOAT4(6))); +#endif + + imageStore(uOutput, ivec2(outputIndexW + outputIndexC4 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), result); + + return; +} \ No newline at end of file diff --git a/source/backend/vulkan/image/execution/glsl/convolution1x1_c8w4.comp b/source/backend/vulkan/image/execution/glsl/convolution1x1_c8w4.comp new file mode 100644 index 000000000..72e12411a --- /dev/null +++ b/source/backend/vulkan/image/execution/glsl/convolution1x1_c8w4.comp @@ -0,0 +1,163 @@ +#version 440 core + +#if defined(FP16) || defined(RELU_FP16) || defined(RELU6_FP16) +#extension GL_AMD_gpu_shader_half_float: enable +#define FLOAT4 f16vec4 +#else +#define FLOAT4 vec4 +#endif + +layout(set=0, binding=0) writeonly uniform image2D uOutput; + +layout(set=0, binding=1) uniform sampler2D uInput; + +layout(set=0, binding=2) uniform sampler2D uKernel; + +layout(set=0, binding=3) uniform sampler2D uBias; + +layout(set=0, binding=4) readonly uniform constBuffer { + ivec4 inputSize; // w h icDiv4 n + ivec4 outputSize; // w h ocDiv4 n +} uConstant; + +#define UP_DIV(x, y) (((x)+(y)-1)/(y)) + +// ow * oh * ocDiv4 on +layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; + +void main() { + // ----------------------------- + int outputIndexNHW4 = int(gl_GlobalInvocationID.x); + int outputIndexC8 = int(gl_GlobalInvocationID.y); + int outputC8 = UP_DIV(uConstant.outputSize.z, 2); + int outputW4 = UP_DIV(uConstant.outputSize.x, 4); + + if (outputIndexNHW4 >= outputW4 * uConstant.outputSize.y * uConstant.outputSize.w || outputIndexC8 >= outputC8) { + return; + } + + int outputIndexW4 = outputIndexNHW4 % outputW4; + int outputIndexNH = outputIndexNHW4 / outputW4; + int outputIndexW0 = outputIndexW4 * 4; + int outputIndexW1 = outputIndexW0 + 1; + int outputIndexW2 = outputIndexW0 + 2; + int outputIndexW3 = outputIndexW0 + 3; + int outputIndexH = outputIndexNH % uConstant.outputSize.y; + int outputIndexN = outputIndexNH / uConstant.outputSize.y; + // ----------------------------- + + int outputIndexC0 = outputIndexC8 * 2; + int outputIndexC1 = outputIndexC0 + 1; + FLOAT4 resultW0C0 = FLOAT4(texelFetch(uBias, ivec2(outputIndexC0, 0), 0)); + FLOAT4 resultW1C0 = resultW0C0; + FLOAT4 resultW2C0 = resultW0C0; + FLOAT4 resultW3C0 = resultW0C0; + FLOAT4 resultW0C1 = FLOAT4(texelFetch(uBias, ivec2(outputIndexC1, 0), 0)); + FLOAT4 resultW1C1 = resultW0C1; + FLOAT4 resultW2C1 = resultW0C1; + FLOAT4 resultW3C1 = resultW0C1; + + for (int inputIndexC4 = 0; inputIndexC4 < uConstant.inputSize.z; inputIndexC4 ++) { + FLOAT4 inputValueW0 = FLOAT4(texelFetch(uInput, ivec2(outputIndexW0 + inputIndexC4 * uConstant.inputSize.x, outputIndexH + outputIndexN * uConstant.inputSize.y), 0)); + FLOAT4 inputValueW1 = FLOAT4(texelFetch(uInput, ivec2(outputIndexW1 + inputIndexC4 * uConstant.inputSize.x, outputIndexH + outputIndexN * uConstant.inputSize.y), 0)); + FLOAT4 inputValueW2 = FLOAT4(texelFetch(uInput, ivec2(outputIndexW2 + inputIndexC4 * uConstant.inputSize.x, outputIndexH + outputIndexN * uConstant.inputSize.y), 0)); + FLOAT4 inputValueW3 = FLOAT4(texelFetch(uInput, ivec2(outputIndexW3 + inputIndexC4 * uConstant.inputSize.x, outputIndexH + outputIndexN * uConstant.inputSize.y), 0)); + int kernelIndexXbase = inputIndexC4 * 4; + FLOAT4 weightC00 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 0, outputIndexC0), 0)); + FLOAT4 weightC01 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 1, outputIndexC0), 0)); + FLOAT4 weightC02 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 2, outputIndexC0), 0)); + FLOAT4 weightC03 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 3, outputIndexC0), 0)); + FLOAT4 weightC10 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 0, outputIndexC1), 0)); + FLOAT4 weightC11 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 1, outputIndexC1), 0)); + FLOAT4 weightC12 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 2, outputIndexC1), 0)); + FLOAT4 weightC13 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 3, outputIndexC1), 0)); + + resultW0C0 += inputValueW0.x * weightC00; + resultW0C0 += inputValueW0.y * weightC01; + resultW0C0 += inputValueW0.z * weightC02; + resultW0C0 += inputValueW0.w * weightC03; + + resultW0C1 += inputValueW0.x * weightC10; + resultW0C1 += inputValueW0.y * weightC11; + resultW0C1 += inputValueW0.z * weightC12; + resultW0C1 += inputValueW0.w * weightC13; + + resultW1C0 += inputValueW1.x * weightC00; + resultW1C0 += inputValueW1.y * weightC01; + resultW1C0 += inputValueW1.z * weightC02; + resultW1C0 += inputValueW1.w * weightC03; + + resultW1C1 += inputValueW1.x * weightC10; + resultW1C1 += inputValueW1.y * weightC11; + resultW1C1 += inputValueW1.z * weightC12; + resultW1C1 += inputValueW1.w * weightC13; + + resultW2C0 += inputValueW2.x * weightC00; + resultW2C0 += inputValueW2.y * weightC01; + resultW2C0 += inputValueW2.z * weightC02; + resultW2C0 += inputValueW2.w * weightC03; + + resultW2C1 += inputValueW2.x * weightC10; + resultW2C1 += inputValueW2.y * weightC11; + resultW2C1 += inputValueW2.z * weightC12; + resultW2C1 += inputValueW2.w * weightC13; + + resultW3C0 += inputValueW3.x * weightC00; + resultW3C0 += inputValueW3.y * weightC01; + resultW3C0 += inputValueW3.z * weightC02; + resultW3C0 += inputValueW3.w * weightC03; + + resultW3C1 += inputValueW3.x * weightC10; + resultW3C1 += inputValueW3.y * weightC11; + resultW3C1 += inputValueW3.z * weightC12; + resultW3C1 += inputValueW3.w * weightC13; + } + +#if defined(RELU_FP32) || defined(RELU_FP16) + resultW0C0 = FLOAT4(max(resultW0C0, FLOAT4(0))); + resultW0C1 = FLOAT4(max(resultW0C1, FLOAT4(0))); + resultW1C0 = FLOAT4(max(resultW1C0, FLOAT4(0))); + resultW1C1 = FLOAT4(max(resultW1C1, FLOAT4(0))); + resultW2C0 = FLOAT4(max(resultW2C0, FLOAT4(0))); + resultW2C1 = FLOAT4(max(resultW2C1, FLOAT4(0))); + resultW3C0 = FLOAT4(max(resultW3C0, FLOAT4(0))); + resultW3C1 = FLOAT4(max(resultW3C1, FLOAT4(0))); +#endif + +#if defined(RELU6_FP32) || defined(RELU6_FP16) + resultW0C0 = FLOAT4(clamp(resultW0C0, FLOAT4(0), FLOAT4(6))); + resultW0C1 = FLOAT4(clamp(resultW0C1, FLOAT4(0), FLOAT4(6))); + resultW1C0 = FLOAT4(clamp(resultW1C0, FLOAT4(0), FLOAT4(6))); + resultW1C1 = FLOAT4(clamp(resultW1C1, FLOAT4(0), FLOAT4(6))); + resultW2C0 = FLOAT4(clamp(resultW2C0, FLOAT4(0), FLOAT4(6))); + resultW2C1 = FLOAT4(clamp(resultW2C1, FLOAT4(0), FLOAT4(6))); + resultW3C0 = FLOAT4(clamp(resultW3C0, FLOAT4(0), FLOAT4(6))); + resultW3C1 = FLOAT4(clamp(resultW3C1, FLOAT4(0), FLOAT4(6))); +#endif + + imageStore(uOutput, ivec2(outputIndexW0 + outputIndexC0 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW0C0); + if (outputIndexW1 < uConstant.outputSize.x) { + imageStore(uOutput, ivec2(outputIndexW1 + outputIndexC0 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW1C0); + } + if (outputIndexW2 < uConstant.outputSize.x) { + imageStore(uOutput, ivec2(outputIndexW2 + outputIndexC0 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW2C0); + } + if (outputIndexW3 < uConstant.outputSize.x) { + imageStore(uOutput, ivec2(outputIndexW3 + outputIndexC0 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW3C0); + } + + if (outputIndexC1 < uConstant.outputSize.z) { + imageStore(uOutput, ivec2(outputIndexW0 + outputIndexC1 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW0C1); + if (outputIndexW1 < uConstant.outputSize.x) { + imageStore(uOutput, ivec2(outputIndexW1 + outputIndexC1 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW1C1); + } + if (outputIndexW2 < uConstant.outputSize.x) { + imageStore(uOutput, ivec2(outputIndexW2 + outputIndexC1 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW2C1); + } + if (outputIndexW3 < uConstant.outputSize.x) { + imageStore(uOutput, ivec2(outputIndexW3 + outputIndexC1 * uConstant.outputSize.x, outputIndexH + outputIndexN * uConstant.outputSize.y), resultW3C1); + } + } + + return; +} \ No newline at end of file diff --git a/source/backend/vulkan/image/execution/glsl/convolution1x1_w4.comp b/source/backend/vulkan/image/execution/glsl/convolution1x1_w4.comp new file mode 100644 index 000000000..734501aa6 --- /dev/null +++ b/source/backend/vulkan/image/execution/glsl/convolution1x1_w4.comp @@ -0,0 +1,121 @@ +#version 440 core + +#if defined(FP16) || defined(RELU_FP16) || defined(RELU6_FP16) +#extension GL_AMD_gpu_shader_half_float: enable +#define FLOAT4 f16vec4 +#else +#define FLOAT4 vec4 +#endif + +layout(set=0, binding=0) writeonly uniform image2D uOutput; +layout(set=0, binding=1) uniform sampler2D uInput; + +layout(set=0, binding=2) uniform sampler2D uKernel; + +layout(set=0, binding=3) uniform sampler2D uBias; + +layout(set=0, binding=4) readonly uniform constBuffer { + ivec4 inputSize; // w h icDiv4 n + ivec4 outputSize; // w h ocDiv4 n +} uConstant; + +#define UP_DIV(x, y) (((x)+(y)-1)/(y)) + +layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; + +void main() { + // ------------- + int outputIndexNHW4 = int(gl_GlobalInvocationID.x); + int outputIndexC4 = int(gl_GlobalInvocationID.y); + int outputW4 = UP_DIV(uConstant.outputSize.x, 4); + + if (outputIndexNHW4 >= uConstant.outputSize.w * uConstant.outputSize.y * outputW4 || outputIndexC4 >= uConstant.outputSize.z) { + return; + } + + int outputIndexW4 = outputIndexNHW4 % outputW4; + int outputIndexNH = outputIndexNHW4 / outputW4; + int outputIndexH = outputIndexNH % uConstant.outputSize.y; + int outputIndexN = outputIndexNH / uConstant.outputSize.y; + // ------------- + + FLOAT4 result0 = FLOAT4(texelFetch(uBias, ivec2(outputIndexC4, 0), 0)); + FLOAT4 result1 = result0; + FLOAT4 result2 = result0; + FLOAT4 result3 = result0; + + int outputIndexWBase = outputIndexW4 * 4; + + for (int inputIndexC4 = 0; inputIndexC4 < uConstant.inputSize.z; inputIndexC4 ++) { + int inputPosWBase = outputIndexWBase + inputIndexC4 * uConstant.inputSize.x; + int inputPosH = outputIndexH + outputIndexN * uConstant.inputSize.y; + FLOAT4 inputValue0 = FLOAT4(texelFetch(uInput, ivec2(inputPosWBase, inputPosH), 0)); + FLOAT4 inputValue1 = FLOAT4(texelFetch(uInput, ivec2(inputPosWBase + 1, inputPosH), 0)); + FLOAT4 inputValue2 = FLOAT4(texelFetch(uInput, ivec2(inputPosWBase + 2, inputPosH), 0)); + FLOAT4 inputValue3 = FLOAT4(texelFetch(uInput, ivec2(inputPosWBase + 3, inputPosH), 0)); + + int kernelIndexXbase = inputIndexC4 * 4; + FLOAT4 weight0 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 0, outputIndexC4), 0)); + FLOAT4 weight1 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 1, outputIndexC4), 0)); + FLOAT4 weight2 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 2, outputIndexC4), 0)); + FLOAT4 weight3 = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexXbase + 3, outputIndexC4), 0)); + + result0 += inputValue0.x * weight0; + result0 += inputValue0.y * weight1; + result0 += inputValue0.z * weight2; + result0 += inputValue0.w * weight3; + + result1 += inputValue1.x * weight0; + result1 += inputValue1.y * weight1; + result1 += inputValue1.z * weight2; + result1 += inputValue1.w * weight3; + + result2 += inputValue2.x * weight0; + result2 += inputValue2.y * weight1; + result2 += inputValue2.z * weight2; + result2 += inputValue2.w * weight3; + + result3 += inputValue3.x * weight0; + result3 += inputValue3.y * weight1; + result3 += inputValue3.z * weight2; + result3 += inputValue3.w * weight3; + } + +#if defined(RELU_FP32) || defined(RELU_FP16) + result0 = FLOAT4(max(result0, FLOAT4(0))); + result1 = FLOAT4(max(result1, FLOAT4(0))); + result2 = FLOAT4(max(result2, FLOAT4(0))); + result3 = FLOAT4(max(result3, FLOAT4(0))); +#endif +#if defined(RELU6_FP32) || defined(RELU6_FP16) + result0 = FLOAT4(clamp(result0, FLOAT4(0), FLOAT4(6))); + result1 = FLOAT4(clamp(result1, FLOAT4(0), FLOAT4(6))); + result2 = FLOAT4(clamp(result2, FLOAT4(0), FLOAT4(6))); + result3 = FLOAT4(clamp(result3, FLOAT4(0), FLOAT4(6))); +#endif + + int outputPosWBase = outputIndexWBase + outputIndexC4 * uConstant.outputSize.x; + int outputPosH = outputIndexH + outputIndexN * uConstant.outputSize.y; + int WLeft = uConstant.outputSize.x - outputIndexW4 * 4; + if (WLeft == 1) { + imageStore(uOutput, ivec2(outputPosWBase, outputPosH), result0); + return; + } + if (WLeft == 2) { + imageStore(uOutput, ivec2(outputPosWBase, outputPosH), result0); + imageStore(uOutput, ivec2(outputPosWBase + 1, outputPosH), result1); + return; + } + if (WLeft == 3) { + imageStore(uOutput, ivec2(outputPosWBase, outputPosH), result0); + imageStore(uOutput, ivec2(outputPosWBase + 1, outputPosH), result1); + imageStore(uOutput, ivec2(outputPosWBase + 2, outputPosH), result2); + return; + } + imageStore(uOutput, ivec2(outputPosWBase, outputPosH), result0); + imageStore(uOutput, ivec2(outputPosWBase + 1, outputPosH), result1); + imageStore(uOutput, ivec2(outputPosWBase + 2, outputPosH), result2); + imageStore(uOutput, ivec2(outputPosWBase + 3, outputPosH), result3); + + return; +} \ No newline at end of file diff --git a/source/backend/vulkan/image/execution/glsl/convolutionDepthwise.comp b/source/backend/vulkan/image/execution/glsl/convolutionDepthwise.comp index b34b48c96..8ed147a4c 100644 --- a/source/backend/vulkan/image/execution/glsl/convolutionDepthwise.comp +++ b/source/backend/vulkan/image/execution/glsl/convolutionDepthwise.comp @@ -1,5 +1,12 @@ #version 440 core +#if defined(FP16) || defined(RELU_FP16) || defined(RELU6_FP16) +#extension GL_AMD_gpu_shader_half_float: enable +#define FLOAT4 f16vec4 +#else +#define FLOAT4 vec4 +#endif + layout(set=0, binding=0) writeonly uniform image2D uOutput; layout(set=0, binding=1) uniform sampler2D uInput; @@ -19,7 +26,7 @@ layout(set=0, binding=4) readonly uniform constBuffer { #define UP_DIV(x, y) (((x)+(y)-1)/(y)) -layout (local_size_x = 16, local_size_y = 16, local_size_z = 1) in; +layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; void main() { @@ -35,26 +42,26 @@ void main() ivec2 sta = max(ivec2(0, 0), (UP_DIV(-s0, uConstant.dilate))); ivec2 end = min(uConstant.kernelSize, UP_DIV(uConstant.inputSize.xy - s0, uConstant.dilate)); int fx, fy, fz; - vec4 color = texelFetch(uBias, ivec2(oz, 0), 0); + FLOAT4 color = FLOAT4(texelFetch(uBias, ivec2(oz, 0), 0)); for (fy=sta.y; fy= 0 && inputIndexW0 < uConstant.inputSize.x) ? texelFetch(uInput, ivec2(inputIndexW0 + outputIndexC4 * uConstant.inputSize.x, inputPosH), 0) : vec4(0.0f); + FLOAT4 input1 = (inputIndexW0 >= 0 && inputIndexW0 < uConstant.inputSize.x) ? FLOAT4(texelFetch(uInput, ivec2(inputIndexW0 + outputIndexC4 * uConstant.inputSize.x, inputPosH), 0)) : FLOAT4(0); for (int kernelIndexW = 0; kernelIndexW < uConstant.kernelSize.x; kernelIndexW++) { // load input input0 = input1; inputIndexW0 = inputIndexOffset.x + kernelIndexW + 1; - input1 = (inputIndexW0 >= 0 && inputIndexW0 < uConstant.inputSize.x) ? texelFetch(uInput, ivec2(inputIndexW0 + outputIndexC4 * uConstant.inputSize.x, inputPosH), 0) : vec4(0.0f); + input1 = (inputIndexW0 >= 0 && inputIndexW0 < uConstant.inputSize.x) ? FLOAT4(texelFetch(uInput, ivec2(inputIndexW0 + outputIndexC4 * uConstant.inputSize.x, inputPosH), 0)) : FLOAT4(0); // load weight - vec4 weight = texelFetch(uKernel, ivec2(kernelIndexW + kernelIndexH * uConstant.kernelSize.x, outputIndexC4), 0); - result0 = fma(input0, weight, result0); - result1 = fma(input1, weight, result1); + FLOAT4 weight = FLOAT4(texelFetch(uKernel, ivec2(kernelIndexW + kernelIndexH * uConstant.kernelSize.x, outputIndexC4), 0)); + result0 += input0 * weight; + result1 += input1 * weight; } } -#ifdef RELU - result0 = max(result0, vec4(0)); - result1 = max(result1, vec4(0)); +#if defined(RELU_FP32) || defined(RELU_FP16) + result0 = FLOAT4(max(result0, FLOAT4(0))); + result1 = FLOAT4(max(result1, FLOAT4(0))); #endif -#ifdef RELU6 - result0 = clamp(result0, vec4(0), vec4(6)); - result1 = clamp(result1, vec4(0), vec4(6)); +#if defined(RELU6_FP32) || defined(RELU6_FP16) + result0 = FLOAT4(clamp(result0, FLOAT4(0), FLOAT4(6))); + result1 = FLOAT4(clamp(result1, FLOAT4(0), FLOAT4(6))); #endif // write output diff --git a/source/backend/vulkan/image/execution/glsl/gemm16x16.comp b/source/backend/vulkan/image/execution/glsl/gemm16x16.comp index b71b66207..2f9966ee9 100644 --- a/source/backend/vulkan/image/execution/glsl/gemm16x16.comp +++ b/source/backend/vulkan/image/execution/glsl/gemm16x16.comp @@ -17,7 +17,7 @@ layout(set=0, binding=3) readonly uniform constBuffer { ivec4 outputSize; }uConst; -layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in; +layout (local_size_x_id = 0, local_size_y_id = 1, local_size_z_id = 2) in; void main() { diff --git a/source/backend/vulkan/image/execution/glsl/macro.json b/source/backend/vulkan/image/execution/glsl/macro.json index 6e443f12d..7da1b8088 100644 --- a/source/backend/vulkan/image/execution/glsl/macro.json +++ b/source/backend/vulkan/image/execution/glsl/macro.json @@ -89,21 +89,25 @@ "RELU6" ], "convolutionDepthwise.comp":[ - "RELU", - "RELU6" + "FP32", + "RELU_FP32", + "RELU6_FP32", + "FP16", + "RELU_FP16", + "RELU6_FP16" ], "convolutionDepthwise_s1d1_w2.comp":[ - "RELU", - "RELU6" + "FP32", + "RELU_FP32", + "RELU6_FP32", + "FP16", + "RELU_FP16", + "RELU6_FP16" ], "deconvolutionDepthwise.comp":[ "RELU", "RELU6" ], - "convolutionDepthwiseMali.comp":[ - "RELU", - "RELU6" - ], "gridSampleNearest.comp":[ "PAD_MODE_ZEROS" ], @@ -128,5 +132,29 @@ "AXIS_H", "AXIS_W", "AXIS_C" + ], + "convolution1x1.comp":[ + "FP32", + "RELU_FP32", + "RELU6_FP32", + "FP16", + "RELU_FP16", + "RELU6_FP16" + ], + "convolution1x1_w4.comp":[ + "FP32", + "RELU_FP32", + "RELU6_FP32", + "FP16", + "RELU_FP16", + "RELU6_FP16" + ], + "convolution1x1_c8w4.comp":[ + "FP32", + "RELU_FP32", + "RELU6_FP32", + "FP16", + "RELU_FP16", + "RELU6_FP16" ] } diff --git a/source/backend/vulkan/image/shaders/AllShader.h b/source/backend/vulkan/image/shaders/AllShader.h index 7e9367340..3c5bce6c7 100644 --- a/source/backend/vulkan/image/shaders/AllShader.h +++ b/source/backend/vulkan/image/shaders/AllShader.h @@ -16,10 +16,6 @@ extern const unsigned char glsl_softmaxImage_AXIS_C_comp[]; extern unsigned int glsl_softmaxImage_AXIS_C_comp_len; extern const unsigned char glsl_convolutionDepthwiseMali_comp[]; extern unsigned int glsl_convolutionDepthwiseMali_comp_len; -extern const unsigned char glsl_convolutionDepthwiseMali_RELU_comp[]; -extern unsigned int glsl_convolutionDepthwiseMali_RELU_comp_len; -extern const unsigned char glsl_convolutionDepthwiseMali_RELU6_comp[]; -extern unsigned int glsl_convolutionDepthwiseMali_RELU6_comp_len; extern const unsigned char glsl_relu_comp[]; extern unsigned int glsl_relu_comp_len; extern const unsigned char glsl_unaryImage_comp[]; @@ -88,14 +84,36 @@ extern const unsigned char glsl_im2col_comp[]; extern unsigned int glsl_im2col_comp_len; extern const unsigned char glsl_convolutionDepthwise_comp[]; extern unsigned int glsl_convolutionDepthwise_comp_len; -extern const unsigned char glsl_convolutionDepthwise_RELU_comp[]; -extern unsigned int glsl_convolutionDepthwise_RELU_comp_len; -extern const unsigned char glsl_convolutionDepthwise_RELU6_comp[]; -extern unsigned int glsl_convolutionDepthwise_RELU6_comp_len; +extern const unsigned char glsl_convolutionDepthwise_FP32_comp[]; +extern unsigned int glsl_convolutionDepthwise_FP32_comp_len; +extern const unsigned char glsl_convolutionDepthwise_RELU_FP32_comp[]; +extern unsigned int glsl_convolutionDepthwise_RELU_FP32_comp_len; +extern const unsigned char glsl_convolutionDepthwise_RELU6_FP32_comp[]; +extern unsigned int glsl_convolutionDepthwise_RELU6_FP32_comp_len; +extern const unsigned char glsl_convolutionDepthwise_FP16_comp[]; +extern unsigned int glsl_convolutionDepthwise_FP16_comp_len; +extern const unsigned char glsl_convolutionDepthwise_RELU_FP16_comp[]; +extern unsigned int glsl_convolutionDepthwise_RELU_FP16_comp_len; +extern const unsigned char glsl_convolutionDepthwise_RELU6_FP16_comp[]; +extern unsigned int glsl_convolutionDepthwise_RELU6_FP16_comp_len; extern const unsigned char glsl_gridSampleBilinear_comp[]; extern unsigned int glsl_gridSampleBilinear_comp_len; extern const unsigned char glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp[]; extern unsigned int glsl_gridSampleBilinear_PAD_MODE_ZEROS_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_FP32_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_RELU_FP32_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_RELU_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_RELU6_FP32_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_RELU6_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_FP16_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_FP16_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_RELU_FP16_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_RELU_FP16_comp_len; +extern const unsigned char glsl_convolution1x1_c8w4_RELU6_FP16_comp[]; +extern unsigned int glsl_convolution1x1_c8w4_RELU6_FP16_comp_len; extern const unsigned char glsl_gridSampleNearest_comp[]; extern unsigned int glsl_gridSampleNearest_comp_len; extern const unsigned char glsl_gridSampleNearest_PAD_MODE_ZEROS_comp[]; @@ -182,6 +200,20 @@ extern const unsigned char glsl_winogradTransformDest2_3_1_RELU6_comp[]; extern unsigned int glsl_winogradTransformDest2_3_1_RELU6_comp_len; extern const unsigned char glsl_winogradTransformSource2_3_1_comp[]; extern unsigned int glsl_winogradTransformSource2_3_1_comp_len; +extern const unsigned char glsl_convolution1x1_comp[]; +extern unsigned int glsl_convolution1x1_comp_len; +extern const unsigned char glsl_convolution1x1_FP32_comp[]; +extern unsigned int glsl_convolution1x1_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_RELU_FP32_comp[]; +extern unsigned int glsl_convolution1x1_RELU_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_RELU6_FP32_comp[]; +extern unsigned int glsl_convolution1x1_RELU6_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_FP16_comp[]; +extern unsigned int glsl_convolution1x1_FP16_comp_len; +extern const unsigned char glsl_convolution1x1_RELU_FP16_comp[]; +extern unsigned int glsl_convolution1x1_RELU_FP16_comp_len; +extern const unsigned char glsl_convolution1x1_RELU6_FP16_comp[]; +extern unsigned int glsl_convolution1x1_RELU6_FP16_comp_len; extern const unsigned char glsl_col2Im_comp[]; extern unsigned int glsl_col2Im_comp_len; extern const unsigned char glsl_col2Im_RELU_comp[]; @@ -212,10 +244,18 @@ extern const unsigned char glsl_binary_blit_SQUDIFF_comp[]; extern unsigned int glsl_binary_blit_SQUDIFF_comp_len; extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_comp[]; extern unsigned int glsl_convolutionDepthwise_s1d1_w2_comp_len; -extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_comp[]; -extern unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU_comp_len; -extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_comp[]; -extern unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU6_comp_len; +extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_FP32_comp[]; +extern unsigned int glsl_convolutionDepthwise_s1d1_w2_FP32_comp_len; +extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp[]; +extern unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU_FP32_comp_len; +extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp[]; +extern unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU6_FP32_comp_len; +extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_FP16_comp[]; +extern unsigned int glsl_convolutionDepthwise_s1d1_w2_FP16_comp_len; +extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp[]; +extern unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU_FP16_comp_len; +extern const unsigned char glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp[]; +extern unsigned int glsl_convolutionDepthwise_s1d1_w2_RELU6_FP16_comp_len; extern const unsigned char glsl_matmul_output_comp[]; extern unsigned int glsl_matmul_output_comp_len; extern const unsigned char glsl_matmul_output_BIAS_comp[]; @@ -252,4 +292,18 @@ extern const unsigned char glsl_argmax_ARGMIN_comp[]; extern unsigned int glsl_argmax_ARGMIN_comp_len; extern const unsigned char glsl_buffer2Image3D_comp[]; extern unsigned int glsl_buffer2Image3D_comp_len; +extern const unsigned char glsl_convolution1x1_w4_comp[]; +extern unsigned int glsl_convolution1x1_w4_comp_len; +extern const unsigned char glsl_convolution1x1_w4_FP32_comp[]; +extern unsigned int glsl_convolution1x1_w4_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_w4_RELU_FP32_comp[]; +extern unsigned int glsl_convolution1x1_w4_RELU_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_w4_RELU6_FP32_comp[]; +extern unsigned int glsl_convolution1x1_w4_RELU6_FP32_comp_len; +extern const unsigned char glsl_convolution1x1_w4_FP16_comp[]; +extern unsigned int glsl_convolution1x1_w4_FP16_comp_len; +extern const unsigned char glsl_convolution1x1_w4_RELU_FP16_comp[]; +extern unsigned int glsl_convolution1x1_w4_RELU_FP16_comp_len; +extern const unsigned char glsl_convolution1x1_w4_RELU6_FP16_comp[]; +extern unsigned int glsl_convolution1x1_w4_RELU6_FP16_comp_len; #endif \ No newline at end of file diff --git a/source/backend/vulkan/runtime/VulkanRuntime.cpp b/source/backend/vulkan/runtime/VulkanRuntime.cpp index 191158113..c1218dc4d 100644 --- a/source/backend/vulkan/runtime/VulkanRuntime.cpp +++ b/source/backend/vulkan/runtime/VulkanRuntime.cpp @@ -114,6 +114,16 @@ VulkanRuntime::VulkanRuntime(const Backend::Info& info, std::shared_ptr(dev, VK_FILTER_NEAREST, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE); mPipelineFactory = std::make_shared(dev); mQueryPool = std::make_shared(dev); + + std::vector legalModeValues = {0x00000001, 0x00000002, 0x00000004, + 0x00000201, 0x00000202, 0x00000204}; + auto iter = std::find(legalModeValues.begin(), legalModeValues.end(), (uint32_t)mInfo.gpuMode); + if (iter == legalModeValues.end()) { + MNN_PRINT("The customized gpu mode is illegal for Vulkan backend. Using the default mode.\n"); + mGpuMode = 0x00000004; + } else { + mGpuMode = mInfo.gpuMode; + } } VulkanRuntime::~VulkanRuntime() { @@ -186,6 +196,71 @@ int VulkanRuntime::onGetRuntimeStatus(RuntimeStatus statusEnum) const { } return 0; } + +bool VulkanRuntime::onSetCache(const void* buffer, size_t size) { + // check the validity of the buffer + if (nullptr == buffer) { + mTuneBuffer.clear(); + return false; + } + + flatbuffers::Verifier verifier(static_cast(buffer), size); + if (!VKCache::VerifyTuneInfoCacheBuffer(verifier)) { + return false; + } + + auto tuneInfoCache = VKCache::GetTuneInfoCache(buffer); + auto tuneInfos = tuneInfoCache->TuneInfos(); + if (!tuneInfos) { + return false; + } + // read from buffer, write to mTuneMap + for (const auto & tuneInfo : * tuneInfos) { + VKTuneKey k; + k.shaderName = tuneInfo->shaderName()->str(); + k.gws = {tuneInfo->gws()->x(), tuneInfo->gws()->y(), tuneInfo->gws()->z()}; + + VKTuneValue v; + v.optimalLws = {tuneInfo->optimalLws()->x(), tuneInfo->optimalLws()->y(), tuneInfo->optimalLws()->z()}; + v.optimalCost = tuneInfo->optimalCost(); + mTuneMap[k] = v; + } + + return true; +} + +std::pair VulkanRuntime::onGetCache() { + std::unique_ptr builder(new flatbuffers::FlatBufferBuilder()); + std::unique_ptr tuneInfoCache(new VKCache::TuneInfoCacheT()); + + for (const auto & kvPair : mTuneMap) { + const VKTuneKey & k = kvPair.first; + const VKTuneValue & v = kvPair.second; + std::unique_ptr tuneInfo(new VKCache::TuneInfoT()); + tuneInfo->shaderName = k.shaderName; + + std::unique_ptr gwsTemp(new VKCache::WorkSizeT()); + gwsTemp->x = k.gws[0]; gwsTemp->y = k.gws[1]; gwsTemp->z = k.gws[2]; + tuneInfo->gws = std::move(gwsTemp); + + std::unique_ptr optimalLwsTemp(new VKCache::WorkSizeT()); + optimalLwsTemp->x = v.optimalLws[0]; optimalLwsTemp->y = v.optimalLws[1]; optimalLwsTemp->z = v.optimalLws[2]; + tuneInfo->optimalLws = std::move(optimalLwsTemp); + + tuneInfo->optimalCost = v.optimalCost; + + tuneInfoCache->TuneInfos.push_back(std::move(tuneInfo)); + } + + auto tuneInfoCacheOffset = VKCache::TuneInfoCache::Pack(*(builder.get()), tuneInfoCache.get()); + builder->Finish(tuneInfoCacheOffset); + uint8_t *bufTemp = builder->GetBufferPointer(); + size_t size = builder->GetSize(); + mTuneBuffer.resize(size); + ::memcpy(mTuneBuffer.data(), bufTemp, size); + return std::make_pair(mTuneBuffer.data(), size); +} + class VulkanRuntimeCreator : public RuntimeCreator { public: virtual Runtime* onCreate(const Backend::Info& info) const { diff --git a/source/backend/vulkan/runtime/VulkanRuntime.hpp b/source/backend/vulkan/runtime/VulkanRuntime.hpp index 3c04c9808..8ade36944 100644 --- a/source/backend/vulkan/runtime/VulkanRuntime.hpp +++ b/source/backend/vulkan/runtime/VulkanRuntime.hpp @@ -9,6 +9,10 @@ #ifndef VulkanRuntime_hpp #define VulkanRuntime_hpp #include +#include +#include +#include +#include "VKCache_generated.h" #include "VulkanBuffer.hpp" #include "VulkanCommandPool.hpp" #include "VulkanDevice.hpp" @@ -22,6 +26,31 @@ #include namespace MNN { + +struct VKTuneKey { + std::string shaderName; + std::array gws; + + bool operator==(const VKTuneKey & other) const { + return (shaderName == other.shaderName) && (gws == other.gws); + } +}; + +struct VKTuneValue { + std::array optimalLws; + float optimalCost; +}; + +struct VkTuneHash { + size_t operator()(const VKTuneKey & key) const { + size_t hs = std::hash()(key.shaderName); + size_t h0 = std::hash()(key.gws[0]); + size_t h1 = std::hash()(key.gws[1]); + size_t h2 = std::hash()(key.gws[2]); + return hs & h0 & h1 & h2; + } +}; + class VulkanRuntime : public Runtime { public: virtual ~ VulkanRuntime(); @@ -34,6 +63,9 @@ class VulkanRuntime : public Runtime { std::shared_ptr allocUniform(const void* src = nullptr, int size = 0); void recycleUniform(std::shared_ptr buffer); static VulkanRuntime* create(const Backend::Info& info); + virtual std::pair onGetCache() override; + virtual bool onSetCache(const void* buffer, size_t size) override; + private: VulkanRuntime(const Backend::Info& info, std::shared_ptr device, std::shared_ptr instance); Backend::Info mInfo; @@ -53,6 +85,11 @@ class VulkanRuntime : public Runtime { float mFlops = 0.0f; friend class VulkanBackend; GPUType mGpuType = OTHER; + int mGpuMode; +// member variables related to auto tuning +private: + mutable std::unordered_map mTuneMap; + std::vector mTuneBuffer; }; } #endif diff --git a/source/backend/vulkan/runtime/vulkan_wrapper.cpp b/source/backend/vulkan/runtime/vulkan_wrapper.cpp index 1da2353a3..eea42f351 100644 --- a/source/backend/vulkan/runtime/vulkan_wrapper.cpp +++ b/source/backend/vulkan/runtime/vulkan_wrapper.cpp @@ -73,6 +73,8 @@ int InitVulkanOnce(void) { MNN_DLSYM(libvulkan, "vkGetPhysicalDeviceImageFormatProperties")); vkGetPhysicalDeviceProperties = reinterpret_cast(MNN_DLSYM(libvulkan, "vkGetPhysicalDeviceProperties")); + vkGetPhysicalDeviceProperties2 = + reinterpret_cast(MNN_DLSYM(libvulkan, "vkGetPhysicalDeviceProperties2")); vkGetPhysicalDeviceQueueFamilyProperties = reinterpret_cast( MNN_DLSYM(libvulkan, "vkGetPhysicalDeviceQueueFamilyProperties")); vkGetPhysicalDeviceMemoryProperties = reinterpret_cast( @@ -331,6 +333,7 @@ PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; +PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; diff --git a/source/backend/vulkan/schema/VKCache.fbs b/source/backend/vulkan/schema/VKCache.fbs new file mode 100644 index 000000000..28b608126 --- /dev/null +++ b/source/backend/vulkan/schema/VKCache.fbs @@ -0,0 +1,22 @@ +namespace VKCache; + +attribute "priority"; + +table WorkSize { + x: uint; + y: uint; + z: uint; +} + +table TuneInfo { + shaderName: string; + gws: WorkSize; + optimalLws: WorkSize; + optimalCost: float; +} + +table TuneInfoCache { + TuneInfos: [TuneInfo]; +} + +root_type TuneInfoCache; diff --git a/source/backend/vulkan/schema/current/VKCache_generated.h b/source/backend/vulkan/schema/current/VKCache_generated.h new file mode 100644 index 000000000..13baed286 --- /dev/null +++ b/source/backend/vulkan/schema/current/VKCache_generated.h @@ -0,0 +1,430 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_VKCACHE_VKCACHE_H_ +#define FLATBUFFERS_GENERATED_VKCACHE_VKCACHE_H_ + +#include "flatbuffers/flatbuffers.h" + +namespace VKCache { + +struct WorkSize; +struct WorkSizeT; + +struct TuneInfo; +struct TuneInfoT; + +struct TuneInfoCache; +struct TuneInfoCacheT; + +inline const flatbuffers::TypeTable *WorkSizeTypeTable(); + +inline const flatbuffers::TypeTable *TuneInfoTypeTable(); + +inline const flatbuffers::TypeTable *TuneInfoCacheTypeTable(); + +struct WorkSizeT : public flatbuffers::NativeTable { + typedef WorkSize TableType; + uint32_t x; + uint32_t y; + uint32_t z; + WorkSizeT() + : x(0), + y(0), + z(0) { + } +}; + +struct WorkSize FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef WorkSizeT NativeTableType; + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return WorkSizeTypeTable(); + } + uint32_t x() const { + return GetField(4, 0); + } + uint32_t y() const { + return GetField(6, 0); + } + uint32_t z() const { + return GetField(8, 0); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, 4) && + VerifyField(verifier, 6) && + VerifyField(verifier, 8) && + verifier.EndTable(); + } + WorkSizeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(WorkSizeT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const WorkSizeT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct WorkSizeBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_x(uint32_t x) { + fbb_.AddElement(4, x, 0); + } + void add_y(uint32_t y) { + fbb_.AddElement(6, y, 0); + } + void add_z(uint32_t z) { + fbb_.AddElement(8, z, 0); + } + explicit WorkSizeBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + WorkSizeBuilder &operator=(const WorkSizeBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateWorkSize( + flatbuffers::FlatBufferBuilder &_fbb, + uint32_t x = 0, + uint32_t y = 0, + uint32_t z = 0) { + WorkSizeBuilder builder_(_fbb); + builder_.add_z(z); + builder_.add_y(y); + builder_.add_x(x); + return builder_.Finish(); +} + +flatbuffers::Offset CreateWorkSize(flatbuffers::FlatBufferBuilder &_fbb, const WorkSizeT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + +struct TuneInfoT : public flatbuffers::NativeTable { + typedef TuneInfo TableType; + std::string shaderName; + std::unique_ptr gws; + std::unique_ptr optimalLws; + float optimalCost; + TuneInfoT() + : optimalCost(0.0f) { + } +}; + +struct TuneInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TuneInfoT NativeTableType; + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return TuneInfoTypeTable(); + } + const flatbuffers::String *shaderName() const { + return GetPointer(4); + } + const WorkSize *gws() const { + return GetPointer(6); + } + const WorkSize *optimalLws() const { + return GetPointer(8); + } + float optimalCost() const { + return GetField(10, 0.0f); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, 4) && + verifier.VerifyString(shaderName()) && + VerifyOffset(verifier, 6) && + verifier.VerifyTable(gws()) && + VerifyOffset(verifier, 8) && + verifier.VerifyTable(optimalLws()) && + VerifyField(verifier, 10) && + verifier.EndTable(); + } + TuneInfoT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TuneInfoT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct TuneInfoBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_shaderName(flatbuffers::Offset shaderName) { + fbb_.AddOffset(4, shaderName); + } + void add_gws(flatbuffers::Offset gws) { + fbb_.AddOffset(6, gws); + } + void add_optimalLws(flatbuffers::Offset optimalLws) { + fbb_.AddOffset(8, optimalLws); + } + void add_optimalCost(float optimalCost) { + fbb_.AddElement(10, optimalCost, 0.0f); + } + explicit TuneInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + TuneInfoBuilder &operator=(const TuneInfoBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateTuneInfo( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset shaderName = 0, + flatbuffers::Offset gws = 0, + flatbuffers::Offset optimalLws = 0, + float optimalCost = 0.0f) { + TuneInfoBuilder builder_(_fbb); + builder_.add_optimalCost(optimalCost); + builder_.add_optimalLws(optimalLws); + builder_.add_gws(gws); + builder_.add_shaderName(shaderName); + return builder_.Finish(); +} + +flatbuffers::Offset CreateTuneInfo(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + +struct TuneInfoCacheT : public flatbuffers::NativeTable { + typedef TuneInfoCache TableType; + std::vector> TuneInfos; + TuneInfoCacheT() { + } +}; + +struct TuneInfoCache FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TuneInfoCacheT NativeTableType; + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return TuneInfoCacheTypeTable(); + } + const flatbuffers::Vector> *TuneInfos() const { + return GetPointer> *>(4); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, 4) && + verifier.VerifyVector(TuneInfos()) && + verifier.VerifyVectorOfTables(TuneInfos()) && + verifier.EndTable(); + } + TuneInfoCacheT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(TuneInfoCacheT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoCacheT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct TuneInfoCacheBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_TuneInfos(flatbuffers::Offset>> TuneInfos) { + fbb_.AddOffset(4, TuneInfos); + } + explicit TuneInfoCacheBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + TuneInfoCacheBuilder &operator=(const TuneInfoCacheBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateTuneInfoCache( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset>> TuneInfos = 0) { + TuneInfoCacheBuilder builder_(_fbb); + builder_.add_TuneInfos(TuneInfos); + return builder_.Finish(); +} + +flatbuffers::Offset CreateTuneInfoCache(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoCacheT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + +inline WorkSizeT *WorkSize::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = new WorkSizeT(); + UnPackTo(_o, _resolver); + return _o; +} + +inline void WorkSize::UnPackTo(WorkSizeT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = x(); _o->x = _e; }; + { auto _e = y(); _o->y = _e; }; + { auto _e = z(); _o->z = _e; }; +} + +inline flatbuffers::Offset WorkSize::Pack(flatbuffers::FlatBufferBuilder &_fbb, const WorkSizeT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateWorkSize(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateWorkSize(flatbuffers::FlatBufferBuilder &_fbb, const WorkSizeT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WorkSizeT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _x = _o->x; + auto _y = _o->y; + auto _z = _o->z; + return VKCache::CreateWorkSize( + _fbb, + _x, + _y, + _z); +} + +inline TuneInfoT *TuneInfo::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = new TuneInfoT(); + UnPackTo(_o, _resolver); + return _o; +} + +inline void TuneInfo::UnPackTo(TuneInfoT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = shaderName(); if (_e) _o->shaderName = _e->str(); }; + { auto _e = gws(); if (_e) _o->gws = std::unique_ptr(_e->UnPack(_resolver)); }; + { auto _e = optimalLws(); if (_e) _o->optimalLws = std::unique_ptr(_e->UnPack(_resolver)); }; + { auto _e = optimalCost(); _o->optimalCost = _e; }; +} + +inline flatbuffers::Offset TuneInfo::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateTuneInfo(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateTuneInfo(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TuneInfoT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _shaderName = _o->shaderName.empty() ? 0 : _fbb.CreateString(_o->shaderName); + auto _gws = _o->gws ? CreateWorkSize(_fbb, _o->gws.get(), _rehasher) : 0; + auto _optimalLws = _o->optimalLws ? CreateWorkSize(_fbb, _o->optimalLws.get(), _rehasher) : 0; + auto _optimalCost = _o->optimalCost; + return VKCache::CreateTuneInfo( + _fbb, + _shaderName, + _gws, + _optimalLws, + _optimalCost); +} + +inline TuneInfoCacheT *TuneInfoCache::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = new TuneInfoCacheT(); + UnPackTo(_o, _resolver); + return _o; +} + +inline void TuneInfoCache::UnPackTo(TuneInfoCacheT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = TuneInfos(); if (_e) { _o->TuneInfos.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->TuneInfos[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } }; +} + +inline flatbuffers::Offset TuneInfoCache::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoCacheT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateTuneInfoCache(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateTuneInfoCache(flatbuffers::FlatBufferBuilder &_fbb, const TuneInfoCacheT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TuneInfoCacheT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _TuneInfos = _o->TuneInfos.size() ? _fbb.CreateVector> (_o->TuneInfos.size(), [](size_t i, _VectorArgs *__va) { return CreateTuneInfo(*__va->__fbb, __va->__o->TuneInfos[i].get(), __va->__rehasher); }, &_va ) : 0; + return VKCache::CreateTuneInfoCache( + _fbb, + _TuneInfos); +} + +inline const flatbuffers::TypeTable *WorkSizeTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_UINT, 0, -1 }, + { flatbuffers::ET_UINT, 0, -1 }, + { flatbuffers::ET_UINT, 0, -1 } + }; + static const char * const names[] = { + "x", + "y", + "z" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names + }; + return &tt; +} + +inline const flatbuffers::TypeTable *TuneInfoTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_STRING, 0, -1 }, + { flatbuffers::ET_SEQUENCE, 0, 0 }, + { flatbuffers::ET_SEQUENCE, 0, 0 }, + { flatbuffers::ET_FLOAT, 0, -1 } + }; + static const flatbuffers::TypeFunction type_refs[] = { + WorkSizeTypeTable + }; + static const char * const names[] = { + "shaderName", + "gws", + "optimalLws", + "optimalCost" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, names + }; + return &tt; +} + +inline const flatbuffers::TypeTable *TuneInfoCacheTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_SEQUENCE, 1, 0 } + }; + static const flatbuffers::TypeFunction type_refs[] = { + TuneInfoTypeTable + }; + static const char * const names[] = { + "TuneInfos" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names + }; + return &tt; +} + +inline const VKCache::TuneInfoCache *GetTuneInfoCache(const void *buf) { + return flatbuffers::GetRoot(buf); +} + +inline const VKCache::TuneInfoCache *GetSizePrefixedTuneInfoCache(const void *buf) { + return flatbuffers::GetSizePrefixedRoot(buf); +} + +inline bool VerifyTuneInfoCacheBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(nullptr); +} + +inline bool VerifySizePrefixedTuneInfoCacheBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifySizePrefixedBuffer(nullptr); +} + +inline void FinishTuneInfoCacheBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedTuneInfoCacheBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +inline std::unique_ptr UnPackTuneInfoCache( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return std::unique_ptr(GetTuneInfoCache(buf)->UnPack(res)); +} + +} // namespace VKCache + +#endif // FLATBUFFERS_GENERATED_VKCACHE_VKCACHE_H_ diff --git a/source/backend/vulkan/schema/generate.sh b/source/backend/vulkan/schema/generate.sh new file mode 100755 index 000000000..9ec76578a --- /dev/null +++ b/source/backend/vulkan/schema/generate.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# check is flatbuffer installed or not +FLATC=../../../../../3rd_party/flatbuffers/tmp/flatc + +# clean up +echo "*** cleaning up ***" +rm -f current/*.h +[ ! -d current ] && mkdir current + +# flatc all fbs +pushd current > /dev/null +echo "*** generating fbs under $DIR ***" +find ../*.fbs | xargs ${FLATC} -c -b --gen-object-api --reflect-names + +popd > /dev/null + +# finish +echo "*** done ***" diff --git a/source/backend/vulkan/vulkan/vulkan_wrapper.h b/source/backend/vulkan/vulkan/vulkan_wrapper.h index 1a2113437..258ec1e25 100644 --- a/source/backend/vulkan/vulkan/vulkan_wrapper.h +++ b/source/backend/vulkan/vulkan/vulkan_wrapper.h @@ -42,6 +42,7 @@ extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; +extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; diff --git a/source/core/Backend.hpp b/source/core/Backend.hpp index 4a9713b7a..d12604d8f 100644 --- a/source/core/Backend.hpp +++ b/source/core/Backend.hpp @@ -345,6 +345,8 @@ class Runtime : public NonCopyable { void setAsyncWork(std::future&& future); MNN_PUBLIC void waitAsyncWork(); + mutable ErrorCode pCurrentStatus = NO_ERROR; + // TODO: Move to Backend void* pMeta; private: diff --git a/source/core/BufferAllocator.cpp b/source/core/BufferAllocator.cpp index 855f3b20d..17e517a57 100644 --- a/source/core/BufferAllocator.cpp +++ b/source/core/BufferAllocator.cpp @@ -71,6 +71,8 @@ class MmapAllocator : public BufferAllocator::Allocator { std::string mPosfix; int mAllocTimes = 0; bool mRemove; + bool mNewMmap = false; + public: MmapAllocator(const char* dirName, const char* prefix, const char* posfix, bool autoRemove) { if (nullptr != dirName) { @@ -98,7 +100,8 @@ class MmapAllocator : public BufferAllocator::Allocator { } virtual MemChunk onAlloc(size_t size, size_t align) { MNN_ASSERT(size > 0); - std::string fileName = MNNFilePathConcat(mFileName, mPrefix + std::to_string(mAllocTimes) + "." + mPosfix); + std::string name = mPrefix + std::to_string(mAllocTimes) + "." + mPosfix; + std::string fileName = MNNFilePathConcat(mFileName, name); file_t file; if (MNNFileExist(fileName.c_str())) { file = MNNOpenFile(fileName.c_str(), MNN_FILE_READ | MNN_FILE_WRITE); @@ -109,13 +112,14 @@ class MmapAllocator : public BufferAllocator::Allocator { if (NO_ERROR != code) { MNN_ERROR("Set File size %lu error= %d\n", size, code); } + mNewMmap = true; } void* ptr = MNNMmapFile(file, size); mCache.insert(std::make_pair(ptr, std::make_tuple(file, size, fileName))); mAllocTimes++; return MemChunk(ptr, 0); } - virtual void onRelease(MemChunk chunk) { + virtual void onRelease(MemChunk chunk) override { MNN_ASSERT(chunk.second == 0); auto iter = mCache.find(chunk.first); if (iter == mCache.end()) { @@ -131,6 +135,16 @@ class MmapAllocator : public BufferAllocator::Allocator { mCache.erase(iter); mAllocTimes = 0; } + virtual void sync() override { + if (!mRemove && mNewMmap) { + for (auto& iter : mCache) { + MNNMmapSync(iter.first, std::get<1>(iter.second)); + } + std::string cacheName = mPrefix + "sync." + mPosfix; + std::string fileName = MNNFilePathConcat(mFileName, cacheName); + MNNCreateFile(fileName.c_str()); + } + } }; class RecurseAllocator : public BufferAllocator::Allocator { public: @@ -340,6 +354,10 @@ void EagerBufferAllocator::endGroup() { mCurrentFreeList = nullptr; } +void EagerBufferAllocator::sync() { + mAllocator->sync(); +} + std::pair EagerBufferAllocator::getFromFreeList(FREELIST* list, size_t size, bool permiteSplit, size_t align) { #ifdef MNN_DEBUG_MEMORY return std::make_pair(nullptr, 0); diff --git a/source/core/BufferAllocator.hpp b/source/core/BufferAllocator.hpp index bcfdfbffb..3929a14d0 100644 --- a/source/core/BufferAllocator.hpp +++ b/source/core/BufferAllocator.hpp @@ -84,6 +84,7 @@ class MNN_PUBLIC BufferAllocator : public NonCopyable { virtual ~ Allocator() = default; virtual MemChunk onAlloc(size_t size, size_t align) = 0; virtual void onRelease(MemChunk chunk) = 0; + virtual void sync() {}; static std::shared_ptr createDefault(); static std::shared_ptr createMmap(const char* dirName, const char* prefix, const char* posfix, bool autoRemove = true); static std::shared_ptr createRecurse(BufferAllocator* parent); @@ -103,6 +104,7 @@ class MNN_PUBLIC BufferAllocator : public NonCopyable { virtual void reset() {} virtual ErrorCode compute(); virtual ErrorCode apply(); + virtual void sync() {} protected: size_t mTotalSize = 0; }; @@ -163,7 +165,7 @@ class MNN_PUBLIC EagerBufferAllocator : public BufferAllocator { void barrierEnd() override; void beginGroup() override; void endGroup() override; - + void sync() override; private: class Node : public RefCount { public: diff --git a/source/core/ConvolutionCommon.hpp b/source/core/ConvolutionCommon.hpp index eae3d0072..7eca95616 100644 --- a/source/core/ConvolutionCommon.hpp +++ b/source/core/ConvolutionCommon.hpp @@ -57,7 +57,8 @@ class MNN_PUBLIC ConvolutionCommon : public Execution { int32_t srcYStep; int32_t packCUnit; int32_t destICStride; - int32_t ic; + int32_t ic; // ic packed by LP, used by im2col dst data. + int32_t icup4; // ic packed by LP, used by im2col src data. }; }; } // namespace MNN diff --git a/source/core/IDSTEncoder.hpp b/source/core/IDSTEncoder.hpp index 0982e55da..b7798d88b 100644 --- a/source/core/IDSTEncoder.hpp +++ b/source/core/IDSTEncoder.hpp @@ -242,7 +242,11 @@ static void WriteCQBlobs(std::ostream &out, const float* weightData, const float { value = fmax(fmin(round((weight - min) / alpha) + min_value, max_value), min_value); } +#ifdef LINEAR_WEIGHT_SET + *tmp = value + offset; +#else *tmp = mapWeight[value]; +#endif tmp++; } } @@ -258,7 +262,11 @@ static void WriteCQBlobs(std::ostream &out, const float* weightData, const float { value = fmax(fmin(round(weight / alpha), max_value), min_value); } +#ifdef LINEAR_WEIGHT_SET + *tmp = value + offset; +#else *tmp = mapWeight[value]; +#endif tmp++; } } diff --git a/source/core/MNNFileUtils.cpp b/source/core/MNNFileUtils.cpp index 99abb7748..fe3eee87b 100644 --- a/source/core/MNNFileUtils.cpp +++ b/source/core/MNNFileUtils.cpp @@ -47,11 +47,10 @@ bool MNNCreateDir(const char * path) { return false; } #else - if (mkdir(path, 0755) == 0 || errno == EEXIST) { + if (mkdir(path, 0755) == 0) { return true; - } else { - return false; } + return MNNDirExist(path); #endif } @@ -285,7 +284,7 @@ void * MNNMmapFile(file_t file, size_t size) #else void * addr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, file, 0); if (addr == MAP_FAILED) { - MNN_ERROR("MNN: Mmap failed: %s\n", strerror(errno)); + MNN_ERROR("MNN: Mmap failed\n"); return nullptr; } return addr; @@ -305,3 +304,17 @@ ErrorCode MNNUnmapFile(void * addr, size_t size) #endif return NO_ERROR; } + +ErrorCode MNNMmapSync(void * addr, size_t size) +{ +#if defined(WIN32) || defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER) + if (!FlushViewOfFile(addr, 0)) { + return FILE_UNMAP_FAILED; + } +#else + if (-1 == msync(addr, size, MS_SYNC)) { + return FILE_UNMAP_FAILED; + } +#endif + return NO_ERROR; +} diff --git a/source/core/MNNFileUtils.h b/source/core/MNNFileUtils.h index cd2267897..3e5beed1f 100644 --- a/source/core/MNNFileUtils.h +++ b/source/core/MNNFileUtils.h @@ -187,4 +187,15 @@ MNN_PUBLIC void * MNNMmapFile(file_t file, size_t size); */ MNN_PUBLIC ErrorCode MNNUnmapFile(void * addr, size_t size); +/*============================================================================================= +** @brief Sync mmap memory to disk. +** @param addr -- start address of the mapped space +** size -- mapped length +** @return If succeeded, returns NO_ERROR +** If failed, returns FAILED +** @warning Make sure that this space was mapped by the MNNMmapFile() before +** and the size is correct +*/ +MNN_PUBLIC ErrorCode MNNMmapSync(void * addr, size_t size); + #endif // MNN_FileUtils_H diff --git a/source/core/Pipeline.cpp b/source/core/Pipeline.cpp index 12807a42f..722f7ca14 100644 --- a/source/core/Pipeline.cpp +++ b/source/core/Pipeline.cpp @@ -273,7 +273,7 @@ ErrorCode Pipeline::encode(bool supportDebug, bool permitCodegen) { mContext.mNeedRelease = mGeometryNeedRelease; FileLoader l(mExternalFile.c_str()); /** Size Compute and compute Const Begin */ - auto res = GeometryComputerUtils::shapeComputeAndGeometryTransform(&l, mInfo.second, mContext, mInfo.first.cache.second, mUseGeometry, false, permitCodegen); + auto res = GeometryComputerUtils::shapeComputeAndGeometryTransform(mCpuRuntime, &l, mInfo.second, mContext, mInfo.first.cache.second, mUseGeometry, false, permitCodegen); if (res != NO_ERROR) { return res; } @@ -1182,9 +1182,12 @@ void Pipeline::_copyInputs() { } ErrorCode Pipeline::execute() { _copyInputs(); + auto enterCode = _enterExecute(); + if (NO_ERROR != enterCode) { + return enterCode; + } auto& mBackend = mInfo.first.cache.first; auto& mBackupBackend = mInfo.first.cache.second; - mBackend->onExecuteBegin(); for (auto& info : mInfo.second) { if (info.type == Schedule::CONSTANT) { continue; @@ -1214,20 +1217,42 @@ ErrorCode Pipeline::execute() { #endif auto code = cmd.execution->onExecute(cmd.workInputs, cmd.workOutputs); if (NO_ERROR != code) { - mBackend->onExecuteEnd(); + _exitExecute(); return code; } } } - mBackend->onExecuteEnd(); + _exitExecute(); return NO_ERROR; } +ErrorCode Pipeline::_enterExecute() { + auto& mBackend = mInfo.first.cache.first; + auto& mBackupBackend = mInfo.first.cache.second; + mBackend->onExecuteBegin(); + mBackupBackend->onExecuteBegin(); + if (mRuntime->pCurrentStatus != NO_ERROR) { + return mRuntime->pCurrentStatus; + } + if (mCpuRuntime->pCurrentStatus != NO_ERROR) { + return mCpuRuntime->pCurrentStatus; + } + return NO_ERROR; +} +void Pipeline::_exitExecute() { + auto& mBackend = mInfo.first.cache.first; + auto& mBackupBackend = mInfo.first.cache.second; + mBackupBackend->onExecuteEnd(); + mBackend->onExecuteEnd(); +} ErrorCode Pipeline::executeCallBack(const TensorCallBackWithInfo& before, const TensorCallBackWithInfo& after) { _copyInputs(); + auto enterCode = _enterExecute(); + if (NO_ERROR != enterCode) { + return enterCode; + } auto& mBackend = mInfo.first.cache.first; auto& mBackupBackend = mInfo.first.cache.second; - mBackend->onExecuteBegin(); for (auto& info : mInfo.second) { if (info.type == Schedule::CONSTANT) { continue; @@ -1239,7 +1264,7 @@ ErrorCode Pipeline::executeCallBack(const TensorCallBackWithInfo& before, const if (nullptr == cmd.info.get()) { auto code = cmd.execution->onExecute(cmd.workInputs, cmd.workOutputs); if (NO_ERROR != code) { - mBackend->onExecuteEnd(); + _exitExecute(); return code; } continue; @@ -1248,18 +1273,18 @@ ErrorCode Pipeline::executeCallBack(const TensorCallBackWithInfo& before, const if (run) { auto code = cmd.execution->onExecute(cmd.workInputs, cmd.workOutputs); if (NO_ERROR != code) { - mBackend->onExecuteEnd(); + _exitExecute(); return code; } } auto stop = !(after(cmd.workOutputs, cmd.info.get())); if (stop) { - mBackend->onExecuteEnd(); + _exitExecute(); return CALL_BACK_STOP; } } } - mBackend->onExecuteEnd(); + _exitExecute(); return NO_ERROR; } diff --git a/source/core/Pipeline.hpp b/source/core/Pipeline.hpp index c3611fe59..ec342db9a 100644 --- a/source/core/Pipeline.hpp +++ b/source/core/Pipeline.hpp @@ -65,6 +65,8 @@ class Pipeline : public NonCopyable { typedef std::map, std::pair, std::shared_ptr>> WrapTensorCache; private: ErrorCode _allocForTensor(int index, bool allocInput); + ErrorCode _enterExecute(); + void _exitExecute(); void _copyInputs(); void _pushTuningTask(std::vector&& initInfos); void _recycleDynamicMemory(Command* command); diff --git a/source/core/Session.cpp b/source/core/Session.cpp index 3c5cb64e1..ac883ea02 100644 --- a/source/core/Session.cpp +++ b/source/core/Session.cpp @@ -99,10 +99,13 @@ void Session::ModeGroup::setHint(Interpreter::HintMode mode, int hint) { break; case Interpreter::OP_ENCODER_NUMBER_FOR_COMMIT: runtimeHint.encorderNumForCommit = hint; + break; case Interpreter::MMAP_FILE_SIZE: runtimeHint.mmapFileSize = hint; + break; case Interpreter::USE_CACHED_MMAP: runtimeHint.useCachedMmap = hint; + break; default: break; } diff --git a/source/geometry/GeometryComputerUtils.cpp b/source/geometry/GeometryComputerUtils.cpp index f2aae2a6d..0a72920b6 100644 --- a/source/geometry/GeometryComputerUtils.cpp +++ b/source/geometry/GeometryComputerUtils.cpp @@ -140,6 +140,7 @@ int GeometryComputerUtils::buildConstantTensors(std::vector& infos, GeometryComputer::Context& geoContext, @@ -321,6 +322,9 @@ ErrorCode GeometryComputerUtils::shapeComputeAndGeometryTransform( info.computeCache.needExecuteConst = dirty; if (dirty) { backupBackend->onExecuteBegin(); + if (cpuRuntime->pCurrentStatus != NO_ERROR) { + return cpuRuntime->pCurrentStatus; + } auto code = cp->execution->onExecute(c.inputs, c.outputs); if (NO_ERROR != code) { return NOT_SUPPORT; diff --git a/source/geometry/GeometryComputerUtils.hpp b/source/geometry/GeometryComputerUtils.hpp index 4da7210ae..c0dffdcdb 100644 --- a/source/geometry/GeometryComputerUtils.hpp +++ b/source/geometry/GeometryComputerUtils.hpp @@ -28,7 +28,8 @@ class GeometryComputerUtils { static Tensor::InsideDescribe::Region makeRawAddressRef(Tensor* src, int srcOffset, int size, int dstOffset = 0); static void makeRawAddressRef(Tensor* dst, Tensor* src, int srcOffset, int size, int dstOffset = 0); MNN_PUBLIC static int buildConstantTensors(std::vector& infos); - MNN_PUBLIC static ErrorCode shapeComputeAndGeometryTransform(FileLoader* external, std::vector& infos, + // TODO: Remove cpuRuntime parameter in future + MNN_PUBLIC static ErrorCode shapeComputeAndGeometryTransform(const Runtime* cpuRuntime, FileLoader* external, std::vector& infos, GeometryComputer::Context& geoContext, std::shared_ptr backupBackend, Runtime::CompilerType compileType, bool skipShapeCompute = false, bool permitCodegen = false); diff --git a/source/geometry/GeometryConv2D.cpp b/source/geometry/GeometryConv2D.cpp index 74c63d022..81317bdeb 100644 --- a/source/geometry/GeometryConv2D.cpp +++ b/source/geometry/GeometryConv2D.cpp @@ -191,15 +191,25 @@ class GeometryIm2Col : public GeometryConv2D { auto sh = common->strideY(); auto dw = common->dilateX(); auto dh = common->dilateY(); - auto pw = common->padX(); - auto ph = common->padY(); + int pl,pt,pr,pb; + if (common->pads() == nullptr) { + pl = common->padX(); + pr = common->padX(); + pt = common->padY(); + pb = common->padY(); + } else { + pl = common->pads()->data()[1]; + pr = common->pads()->data()[3]; + pt = common->pads()->data()[0]; + pb = common->pads()->data()[2]; + } auto batch = input->batch(); auto ic = input->channel(); auto iw = input->width(); auto ih = input->height(); - auto pads = std::make_pair(pw, ph); - auto ow = (iw + pw * 2 - kw) / sw + 1; - auto oh = (ih + ph * 2 - kh) / sh + 1; + auto pads = std::make_pair(pl, pt); + auto ow = (iw + pl + pr - kw) / sw + 1; + auto oh = (ih + pt + pb - kh) / sh + 1; auto tmpT = GeometryConvUtils::im2Col(output, input, ic, kh, kw, batch, oh, ow, ih, iw, sh, sw, dh, dw, pads); if (nullptr != tmpT) { res.extras.emplace_back(tmpT); diff --git a/source/geometry/GeometryConvUtils.cpp b/source/geometry/GeometryConvUtils.cpp index 21670bd24..cbd7b1984 100644 --- a/source/geometry/GeometryConvUtils.cpp +++ b/source/geometry/GeometryConvUtils.cpp @@ -6,6 +6,8 @@ // Copyright © 2018, Alibaba Group Holding Limited // +//#define MNN_OPEN_TIME_TRACE +#include #include "GeometryConvUtils.hpp" #include "ConvertUtils.hpp" @@ -40,6 +42,7 @@ flatbuffers::Offset GeometryConvUtils::makeRelu6(flatbuffers::FlatBufferBuil } void GeometryConvUtils::im2Col3d(Tensor* im2Col, Tensor* input, int ic, int kd, int kh, int kw, int batch, int od, int oh, int ow, int id, int ih, int iw, int sd, int sh, int sw, int dd, int dh, int dw, int pd, int ph, int pw, int srcKernelOffset) { + AUTOTIME; im2Col->buffer().type = halide_type_of(); im2Col->buffer().dimensions = 2; im2Col->setLength(0, ic * kd * kh * kw); @@ -49,6 +52,24 @@ void GeometryConvUtils::im2Col3d(Tensor* im2Col, Tensor* input, int ic, int kd, des->memoryType = Tensor::InsideDescribe::MEMORY_VIRTUAL; des->dimensionFormat = MNN_DATA_FORMAT_NCHW; des->regions.clear(); + if (id == kd && ih == kh && iw == kw & pd == 0 && ph == 0 && pw == 0 && dd == 1 && dh == 1 && dw == 1) { + // fast impl: n, ic, id, ih, iw -> ic*id*ih*iw, n + Tensor::InsideDescribe::Region region; + region.origin = input; + region.size[0] = 1; + region.size[1] = ic * id * ih * iw; + region.size[2] = batch; + region.src.offset = 0; + region.dst.offset = 0; + region.src.stride[0] = 1; + region.dst.stride[0] = 1; + region.src.stride[1] = 1; + region.dst.stride[1] = batch; + region.src.stride[2] = ic * id * ih * iw; + region.dst.stride[2] = 1; + des->regions.emplace_back(std::move(region)); + return; + } des->regions.reserve(batch * ic * kd * kh * kw); for (int c = 0; c < ic; ++c) { for (int n = 0; n < batch; ++n) { diff --git a/source/geometry/GeometryELU.cpp b/source/geometry/GeometryELU.cpp index 865d3a8fe..21f7efbe4 100644 --- a/source/geometry/GeometryELU.cpp +++ b/source/geometry/GeometryELU.cpp @@ -41,8 +41,7 @@ class GeometryELU : public GeometryComputer { if (op->type() == OpType_ELU) { alpha = op->main_as_ELU()->alpha(); } else if (op->type() == OpType_Selu){ - alpha = op->main_as_Selu()->alpha() * - op->main_as_Selu()->scale(); + alpha = op->main_as_Selu()->scale() * op->main_as_Selu()->alpha(); } alphaConst->host()[0] = alpha; initTensor(mulValue, input); diff --git a/source/shape/ShapeAttention.cpp b/source/shape/ShapeAttention.cpp index 9b59c1b38..50f26f9e7 100644 --- a/source/shape/ShapeAttention.cpp +++ b/source/shape/ShapeAttention.cpp @@ -71,6 +71,16 @@ class AttentionSizeComputer : public SizeComputer { TensorUtils::getDescribe(output)->dimensionFormat = TensorUtils::getDescribe(input)->dimensionFormat; return true; } + virtual float onComputeFlops(const MNN::Op* op, const std::vector& inputs, const std::vector& outputs) const override { + auto seqLen = outputs[0]->length(1); + auto headDim = outputs[0]->length(2); + float flops = 0.f; + // qk + qkv + flops += (2 * seqLen * headDim * seqLen); + // softmax + flops += (seqLen * seqLen); + return flops; + } }; diff --git a/source/shape/ShapeConvolution3D.cpp b/source/shape/ShapeConvolution3D.cpp index 9ca39ac30..846a7e880 100644 --- a/source/shape/ShapeConvolution3D.cpp +++ b/source/shape/ShapeConvolution3D.cpp @@ -38,9 +38,13 @@ class Convolution3DSizeComputer : public SizeComputer { if (layer->padMode() == PadMode_SAME) { outputLength = UP_DIV(inputLength, stride); } else { - const int pad = (*layer->pads())[i], kernel = (*layer->kernels())[i], dialate = (*layer->dilates())[i]; + const int padl = layer->pads()->data()[i], kernel = layer->kernels()->data()[i], dialate = layer->dilates()->data()[i]; + int padr = padl; + if (layer->pads()->size() == 6) { + padr = layer->pads()->data()[i+3]; + } const int dialatedKernel = (kernel - 1) * dialate + 1; - outputLength = (inputLength + 2 * pad - dialatedKernel) / stride + 1; + outputLength = (inputLength + padl + padr - dialatedKernel) / stride + 1; } outputBuffer.dim[i + 2].extent = outputLength; } diff --git a/test.sh b/test.sh index 168f06c40..a6da38163 100755 --- a/test.sh +++ b/test.sh @@ -619,6 +619,26 @@ android_unit_test_low_memory_armv8() { echo '### Android 64位Low Memory 权重反量化, precision=2 单元测试失败,测试终止!' failed fi + adb shell "cd /data/local/tmp/MNN&&export LD_LIBRARY_PATH=.&&./run_test.out op/convolution/weighti8i4conv2d 0 2 4 $1 2 1" + if [ $? -ne 0 ]; then + echo '### Android 64位Low Memory 设置dynamicOption=1, precision=2 4线程测试失败,测试终止!' + failed + fi + adb shell "cd /data/local/tmp/MNN&&export LD_LIBRARY_PATH=.&&./run_test.out op/convolution/weighti8i4conv2d 0 1 4 $1 2 1" + if [ $? -ne 0 ]; then + echo '### Android 64位Low Memory 设置dynamicOption=1, precision=1 4线程测试失败,测试终止!' + failed + fi + adb shell "cd /data/local/tmp/MNN&&export LD_LIBRARY_PATH=.&&./run_test.out op/convolution/weighti8i4conv2d 0 2 4 $1 2 2" + if [ $? -ne 0 ]; then + echo '### Android 64位Low Memory 设置dynamicOption=2, precision=2 4线程测试失败,测试终止!' + failed + fi + adb shell "cd /data/local/tmp/MNN&&export LD_LIBRARY_PATH=.&&./run_test.out op/convolution/weighti8i4conv2d 0 1 4 $1 2 2" + if [ $? -ne 0 ]; then + echo '### Android 64位Low Memory 设置dynamicOption=2, precision=1 4线程测试失败,测试终止!' + failed + fi } android_unit_test_low_memory_armv7() { diff --git a/test/MNNTestSuite.h b/test/MNNTestSuite.h index f961ec7cb..fa05d837e 100644 --- a/test/MNNTestSuite.h +++ b/test/MNNTestSuite.h @@ -29,24 +29,6 @@ #include #endif -static inline uint64_t getTimeInUs() { - uint64_t time; -#if defined(_MSC_VER) - LARGE_INTEGER now, freq; - QueryPerformanceCounter(&now); - QueryPerformanceFrequency(&freq); - uint64_t sec = now.QuadPart / freq.QuadPart; - uint64_t usec = (now.QuadPart % freq.QuadPart) * 1000000 / freq.QuadPart; - time = sec * 1000000 + usec; -#else - struct timeval tv; - gettimeofday(&tv, nullptr); - time = static_cast(tv.tv_sec) * 1000000 + tv.tv_usec; -#endif - return time; -} - - /** test case */ class MNNTestCase { friend class MNNTestSuite; diff --git a/test/TestUtils.h b/test/TestUtils.h index ac14eb732..e323da72a 100644 --- a/test/TestUtils.h +++ b/test/TestUtils.h @@ -106,7 +106,7 @@ MNNForwardType getCurrentType(); using ConvertFP32 = float(*)(float fp32Value); -const static ConvertFP32 FP32Converter[MNN::BackendConfig::Precision_Low + 2] = { +const static std::vector FP32Converter = { keepFP32Precision, keepFP32Precision, #ifdef MNN_SUPPORT_BF16 diff --git a/test/expr/MMapTest.cpp b/test/expr/MMapTest.cpp new file mode 100644 index 000000000..18d0be0a1 --- /dev/null +++ b/test/expr/MMapTest.cpp @@ -0,0 +1,58 @@ +// +// MMapTest.cpp +// MNNTests +// +// Created by MNN on 2025/01/14. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#include +#include +#include "core/MNNFileUtils.h" +#include "MNNTestSuite.h" +#include "TestUtils.h" +#include "MNN_generated.h" + +using namespace MNN::Express; + +class MMapTest : public MNNTestCase { +public: + virtual bool run(int precision) { + if (MNN_FORWARD_CPU != getCurrentType()) { + MNN_ERROR("Currently don't test not cpu mmap\n"); + return true; + } + auto x = _Input({1, 3, 224, 224}, NC4HW4, halide_type_of()); + x->setName("x"); + auto y = _Conv(1.0f, 0.01f, x, {3, 16}, {5, 5}); + y->setName("y"); + auto buffer = MNN::Express::Variable::save({y}); + ScheduleConfig config; + config.type = getCurrentType(); + std::shared_ptr rtm( Executor::RuntimeManager::createRuntimeManager(config)); + rtm->setExternalPath("tmp", MNN::Interpreter::EXTERNAL_WEIGHT_DIR); + Module::Config mconfig; + mconfig.rearrange = true; + std::shared_ptr m(Module::load({"x"}, {"y"}, (const unsigned char*)buffer.data(), buffer.size(), rtm, &mconfig), Module::destroy); + + // forward_type, precision_type, memory_type, power_type + auto pStatus = MNNTestSuite::get()->pStaus; + // The same as CPUBackend + std::string prefix = "0_0_0_0_"; + prefix[2] += pStatus.precision; + prefix[4] += pStatus.memory; + prefix[6] += pStatus.power; + std::string fileName = MNNFilePathConcat("tmp", prefix + "0.static"); + if (!MNNFileExist(fileName.c_str())) { + FUNC_PRINT(1); + return false; + } + m.reset(); + if (MNNFileExist(fileName.c_str())) { + FUNC_PRINT(1); + return false; + } + return true; + } +}; +MNNTestSuiteRegister(MMapTest, "expr/mmaptest"); diff --git a/test/expr/ModuleTest.cpp b/test/expr/ModuleTest.cpp index 60d25f010..5c2953ed3 100644 --- a/test/expr/ModuleTest.cpp +++ b/test/expr/ModuleTest.cpp @@ -10,6 +10,7 @@ #include #include #include "MNNTestSuite.h" +#include "TestUtils.h" #include "core/Backend.hpp" #include "RuntimeAttr.hpp" #include @@ -1206,7 +1207,41 @@ class SequenceMemoryTest : public MNNTestCase { } return _run(precision, true); } - virtual bool _run(int precision, bool shapeMultable) { + bool _checkResult(std::shared_ptr basic, int precision, bool shapeMultable) { + std::shared_ptr m0(Module::clone(basic.get()), Module::destroy); + std::shared_ptr m1(Module::clone(basic.get()), Module::destroy); + + auto x = _Input({1, 3, 32, 32}, NCHW, halide_type_of()); + auto ptr = x->writeMap(); + for (int i=0; igetInfo()->size; ++i) { + ptr[i] = i * 0.0001f; + } + x->unMap(); + x = x + _Scalar(0.001f); + auto firstResult = m0->onForward({x})[0]->readMap()[0]; + auto y = _Input({1, 3, 33, 33}, NCHW, halide_type_of()); + y->writeMap(); + y->unMap(); + m0->onForward({y}); + auto z = _Input({1, 3, 34, 34}, NCHW, halide_type_of()); + z->writeMap(); + z->unMap(); + m1->onForward({z}); + x = _Input({1, 3, 32, 32}, NCHW, halide_type_of()); + ptr = x->writeMap(); + for (int i=0; igetInfo()->size; ++i) { + ptr[i] = i * 0.0001f; + } + x->unMap(); + x = x + _Scalar(0.001f); + auto secondResult = m0->onForward({x})[0]->readMap()[0]; + if (fabsf(firstResult - secondResult) >= 1e-6) { + return false; + } + return true; + } + + bool _run(int precision, bool shapeMultable) { BackendConfig bnConfig; auto exe = Executor::newExecutor(MNN_FORWARD_CPU, bnConfig, 1); ExecutorScope scope(exe); @@ -1280,6 +1315,8 @@ class SequenceMemoryTest : public MNNTestCase { if (!res) { return false; } + m1.reset(); + _checkResult(m0, precision, shapeMultable); return true; } }; @@ -1384,3 +1421,110 @@ class ExecutorResetLoadModuleTest : public MNNTestCase { } }; MNNTestSuiteRegister(ExecutorResetLoadModuleTest, "expr/ExecutorResetLoadModuleTest"); + +class SequenceForwardResizeTest : public MNNTestCase { +public: + virtual bool run(int precision) { + // Make Model include convolution in shape compute and content compute + auto x = _Input({1, 3, 24, 24}, NCHW, halide_type_of()); + x->setName("x"); + auto y = _Square(x); + auto z = _Erf(y); + z = _Sqrt(z); + z->setName("z"); + auto buffer = Variable::save({z}); + ScheduleConfig config; + config.type = getCurrentType(); + std::shared_ptr rtm0( Executor::RuntimeManager::createRuntimeManager(config)); + std::shared_ptr rtm1( Executor::RuntimeManager::createRuntimeManager(config)); + + Module::Config mconfig; + mconfig.rearrange = false; + std::shared_ptr m0(Module::load({"x"}, {"z"}, (const unsigned char*)buffer.data(), buffer.size(), rtm0, &mconfig), Module::destroy); + std::shared_ptr m1(Module::load({"x"}, {"z"}, (const unsigned char*)buffer.data(), buffer.size(), rtm1, &mconfig), Module::destroy); + x = _Input({1, 3, 24, 24}, NCHW, halide_type_of()); + auto xPtr = x->writeMap(); + ::memset(xPtr, 0, x->getInfo()->size * sizeof(float)); + x->unMap(); + y = m0->onForward({x})[0]; + z = m1->onForward({y})[0]; + int status0 = 0; + int status1 = 0; + rtm0->getInfo(MNN::Interpreter::RESIZE_STATUS, &status0); + rtm1->getInfo(MNN::Interpreter::RESIZE_STATUS, &status1); + if (status0 != 2 || status1 != 2) { + FUNC_PRINT(1); + return false; + } + const_cast(z->getTensor())->wait(MNN::Tensor::MAP_TENSOR_READ, true); + y = m0->onForward({x})[0]; + z = m1->onForward({y})[0]; + rtm0->getInfo(MNN::Interpreter::RESIZE_STATUS, &status0); + rtm1->getInfo(MNN::Interpreter::RESIZE_STATUS, &status1); + if (status0 != 1 || status1 != 1) { + FUNC_PRINT(1); + return false; + } + y = nullptr; + z = nullptr; + y = m0->onForward({x})[0]; + z = m1->onForward({y})[0]; + rtm0->getInfo(MNN::Interpreter::RESIZE_STATUS, &status0); + rtm1->getInfo(MNN::Interpreter::RESIZE_STATUS, &status1); + if (status0 != 0 || status1 != 0) { + FUNC_PRINT(1); + return false; + } + x = _Input({1, 3, 12, 12}, NCHW, halide_type_of()); + y = m0->onForward({x})[0]; + rtm0->getInfo(MNN::Interpreter::RESIZE_STATUS, &status0); + if (2 != status0) { + FUNC_PRINT(1); + return false; + } + BackendConfig originConfig; + auto exe = Executor::newExecutor(MNN_FORWARD_CPU, originConfig, 1); + { + ExecutorScope _s(exe); + std::shared_ptr m2(Module::clone(m0.get())); + auto rtm2 = m2->getInfo()->runTimeManager; + if (rtm2 == rtm0) { + FUNC_PRINT(1); + return false; + } + int status2 = 0; + rtm2->getInfo(MNN::Interpreter::RESIZE_STATUS, &status2); + if (0 != status2) { + FUNC_PRINT(1); + return false; + } + auto x2 = _Input({1, 3, 24, 24}, NCHW, halide_type_of()); + auto xPtr = x2->writeMap(); + ::memset(xPtr, 0, x2->getInfo()->size * sizeof(float)); + x2->unMap(); + auto y2 = m2->onForward({x})[0]; + + rtm2->getInfo(MNN::Interpreter::RESIZE_STATUS, &status2); + if (2 != status2) { + FUNC_PRINT(1); + return false; + } + } + x = nullptr; + y = nullptr; + z = nullptr; + x = _Input({1, 3, 12, 12}, NCHW, halide_type_of()); + x->writeMap(); + m0->onForward({x}); + m1->onForward({x}); + x = _Input({1, 3, 36, 36}, NCHW, halide_type_of()); + x->writeMap(); + m0->onForward({x}); + x = _Input({1, 3, 12, 12}, NCHW, halide_type_of()); + x->writeMap(); + m1->onForward({x}); + + return true; + } +}; +MNNTestSuiteRegister(SequenceForwardResizeTest, "expr/SequenceForwardResizeTest"); diff --git a/test/model/MobileNetTest.cpp b/test/model/MobileNetTest.cpp index e5bd5028b..158c89ae2 100644 --- a/test/model/MobileNetTest.cpp +++ b/test/model/MobileNetTest.cpp @@ -11,6 +11,7 @@ #endif #include +#include #include #include "MNNTestSuite.h" #include "TestUtils.h" @@ -109,13 +110,12 @@ class MobileNetTest : public MNNTestCase { std::shared_ptr hostTensor(MNN::Tensor::createHostTensorFromDevice(outputTensor, false)); for(int i=0; i<20; i++)//warmm up { - auto timeBegin = getTimeInUs(); + MNN::Timer _t; inputTensor->copyFromHostTensor(input.get()); net->runSession(session); outputTensor->copyToHostTensor(hostTensor.get()); - auto timeEnd = getTimeInUs(); - printf("run cost %f ms\n", ((timeEnd - timeBegin) / 1000.0)); + printf("run cost %f ms\n", ((_t.durationInUs()) / 1000.0)); } float tolerance = backend == MNN_FORWARD_CPU ? 0.04 : 0.1; diff --git a/test/op/ConvertTest.cpp b/test/op/ConvertTest.cpp index af03f8d61..01c1b55a3 100644 --- a/test/op/ConvertTest.cpp +++ b/test/op/ConvertTest.cpp @@ -29,6 +29,7 @@ class ConvertTest : public MNNTestCase { { auto gotOutput = output->readMap(); if (!checkVector(gotOutput, expectedOutput.data(), 16, 0.01)) { + FUNC_PRINT(1); MNN_ERROR("ConvertTest test failed!\n"); for (int i = 0; i < 16; ++i) { MNN_PRINT("Correct: %f - Compute: %f\n", expectedOutput[i], gotOutput[i]); @@ -40,6 +41,7 @@ class ConvertTest : public MNNTestCase { { auto gotOutput = output->readMap(); if (!checkVector(gotOutput, inpudata, 12, 0.01)) { + FUNC_PRINT(1); MNN_ERROR("ConvertTest test failed!\n"); for (int i = 0; i < 12; ++i) { MNN_PRINT("Correct: %f - Compute: %f\n", inpudata[i], gotOutput[i]); diff --git a/test/op/ConvolutionTest.cpp b/test/op/ConvolutionTest.cpp index 134dd19fe..2e6d640cb 100644 --- a/test/op/ConvolutionTest.cpp +++ b/test/op/ConvolutionTest.cpp @@ -574,14 +574,17 @@ class ConvolutionInt8CommonTest : public ConvolutionCommonTest { auto minValue = minMax.first; wScale[2*k] = minMax.first; auto absMax = minMax.second - minMax.first; - wScale[2*k+1] = absMax / (threshold - clampMin); - float scale = 0.0f; + wScale[2*k+1] = 1; + + float quantscale = 1.0f; if (absMax >= 0.000001f) { - scale = 1.0f / wScale[2*k+1]; + wScale[2 * k + 1] = absMax / (threshold - clampMin); + quantscale = 1.0f / wScale[2*k+1]; + } float* ptr = weightData.data() + beginIndex; for (int i = 0; i < kernel_size; ++i) { - int8_t quantValue = int8_t(std::round((ptr[i] - minValue) * scale + clampMin)); + int8_t quantValue = int8_t(std::round((ptr[i] - minValue) * quantscale + clampMin)); float floatValue = ((float)quantValue - clampMin) * wScale[2*k+1] + minValue; quantWeight[k * kernel_size + i] = quantValue; ptr[i] = floatValue; @@ -602,8 +605,7 @@ class ConvolutionInt8CommonTest : public ConvolutionCommonTest { } } } - reference_conv2d(inputData, weightData, biasData, outputData, outputDataSeparateBias, batch, ic, oc, ih, iw, mode, pad_h, pad_w, kh, kw, - stride, dilation, group, FP32Converter[precision]); + reference_conv2d(inputData, weightData, biasData, outputData, outputDataSeparateBias, batch, ic, oc, ih, iw, mode, pad_h, pad_w, kh, kw, stride, dilation, group, FP32Converter[precision]); if (outputData.size() == 0) { return true; } @@ -616,7 +618,8 @@ class ConvolutionInt8CommonTest : public ConvolutionCommonTest { if (nbit == 4 && weightLength > 10000) { errorScale = 50.0f; } - if (precision > MNN::BackendConfig::Precision_High) { + int memory = MNNTestSuite::get()->pStaus.memory; + if (precision > MNN::BackendConfig::Precision_High || memory > MNN::BackendConfig::Memory_High) { errorScale = 100.0f; } std::vector> activations = { @@ -646,15 +649,18 @@ class ConvolutionInt8CommonTest : public ConvolutionCommonTest { } // difference below 0.5% relative error is considered correct. + output = _Convert(output, NCHW); auto outputPtr = output->readMap(); // when using low precision, im2col or strassen convolution error rate to reference value is about 1e-4, winograd has larger error rate. if (!checkVectorByRelativeError(outputPtr, toutputData.data(), toutputData.data(), toutputData.size(), 0.001 * errorScale)) { - MNN_PRINT("precision:%d, expect:\t expect2:\t real:\t\n", precision); + MNN_PRINT("precision:%d, memory:%d\n", precision, memory); + MNN_PRINT("expect:\t real:\t\n"); for (int i = 0; i < toutputData.size(); ++i) { - MNN_PRINT("%f\t, %f\n", toutputData[i], outputPtr[i]); + MNN_PRINT("%f, %f\n", toutputData[i], outputPtr[i]); } + MNN_PRINT("output shape: n=%d c=%d h=%d w=%d\n", output->getInfo()->dim[0], output->getInfo()->dim[1], output->getInfo()->dim[2], output->getInfo()->dim[3]); MNN_ERROR("%s(%s) test failed for %d bits, async=%d , relu: %d, relu6: %d!\n", test_op_name.c_str(), device_name.c_str(), nbit, async, activation.first, activation.second); return false; } @@ -725,10 +731,10 @@ class ConvolutionTest : public ConvolutionType { int icStep = 1; int isStep = 3; std::vector ocSize = { - 1, 3, 10, 17 + 1, 4, 3, 10, 17 }; std::vector icSize = { - 4, 1, 3, 8, 11 + 1, 4, 3, 8, 11 }; std::vector isSize = { 1, 7, 9 @@ -747,9 +753,7 @@ class ConvolutionTest : public ConvolutionType { for (int s = 1; s <= 2; s++) { for (auto block : blocks) { for (int p = 0; p <= 1; p++) { - bool succ = - ConvolutionType().test(type, device_name, "Conv2D", b, ic, oc, is, - is, PadMode_CAFFE, p, p, kh, kw, s, d, 1, precision, sparseAlgo, block, false); + bool succ = ConvolutionType().test(type, device_name, "Conv2D", b, ic, oc, is, is, PadMode_CAFFE, p, p, kh, kw, s, d, 1, precision, sparseAlgo, block, false); if (!succ) { MNN_ERROR( "Error for conv b=%d, oc=%d, ic=%d, ih=%d, " diff --git a/test/op/TopKV2Test.cpp b/test/op/TopKV2Test.cpp index 054d1baef..b1fbb19de 100644 --- a/test/op/TopKV2Test.cpp +++ b/test/op/TopKV2Test.cpp @@ -6,6 +6,7 @@ // Copyright © 2018, Alibaba Group Holding Limited // +#include #include #include #include "MNNTestSuite.h" @@ -178,16 +179,15 @@ class TopKV2Test : public MNNTestCase { VARP input1 = _Input({1}, NCHW, halide_type_of()); RandomInitFloat(input0->writeMap(), numRow * lengthRow); SetK(input1->writeMap(), K); + MNN::Timer _t; - auto timeStart = getTimeInUs(); // calculate gotOutput auto res = _TopKV2(input0, input1); VARP output0 = res[0]; VARP output1 = res[1]; auto gotOutput0 = output0->readMap(); auto gotOutput1 = output1->readMap(); - auto timeEnd = getTimeInUs(); - auto timeCost = timeEnd - timeStart; + auto timeCost = _t.durationInUs(); // calculate expectedOutput std::vector expectedOutput0(numRow * K); diff --git a/test/speed/HybridConvSpeedTest.cpp b/test/speed/HybridConvSpeedTest.cpp index c17ecfebe..46c9da9f9 100644 --- a/test/speed/HybridConvSpeedTest.cpp +++ b/test/speed/HybridConvSpeedTest.cpp @@ -34,13 +34,14 @@ class HybridConvSpeedTestCommon : public MNNTestCase { float threshold = (float)(1 << (nbit - 1)) - 1.0f; float clampMin = -threshold; - VARP x = _Input({batch, ic, ih, iw}, NC4HW4, halide_type_of()); + VARP x = _Input({batch, ic, ih, iw}, NCHW, halide_type_of()); auto xInfo = x->getInfo(); auto xPtr = x->writeMap(); int8_t xMin = -(1<<(nbit-1))+1, xMax = (1<<(nbit-1))-1; for (int i=0; isize; ++i) { - xPtr[i] = (i % (xMax - xMin + 1)) * 0.27; + xPtr[i] = (i % (xMax - xMin + 1) - (xMax / 2)) * 0.27; } + x = _Convert(x, NC4HW4); for (int i = 0; i < oc; ++i) { bias[i] = i % 10 + 0.005; for (int j = 0; j < ic; ++j) { @@ -162,10 +163,11 @@ class HybridConvInt8Test : public HybridConvSpeedTestCommon { std::vector kernels = {1, 1}; bool lowmemory = true; { - std::vector< std::vector> channels = {{7, 9}, {2048, 54}, {1, 10}, {20, 153}, {9, 18}}; + std::vector< std::vector> channels = {{7, 9}, {9, 9}, {2048, 54}, {1, 10}, {20, 153}, {9, 18}}; for (int i = 0; i < channels.size(); ++i) { for (int n = 0; n < batch.size(); ++n) { auto res = testKernel("Low memory HybridConv test:", inputShape, kernels, channels[i], pad, strides, dilate, batch[n], 8, precision); + res &= testKernel("Low memory HybridConv test:", inputShape, kernels, channels[i], pad, strides, dilate, batch[n], 4, precision); if (!res) { MNN_ERROR("Error: low memory hybridConv when bits=8, n=%d, ic=%d, oc=%d\n", batch[n], channels[i][0], channels[i][1]); return false; @@ -174,7 +176,7 @@ class HybridConvInt8Test : public HybridConvSpeedTestCommon { } } { - std::vector< std::vector> channels = {{2048, 54}, {8, 8}, {8, 9}, {8, 16}}; + std::vector< std::vector> channels = {{12, 16}, {2048, 54}, {8, 8}, {8, 9}, {8, 16}}; for (int i = 0; i < channels.size(); ++i) { for (int n = 0; n < batch.size(); ++n) { auto res = testKernel("Low memory HybridConv test:", inputShape, kernels, channels[i], pad, strides, dilate, batch[n], 4, precision); @@ -210,7 +212,7 @@ class DenseConvInt8Test : public HybridConvSpeedTestCommon { for (auto block : blocks) { auto res = testKernel("Low memory ConvInt8 with kernel test:", inputShape, kernel, channels[i], pad, strides, dilate, batch[n], bits, precision, false, block); if (!res) { - MNN_ERROR("Error: low memory ConvInt8 with %dx%d kernel when n=%d, ic=%d, oc=%d, block=%d\n", kernel[0], kernel[1], batch[n], channels[i][0], channels[i][1], block); + MNN_ERROR("Error: low memory ConvInt8 with %dx%d kernel when bits=%d n=%d, ic=%d, oc=%d, block=%d\n", kernel[0], kernel[1], bits, batch[n], channels[i][0], channels[i][1], block); return false; } } diff --git a/tools/converter/forward.json b/tools/converter/forward.json index 3fb140782..304e9774c 100644 --- a/tools/converter/forward.json +++ b/tools/converter/forward.json @@ -3,5 +3,6 @@ "mode":1, "precision":1, "memory":1, - "power":1 + "power":1, + "hints":[5, 1] } diff --git a/tools/converter/include/commonKit.hpp b/tools/converter/include/commonKit.hpp deleted file mode 100644 index e261f2add..000000000 --- a/tools/converter/include/commonKit.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// -//// commonKit.hpp -//// -//// Created by MNN on 2023/11/03. -//// Copyright © 2018, Alibaba Group Holding Limited -//// -// -#ifndef COMMONKit_HPP -#define COMMONKit_HPP - -#include -#include "MNN_compression.pb.h" -class CommonKit { -public: - static bool FileIsExist(std::string path); - static bool json2protobuf(const char* jsonFile, const char* protoFile=nullptr, MNN::Compression::Pipeline* pipeline=nullptr); -}; -#endif diff --git a/tools/converter/include/config.hpp b/tools/converter/include/config.hpp index 57956a9b0..756704c2a 100644 --- a/tools/converter/include/config.hpp +++ b/tools/converter/include/config.hpp @@ -11,6 +11,7 @@ #include #include #include +struct PostTreatContext; class MNN_PUBLIC modelConfig { public: modelConfig() @@ -21,6 +22,7 @@ class MNN_PUBLIC modelConfig { model(modelConfig::MAX_SOURCE), saveHalfFloat(false){ } + ~ modelConfig (); enum MODEL_SOURCE { TENSORFLOW = 0, CAFFE, ONNX, MNN, TFLITE, TORCH, JSON, MAX_SOURCE }; // MNN model path @@ -50,7 +52,7 @@ class MNN_PUBLIC modelConfig { int optimizeLevel = 1; bool keepInputFormat = true; bool alignDenormalizedValue = true; - bool detectSparseSpeedUp = true; + bool detectSparseSpeedUp = false; bool convertMatmulToConv = true; bool useGeluApproximation = true; bool transformerFuse = false; @@ -68,6 +70,7 @@ class MNN_PUBLIC modelConfig { int64_t externalTreshold = 1024 * 64; std::ofstream* externalFile = nullptr; int64_t externalOffset = 0; + PostTreatContext* compressInfo = nullptr; }; #endif // CONFIG_HPP diff --git a/tools/converter/include/options.hpp b/tools/converter/include/options.hpp deleted file mode 100644 index 4a2bd4755..000000000 --- a/tools/converter/include/options.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// Options.hpp -// MNN -// -// Created by MNN on 2020/07/28. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#ifndef MNN_CONVERTER_COMMON_OPTIONS_HPP_ -#define MNN_CONVERTER_COMMON_OPTIONS_HPP_ - -#include - -#include "../source/compression/PipelineBuilder.hpp" - -namespace common { - -// TODO(): Refine -typedef struct Options { - bool doCompress; - compression::Pipeline compressionPipeline; -} Options; - -Options DefaultOptions(); - -Options BuildOptions(const std::string& compressionFile); - -} // namespace common - -#endif // MNN_CONVERTER_COMMON_OPTIONS_HPP_ diff --git a/tools/converter/include/writeFb.hpp b/tools/converter/include/writeFb.hpp index 008e6d927..46d1fd565 100644 --- a/tools/converter/include/writeFb.hpp +++ b/tools/converter/include/writeFb.hpp @@ -20,6 +20,6 @@ *@param benchmarkModel benchmarkModel is true, then delete the weight of Convolution etc. *@param saveHalfFloat when saveHalfFloat is true, save weight in half float data type */ -MNN_PUBLIC int writeFb(std::unique_ptr& netT, const std::string& MNNModelFile, const modelConfig& config); +MNN_PUBLIC int writeFb(std::unique_ptr& netT, const modelConfig& config); #endif // WRITEFB_HPP diff --git a/tools/converter/source/common/Common.cpp b/tools/converter/source/common/Common.cpp deleted file mode 100644 index 41c7b4373..000000000 --- a/tools/converter/source/common/Common.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// Common.cpp -// MNNConverter -// -// Created by MNN on 2020/07/02. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#include "Common.hpp" - -namespace MNN { - -MNN_DATA_FORMAT convertFormat(Express::Dimensionformat format) { - switch (format) { - case Express::NCHW: - return MNN_DATA_FORMAT_NCHW; - case Express::NHWC: - return MNN_DATA_FORMAT_NHWC; - case Express::NC4HW4: - return MNN_DATA_FORMAT_NC4HW4; - default: - return MNN_DATA_FORMAT_UNKNOWN; - } -} - -DataType convertDataType(halide_type_t type) { - if (type.code == halide_type_float) { - return DataType_DT_FLOAT; - } - if (type.code == halide_type_uint && type.bits == 8) { - return DataType_DT_UINT8; - } - if (type.code == halide_type_int && type.bits == 8) { - return DataType_DT_INT8; - } - if (type.code == halide_type_int && type.bits == 32) { - return DataType_DT_INT32; - } - return DataType_DT_INVALID; -} - -} // namespace MNN diff --git a/tools/converter/source/common/Common.hpp b/tools/converter/source/common/Common.hpp deleted file mode 100644 index aca580370..000000000 --- a/tools/converter/source/common/Common.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// Common.hpp -// MNNConverter -// -// Created by MNN on 2020/07/02. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#ifndef MNN_CONVERTER_COMMON_COMMON_HPP_ -#define MNN_CONVERTER_COMMON_COMMON_HPP_ - -#include "MNN/HalideRuntime.h" -#include "MNN/expr/Expr.hpp" - -#include "MNN_generated.h" - -namespace MNN { - -DataType convertDataType(halide_type_t type); - -MNN_DATA_FORMAT convertFormat(Express::Dimensionformat format); - -} // namespace MNN - -#endif // MNN_CONVERTER_COMMON_COMMON_HPP_ diff --git a/tools/converter/source/common/CommonUtils.cpp b/tools/converter/source/common/CommonUtils.cpp new file mode 100644 index 000000000..4121b99a6 --- /dev/null +++ b/tools/converter/source/common/CommonUtils.cpp @@ -0,0 +1,78 @@ +#include +#include +#include +#include "CommonUtils.hpp" +#include "core/MNNFileUtils.h" +using namespace std; +void CommonKit::loadCompress(modelConfig& modelPath) { + bool overwrite = false; + bool readProto = false; + modelPath.compressInfo = new PostTreatContext; + do { + auto compressFileName = modelPath.compressionParamsFile; + if (compressFileName != "") { + if (!MNNFileExist(compressFileName.c_str())) { + MNN_PRINT("CompressFileName not exist, create it\n"); + overwrite = true; + break; + } + string jsonSuffix = "json"; + string suffix = compressFileName.substr(compressFileName.find_last_of('.') + 1); + if (jsonSuffix.compare(suffix) != 0) { // protobuf.bin file + std::fstream input(compressFileName.c_str(), std::ios::in | std::ios::binary); + if (!modelPath.compressInfo->proto.ParseFromIstream(&input)) { + MNN_ERROR("Failed to parse compression pipeline proto.\n"); + } else { + readProto = true; + } + } else { + readProto = CommonKit::json2protobuf(compressFileName.c_str(), nullptr, &modelPath.compressInfo->proto); + } + } + } while (false); + modelPath.compressInfo->read = readProto; + modelPath.compressInfo->write = overwrite; +} +bool CommonKit::FileIsExist(std::string path) { + return MNNFileExist(path.c_str()); +} +bool CommonKit::protobuf2json(const char* jsonFile, const MNN::Compression::Pipeline* pipeline) { + google::protobuf::util::JsonOptions options; + options.add_whitespace = true; + std::string output; + auto status = google::protobuf::util::MessageToJsonString(*pipeline, &output, options); + if (status.code() != google::protobuf::util::status_internal::StatusCode::kOk) { + FUNC_PRINT_ALL(status.message().ToString().c_str(), s); + return false; + } + { + std::ofstream out(jsonFile); + if (out.fail()) { + MNN_ERROR("Dump json error: Can't open %s\n", jsonFile); + return false; + } + out << output; + } + return true; +} + +bool CommonKit::json2protobuf(const char* jsonFile, const char* protoFile, MNN::Compression::Pipeline* pipeline) { + { + std::ifstream fileNames(jsonFile); + if (fileNames.fail()) { + return false; + } + std::ostringstream output; + output << fileNames.rdbuf(); + auto outputStr = output.str(); + google::protobuf::util::JsonParseOptions options; + options.ignore_unknown_fields = true; + auto status = google::protobuf::util::JsonStringToMessage(outputStr, pipeline, options); + if (status.code() != google::protobuf::util::status_internal::StatusCode::kOk) { + FUNC_PRINT_ALL(status.message().ToString().c_str(), s); + return false; + } + } + return true; +} + diff --git a/tools/converter/source/common/CommonUtils.hpp b/tools/converter/source/common/CommonUtils.hpp index f774fe72c..2b8137f49 100644 --- a/tools/converter/source/common/CommonUtils.hpp +++ b/tools/converter/source/common/CommonUtils.hpp @@ -16,6 +16,15 @@ #include #include "../source/core/FileLoader.hpp" +struct PostTreatContext { + MNN::Compression::Pipeline proto; + std::map, const MNN::Compression::LayerQuantizeParams*> quantInfo; + MNN::Compression::QuantizeParams* quantMutableInfo = nullptr; + std::string subgraph; + bool read = false; + bool write = false; +}; + void converToStaticModel(const MNN::Net* net, std::map>& inputConfig, std::string mnnFile); void RemoveAndStoreParam(std::unique_ptr& op, std::ofstream* fs, int64_t& offset); void loadExternalParam(std::unique_ptr& op, MNN::FileLoader* fl); @@ -23,9 +32,17 @@ void CastParamsToHalf(std::unique_ptr& op); void AlignDenormalizedValue(std::unique_ptr& op); void AddSparseInfo(std::unique_ptr& op, MNN::Compression::Pipeline proto); void fullQuantAndCoding(std::unique_ptr& netT, MNN::Compression::Pipeline proto); -void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& config); +void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& config, const PostTreatContext* context); void addUUID(std::unique_ptr& netT, MNN::Compression::Pipeline proto); void channelPruneConvert(std::unique_ptr& netT, MNN::Compression::Pipeline proto); +class CommonKit { +public: + static void loadCompress(modelConfig& modelPath); + static bool FileIsExist(std::string path); + static bool json2protobuf(const char* jsonFile, const char* protoFile=nullptr, MNN::Compression::Pipeline* pipeline=nullptr); + static bool protobuf2json(const char* jsonFile, const MNN::Compression::Pipeline* pipeline); +}; + #endif // COMMMON_UTILS_HPP diff --git a/tools/converter/source/common/FullQuantAndCoding.cpp b/tools/converter/source/common/FullQuantAndCoding.cpp index 5db4b2ec4..23e74a65b 100644 --- a/tools/converter/source/common/FullQuantAndCoding.cpp +++ b/tools/converter/source/common/FullQuantAndCoding.cpp @@ -29,6 +29,9 @@ void FullQuantAndCoding(std::unique_ptr& netT, std::unique_ptr findMinMax(const float *weights, const int count) { return {min, max}; } -void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& config) { +void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& config, const PostTreatContext* context) { const auto opType = op->type; // config.weightQuantBits only control weight quantization for float convolution // by default, do coding for convint8 and depthwiseconvint8, if there is any @@ -49,13 +49,51 @@ void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& conf opType != MNN::OpType_ConvInt8 && opType != MNN::OpType_DepthwiseConvInt8) { return; } - auto param = op->main.AsConvolution2D(); + auto param = op->main.AsConvolution2D(); auto& common = param->common; if (param->quanParameter.get() != nullptr) { return; } + auto weightQuantBits = config.weightQuantBits; + bool asymmetricQuantFlag = config.weightQuantAsymmetric; + auto weightQuantBlock = config.weightQuantBlock; + // Read or write config in proto + if (context->quantInfo.find(std::make_pair(context->subgraph, op->name)) != context->quantInfo.end()) { + auto param = context->quantInfo.find(std::make_pair(context->subgraph, op->name))->second; + if (param->weight_size() > 0) { + auto weight = param->weight(0); + if (weight.has_asymmetric()) { + asymmetricQuantFlag = weight.asymmetric(); + } + if (weight.has_bits()) { + weightQuantBits = weight.bits(); + } + if (weight.has_block_size()) { + weightQuantBlock = weight.block_size(); + } + } + } + if (nullptr != context->quantMutableInfo) { + auto& proto = context->proto; + auto layer = context->quantMutableInfo->add_layer(); + layer->set_op_name(op->name); + if (!context->subgraph.empty()) { + layer->set_subgraph_name(context->subgraph); + } + auto conv = layer->mutable_conv(); + conv->set_input_channel(common->inputCount); + conv->set_output_channel(common->outputCount); + conv->clear_kernel_size(); + conv->add_kernel_size(common->kernelX); + conv->add_kernel_size(common->kernelY); + auto weight = layer->add_weight(); + weight->set_bits(weightQuantBits); + weight->set_asymmetric(asymmetricQuantFlag); + weight->set_block_size(weightQuantBlock); + weight->set_name(op->name); + } - if (config.weightQuantBits == 0) { + if (weightQuantBits == 0) { if (opType == MNN::OpType_ConvInt8 || opType == MNN::OpType_DepthwiseConvInt8) { // Do nothing } else { @@ -64,9 +102,9 @@ void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& conf } } int bits = 8; - if ((config.weightQuantBits > 0) && ( + if ((weightQuantBits > 0) && ( opType != MNN::OpType_ConvInt8 && opType != MNN::OpType_DepthwiseConvInt8)) { - bits = config.weightQuantBits; + bits = weightQuantBits; } // Bits must from 2-8 bits = std::max(bits, 2); @@ -85,8 +123,6 @@ void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& conf int kxky = common->kernelX * common->kernelY; int icCount = kernelSize / kxky; - bool asymmetricQuantFlag = config.weightQuantAsymmetric; - float threshold = (float)(1 << (bits - 1)) - 1.0f; float clampMin = -threshold; if (asymmetricQuantFlag) { @@ -95,8 +131,8 @@ void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& conf std::vector weightData, scales; // block-wise quant int block_size = kernelSize, block_num = 1; - if (config.weightQuantBlock > 0 && (kernelSize % config.weightQuantBlock == 0) && kxky == 1) { - block_size = config.weightQuantBlock; + if (weightQuantBlock > 0 && (kernelSize % weightQuantBlock == 0) && kxky == 1) { + block_size = weightQuantBlock; block_num = kernelSize / block_size; } @@ -161,14 +197,3 @@ void WeightQuantAndCoding(std::unique_ptr& op, const modelConfig& conf param->weight.swap(empty); } }; - -void weightQuantAndCoding(std::unique_ptr& netT, const modelConfig& config) { - for (auto& op : netT->oplists) { - WeightQuantAndCoding(op, config); - } - for (auto& subgraph : netT->subgraphs) { - for (auto& op : subgraph->nodes) { - WeightQuantAndCoding(op, config); - } - } -} diff --git a/tools/converter/source/common/cli.cpp b/tools/converter/source/common/cli.cpp index 947a41ee2..a11d563c2 100644 --- a/tools/converter/source/common/cli.cpp +++ b/tools/converter/source/common/cli.cpp @@ -7,7 +7,6 @@ // #include "cli.hpp" -#include "commonKit.hpp" #if defined(_MSC_VER) #include #undef min @@ -15,6 +14,7 @@ #else #include #endif +#include #include "OpCount.hpp" #include "cxxopts.hpp" #include "config.hpp" @@ -32,13 +32,18 @@ #include #include #include +#include "CommonUtils.hpp" #include "PostConverter.hpp" #include "rapidjson/document.h" #include #include #include #include "core/MemoryFormater.h" - +modelConfig::~modelConfig() { + if (nullptr != compressInfo) { + delete compressInfo; + } +} namespace MNN { using namespace MNN::Express; static std::string _getDataType(const halide_type_t& type) { @@ -214,7 +219,8 @@ bool Cli::initializeMNNConvertArgs(modelConfig &modelPath, int argc, char **argv "compressionParamsFile", "The path of the compression parameters that stores activation, " "weight scales and zero points for quantization or information " - "for sparsity.", + "for sparsity. " + "if the file does not exist, will create file base on user's option", cxxopts::value() ) ( @@ -278,8 +284,7 @@ bool Cli::initializeMNNConvertArgs(modelConfig &modelPath, int argc, char **argv ) ( "detectSparseSpeedUp", - "if 1 converter would detect weights sparsity and check sparse speedup. default: 1, range : {0, 1}", - cxxopts::value() + "if add the flag converter would detect weights sparsity and check sparse speedup, may decrease model size, but will cause more time for convert." ) ( "saveExternalData", @@ -478,7 +483,7 @@ bool Cli::initializeMNNConvertArgs(modelConfig &modelPath, int argc, char **argv modelPath.alignDenormalizedValue = result["alignDenormalizedValue"].as(); } if (result.count("detectSparseSpeedUp")) { - modelPath.detectSparseSpeedUp = result["detectSparseSpeedUp"].as(); + modelPath.detectSparseSpeedUp = true; } if (result.count("convertMatmulToConv")) { modelPath.convertMatmulToConv = result["convertMatmulToConv"].as(); @@ -647,7 +652,7 @@ static void computeUnaryBuffer(MNN::NetT* net) { val = -127; } unaryParam[i] = val; - } + } } } } @@ -723,6 +728,7 @@ bool Cli::convertModel(modelConfig& modelPath) { "FuseDupOp" }; } + CommonKit::loadCompress(modelPath); if (needOptimize) { std::cout << "Start to Optimize the MNN Net..." << std::endl; std::unique_ptr newNet = optimizeNet(netT, modelPath.forTraining, modelPath, expectedPass); @@ -731,9 +737,9 @@ bool Cli::convertModel(modelConfig& modelPath) { computeUnaryBuffer(newNet.get()); } - error = writeFb(newNet, modelPath.MNNModel, modelPath); + error = writeFb(newNet, modelPath); } else { - error = writeFb(netT, modelPath.MNNModel, modelPath); + error = writeFb(netT, modelPath); } if (0 == error) { std::cout << "Converted Success!" << std::endl; @@ -878,6 +884,7 @@ int Cli::testconvert(const std::string& defaultCacheFile, const std::string& dir BackendConfig backendConfig; backendConfig.precision = static_cast(1); config.backendConfig = &backendConfig; + std::vector hints; if (!backendConfigJson.empty()) { do { @@ -909,12 +916,24 @@ int Cli::testconvert(const std::string& defaultCacheFile, const std::string& dir if (configDoc.HasMember("power")) { config.backendConfig->power = (MNN::BackendConfig::PowerMode)configDoc["power"].GetInt(); } + if (configDoc.HasMember("hints")) { + auto array = configDoc["hints"].GetArray(); + for (auto iter = array.Begin(); iter != array.End(); iter++) { + hints.emplace_back(iter->GetInt()); + } + if (hints.size() % 2 != 0) { + MNN_ERROR("Invalid hint number: %d\n", hints.size()); + } + } } while (false); } MNN::Express::Module::Config mConfig; mConfig.shapeMutable = true; std::shared_ptr rtmgr(MNN::Express::Executor::RuntimeManager::createRuntimeManager(config)); + for (int v=0; vsetHint((Interpreter::HintMode)hints[2*v], hints[2*v+1]); + } rtmgr->setExternalFile("./convert_cache.mnn.weight"); std::shared_ptr net(MNN::Express::Module::load(inputNames, outputNames, defaultCacheFile.c_str(), rtmgr, &mConfig)); std::shared_ptr net2; @@ -1374,133 +1393,3 @@ bool Cli::json2mnn(const char* jsonFile, const char* modelFile) { } }; - - -bool CommonKit::FileIsExist(std::string path) { -#if defined(_MSC_VER) - if (INVALID_FILE_ATTRIBUTES != GetFileAttributes(path.c_str()) && GetLastError() != ERROR_FILE_NOT_FOUND) { - return true; - } -#else - if ((access(path.c_str(), F_OK)) != -1) { - return true; - } -#endif - return false; -} - -bool CommonKit::json2protobuf(const char* jsonFile, const char* protoFile, MNN::Compression::Pipeline* pipeline) { - rapidjson::Document document; - { - std::ifstream fileNames(jsonFile); - std::ostringstream output; - output << fileNames.rdbuf(); - auto outputStr = output.str(); - document.Parse(outputStr.c_str()); - if (document.HasParseError()) { - MNN_ERROR("Invalid json\n"); - return 0; - } - } - if (!document.HasMember("pipeline")) { - MNN_ERROR("Error||Invalid json file: missing pipeline member.\n"); - return 0; - } - auto pipelineInfo = document["pipeline"].GetObject(); - std::string version = pipelineInfo["version"].GetString(); - pipeline->set_version(version); - - auto algos = pipelineInfo["algo"].GetArray(); - for (auto iter = algos.begin(); iter != algos.end(); ++iter) { - auto algoInfo = iter->GetObject(); - MNN_ASSERT(algoInfo["type"].GetInt() == 0); - auto compressionType = (MNN::Compression::CompressionAlgo_CompressionType)algoInfo["type"].GetInt(); - auto quantParamsInfo = algoInfo["quant_params"].GetObject(); - auto round_mode = quantParamsInfo["round_mode"].GetInt(); - MNN::Compression::CompressionAlgo* algo = pipeline->add_algo(); - algo->set_type(compressionType); - auto quant_params = algo->mutable_quant_params(); - quant_params->set_round_mode((MNN::Compression::QuantizeParams_RoundMode)round_mode); - - auto layers = quantParamsInfo["layer"].GetArray(); - for (auto ly = layers.begin(); ly != layers.end(); ++ly) { - auto layerInfo = ly->GetObject(); - auto newLayer = quant_params->add_layer(); - if (layerInfo.HasMember("method")) { - newLayer->set_method((MNN::Compression::LayerQuantizeParams_QuantMethod)layerInfo["method"].GetInt()); - } - - // Weight. - auto weights_ = layerInfo["weight"].GetArray(); - for (auto w = weights_.begin(); w != weights_.end(); ++w) { - // Get weight info. - int bits = w->GetObject()["bits"].GetInt(); - auto name = w->GetObject()["name"].GetString(); - auto scale = w->GetObject()["scales"].GetArray(); - auto zeropoint = w->GetObject()["zero_point"].GetInt(); - auto clamp_min = w->GetObject()["clamp_min"].GetInt(); - auto clamp_max = w->GetObject()["clamp_max"].GetInt(); - // Write to newLayer - auto weight = newLayer->add_weight(); - weight->set_bits(bits); - weight->set_name(name); - weight->set_clamp_max(clamp_max); - weight->set_clamp_min(clamp_min); - for (int k = 0; k < scale.Size(); ++k) { - weight->add_scales(scale[k].GetFloat()); - } - } - - // Input. - auto inputs_ = layerInfo["input"].GetArray(); - for (auto w = inputs_.begin(); w != inputs_.end(); ++w) { - int bits = w->GetObject()["bits"].GetInt(); - auto name = w->GetObject()["name"].GetString(); - auto scale = w->GetObject()["scales"].GetArray(); - auto zeropoint = w->GetObject()["zero_point"].GetInt(); - auto clamp_min = w->GetObject()["clamp_min"].GetInt(); - auto clamp_max = w->GetObject()["clamp_max"].GetInt(); - // Write to newLayer - auto input = newLayer->add_input(); - input->set_bits(bits); - input->set_name(name); - input->set_clamp_max(clamp_max); - input->set_clamp_min(clamp_min); - for (int k = 0; k < scale.Size(); ++k) { - input->add_scales(scale[k].GetFloat()); - } - } - - // Output. - auto outputs_ = layerInfo["output"].GetArray(); - for (auto w = outputs_.begin(); w != outputs_.end(); ++w) { - int bits = w->GetObject()["bits"].GetInt(); - auto name = w->GetObject()["name"].GetString(); - auto scale = w->GetObject()["scales"].GetArray(); - auto zeropoint = w->GetObject()["zero_point"].GetInt(); - auto clamp_min = w->GetObject()["clamp_min"].GetInt(); - auto clamp_max = w->GetObject()["clamp_max"].GetInt(); - // Write to newLayer - auto output = newLayer->add_output(); - output->set_bits(bits); - output->set_name(name); - output->set_clamp_max(clamp_max); - output->set_clamp_min(clamp_min); - for (int k = 0; k < scale.Size(); ++k) { - output->add_scales(scale[k].GetFloat()); - } - } - } - } - // Write protobuf.bin - if (protoFile) { - std::ofstream output(protoFile, std::ios::out | std::ios::binary); - if (!pipeline->SerializeToOstream(&output)) { - MNN_ERROR("->Error: Fail saving Json file to protobuf file\n"); - return 0; - } - MNN_PRINT("Finish convert json file to protobuf binary file\n"); - } - return 1; -} - diff --git a/tools/converter/source/common/convertToStaticModel.cpp b/tools/converter/source/common/convertToStaticModel.cpp index 2d8c120db..98dd2d058 100644 --- a/tools/converter/source/common/convertToStaticModel.cpp +++ b/tools/converter/source/common/convertToStaticModel.cpp @@ -336,7 +336,7 @@ void converToStaticModel(const Net* net, std::map>& // resize the session's info and store to buffer std::vector constTensors; GeometryComputerUtils::buildConstantTensors(infos); - GeometryComputerUtils::shapeComputeAndGeometryTransform(nullptr, infos, ctx, defaultBackend, runtime->onGetCompilerType()); + GeometryComputerUtils::shapeComputeAndGeometryTransform(runtime.get(), nullptr, infos, ctx, defaultBackend, runtime->onGetCompilerType()); std::map> tensorName; for (int i = 0; i < net->tensorName()->size(); i++) { tensorName[allTensors[i].get()] = std::make_pair(net->tensorName()->GetAsString(i)->str(), i); diff --git a/tools/converter/source/common/options.cpp b/tools/converter/source/common/options.cpp deleted file mode 100644 index 5b3f2e4b2..000000000 --- a/tools/converter/source/common/options.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// options.cpp -// MNNConverter -// -// Created by MNN on 2020/07/28. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#include "options.hpp" - -namespace common { - -Options DefaultOptions() { - Options opt; - opt.doCompress = false; - opt.compressionPipeline = compression::Pipeline(); - return opt; -} - -Options BuildOptions(const std::string& compressionFile) { - Options options; - if (!compressionFile.empty()) { - options.doCompress = true; - } else { - options.doCompress = false; - } - // TODO(): Check if file exist. - compression::PipelineBuilder builder(compressionFile); - options.compressionPipeline = builder.Build(); - return std::move(options); -} - -} // namespace common diff --git a/tools/converter/source/common/writeFb.cpp b/tools/converter/source/common/writeFb.cpp index 13c157238..560fcb84f 100644 --- a/tools/converter/source/common/writeFb.cpp +++ b/tools/converter/source/common/writeFb.cpp @@ -21,13 +21,12 @@ #include "cpp/ConfigFile.hpp" #include #include "cli.hpp" -#include "commonKit.hpp" #include "MNN_compression.pb.h" using namespace MNN; using namespace std; -static void _postTreatOp(std::unique_ptr& op, FileLoader* fl, MNN::Compression::Pipeline proto, const modelConfig& config, std::ofstream& weightPath, int64_t& offset, bool needExternalWeight) { +static void _postTreatOp(std::unique_ptr& op, FileLoader* fl, const PostTreatContext& context, const modelConfig& config, std::ofstream& weightPath, int64_t& offset, bool needExternalWeight) { loadExternalParam(op, fl); if (config.alignDenormalizedValue) { AlignDenormalizedValue(op); @@ -36,9 +35,9 @@ static void _postTreatOp(std::unique_ptr& op, FileLoader* fl, MNN::Compress CastParamsToHalf(op); } if (config.detectSparseSpeedUp) { - AddSparseInfo(op, proto); + AddSparseInfo(op, context.proto); } - WeightQuantAndCoding(op, config); + WeightQuantAndCoding(op, config, &context); if (needExternalWeight) { RemoveAndStoreParam(op, &weightPath, offset); } @@ -87,23 +86,12 @@ static bool _largeModel(const MNN::NetT* netT) { } return false; } -int writeFb(std::unique_ptr& netT, const std::string& MNNModelFile, const modelConfig& config) { +int postTreat(std::unique_ptr& netT, const modelConfig& config) { std::string compressFileName = config.compressionParamsFile; - Compression::Pipeline proto; - if (compressFileName != "") { - string jsonSuffix = "json"; - string suffix = compressFileName.substr(compressFileName.find_last_of('.') + 1); - if (jsonSuffix.compare(suffix) != 0) { // protobuf.bin file - std::fstream input(compressFileName.c_str(), std::ios::in | std::ios::binary); - if (!proto.ParseFromIstream(&input)) { - MNN_ERROR("Failed to parse compression pipeline proto.\n"); - } - } else { - CommonKit::json2protobuf(compressFileName.c_str(), nullptr, &proto); - } - } + auto& proto = config.compressInfo->proto; + auto MNNModelFile = config.MNNModel; - addUUID(netT, proto); + addUUID(netT, config.compressInfo->proto); // add version info to model netT->extraInfo.reset(new ExtraInfoT); @@ -112,11 +100,14 @@ int writeFb(std::unique_ptr& netT, const std::string& MNNModelFile, c // add auth code to model netT->extraInfo->name = config.authCode; } - - if (config.compressionParamsFile != "") { + bool useOriginQuant = config.compressInfo->proto.algo_size() > 0 && (!config.compressInfo->write); + if (config.compressInfo->proto.has_for_guide() && config.compressInfo->proto.for_guide()) { + useOriginQuant = false; + } + if (useOriginQuant) { channelPruneConvert(netT, proto); } - if (config.compressionParamsFile != "") { + if (useOriginQuant) { fullQuantAndCoding(netT, proto); } // Check If need external weight @@ -126,7 +117,7 @@ int writeFb(std::unique_ptr& netT, const std::string& MNNModelFile, c } std::ofstream externalWeightOs; if (needExternalWeight) { - auto weightName = MNNModelFile + ".weight"; + auto weightName = config.MNNModel + ".weight"; MNN_PRINT("Save Weight to %s\n", weightName.c_str()); externalWeightOs.open(weightName.c_str()); if (externalWeightOs.fail()) { @@ -134,20 +125,62 @@ int writeFb(std::unique_ptr& netT, const std::string& MNNModelFile, c } } { + bool findQuant = false; + auto& context = *config.compressInfo; + for (int i=0; iset_type( MNN::Compression::CompressionAlgo_CompressionType_QUANTIZE); + context.quantMutableInfo = algo->mutable_quant_params(); + } int64_t offset = 0; FileLoader fl(".__convert_external_data.bin"); for (auto& op : netT->oplists) { - _postTreatOp(op, &fl, proto, config, externalWeightOs, offset, needExternalWeight); + _postTreatOp(op, &fl, context, config, externalWeightOs, offset, needExternalWeight); } for (auto& subgraph : netT->subgraphs) { + context.subgraph = subgraph->name; for (auto& op : subgraph->nodes) { - _postTreatOp(op, &fl, proto, config, externalWeightOs, offset, needExternalWeight); + _postTreatOp(op, &fl, context, config, externalWeightOs, offset, needExternalWeight); } } } { MNNRemoveFile(".__convert_external_data.bin"); } + if (config.compressInfo->write) { + CommonKit::protobuf2json(compressFileName.c_str(), &proto); + } + return 0; +} +int writeFb(std::unique_ptr& netT, const modelConfig& config) { + postTreat(netT, config); std::set notSupportOps; auto CheckIfNotSupported = [&] (const std::unique_ptr& op) { if (op->type == MNN::OpType_Extra) { @@ -227,9 +260,9 @@ int writeFb(std::unique_ptr& netT, const std::string& MNNModelFile, c } } const Net* net = flatbuffers::GetRoot(bufferOutput); - converToStaticModel(net, inputConfig, MNNModelFile); + converToStaticModel(net, inputConfig, config.MNNModel); } else { - std::ofstream output(MNNModelFile, std::ofstream::binary); + std::ofstream output(config.MNNModel, std::ofstream::binary); output.write((const char*)bufferOutput, sizeOutput); } if (!netT->subgraphs.empty()) { diff --git a/tools/converter/source/compression/MNN_compression.proto b/tools/converter/source/compression/MNN_compression.proto index 62685d0d4..5098c668a 100644 --- a/tools/converter/source/compression/MNN_compression.proto +++ b/tools/converter/source/compression/MNN_compression.proto @@ -42,6 +42,8 @@ message LayerQuantizeParams { repeated float scales = 3; optional int32 clamp_min = 4 [default = -128]; optional int32 clamp_max = 5 [default = 127]; + optional bool asymmetric = 6 [default = false]; + optional int32 block_size = 7 [default = 0]; } message WinogradParams { @@ -56,11 +58,20 @@ message LayerQuantizeParams { WinogradAware = 2; } + message ConvolutionInfo { + required int32 input_channel = 1; + required int32 output_channel = 2; + repeated int32 kernel_size = 3; + } + repeated ActivationParams input = 1; repeated WeightParams weight = 2; repeated ActivationParams output = 3; optional QuantMethod method = 4 [default = QAT]; optional WinogradParams wino_params = 5; + optional string op_name = 6; + optional string subgraph_name = 7; + optional ConvolutionInfo conv = 8; } message LevelPrunerParams { @@ -104,4 +115,5 @@ message Pipeline { repeated CompressionAlgo algo = 2; optional string mnn_uuid = 3; + optional bool for_guide = 4 [default = false]; } diff --git a/tools/converter/source/compression/PipelineBuilder.cpp b/tools/converter/source/compression/PipelineBuilder.cpp deleted file mode 100644 index 2589c4394..000000000 --- a/tools/converter/source/compression/PipelineBuilder.cpp +++ /dev/null @@ -1,132 +0,0 @@ -// -// PipelineBuilder.cpp -// MNNConverter -// -// Created by MNN on 2020/07/28. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#include - -#include "PipelineBuilder.hpp" -#include "MNN/MNNDefine.h" -#include -#include "rapidjson/document.h" -#include "cli.hpp" -#include "commonKit.hpp" - -namespace compression { - -PipelineBuilder::PipelineBuilder(const std::string& filename) - : filename_(filename) {} - -Pipeline PipelineBuilder::Build() const { - Pipeline pipeline; - if (!filename_.empty()) { - MNN::Compression::Pipeline proto; - std::string jsonSuffix = "json"; - std::string suffix = filename_.substr(filename_.find_last_of('.') + 1); - if (jsonSuffix.compare(suffix) != 0) { // protobuf.bin - std::fstream input(filename_.c_str(), std::ios::in | std::ios::binary); - if (!proto.ParseFromIstream(&input)) { - MNN_ERROR("Failed to parse compression pipeline proto.\n"); - } else { - ParsePipeline(proto, &pipeline); - } - } else { - CommonKit::json2protobuf(filename_.c_str(), nullptr, &proto); - ParsePipeline(proto, &pipeline); - } - } - return std::move(pipeline); -} - -bool PipelineBuilder::ParsePipeline(const MNN::Compression::Pipeline& proto, - Pipeline* pipeline) const { - for (const auto& algo : proto.algo()) { - Progress progress; - progress.type = algo.type(); - switch (progress.type) { - case CompressionAlgo::QUANTIZE: { - ParseQuantization(algo.quant_params(), - &(progress.quant_params)); - break; - } - case CompressionAlgo::PRUNE: - default: { - MNN_ERROR("Unsupported compression type: %d.\n", progress.type); - } - } - pipeline->progress_.push_back(std::move(progress)); - } - return true; -} - -Quantization::TensorParams PipelineBuilder::ParseActivationQuantization( - const LayerQuantizeParams::ActivationParams& proto) const { - Quantization::TensorParams tensor_params; - tensor_params.nbit = proto.bits(); - int size = proto.scales().size(); - tensor_params.scale.resize(size); - for (int i = 0; i < size; ++i) { - tensor_params.scale[i] = proto.scales(i); - } - tensor_params.zero_point = proto.zero_point(); - tensor_params.clamp_min = proto.clamp_min(); - tensor_params.clamp_max = proto.clamp_max(); - return std::move(tensor_params); -} - -Quantization::TensorParams PipelineBuilder::ParseWeightQuantization( - const LayerQuantizeParams::WeightParams& proto) const { - Quantization::TensorParams tensor_params; - tensor_params.nbit = proto.bits(); - int size = proto.scales().size(); - tensor_params.scale.resize(size); - for (int i = 0; i < size; ++i) { - tensor_params.scale[i] = proto.scales(i); - } - tensor_params.zero_point = 0.f; - return std::move(tensor_params); -} - -bool PipelineBuilder::ParseQuantization( - const MNN::Compression::QuantizeParams& proto, - Quantization* quant_params) const { - quant_params->round_mode = proto.round_mode(); - for (const auto& layer_proto : proto.layer()) { - auto method = layer_proto.method(); - for (const auto& input : layer_proto.input()) { - const std::string& tensor_name = input.name(); - Quantization::TensorParams tensor_params = - ParseActivationQuantization(input); - tensor_params.method = method; - quant_params->tensors[tensor_name].push_back(tensor_params); - } - int length = 0; - for (const auto& weight : layer_proto.weight()) { - const std::string& tensor_name = weight.name(); - Quantization::TensorParams tensor_params = - ParseWeightQuantization(weight); - // TODO(): FIXME - // quant_params->tensors[tensor_name].push_back(tensor_params); - length = tensor_params.scale.size(); - } - for (const auto& output : layer_proto.output()) { - const std::string& tensor_name = output.name(); - Quantization::TensorParams tensor_params = - ParseActivationQuantization(output); - if (tensor_params.scale.size() != length) { - MNN_ERROR("Output(%s) scale and weight scale length are " - "mismatch, (%d vs %d).\n", tensor_name.c_str(), - int(tensor_params.scale.size()), length); - MNN_ASSERT(false); - } - tensor_params.method = method; - quant_params->tensors[tensor_name].push_back(tensor_params); - } - } - return true; -} - -}; diff --git a/tools/converter/source/compression/PipelineBuilder.hpp b/tools/converter/source/compression/PipelineBuilder.hpp deleted file mode 100644 index f4c0bafd0..000000000 --- a/tools/converter/source/compression/PipelineBuilder.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// PipelineBuilder.hpp -// MNNConverter -// -// Created by MNN on 2020/07/28. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#ifndef MNN_CONVERTER_COMPRESSION_PIPELINE_HPP_ -#define MNN_CONVERTER_COMPRESSION_PIPELINE_HPP_ - -#include "quantization.hpp" -#include "MNN_compression.pb.h" - -typedef MNN::Compression::CompressionAlgo CompressionAlgo; -typedef MNN::Compression::LayerQuantizeParams LayerQuantizeParams; - -namespace compression { - -class PipelineBuilder; - -typedef struct Progress { - CompressionAlgo::CompressionType type; - - // TODO(): Support prune. - Quantization quant_params; -} Progress; - -class Pipeline { -public: - Pipeline() = default; - virtual ~Pipeline() = default; - - const std::vector& progress() const { - return progress_; - } - -private: - friend class PipelineBuilder; - std::vector progress_; -}; - -class PipelineBuilder { -public: - PipelineBuilder() = delete; - - explicit PipelineBuilder(const std::string& filename); - - virtual ~PipelineBuilder() = default; - - Pipeline Build() const; - -private: - bool ParsePipeline(const MNN::Compression::Pipeline& proto, - Pipeline* pipeline) const; - - bool ParseQuantization(const MNN::Compression::QuantizeParams& proto, - Quantization* quant_params) const; - - Quantization::TensorParams ParseWeightQuantization( - const LayerQuantizeParams::WeightParams& proto) const; - - Quantization::TensorParams ParseActivationQuantization( - const LayerQuantizeParams::ActivationParams& proto) const; - -private: - std::string filename_ = ""; -}; - -}; - -#endif // MNN_CONVERTER_COMPRESSION_PIPELINE_HPP_ diff --git a/tools/converter/source/compression/generated/MNN_compression.pb.cc b/tools/converter/source/compression/generated/MNN_compression.pb.cc index f2cecec9f..63f8138bb 100644 --- a/tools/converter/source/compression/generated/MNN_compression.pb.cc +++ b/tools/converter/source/compression/generated/MNN_compression.pb.cc @@ -53,6 +53,8 @@ constexpr LayerQuantizeParams_WeightParams::LayerQuantizeParams_WeightParams( ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) : scales_() , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string) + , asymmetric_(false) + , block_size_(0) , clamp_max_(127) , bits_(8) , clamp_min_(-128){} @@ -78,12 +80,29 @@ struct LayerQuantizeParams_WinogradParamsDefaultTypeInternal { }; }; PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParams_WinogradParamsDefaultTypeInternal _LayerQuantizeParams_WinogradParams_default_instance_; +constexpr LayerQuantizeParams_ConvolutionInfo::LayerQuantizeParams_ConvolutionInfo( + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) + : kernel_size_() + , input_channel_(0) + , output_channel_(0){} +struct LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal { + constexpr LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal() + : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} + ~LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal() {} + union { + LayerQuantizeParams_ConvolutionInfo _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal _LayerQuantizeParams_ConvolutionInfo_default_instance_; constexpr LayerQuantizeParams::LayerQuantizeParams( ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) : input_() , weight_() , output_() + , op_name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string) + , subgraph_name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string) , wino_params_(nullptr) + , conv_(nullptr) , method_(0) {} struct LayerQuantizeParamsDefaultTypeInternal { @@ -158,7 +177,8 @@ constexpr Pipeline::Pipeline( ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized) : algo_() , version_(nullptr) - , mnn_uuid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){} + , mnn_uuid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string) + , for_guide_(false){} struct PipelineDefaultTypeInternal { constexpr PipelineDefaultTypeInternal() : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {} @@ -170,7 +190,7 @@ struct PipelineDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PipelineDefaultTypeInternal _Pipeline_default_instance_; } // namespace Compression } // namespace MNN -static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_MNN_5fcompression_2eproto[10]; +static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_MNN_5fcompression_2eproto[11]; static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_MNN_5fcompression_2eproto[4]; static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_MNN_5fcompression_2eproto = nullptr; @@ -214,11 +234,15 @@ const uint32_t TableStruct_MNN_5fcompression_2eproto::offsets[] PROTOBUF_SECTION PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, scales_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, clamp_min_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, clamp_max_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, asymmetric_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WeightParams, block_size_), 0, - 2, + 4, ~0u, + 5, 3, 1, + 2, PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, _has_bits_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, _internal_metadata_), ~0u, // no _extensions_ @@ -229,6 +253,18 @@ const uint32_t TableStruct_MNN_5fcompression_2eproto::offsets[] PROTOBUF_SECTION PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_WinogradParams, units_attr_), 0, ~0u, + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, _has_bits_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, input_channel_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, output_channel_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo, kernel_size_), + 0, + 1, + ~0u, PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, _has_bits_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, _internal_metadata_), ~0u, // no _extensions_ @@ -240,11 +276,17 @@ const uint32_t TableStruct_MNN_5fcompression_2eproto::offsets[] PROTOBUF_SECTION PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, output_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, method_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, wino_params_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, op_name_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, subgraph_name_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::LayerQuantizeParams, conv_), ~0u, ~0u, ~0u, - 1, + 4, + 2, 0, + 1, + 3, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::MNN::Compression::LevelPrunerParams, _internal_metadata_), ~0u, // no _extensions_ @@ -297,21 +339,24 @@ const uint32_t TableStruct_MNN_5fcompression_2eproto::offsets[] PROTOBUF_SECTION PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, version_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, algo_), PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, mnn_uuid_), + PROTOBUF_FIELD_OFFSET(::MNN::Compression::Pipeline, for_guide_), 0, ~0u, 1, + 2, }; static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, 8, -1, sizeof(::MNN::Compression::QuantizeParams)}, { 10, 22, -1, sizeof(::MNN::Compression::LayerQuantizeParams_ActivationParams)}, - { 28, 39, -1, sizeof(::MNN::Compression::LayerQuantizeParams_WeightParams)}, - { 44, 52, -1, sizeof(::MNN::Compression::LayerQuantizeParams_WinogradParams)}, - { 54, 65, -1, sizeof(::MNN::Compression::LayerQuantizeParams)}, - { 70, -1, -1, sizeof(::MNN::Compression::LevelPrunerParams)}, - { 79, -1, -1, sizeof(::MNN::Compression::SIMDOCPrunerParams)}, - { 89, 98, -1, sizeof(::MNN::Compression::PruneParams)}, - { 101, 110, -1, sizeof(::MNN::Compression::CompressionAlgo)}, - { 113, 122, -1, sizeof(::MNN::Compression::Pipeline)}, + { 28, 41, -1, sizeof(::MNN::Compression::LayerQuantizeParams_WeightParams)}, + { 48, 56, -1, sizeof(::MNN::Compression::LayerQuantizeParams_WinogradParams)}, + { 58, 67, -1, sizeof(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo)}, + { 70, 84, -1, sizeof(::MNN::Compression::LayerQuantizeParams)}, + { 92, -1, -1, sizeof(::MNN::Compression::LevelPrunerParams)}, + { 101, -1, -1, sizeof(::MNN::Compression::SIMDOCPrunerParams)}, + { 111, 120, -1, sizeof(::MNN::Compression::PruneParams)}, + { 123, 132, -1, sizeof(::MNN::Compression::CompressionAlgo)}, + { 135, 145, -1, sizeof(::MNN::Compression::Pipeline)}, }; static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = { @@ -319,6 +364,7 @@ static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = reinterpret_cast(&::MNN::Compression::_LayerQuantizeParams_ActivationParams_default_instance_), reinterpret_cast(&::MNN::Compression::_LayerQuantizeParams_WeightParams_default_instance_), reinterpret_cast(&::MNN::Compression::_LayerQuantizeParams_WinogradParams_default_instance_), + reinterpret_cast(&::MNN::Compression::_LayerQuantizeParams_ConvolutionInfo_default_instance_), reinterpret_cast(&::MNN::Compression::_LayerQuantizeParams_default_instance_), reinterpret_cast(&::MNN::Compression::_LevelPrunerParams_default_instance_), reinterpret_cast(&::MNN::Compression::_SIMDOCPrunerParams_default_instance_), @@ -335,7 +381,7 @@ const char descriptor_table_protodef_MNN_5fcompression_2eproto[] PROTOBUF_SECTIO "$.MNN.Compression.LayerQuantizeParams\"U\n" "\tRoundMode\022\026\n\022ROUND_TOWARDS_ZERO\020\000\022\030\n\024RO" "UND_AWAY_FROM_ZERO\020\001\022\026\n\022ROUND_HALF_TO_EV" - "EN\020\002\"\352\005\n\023LayerQuantizeParams\022D\n\005input\030\001 " + "EN\020\002\"\340\007\n\023LayerQuantizeParams\022D\n\005input\030\001 " "\003(\01325.MNN.Compression.LayerQuantizeParam" "s.ActivationParams\022A\n\006weight\030\002 \003(\01321.MNN" ".Compression.LayerQuantizeParams.WeightP" @@ -344,42 +390,48 @@ const char descriptor_table_protodef_MNN_5fcompression_2eproto[] PROTOBUF_SECTIO "method\030\004 \001(\01620.MNN.Compression.LayerQuan" "tizeParams.QuantMethod:\003QAT\022H\n\013wino_para" "ms\030\005 \001(\01323.MNN.Compression.LayerQuantize" - "Params.WinogradParams\032\211\001\n\020ActivationPara" - "ms\022\014\n\004name\030\001 \002(\t\022\017\n\004bits\030\002 \001(\005:\0018\022\016\n\006sca" - "les\030\003 \003(\002\022\025\n\nzero_point\030\004 \001(\005:\0010\022\027\n\tclam" - "p_min\030\005 \001(\005:\004-128\022\026\n\tclamp_max\030\006 \001(\005:\00312" - "7\032n\n\014WeightParams\022\014\n\004name\030\001 \002(\t\022\017\n\004bits\030" - "\002 \001(\005:\0018\022\016\n\006scales\030\003 \003(\002\022\027\n\tclamp_min\030\004 " - "\001(\005:\004-128\022\026\n\tclamp_max\030\005 \001(\005:\003127\0328\n\016Win" - "ogradParams\022\022\n\007version\030\001 \002(\005:\0010\022\022\n\nunits" - "_attr\030\004 \003(\005\"<\n\013QuantMethod\022\007\n\003QAT\020\000\022\021\n\rO" - "verflowAware\020\001\022\021\n\rWinogradAware\020\002\"[\n\021Lev" - "elPrunerParams\022\033\n\023weight_tensor_names\030\001 " - "\003(\t\022\024\n\014prune_ratios\030\002 \003(\002\022\023\n\013layer_names" - "\030\003 \003(\t\"o\n\022SIMDOCPrunerParams\022\033\n\023weight_t" - "ensor_names\030\001 \003(\t\022\024\n\014prune_ratios\030\002 \003(\002\022" - "\023\n\013layer_names\030\003 \003(\t\022\021\n\toc_blocks\030\004 \003(\005\"" - "\202\002\n\013PruneParams\022<\n\004type\030\001 \001(\0162&.MNN.Comp" - "ression.PruneParams.PruneType:\006RANDOM\022\?\n" - "\023level_pruner_params\030\002 \001(\0132\".MNN.Compres" - "sion.LevelPrunerParams\022B\n\025simd_oc_pruner" - "_params\030\003 \001(\0132#.MNN.Compression.SIMDOCPr" - "unerParams\"0\n\tPruneType\022\n\n\006RANDOM\020\000\022\013\n\007S" - "IMD_OC\020\001\022\n\n\006FILTER\020\002\"\362\001\n\017CompressionAlgo" - "\022H\n\004type\030\001 \001(\01620.MNN.Compression.Compres" - "sionAlgo.CompressionType:\010QUANTIZE\0225\n\014qu" - "ant_params\030\002 \001(\0132\037.MNN.Compression.Quant" - "izeParams\0222\n\014prune_params\030\003 \001(\0132\034.MNN.Co" - "mpression.PruneParams\"*\n\017CompressionType" - "\022\014\n\010QUANTIZE\020\000\022\t\n\005PRUNE\020\001\"d\n\010Pipeline\022\026\n" - "\007version\030\001 \002(\t:\0050.0.0\022.\n\004algo\030\002 \003(\0132 .MN" - "N.Compression.CompressionAlgo\022\020\n\010mnn_uui" - "d\030\003 \001(\t" + "Params.WinogradParams\022\017\n\007op_name\030\006 \001(\t\022\025" + "\n\rsubgraph_name\030\007 \001(\t\022B\n\004conv\030\010 \001(\01324.MN" + "N.Compression.LayerQuantizeParams.Convol" + "utionInfo\032\211\001\n\020ActivationParams\022\014\n\004name\030\001" + " \002(\t\022\017\n\004bits\030\002 \001(\005:\0018\022\016\n\006scales\030\003 \003(\002\022\025\n" + "\nzero_point\030\004 \001(\005:\0010\022\027\n\tclamp_min\030\005 \001(\005:" + "\004-128\022\026\n\tclamp_max\030\006 \001(\005:\003127\032\240\001\n\014Weight" + "Params\022\014\n\004name\030\001 \002(\t\022\017\n\004bits\030\002 \001(\005:\0018\022\016\n" + "\006scales\030\003 \003(\002\022\027\n\tclamp_min\030\004 \001(\005:\004-128\022\026" + "\n\tclamp_max\030\005 \001(\005:\003127\022\031\n\nasymmetric\030\006 \001" + "(\010:\005false\022\025\n\nblock_size\030\007 \001(\005:\0010\0328\n\016Wino" + "gradParams\022\022\n\007version\030\001 \002(\005:\0010\022\022\n\nunits_" + "attr\030\004 \003(\005\032U\n\017ConvolutionInfo\022\025\n\rinput_c" + "hannel\030\001 \002(\005\022\026\n\016output_channel\030\002 \002(\005\022\023\n\013" + "kernel_size\030\003 \003(\005\"<\n\013QuantMethod\022\007\n\003QAT\020" + "\000\022\021\n\rOverflowAware\020\001\022\021\n\rWinogradAware\020\002\"" + "[\n\021LevelPrunerParams\022\033\n\023weight_tensor_na" + "mes\030\001 \003(\t\022\024\n\014prune_ratios\030\002 \003(\002\022\023\n\013layer" + "_names\030\003 \003(\t\"o\n\022SIMDOCPrunerParams\022\033\n\023we" + "ight_tensor_names\030\001 \003(\t\022\024\n\014prune_ratios\030" + "\002 \003(\002\022\023\n\013layer_names\030\003 \003(\t\022\021\n\toc_blocks\030" + "\004 \003(\005\"\202\002\n\013PruneParams\022<\n\004type\030\001 \001(\0162&.MN" + "N.Compression.PruneParams.PruneType:\006RAN" + "DOM\022\?\n\023level_pruner_params\030\002 \001(\0132\".MNN.C" + "ompression.LevelPrunerParams\022B\n\025simd_oc_" + "pruner_params\030\003 \001(\0132#.MNN.Compression.SI" + "MDOCPrunerParams\"0\n\tPruneType\022\n\n\006RANDOM\020" + "\000\022\013\n\007SIMD_OC\020\001\022\n\n\006FILTER\020\002\"\362\001\n\017Compressi" + "onAlgo\022H\n\004type\030\001 \001(\01620.MNN.Compression.C" + "ompressionAlgo.CompressionType:\010QUANTIZE" + "\0225\n\014quant_params\030\002 \001(\0132\037.MNN.Compression" + ".QuantizeParams\0222\n\014prune_params\030\003 \001(\0132\034." + "MNN.Compression.PruneParams\"*\n\017Compressi" + "onType\022\014\n\010QUANTIZE\020\000\022\t\n\005PRUNE\020\001\"~\n\010Pipel" + "ine\022\026\n\007version\030\001 \002(\t:\0050.0.0\022.\n\004algo\030\002 \003(" + "\0132 .MNN.Compression.CompressionAlgo\022\020\n\010m" + "nn_uuid\030\003 \001(\t\022\030\n\tfor_guide\030\004 \001(\010:\005false" ; static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_MNN_5fcompression_2eproto_once; const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_MNN_5fcompression_2eproto = { - false, false, 1847, descriptor_table_protodef_MNN_5fcompression_2eproto, "MNN_compression.proto", - &descriptor_table_MNN_5fcompression_2eproto_once, nullptr, 0, 10, + false, false, 2119, descriptor_table_protodef_MNN_5fcompression_2eproto, "MNN_compression.proto", + &descriptor_table_MNN_5fcompression_2eproto_once, nullptr, 0, 11, schemas, file_default_instances, TableStruct_MNN_5fcompression_2eproto::offsets, file_level_metadata_MNN_5fcompression_2eproto, file_level_enum_descriptors_MNN_5fcompression_2eproto, file_level_service_descriptors_MNN_5fcompression_2eproto, }; @@ -1107,14 +1159,20 @@ class LayerQuantizeParams_WeightParams::_Internal { (*has_bits)[0] |= 1u; } static void set_has_bits(HasBits* has_bits) { - (*has_bits)[0] |= 4u; + (*has_bits)[0] |= 16u; } static void set_has_clamp_min(HasBits* has_bits) { - (*has_bits)[0] |= 8u; + (*has_bits)[0] |= 32u; } static void set_has_clamp_max(HasBits* has_bits) { + (*has_bits)[0] |= 8u; + } + static void set_has_asymmetric(HasBits* has_bits) { (*has_bits)[0] |= 2u; } + static void set_has_block_size(HasBits* has_bits) { + (*has_bits)[0] |= 4u; + } static bool MissingRequiredFields(const HasBits& has_bits) { return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0; } @@ -1143,9 +1201,9 @@ LayerQuantizeParams_WeightParams::LayerQuantizeParams_WeightParams(const LayerQu name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(), GetArenaForAllocation()); } - ::memcpy(&clamp_max_, &from.clamp_max_, + ::memcpy(&asymmetric_, &from.asymmetric_, static_cast(reinterpret_cast(&clamp_min_) - - reinterpret_cast(&clamp_max_)) + sizeof(clamp_min_)); + reinterpret_cast(&asymmetric_)) + sizeof(clamp_min_)); // @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams.WeightParams) } @@ -1154,6 +1212,10 @@ name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlready #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&asymmetric_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&block_size_) - + reinterpret_cast(&asymmetric_)) + sizeof(block_size_)); clamp_max_ = 127; bits_ = 8; clamp_min_ = -128; @@ -1189,10 +1251,13 @@ void LayerQuantizeParams_WeightParams::Clear() { scales_.Clear(); cached_has_bits = _has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { - if (cached_has_bits & 0x00000001u) { - name_.ClearNonDefaultToEmpty(); - } + if (cached_has_bits & 0x00000001u) { + name_.ClearNonDefaultToEmpty(); + } + if (cached_has_bits & 0x0000003eu) { + ::memset(&asymmetric_, 0, static_cast( + reinterpret_cast(&block_size_) - + reinterpret_cast(&asymmetric_)) + sizeof(block_size_)); clamp_max_ = 127; bits_ = 8; clamp_min_ = -128; @@ -1263,6 +1328,24 @@ const char* LayerQuantizeParams_WeightParams::_InternalParse(const char* ptr, :: } else goto handle_unusual; continue; + // optional bool asymmetric = 6 [default = false]; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { + _Internal::set_has_asymmetric(&has_bits); + asymmetric_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // optional int32 block_size = 7 [default = 0]; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { + _Internal::set_has_block_size(&has_bits); + block_size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -1305,7 +1388,7 @@ uint8_t* LayerQuantizeParams_WeightParams::_InternalSerialize( } // optional int32 bits = 2 [default = 8]; - if (cached_has_bits & 0x00000004u) { + if (cached_has_bits & 0x00000010u) { target = stream->EnsureSpace(target); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_bits(), target); } @@ -1317,17 +1400,29 @@ uint8_t* LayerQuantizeParams_WeightParams::_InternalSerialize( } // optional int32 clamp_min = 4 [default = -128]; - if (cached_has_bits & 0x00000008u) { + if (cached_has_bits & 0x00000020u) { target = stream->EnsureSpace(target); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_clamp_min(), target); } // optional int32 clamp_max = 5 [default = 127]; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000008u) { target = stream->EnsureSpace(target); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(5, this->_internal_clamp_max(), target); } + // optional bool asymmetric = 6 [default = false]; + if (cached_has_bits & 0x00000002u) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->_internal_asymmetric(), target); + } + + // optional int32 block_size = 7 [default = 0]; + if (cached_has_bits & 0x00000004u) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(7, this->_internal_block_size(), target); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -1360,19 +1455,29 @@ size_t LayerQuantizeParams_WeightParams::ByteSizeLong() const { } cached_has_bits = _has_bits_[0]; - if (cached_has_bits & 0x0000000eu) { - // optional int32 clamp_max = 5 [default = 127]; + if (cached_has_bits & 0x0000003eu) { + // optional bool asymmetric = 6 [default = false]; if (cached_has_bits & 0x00000002u) { + total_size += 1 + 1; + } + + // optional int32 block_size = 7 [default = 0]; + if (cached_has_bits & 0x00000004u) { + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_block_size()); + } + + // optional int32 clamp_max = 5 [default = 127]; + if (cached_has_bits & 0x00000008u) { total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_clamp_max()); } // optional int32 bits = 2 [default = 8]; - if (cached_has_bits & 0x00000004u) { + if (cached_has_bits & 0x00000010u) { total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_bits()); } // optional int32 clamp_min = 4 [default = -128]; - if (cached_has_bits & 0x00000008u) { + if (cached_has_bits & 0x00000020u) { total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_clamp_min()); } @@ -1401,17 +1506,23 @@ void LayerQuantizeParams_WeightParams::MergeFrom(const LayerQuantizeParams_Weigh scales_.MergeFrom(from.scales_); cached_has_bits = from._has_bits_[0]; - if (cached_has_bits & 0x0000000fu) { + if (cached_has_bits & 0x0000003fu) { if (cached_has_bits & 0x00000001u) { _internal_set_name(from._internal_name()); } if (cached_has_bits & 0x00000002u) { - clamp_max_ = from.clamp_max_; + asymmetric_ = from.asymmetric_; } if (cached_has_bits & 0x00000004u) { - bits_ = from.bits_; + block_size_ = from.block_size_; } if (cached_has_bits & 0x00000008u) { + clamp_max_ = from.clamp_max_; + } + if (cached_has_bits & 0x00000010u) { + bits_ = from.bits_; + } + if (cached_has_bits & 0x00000020u) { clamp_min_ = from.clamp_min_; } _has_bits_[0] |= cached_has_bits; @@ -1443,6 +1554,12 @@ void LayerQuantizeParams_WeightParams::InternalSwap(LayerQuantizeParams_WeightPa &name_, lhs_arena, &other->name_, rhs_arena ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_WeightParams, block_size_) + + sizeof(LayerQuantizeParams_WeightParams::block_size_) + - PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_WeightParams, asymmetric_)>( + reinterpret_cast(&asymmetric_), + reinterpret_cast(&other->asymmetric_)); swap(clamp_max_, other->clamp_max_); swap(bits_, other->bits_); swap(clamp_min_, other->clamp_min_); @@ -1684,22 +1801,326 @@ ::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams_WinogradParams::GetMetadat // =================================================================== +class LayerQuantizeParams_ConvolutionInfo::_Internal { + public: + using HasBits = decltype(std::declval()._has_bits_); + static void set_has_input_channel(HasBits* has_bits) { + (*has_bits)[0] |= 1u; + } + static void set_has_output_channel(HasBits* has_bits) { + (*has_bits)[0] |= 2u; + } + static bool MissingRequiredFields(const HasBits& has_bits) { + return ((has_bits[0] & 0x00000003) ^ 0x00000003) != 0; + } +}; + +LayerQuantizeParams_ConvolutionInfo::LayerQuantizeParams_ConvolutionInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned), + kernel_size_(arena) { + SharedCtor(); + if (!is_message_owned) { + RegisterArenaDtor(arena); + } + // @@protoc_insertion_point(arena_constructor:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) +} +LayerQuantizeParams_ConvolutionInfo::LayerQuantizeParams_ConvolutionInfo(const LayerQuantizeParams_ConvolutionInfo& from) + : ::PROTOBUF_NAMESPACE_ID::Message(), + _has_bits_(from._has_bits_), + kernel_size_(from.kernel_size_) { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + ::memcpy(&input_channel_, &from.input_channel_, + static_cast(reinterpret_cast(&output_channel_) - + reinterpret_cast(&input_channel_)) + sizeof(output_channel_)); + // @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) +} + +inline void LayerQuantizeParams_ConvolutionInfo::SharedCtor() { +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&input_channel_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&output_channel_) - + reinterpret_cast(&input_channel_)) + sizeof(output_channel_)); +} + +LayerQuantizeParams_ConvolutionInfo::~LayerQuantizeParams_ConvolutionInfo() { + // @@protoc_insertion_point(destructor:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + if (GetArenaForAllocation() != nullptr) return; + SharedDtor(); + _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +inline void LayerQuantizeParams_ConvolutionInfo::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); +} + +void LayerQuantizeParams_ConvolutionInfo::ArenaDtor(void* object) { + LayerQuantizeParams_ConvolutionInfo* _this = reinterpret_cast< LayerQuantizeParams_ConvolutionInfo* >(object); + (void)_this; +} +void LayerQuantizeParams_ConvolutionInfo::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) { +} +void LayerQuantizeParams_ConvolutionInfo::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void LayerQuantizeParams_ConvolutionInfo::Clear() { +// @@protoc_insertion_point(message_clear_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + kernel_size_.Clear(); + cached_has_bits = _has_bits_[0]; + if (cached_has_bits & 0x00000003u) { + ::memset(&input_channel_, 0, static_cast( + reinterpret_cast(&output_channel_) - + reinterpret_cast(&input_channel_)) + sizeof(output_channel_)); + } + _has_bits_.Clear(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* LayerQuantizeParams_ConvolutionInfo::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + _Internal::HasBits has_bits{}; + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag); + switch (tag >> 3) { + // required int32 input_channel = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 8)) { + _Internal::set_has_input_channel(&has_bits); + input_channel_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // required int32 output_channel = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + _Internal::set_has_output_channel(&has_bits); + output_channel_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // repeated int32 kernel_size = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + ptr -= 1; + do { + ptr += 1; + _internal_add_kernel_size(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr)); + CHK_(ptr); + if (!ctx->DataAvailable(ptr)) break; + } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<24>(ptr)); + } else if (static_cast(tag) == 26) { + ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_kernel_size(), ptr, ctx); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + _has_bits_.Or(has_bits); + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* LayerQuantizeParams_ConvolutionInfo::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + cached_has_bits = _has_bits_[0]; + // required int32 input_channel = 1; + if (cached_has_bits & 0x00000001u) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_input_channel(), target); + } + + // required int32 output_channel = 2; + if (cached_has_bits & 0x00000002u) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_output_channel(), target); + } + + // repeated int32 kernel_size = 3; + for (int i = 0, n = this->_internal_kernel_size_size(); i < n; i++) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_kernel_size(i), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + return target; +} + +size_t LayerQuantizeParams_ConvolutionInfo::RequiredFieldsByteSizeFallback() const { +// @@protoc_insertion_point(required_fields_byte_size_fallback_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + size_t total_size = 0; + + if (_internal_has_input_channel()) { + // required int32 input_channel = 1; + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_input_channel()); + } + + if (_internal_has_output_channel()) { + // required int32 output_channel = 2; + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_output_channel()); + } + + return total_size; +} +size_t LayerQuantizeParams_ConvolutionInfo::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + size_t total_size = 0; + + if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) { // All required fields are present. + // required int32 input_channel = 1; + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_input_channel()); + + // required int32 output_channel = 2; + total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32SizePlusOne(this->_internal_output_channel()); + + } else { + total_size += RequiredFieldsByteSizeFallback(); + } + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // repeated int32 kernel_size = 3; + { + size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + Int32Size(this->kernel_size_); + total_size += 1 * + ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(this->_internal_kernel_size_size()); + total_size += data_size; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LayerQuantizeParams_ConvolutionInfo::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + LayerQuantizeParams_ConvolutionInfo::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LayerQuantizeParams_ConvolutionInfo::GetClassData() const { return &_class_data_; } + +void LayerQuantizeParams_ConvolutionInfo::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void LayerQuantizeParams_ConvolutionInfo::MergeFrom(const LayerQuantizeParams_ConvolutionInfo& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + kernel_size_.MergeFrom(from.kernel_size_); + cached_has_bits = from._has_bits_[0]; + if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000001u) { + input_channel_ = from.input_channel_; + } + if (cached_has_bits & 0x00000002u) { + output_channel_ = from.output_channel_; + } + _has_bits_[0] |= cached_has_bits; + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void LayerQuantizeParams_ConvolutionInfo::CopyFrom(const LayerQuantizeParams_ConvolutionInfo& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool LayerQuantizeParams_ConvolutionInfo::IsInitialized() const { + if (_Internal::MissingRequiredFields(_has_bits_)) return false; + return true; +} + +void LayerQuantizeParams_ConvolutionInfo::InternalSwap(LayerQuantizeParams_ConvolutionInfo* other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_has_bits_[0], other->_has_bits_[0]); + kernel_size_.InternalSwap(&other->kernel_size_); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_ConvolutionInfo, output_channel_) + + sizeof(LayerQuantizeParams_ConvolutionInfo::output_channel_) + - PROTOBUF_FIELD_OFFSET(LayerQuantizeParams_ConvolutionInfo, input_channel_)>( + reinterpret_cast(&input_channel_), + reinterpret_cast(&other->input_channel_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams_ConvolutionInfo::GetMetadata() const { + return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( + &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, + file_level_metadata_MNN_5fcompression_2eproto[4]); +} + +// =================================================================== + class LayerQuantizeParams::_Internal { public: using HasBits = decltype(std::declval()._has_bits_); static void set_has_method(HasBits* has_bits) { - (*has_bits)[0] |= 2u; + (*has_bits)[0] |= 16u; } static const ::MNN::Compression::LayerQuantizeParams_WinogradParams& wino_params(const LayerQuantizeParams* msg); static void set_has_wino_params(HasBits* has_bits) { + (*has_bits)[0] |= 4u; + } + static void set_has_op_name(HasBits* has_bits) { (*has_bits)[0] |= 1u; } + static void set_has_subgraph_name(HasBits* has_bits) { + (*has_bits)[0] |= 2u; + } + static const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& conv(const LayerQuantizeParams* msg); + static void set_has_conv(HasBits* has_bits) { + (*has_bits)[0] |= 8u; + } }; const ::MNN::Compression::LayerQuantizeParams_WinogradParams& LayerQuantizeParams::_Internal::wino_params(const LayerQuantizeParams* msg) { return *msg->wino_params_; } +const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& +LayerQuantizeParams::_Internal::conv(const LayerQuantizeParams* msg) { + return *msg->conv_; +} LayerQuantizeParams::LayerQuantizeParams(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned) : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned), @@ -1719,16 +2140,45 @@ LayerQuantizeParams::LayerQuantizeParams(const LayerQuantizeParams& from) weight_(from.weight_), output_(from.output_) { _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + op_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + op_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (from._internal_has_op_name()) { + op_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_op_name(), + GetArenaForAllocation()); + } + subgraph_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + subgraph_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (from._internal_has_subgraph_name()) { + subgraph_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_subgraph_name(), + GetArenaForAllocation()); + } if (from._internal_has_wino_params()) { wino_params_ = new ::MNN::Compression::LayerQuantizeParams_WinogradParams(*from.wino_params_); } else { wino_params_ = nullptr; } + if (from._internal_has_conv()) { + conv_ = new ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo(*from.conv_); + } else { + conv_ = nullptr; + } method_ = from.method_; // @@protoc_insertion_point(copy_constructor:MNN.Compression.LayerQuantizeParams) } inline void LayerQuantizeParams::SharedCtor() { +op_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + op_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +subgraph_name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + subgraph_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING ::memset(reinterpret_cast(this) + static_cast( reinterpret_cast(&wino_params_) - reinterpret_cast(this)), 0, static_cast(reinterpret_cast(&method_) - @@ -1744,7 +2194,10 @@ LayerQuantizeParams::~LayerQuantizeParams() { inline void LayerQuantizeParams::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + op_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); + subgraph_name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited()); if (this != internal_default_instance()) delete wino_params_; + if (this != internal_default_instance()) delete conv_; } void LayerQuantizeParams::ArenaDtor(void* object) { @@ -1767,9 +2220,21 @@ void LayerQuantizeParams::Clear() { weight_.Clear(); output_.Clear(); cached_has_bits = _has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - GOOGLE_DCHECK(wino_params_ != nullptr); - wino_params_->Clear(); + if (cached_has_bits & 0x0000000fu) { + if (cached_has_bits & 0x00000001u) { + op_name_.ClearNonDefaultToEmpty(); + } + if (cached_has_bits & 0x00000002u) { + subgraph_name_.ClearNonDefaultToEmpty(); + } + if (cached_has_bits & 0x00000004u) { + GOOGLE_DCHECK(wino_params_ != nullptr); + wino_params_->Clear(); + } + if (cached_has_bits & 0x00000008u) { + GOOGLE_DCHECK(conv_ != nullptr); + conv_->Clear(); + } } method_ = 0; _has_bits_.Clear(); @@ -1843,6 +2308,38 @@ const char* LayerQuantizeParams::_InternalParse(const char* ptr, ::PROTOBUF_NAME } else goto handle_unusual; continue; + // optional string op_name = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 50)) { + auto str = _internal_mutable_op_name(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + #ifndef NDEBUG + ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LayerQuantizeParams.op_name"); + #endif // !NDEBUG + CHK_(ptr); + } else + goto handle_unusual; + continue; + // optional string subgraph_name = 7; + case 7: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 58)) { + auto str = _internal_mutable_subgraph_name(); + ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx); + #ifndef NDEBUG + ::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "MNN.Compression.LayerQuantizeParams.subgraph_name"); + #endif // !NDEBUG + CHK_(ptr); + } else + goto handle_unusual; + continue; + // optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 66)) { + ptr = ctx->ParseMessage(_internal_mutable_conv(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -1899,20 +2396,48 @@ uint8_t* LayerQuantizeParams::_InternalSerialize( cached_has_bits = _has_bits_[0]; // optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT]; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000010u) { target = stream->EnsureSpace(target); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray( 4, this->_internal_method(), target); } // optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5; - if (cached_has_bits & 0x00000001u) { + if (cached_has_bits & 0x00000004u) { target = stream->EnsureSpace(target); target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessage( 5, _Internal::wino_params(this), target, stream); } + // optional string op_name = 6; + if (cached_has_bits & 0x00000001u) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField( + this->_internal_op_name().data(), static_cast(this->_internal_op_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE, + "MNN.Compression.LayerQuantizeParams.op_name"); + target = stream->WriteStringMaybeAliased( + 6, this->_internal_op_name(), target); + } + + // optional string subgraph_name = 7; + if (cached_has_bits & 0x00000002u) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::VerifyUTF8StringNamedField( + this->_internal_subgraph_name().data(), static_cast(this->_internal_subgraph_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SERIALIZE, + "MNN.Compression.LayerQuantizeParams.subgraph_name"); + target = stream->WriteStringMaybeAliased( + 7, this->_internal_subgraph_name(), target); + } + + // optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8; + if (cached_has_bits & 0x00000008u) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage( + 8, _Internal::conv(this), target, stream); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -1951,16 +2476,37 @@ size_t LayerQuantizeParams::ByteSizeLong() const { } cached_has_bits = _has_bits_[0]; - if (cached_has_bits & 0x00000003u) { - // optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5; + if (cached_has_bits & 0x0000001fu) { + // optional string op_name = 6; if (cached_has_bits & 0x00000001u) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_op_name()); + } + + // optional string subgraph_name = 7; + if (cached_has_bits & 0x00000002u) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_subgraph_name()); + } + + // optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5; + if (cached_has_bits & 0x00000004u) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *wino_params_); } + // optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8; + if (cached_has_bits & 0x00000008u) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *conv_); + } + // optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT]; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000010u) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_method()); } @@ -1992,11 +2538,20 @@ void LayerQuantizeParams::MergeFrom(const LayerQuantizeParams& from) { weight_.MergeFrom(from.weight_); output_.MergeFrom(from.output_); cached_has_bits = from._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x0000001fu) { if (cached_has_bits & 0x00000001u) { - _internal_mutable_wino_params()->::MNN::Compression::LayerQuantizeParams_WinogradParams::MergeFrom(from._internal_wino_params()); + _internal_set_op_name(from._internal_op_name()); } if (cached_has_bits & 0x00000002u) { + _internal_set_subgraph_name(from._internal_subgraph_name()); + } + if (cached_has_bits & 0x00000004u) { + _internal_mutable_wino_params()->::MNN::Compression::LayerQuantizeParams_WinogradParams::MergeFrom(from._internal_wino_params()); + } + if (cached_has_bits & 0x00000008u) { + _internal_mutable_conv()->::MNN::Compression::LayerQuantizeParams_ConvolutionInfo::MergeFrom(from._internal_conv()); + } + if (cached_has_bits & 0x00000010u) { method_ = from.method_; } _has_bits_[0] |= cached_has_bits; @@ -2021,16 +2576,31 @@ bool LayerQuantizeParams::IsInitialized() const { if (_internal_has_wino_params()) { if (!wino_params_->IsInitialized()) return false; } + if (_internal_has_conv()) { + if (!conv_->IsInitialized()) return false; + } return true; } void LayerQuantizeParams::InternalSwap(LayerQuantizeParams* other) { using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); swap(_has_bits_[0], other->_has_bits_[0]); input_.InternalSwap(&other->input_); weight_.InternalSwap(&other->weight_); output_.InternalSwap(&other->output_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + &op_name_, lhs_arena, + &other->op_name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), + &subgraph_name_, lhs_arena, + &other->subgraph_name_, rhs_arena + ); ::PROTOBUF_NAMESPACE_ID::internal::memswap< PROTOBUF_FIELD_OFFSET(LayerQuantizeParams, method_) + sizeof(LayerQuantizeParams::method_) @@ -2042,7 +2612,7 @@ void LayerQuantizeParams::InternalSwap(LayerQuantizeParams* other) { ::PROTOBUF_NAMESPACE_ID::Metadata LayerQuantizeParams::GetMetadata() const { return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, - file_level_metadata_MNN_5fcompression_2eproto[4]); + file_level_metadata_MNN_5fcompression_2eproto[5]); } // =================================================================== @@ -2310,7 +2880,7 @@ void LevelPrunerParams::InternalSwap(LevelPrunerParams* other) { ::PROTOBUF_NAMESPACE_ID::Metadata LevelPrunerParams::GetMetadata() const { return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, - file_level_metadata_MNN_5fcompression_2eproto[5]); + file_level_metadata_MNN_5fcompression_2eproto[6]); } // =================================================================== @@ -2614,7 +3184,7 @@ void SIMDOCPrunerParams::InternalSwap(SIMDOCPrunerParams* other) { ::PROTOBUF_NAMESPACE_ID::Metadata SIMDOCPrunerParams::GetMetadata() const { return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, - file_level_metadata_MNN_5fcompression_2eproto[6]); + file_level_metadata_MNN_5fcompression_2eproto[7]); } // =================================================================== @@ -2915,7 +3485,7 @@ void PruneParams::InternalSwap(PruneParams* other) { ::PROTOBUF_NAMESPACE_ID::Metadata PruneParams::GetMetadata() const { return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, - file_level_metadata_MNN_5fcompression_2eproto[7]); + file_level_metadata_MNN_5fcompression_2eproto[8]); } // =================================================================== @@ -3219,7 +3789,7 @@ void CompressionAlgo::InternalSwap(CompressionAlgo* other) { ::PROTOBUF_NAMESPACE_ID::Metadata CompressionAlgo::GetMetadata() const { return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, - file_level_metadata_MNN_5fcompression_2eproto[8]); + file_level_metadata_MNN_5fcompression_2eproto[9]); } // =================================================================== @@ -3233,6 +3803,9 @@ class Pipeline::_Internal { static void set_has_mnn_uuid(HasBits* has_bits) { (*has_bits)[0] |= 2u; } + static void set_has_for_guide(HasBits* has_bits) { + (*has_bits)[0] |= 4u; + } static bool MissingRequiredFields(const HasBits& has_bits) { return ((has_bits[0] & 0x00000001) ^ 0x00000001) != 0; } @@ -3267,6 +3840,7 @@ Pipeline::Pipeline(const Pipeline& from) mnn_uuid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_mnn_uuid(), GetArenaForAllocation()); } + for_guide_ = from.for_guide_; // @@protoc_insertion_point(copy_constructor:MNN.Compression.Pipeline) } @@ -3276,6 +3850,7 @@ mnn_uuid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlr #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING mnn_uuid_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +for_guide_ = false; } Pipeline::~Pipeline() { @@ -3317,6 +3892,7 @@ void Pipeline::Clear() { mnn_uuid_.ClearNonDefaultToEmpty(); } } + for_guide_ = false; _has_bits_.Clear(); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } @@ -3365,6 +3941,15 @@ const char* Pipeline::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::i } else goto handle_unusual; continue; + // optional bool for_guide = 4 [default = false]; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { + _Internal::set_has_for_guide(&has_bits); + for_guide_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -3424,6 +4009,12 @@ uint8_t* Pipeline::_InternalSerialize( 3, this->_internal_mnn_uuid(), target); } + // optional bool for_guide = 4 [default = false]; + if (cached_has_bits & 0x00000004u) { + target = stream->EnsureSpace(target); + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(4, this->_internal_for_guide(), target); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -3453,14 +4044,21 @@ size_t Pipeline::ByteSizeLong() const { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg); } - // optional string mnn_uuid = 3; cached_has_bits = _has_bits_[0]; - if (cached_has_bits & 0x00000002u) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( - this->_internal_mnn_uuid()); - } + if (cached_has_bits & 0x00000006u) { + // optional string mnn_uuid = 3; + if (cached_has_bits & 0x00000002u) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_mnn_uuid()); + } + // optional bool for_guide = 4 [default = false]; + if (cached_has_bits & 0x00000004u) { + total_size += 1 + 1; + } + + } return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); } @@ -3485,13 +4083,17 @@ void Pipeline::MergeFrom(const Pipeline& from) { algo_.MergeFrom(from.algo_); cached_has_bits = from._has_bits_[0]; - if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000007u) { if (cached_has_bits & 0x00000001u) { _internal_set_version(from._internal_version()); } if (cached_has_bits & 0x00000002u) { _internal_set_mnn_uuid(from._internal_mnn_uuid()); } + if (cached_has_bits & 0x00000004u) { + for_guide_ = from.for_guide_; + } + _has_bits_[0] |= cached_has_bits; } _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); } @@ -3527,12 +4129,13 @@ void Pipeline::InternalSwap(Pipeline* other) { &mnn_uuid_, lhs_arena, &other->mnn_uuid_, rhs_arena ); + swap(for_guide_, other->for_guide_); } ::PROTOBUF_NAMESPACE_ID::Metadata Pipeline::GetMetadata() const { return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors( &descriptor_table_MNN_5fcompression_2eproto_getter, &descriptor_table_MNN_5fcompression_2eproto_once, - file_level_metadata_MNN_5fcompression_2eproto[9]); + file_level_metadata_MNN_5fcompression_2eproto[10]); } // @@protoc_insertion_point(namespace_scope) @@ -3551,6 +4154,9 @@ template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_WeightParam template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_WinogradParams* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams_WinogradParams >(Arena* arena) { return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams_WinogradParams >(arena); } +template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo >(Arena* arena) { + return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo >(arena); +} template<> PROTOBUF_NOINLINE ::MNN::Compression::LayerQuantizeParams* Arena::CreateMaybeMessage< ::MNN::Compression::LayerQuantizeParams >(Arena* arena) { return Arena::CreateMessageInternal< ::MNN::Compression::LayerQuantizeParams >(arena); } diff --git a/tools/converter/source/compression/generated/MNN_compression.pb.h b/tools/converter/source/compression/generated/MNN_compression.pb.h index 657953914..805b82447 100644 --- a/tools/converter/source/compression/generated/MNN_compression.pb.h +++ b/tools/converter/source/compression/generated/MNN_compression.pb.h @@ -47,7 +47,7 @@ struct TableStruct_MNN_5fcompression_2eproto { PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold); - static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[10] + static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[11] PROTOBUF_SECTION_VARIABLE(protodesc_cold); static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]; static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]; @@ -65,6 +65,9 @@ extern LayerQuantizeParamsDefaultTypeInternal _LayerQuantizeParams_default_insta class LayerQuantizeParams_ActivationParams; struct LayerQuantizeParams_ActivationParamsDefaultTypeInternal; extern LayerQuantizeParams_ActivationParamsDefaultTypeInternal _LayerQuantizeParams_ActivationParams_default_instance_; +class LayerQuantizeParams_ConvolutionInfo; +struct LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal; +extern LayerQuantizeParams_ConvolutionInfoDefaultTypeInternal _LayerQuantizeParams_ConvolutionInfo_default_instance_; class LayerQuantizeParams_WeightParams; struct LayerQuantizeParams_WeightParamsDefaultTypeInternal; extern LayerQuantizeParams_WeightParamsDefaultTypeInternal _LayerQuantizeParams_WeightParams_default_instance_; @@ -92,6 +95,7 @@ PROTOBUF_NAMESPACE_OPEN template<> ::MNN::Compression::CompressionAlgo* Arena::CreateMaybeMessage<::MNN::Compression::CompressionAlgo>(Arena*); template<> ::MNN::Compression::LayerQuantizeParams* Arena::CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams>(Arena*); template<> ::MNN::Compression::LayerQuantizeParams_ActivationParams* Arena::CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams_ActivationParams>(Arena*); +template<> ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* Arena::CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams_ConvolutionInfo>(Arena*); template<> ::MNN::Compression::LayerQuantizeParams_WeightParams* Arena::CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams_WeightParams>(Arena*); template<> ::MNN::Compression::LayerQuantizeParams_WinogradParams* Arena::CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams_WinogradParams>(Arena*); template<> ::MNN::Compression::LevelPrunerParams* Arena::CreateMaybeMessage<::MNN::Compression::LevelPrunerParams>(Arena*); @@ -788,6 +792,8 @@ class LayerQuantizeParams_WeightParams final : enum : int { kScalesFieldNumber = 3, kNameFieldNumber = 1, + kAsymmetricFieldNumber = 6, + kBlockSizeFieldNumber = 7, kClampMaxFieldNumber = 5, kBitsFieldNumber = 2, kClampMinFieldNumber = 4, @@ -832,6 +838,32 @@ class LayerQuantizeParams_WeightParams final : std::string* _internal_mutable_name(); public: + // optional bool asymmetric = 6 [default = false]; + bool has_asymmetric() const; + private: + bool _internal_has_asymmetric() const; + public: + void clear_asymmetric(); + bool asymmetric() const; + void set_asymmetric(bool value); + private: + bool _internal_asymmetric() const; + void _internal_set_asymmetric(bool value); + public: + + // optional int32 block_size = 7 [default = 0]; + bool has_block_size() const; + private: + bool _internal_has_block_size() const; + public: + void clear_block_size(); + int32_t block_size() const; + void set_block_size(int32_t value); + private: + int32_t _internal_block_size() const; + void _internal_set_block_size(int32_t value); + public: + // optional int32 clamp_max = 5 [default = 127]; bool has_clamp_max() const; private: @@ -882,6 +914,8 @@ class LayerQuantizeParams_WeightParams final : mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; ::PROTOBUF_NAMESPACE_ID::RepeatedField< float > scales_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + bool asymmetric_; + int32_t block_size_; int32_t clamp_max_; int32_t bits_; int32_t clamp_min_; @@ -1071,6 +1105,206 @@ class LayerQuantizeParams_WinogradParams final : }; // ------------------------------------------------------------------- +class LayerQuantizeParams_ConvolutionInfo final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) */ { + public: + inline LayerQuantizeParams_ConvolutionInfo() : LayerQuantizeParams_ConvolutionInfo(nullptr) {} + ~LayerQuantizeParams_ConvolutionInfo() override; + explicit constexpr LayerQuantizeParams_ConvolutionInfo(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + LayerQuantizeParams_ConvolutionInfo(const LayerQuantizeParams_ConvolutionInfo& from); + LayerQuantizeParams_ConvolutionInfo(LayerQuantizeParams_ConvolutionInfo&& from) noexcept + : LayerQuantizeParams_ConvolutionInfo() { + *this = ::std::move(from); + } + + inline LayerQuantizeParams_ConvolutionInfo& operator=(const LayerQuantizeParams_ConvolutionInfo& from) { + CopyFrom(from); + return *this; + } + inline LayerQuantizeParams_ConvolutionInfo& operator=(LayerQuantizeParams_ConvolutionInfo&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const { + return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance); + } + inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() { + return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const LayerQuantizeParams_ConvolutionInfo& default_instance() { + return *internal_default_instance(); + } + static inline const LayerQuantizeParams_ConvolutionInfo* internal_default_instance() { + return reinterpret_cast( + &_LayerQuantizeParams_ConvolutionInfo_default_instance_); + } + static constexpr int kIndexInFileMessages = + 4; + + friend void swap(LayerQuantizeParams_ConvolutionInfo& a, LayerQuantizeParams_ConvolutionInfo& b) { + a.Swap(&b); + } + inline void Swap(LayerQuantizeParams_ConvolutionInfo* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(LayerQuantizeParams_ConvolutionInfo* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + LayerQuantizeParams_ConvolutionInfo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const LayerQuantizeParams_ConvolutionInfo& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const LayerQuantizeParams_ConvolutionInfo& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(LayerQuantizeParams_ConvolutionInfo* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "MNN.Compression.LayerQuantizeParams.ConvolutionInfo"; + } + protected: + explicit LayerQuantizeParams_ConvolutionInfo(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + private: + static void ArenaDtor(void* object); + inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kKernelSizeFieldNumber = 3, + kInputChannelFieldNumber = 1, + kOutputChannelFieldNumber = 2, + }; + // repeated int32 kernel_size = 3; + int kernel_size_size() const; + private: + int _internal_kernel_size_size() const; + public: + void clear_kernel_size(); + private: + int32_t _internal_kernel_size(int index) const; + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >& + _internal_kernel_size() const; + void _internal_add_kernel_size(int32_t value); + ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >* + _internal_mutable_kernel_size(); + public: + int32_t kernel_size(int index) const; + void set_kernel_size(int index, int32_t value); + void add_kernel_size(int32_t value); + const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >& + kernel_size() const; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >* + mutable_kernel_size(); + + // required int32 input_channel = 1; + bool has_input_channel() const; + private: + bool _internal_has_input_channel() const; + public: + void clear_input_channel(); + int32_t input_channel() const; + void set_input_channel(int32_t value); + private: + int32_t _internal_input_channel() const; + void _internal_set_input_channel(int32_t value); + public: + + // required int32 output_channel = 2; + bool has_output_channel() const; + private: + bool _internal_has_output_channel() const; + public: + void clear_output_channel(); + int32_t output_channel() const; + void set_output_channel(int32_t value); + private: + int32_t _internal_output_channel() const; + void _internal_set_output_channel(int32_t value); + public: + + // @@protoc_insertion_point(class_scope:MNN.Compression.LayerQuantizeParams.ConvolutionInfo) + private: + class _Internal; + + // helper for ByteSizeLong() + size_t RequiredFieldsByteSizeFallback() const; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t > kernel_size_; + int32_t input_channel_; + int32_t output_channel_; + friend struct ::TableStruct_MNN_5fcompression_2eproto; +}; +// ------------------------------------------------------------------- + class LayerQuantizeParams final : public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:MNN.Compression.LayerQuantizeParams) */ { public: @@ -1126,7 +1360,7 @@ class LayerQuantizeParams final : &_LayerQuantizeParams_default_instance_); } static constexpr int kIndexInFileMessages = - 4; + 5; friend void swap(LayerQuantizeParams& a, LayerQuantizeParams& b) { a.Swap(&b); @@ -1200,6 +1434,7 @@ class LayerQuantizeParams final : typedef LayerQuantizeParams_ActivationParams ActivationParams; typedef LayerQuantizeParams_WeightParams WeightParams; typedef LayerQuantizeParams_WinogradParams WinogradParams; + typedef LayerQuantizeParams_ConvolutionInfo ConvolutionInfo; typedef LayerQuantizeParams_QuantMethod QuantMethod; static constexpr QuantMethod QAT = @@ -1239,7 +1474,10 @@ class LayerQuantizeParams final : kInputFieldNumber = 1, kWeightFieldNumber = 2, kOutputFieldNumber = 3, + kOpNameFieldNumber = 6, + kSubgraphNameFieldNumber = 7, kWinoParamsFieldNumber = 5, + kConvFieldNumber = 8, kMethodFieldNumber = 4, }; // repeated .MNN.Compression.LayerQuantizeParams.ActivationParams input = 1; @@ -1296,6 +1534,42 @@ class LayerQuantizeParams final : const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::MNN::Compression::LayerQuantizeParams_ActivationParams >& output() const; + // optional string op_name = 6; + bool has_op_name() const; + private: + bool _internal_has_op_name() const; + public: + void clear_op_name(); + const std::string& op_name() const; + template + void set_op_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_op_name(); + PROTOBUF_NODISCARD std::string* release_op_name(); + void set_allocated_op_name(std::string* op_name); + private: + const std::string& _internal_op_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_op_name(const std::string& value); + std::string* _internal_mutable_op_name(); + public: + + // optional string subgraph_name = 7; + bool has_subgraph_name() const; + private: + bool _internal_has_subgraph_name() const; + public: + void clear_subgraph_name(); + const std::string& subgraph_name() const; + template + void set_subgraph_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_subgraph_name(); + PROTOBUF_NODISCARD std::string* release_subgraph_name(); + void set_allocated_subgraph_name(std::string* subgraph_name); + private: + const std::string& _internal_subgraph_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_subgraph_name(const std::string& value); + std::string* _internal_mutable_subgraph_name(); + public: + // optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5; bool has_wino_params() const; private: @@ -1314,6 +1588,24 @@ class LayerQuantizeParams final : ::MNN::Compression::LayerQuantizeParams_WinogradParams* wino_params); ::MNN::Compression::LayerQuantizeParams_WinogradParams* unsafe_arena_release_wino_params(); + // optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8; + bool has_conv() const; + private: + bool _internal_has_conv() const; + public: + void clear_conv(); + const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& conv() const; + PROTOBUF_NODISCARD ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* release_conv(); + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* mutable_conv(); + void set_allocated_conv(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* conv); + private: + const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& _internal_conv() const; + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* _internal_mutable_conv(); + public: + void unsafe_arena_set_allocated_conv( + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* conv); + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* unsafe_arena_release_conv(); + // optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT]; bool has_method() const; private: @@ -1339,7 +1631,10 @@ class LayerQuantizeParams final : ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::MNN::Compression::LayerQuantizeParams_ActivationParams > input_; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::MNN::Compression::LayerQuantizeParams_WeightParams > weight_; ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::MNN::Compression::LayerQuantizeParams_ActivationParams > output_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr op_name_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr subgraph_name_; ::MNN::Compression::LayerQuantizeParams_WinogradParams* wino_params_; + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* conv_; int method_; friend struct ::TableStruct_MNN_5fcompression_2eproto; }; @@ -1400,7 +1695,7 @@ class LevelPrunerParams final : &_LevelPrunerParams_default_instance_); } static constexpr int kIndexInFileMessages = - 5; + 6; friend void swap(LevelPrunerParams& a, LevelPrunerParams& b) { a.Swap(&b); @@ -1618,7 +1913,7 @@ class SIMDOCPrunerParams final : &_SIMDOCPrunerParams_default_instance_); } static constexpr int kIndexInFileMessages = - 6; + 7; friend void swap(SIMDOCPrunerParams& a, SIMDOCPrunerParams& b) { a.Swap(&b); @@ -1860,7 +2155,7 @@ class PruneParams final : &_PruneParams_default_instance_); } static constexpr int kIndexInFileMessages = - 7; + 8; friend void swap(PruneParams& a, PruneParams& b) { a.Swap(&b); @@ -2090,7 +2385,7 @@ class CompressionAlgo final : &_CompressionAlgo_default_instance_); } static constexpr int kIndexInFileMessages = - 8; + 9; friend void swap(CompressionAlgo& a, CompressionAlgo& b) { a.Swap(&b); @@ -2318,7 +2613,7 @@ class Pipeline final : &_Pipeline_default_instance_); } static constexpr int kIndexInFileMessages = - 9; + 10; friend void swap(Pipeline& a, Pipeline& b) { a.Swap(&b); @@ -2395,6 +2690,7 @@ class Pipeline final : kAlgoFieldNumber = 2, kVersionFieldNumber = 1, kMnnUuidFieldNumber = 3, + kForGuideFieldNumber = 4, }; // repeated .MNN.Compression.CompressionAlgo algo = 2; int algo_size() const; @@ -2450,6 +2746,19 @@ class Pipeline final : std::string* _internal_mutable_mnn_uuid(); public: + // optional bool for_guide = 4 [default = false]; + bool has_for_guide() const; + private: + bool _internal_has_for_guide() const; + public: + void clear_for_guide(); + bool for_guide() const; + void set_for_guide(bool value); + private: + bool _internal_for_guide() const; + void _internal_set_for_guide(bool value); + public: + // @@protoc_insertion_point(class_scope:MNN.Compression.Pipeline) private: class _Internal; @@ -2463,6 +2772,7 @@ class Pipeline final : static const ::PROTOBUF_NAMESPACE_ID::internal::LazyString _i_give_permission_to_break_this_code_default_version_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr version_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr mnn_uuid_; + bool for_guide_; friend struct ::TableStruct_MNN_5fcompression_2eproto; }; // =================================================================== @@ -2852,7 +3162,7 @@ inline void LayerQuantizeParams_WeightParams::set_allocated_name(std::string* na // optional int32 bits = 2 [default = 8]; inline bool LayerQuantizeParams_WeightParams::_internal_has_bits() const { - bool value = (_has_bits_[0] & 0x00000004u) != 0; + bool value = (_has_bits_[0] & 0x00000010u) != 0; return value; } inline bool LayerQuantizeParams_WeightParams::has_bits() const { @@ -2860,7 +3170,7 @@ inline bool LayerQuantizeParams_WeightParams::has_bits() const { } inline void LayerQuantizeParams_WeightParams::clear_bits() { bits_ = 8; - _has_bits_[0] &= ~0x00000004u; + _has_bits_[0] &= ~0x00000010u; } inline int32_t LayerQuantizeParams_WeightParams::_internal_bits() const { return bits_; @@ -2870,7 +3180,7 @@ inline int32_t LayerQuantizeParams_WeightParams::bits() const { return _internal_bits(); } inline void LayerQuantizeParams_WeightParams::_internal_set_bits(int32_t value) { - _has_bits_[0] |= 0x00000004u; + _has_bits_[0] |= 0x00000010u; bits_ = value; } inline void LayerQuantizeParams_WeightParams::set_bits(int32_t value) { @@ -2927,7 +3237,7 @@ LayerQuantizeParams_WeightParams::mutable_scales() { // optional int32 clamp_min = 4 [default = -128]; inline bool LayerQuantizeParams_WeightParams::_internal_has_clamp_min() const { - bool value = (_has_bits_[0] & 0x00000008u) != 0; + bool value = (_has_bits_[0] & 0x00000020u) != 0; return value; } inline bool LayerQuantizeParams_WeightParams::has_clamp_min() const { @@ -2935,7 +3245,7 @@ inline bool LayerQuantizeParams_WeightParams::has_clamp_min() const { } inline void LayerQuantizeParams_WeightParams::clear_clamp_min() { clamp_min_ = -128; - _has_bits_[0] &= ~0x00000008u; + _has_bits_[0] &= ~0x00000020u; } inline int32_t LayerQuantizeParams_WeightParams::_internal_clamp_min() const { return clamp_min_; @@ -2945,7 +3255,7 @@ inline int32_t LayerQuantizeParams_WeightParams::clamp_min() const { return _internal_clamp_min(); } inline void LayerQuantizeParams_WeightParams::_internal_set_clamp_min(int32_t value) { - _has_bits_[0] |= 0x00000008u; + _has_bits_[0] |= 0x00000020u; clamp_min_ = value; } inline void LayerQuantizeParams_WeightParams::set_clamp_min(int32_t value) { @@ -2955,7 +3265,7 @@ inline void LayerQuantizeParams_WeightParams::set_clamp_min(int32_t value) { // optional int32 clamp_max = 5 [default = 127]; inline bool LayerQuantizeParams_WeightParams::_internal_has_clamp_max() const { - bool value = (_has_bits_[0] & 0x00000002u) != 0; + bool value = (_has_bits_[0] & 0x00000008u) != 0; return value; } inline bool LayerQuantizeParams_WeightParams::has_clamp_max() const { @@ -2963,7 +3273,7 @@ inline bool LayerQuantizeParams_WeightParams::has_clamp_max() const { } inline void LayerQuantizeParams_WeightParams::clear_clamp_max() { clamp_max_ = 127; - _has_bits_[0] &= ~0x00000002u; + _has_bits_[0] &= ~0x00000008u; } inline int32_t LayerQuantizeParams_WeightParams::_internal_clamp_max() const { return clamp_max_; @@ -2973,7 +3283,7 @@ inline int32_t LayerQuantizeParams_WeightParams::clamp_max() const { return _internal_clamp_max(); } inline void LayerQuantizeParams_WeightParams::_internal_set_clamp_max(int32_t value) { - _has_bits_[0] |= 0x00000002u; + _has_bits_[0] |= 0x00000008u; clamp_max_ = value; } inline void LayerQuantizeParams_WeightParams::set_clamp_max(int32_t value) { @@ -2981,6 +3291,62 @@ inline void LayerQuantizeParams_WeightParams::set_clamp_max(int32_t value) { // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.WeightParams.clamp_max) } +// optional bool asymmetric = 6 [default = false]; +inline bool LayerQuantizeParams_WeightParams::_internal_has_asymmetric() const { + bool value = (_has_bits_[0] & 0x00000002u) != 0; + return value; +} +inline bool LayerQuantizeParams_WeightParams::has_asymmetric() const { + return _internal_has_asymmetric(); +} +inline void LayerQuantizeParams_WeightParams::clear_asymmetric() { + asymmetric_ = false; + _has_bits_[0] &= ~0x00000002u; +} +inline bool LayerQuantizeParams_WeightParams::_internal_asymmetric() const { + return asymmetric_; +} +inline bool LayerQuantizeParams_WeightParams::asymmetric() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.WeightParams.asymmetric) + return _internal_asymmetric(); +} +inline void LayerQuantizeParams_WeightParams::_internal_set_asymmetric(bool value) { + _has_bits_[0] |= 0x00000002u; + asymmetric_ = value; +} +inline void LayerQuantizeParams_WeightParams::set_asymmetric(bool value) { + _internal_set_asymmetric(value); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.WeightParams.asymmetric) +} + +// optional int32 block_size = 7 [default = 0]; +inline bool LayerQuantizeParams_WeightParams::_internal_has_block_size() const { + bool value = (_has_bits_[0] & 0x00000004u) != 0; + return value; +} +inline bool LayerQuantizeParams_WeightParams::has_block_size() const { + return _internal_has_block_size(); +} +inline void LayerQuantizeParams_WeightParams::clear_block_size() { + block_size_ = 0; + _has_bits_[0] &= ~0x00000004u; +} +inline int32_t LayerQuantizeParams_WeightParams::_internal_block_size() const { + return block_size_; +} +inline int32_t LayerQuantizeParams_WeightParams::block_size() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.WeightParams.block_size) + return _internal_block_size(); +} +inline void LayerQuantizeParams_WeightParams::_internal_set_block_size(int32_t value) { + _has_bits_[0] |= 0x00000004u; + block_size_ = value; +} +inline void LayerQuantizeParams_WeightParams::set_block_size(int32_t value) { + _internal_set_block_size(value); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.WeightParams.block_size) +} + // ------------------------------------------------------------------- // LayerQuantizeParams_WinogradParams @@ -3062,6 +3428,113 @@ LayerQuantizeParams_WinogradParams::mutable_units_attr() { // ------------------------------------------------------------------- +// LayerQuantizeParams_ConvolutionInfo + +// required int32 input_channel = 1; +inline bool LayerQuantizeParams_ConvolutionInfo::_internal_has_input_channel() const { + bool value = (_has_bits_[0] & 0x00000001u) != 0; + return value; +} +inline bool LayerQuantizeParams_ConvolutionInfo::has_input_channel() const { + return _internal_has_input_channel(); +} +inline void LayerQuantizeParams_ConvolutionInfo::clear_input_channel() { + input_channel_ = 0; + _has_bits_[0] &= ~0x00000001u; +} +inline int32_t LayerQuantizeParams_ConvolutionInfo::_internal_input_channel() const { + return input_channel_; +} +inline int32_t LayerQuantizeParams_ConvolutionInfo::input_channel() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.input_channel) + return _internal_input_channel(); +} +inline void LayerQuantizeParams_ConvolutionInfo::_internal_set_input_channel(int32_t value) { + _has_bits_[0] |= 0x00000001u; + input_channel_ = value; +} +inline void LayerQuantizeParams_ConvolutionInfo::set_input_channel(int32_t value) { + _internal_set_input_channel(value); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.input_channel) +} + +// required int32 output_channel = 2; +inline bool LayerQuantizeParams_ConvolutionInfo::_internal_has_output_channel() const { + bool value = (_has_bits_[0] & 0x00000002u) != 0; + return value; +} +inline bool LayerQuantizeParams_ConvolutionInfo::has_output_channel() const { + return _internal_has_output_channel(); +} +inline void LayerQuantizeParams_ConvolutionInfo::clear_output_channel() { + output_channel_ = 0; + _has_bits_[0] &= ~0x00000002u; +} +inline int32_t LayerQuantizeParams_ConvolutionInfo::_internal_output_channel() const { + return output_channel_; +} +inline int32_t LayerQuantizeParams_ConvolutionInfo::output_channel() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.output_channel) + return _internal_output_channel(); +} +inline void LayerQuantizeParams_ConvolutionInfo::_internal_set_output_channel(int32_t value) { + _has_bits_[0] |= 0x00000002u; + output_channel_ = value; +} +inline void LayerQuantizeParams_ConvolutionInfo::set_output_channel(int32_t value) { + _internal_set_output_channel(value); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.output_channel) +} + +// repeated int32 kernel_size = 3; +inline int LayerQuantizeParams_ConvolutionInfo::_internal_kernel_size_size() const { + return kernel_size_.size(); +} +inline int LayerQuantizeParams_ConvolutionInfo::kernel_size_size() const { + return _internal_kernel_size_size(); +} +inline void LayerQuantizeParams_ConvolutionInfo::clear_kernel_size() { + kernel_size_.Clear(); +} +inline int32_t LayerQuantizeParams_ConvolutionInfo::_internal_kernel_size(int index) const { + return kernel_size_.Get(index); +} +inline int32_t LayerQuantizeParams_ConvolutionInfo::kernel_size(int index) const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.kernel_size) + return _internal_kernel_size(index); +} +inline void LayerQuantizeParams_ConvolutionInfo::set_kernel_size(int index, int32_t value) { + kernel_size_.Set(index, value); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.kernel_size) +} +inline void LayerQuantizeParams_ConvolutionInfo::_internal_add_kernel_size(int32_t value) { + kernel_size_.Add(value); +} +inline void LayerQuantizeParams_ConvolutionInfo::add_kernel_size(int32_t value) { + _internal_add_kernel_size(value); + // @@protoc_insertion_point(field_add:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.kernel_size) +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >& +LayerQuantizeParams_ConvolutionInfo::_internal_kernel_size() const { + return kernel_size_; +} +inline const ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >& +LayerQuantizeParams_ConvolutionInfo::kernel_size() const { + // @@protoc_insertion_point(field_list:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.kernel_size) + return _internal_kernel_size(); +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >* +LayerQuantizeParams_ConvolutionInfo::_internal_mutable_kernel_size() { + return &kernel_size_; +} +inline ::PROTOBUF_NAMESPACE_ID::RepeatedField< int32_t >* +LayerQuantizeParams_ConvolutionInfo::mutable_kernel_size() { + // @@protoc_insertion_point(field_mutable_list:MNN.Compression.LayerQuantizeParams.ConvolutionInfo.kernel_size) + return _internal_mutable_kernel_size(); +} + +// ------------------------------------------------------------------- + // LayerQuantizeParams // repeated .MNN.Compression.LayerQuantizeParams.ActivationParams input = 1; @@ -3186,7 +3659,7 @@ LayerQuantizeParams::output() const { // optional .MNN.Compression.LayerQuantizeParams.QuantMethod method = 4 [default = QAT]; inline bool LayerQuantizeParams::_internal_has_method() const { - bool value = (_has_bits_[0] & 0x00000002u) != 0; + bool value = (_has_bits_[0] & 0x00000010u) != 0; return value; } inline bool LayerQuantizeParams::has_method() const { @@ -3194,7 +3667,7 @@ inline bool LayerQuantizeParams::has_method() const { } inline void LayerQuantizeParams::clear_method() { method_ = 0; - _has_bits_[0] &= ~0x00000002u; + _has_bits_[0] &= ~0x00000010u; } inline ::MNN::Compression::LayerQuantizeParams_QuantMethod LayerQuantizeParams::_internal_method() const { return static_cast< ::MNN::Compression::LayerQuantizeParams_QuantMethod >(method_); @@ -3205,7 +3678,7 @@ inline ::MNN::Compression::LayerQuantizeParams_QuantMethod LayerQuantizeParams:: } inline void LayerQuantizeParams::_internal_set_method(::MNN::Compression::LayerQuantizeParams_QuantMethod value) { assert(::MNN::Compression::LayerQuantizeParams_QuantMethod_IsValid(value)); - _has_bits_[0] |= 0x00000002u; + _has_bits_[0] |= 0x00000010u; method_ = value; } inline void LayerQuantizeParams::set_method(::MNN::Compression::LayerQuantizeParams_QuantMethod value) { @@ -3215,7 +3688,7 @@ inline void LayerQuantizeParams::set_method(::MNN::Compression::LayerQuantizePar // optional .MNN.Compression.LayerQuantizeParams.WinogradParams wino_params = 5; inline bool LayerQuantizeParams::_internal_has_wino_params() const { - bool value = (_has_bits_[0] & 0x00000001u) != 0; + bool value = (_has_bits_[0] & 0x00000004u) != 0; PROTOBUF_ASSUME(!value || wino_params_ != nullptr); return value; } @@ -3224,7 +3697,7 @@ inline bool LayerQuantizeParams::has_wino_params() const { } inline void LayerQuantizeParams::clear_wino_params() { if (wino_params_ != nullptr) wino_params_->Clear(); - _has_bits_[0] &= ~0x00000001u; + _has_bits_[0] &= ~0x00000004u; } inline const ::MNN::Compression::LayerQuantizeParams_WinogradParams& LayerQuantizeParams::_internal_wino_params() const { const ::MNN::Compression::LayerQuantizeParams_WinogradParams* p = wino_params_; @@ -3242,14 +3715,14 @@ inline void LayerQuantizeParams::unsafe_arena_set_allocated_wino_params( } wino_params_ = wino_params; if (wino_params) { - _has_bits_[0] |= 0x00000001u; + _has_bits_[0] |= 0x00000004u; } else { - _has_bits_[0] &= ~0x00000001u; + _has_bits_[0] &= ~0x00000004u; } // @@protoc_insertion_point(field_unsafe_arena_set_allocated:MNN.Compression.LayerQuantizeParams.wino_params) } inline ::MNN::Compression::LayerQuantizeParams_WinogradParams* LayerQuantizeParams::release_wino_params() { - _has_bits_[0] &= ~0x00000001u; + _has_bits_[0] &= ~0x00000004u; ::MNN::Compression::LayerQuantizeParams_WinogradParams* temp = wino_params_; wino_params_ = nullptr; #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE @@ -3265,13 +3738,13 @@ inline ::MNN::Compression::LayerQuantizeParams_WinogradParams* LayerQuantizePara } inline ::MNN::Compression::LayerQuantizeParams_WinogradParams* LayerQuantizeParams::unsafe_arena_release_wino_params() { // @@protoc_insertion_point(field_release:MNN.Compression.LayerQuantizeParams.wino_params) - _has_bits_[0] &= ~0x00000001u; + _has_bits_[0] &= ~0x00000004u; ::MNN::Compression::LayerQuantizeParams_WinogradParams* temp = wino_params_; wino_params_ = nullptr; return temp; } inline ::MNN::Compression::LayerQuantizeParams_WinogradParams* LayerQuantizeParams::_internal_mutable_wino_params() { - _has_bits_[0] |= 0x00000001u; + _has_bits_[0] |= 0x00000004u; if (wino_params_ == nullptr) { auto* p = CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams_WinogradParams>(GetArenaForAllocation()); wino_params_ = p; @@ -3295,14 +3768,242 @@ inline void LayerQuantizeParams::set_allocated_wino_params(::MNN::Compression::L wino_params = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( message_arena, wino_params, submessage_arena); } - _has_bits_[0] |= 0x00000001u; + _has_bits_[0] |= 0x00000004u; } else { - _has_bits_[0] &= ~0x00000001u; + _has_bits_[0] &= ~0x00000004u; } wino_params_ = wino_params; // @@protoc_insertion_point(field_set_allocated:MNN.Compression.LayerQuantizeParams.wino_params) } +// optional string op_name = 6; +inline bool LayerQuantizeParams::_internal_has_op_name() const { + bool value = (_has_bits_[0] & 0x00000001u) != 0; + return value; +} +inline bool LayerQuantizeParams::has_op_name() const { + return _internal_has_op_name(); +} +inline void LayerQuantizeParams::clear_op_name() { + op_name_.ClearToEmpty(); + _has_bits_[0] &= ~0x00000001u; +} +inline const std::string& LayerQuantizeParams::op_name() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.op_name) + return _internal_op_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void LayerQuantizeParams::set_op_name(ArgT0&& arg0, ArgT... args) { + _has_bits_[0] |= 0x00000001u; + op_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.op_name) +} +inline std::string* LayerQuantizeParams::mutable_op_name() { + std::string* _s = _internal_mutable_op_name(); + // @@protoc_insertion_point(field_mutable:MNN.Compression.LayerQuantizeParams.op_name) + return _s; +} +inline const std::string& LayerQuantizeParams::_internal_op_name() const { + return op_name_.Get(); +} +inline void LayerQuantizeParams::_internal_set_op_name(const std::string& value) { + _has_bits_[0] |= 0x00000001u; + op_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation()); +} +inline std::string* LayerQuantizeParams::_internal_mutable_op_name() { + _has_bits_[0] |= 0x00000001u; + return op_name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation()); +} +inline std::string* LayerQuantizeParams::release_op_name() { + // @@protoc_insertion_point(field_release:MNN.Compression.LayerQuantizeParams.op_name) + if (!_internal_has_op_name()) { + return nullptr; + } + _has_bits_[0] &= ~0x00000001u; + auto* p = op_name_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (op_name_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { + op_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + return p; +} +inline void LayerQuantizeParams::set_allocated_op_name(std::string* op_name) { + if (op_name != nullptr) { + _has_bits_[0] |= 0x00000001u; + } else { + _has_bits_[0] &= ~0x00000001u; + } + op_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), op_name, + GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (op_name_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { + op_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:MNN.Compression.LayerQuantizeParams.op_name) +} + +// optional string subgraph_name = 7; +inline bool LayerQuantizeParams::_internal_has_subgraph_name() const { + bool value = (_has_bits_[0] & 0x00000002u) != 0; + return value; +} +inline bool LayerQuantizeParams::has_subgraph_name() const { + return _internal_has_subgraph_name(); +} +inline void LayerQuantizeParams::clear_subgraph_name() { + subgraph_name_.ClearToEmpty(); + _has_bits_[0] &= ~0x00000002u; +} +inline const std::string& LayerQuantizeParams::subgraph_name() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.subgraph_name) + return _internal_subgraph_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void LayerQuantizeParams::set_subgraph_name(ArgT0&& arg0, ArgT... args) { + _has_bits_[0] |= 0x00000002u; + subgraph_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:MNN.Compression.LayerQuantizeParams.subgraph_name) +} +inline std::string* LayerQuantizeParams::mutable_subgraph_name() { + std::string* _s = _internal_mutable_subgraph_name(); + // @@protoc_insertion_point(field_mutable:MNN.Compression.LayerQuantizeParams.subgraph_name) + return _s; +} +inline const std::string& LayerQuantizeParams::_internal_subgraph_name() const { + return subgraph_name_.Get(); +} +inline void LayerQuantizeParams::_internal_set_subgraph_name(const std::string& value) { + _has_bits_[0] |= 0x00000002u; + subgraph_name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation()); +} +inline std::string* LayerQuantizeParams::_internal_mutable_subgraph_name() { + _has_bits_[0] |= 0x00000002u; + return subgraph_name_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation()); +} +inline std::string* LayerQuantizeParams::release_subgraph_name() { + // @@protoc_insertion_point(field_release:MNN.Compression.LayerQuantizeParams.subgraph_name) + if (!_internal_has_subgraph_name()) { + return nullptr; + } + _has_bits_[0] &= ~0x00000002u; + auto* p = subgraph_name_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (subgraph_name_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { + subgraph_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + return p; +} +inline void LayerQuantizeParams::set_allocated_subgraph_name(std::string* subgraph_name) { + if (subgraph_name != nullptr) { + _has_bits_[0] |= 0x00000002u; + } else { + _has_bits_[0] &= ~0x00000002u; + } + subgraph_name_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), subgraph_name, + GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (subgraph_name_.IsDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited())) { + subgraph_name_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), "", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:MNN.Compression.LayerQuantizeParams.subgraph_name) +} + +// optional .MNN.Compression.LayerQuantizeParams.ConvolutionInfo conv = 8; +inline bool LayerQuantizeParams::_internal_has_conv() const { + bool value = (_has_bits_[0] & 0x00000008u) != 0; + PROTOBUF_ASSUME(!value || conv_ != nullptr); + return value; +} +inline bool LayerQuantizeParams::has_conv() const { + return _internal_has_conv(); +} +inline void LayerQuantizeParams::clear_conv() { + if (conv_ != nullptr) conv_->Clear(); + _has_bits_[0] &= ~0x00000008u; +} +inline const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& LayerQuantizeParams::_internal_conv() const { + const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* p = conv_; + return p != nullptr ? *p : reinterpret_cast( + ::MNN::Compression::_LayerQuantizeParams_ConvolutionInfo_default_instance_); +} +inline const ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo& LayerQuantizeParams::conv() const { + // @@protoc_insertion_point(field_get:MNN.Compression.LayerQuantizeParams.conv) + return _internal_conv(); +} +inline void LayerQuantizeParams::unsafe_arena_set_allocated_conv( + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* conv) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(conv_); + } + conv_ = conv; + if (conv) { + _has_bits_[0] |= 0x00000008u; + } else { + _has_bits_[0] &= ~0x00000008u; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:MNN.Compression.LayerQuantizeParams.conv) +} +inline ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* LayerQuantizeParams::release_conv() { + _has_bits_[0] &= ~0x00000008u; + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* temp = conv_; + conv_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* LayerQuantizeParams::unsafe_arena_release_conv() { + // @@protoc_insertion_point(field_release:MNN.Compression.LayerQuantizeParams.conv) + _has_bits_[0] &= ~0x00000008u; + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* temp = conv_; + conv_ = nullptr; + return temp; +} +inline ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* LayerQuantizeParams::_internal_mutable_conv() { + _has_bits_[0] |= 0x00000008u; + if (conv_ == nullptr) { + auto* p = CreateMaybeMessage<::MNN::Compression::LayerQuantizeParams_ConvolutionInfo>(GetArenaForAllocation()); + conv_ = p; + } + return conv_; +} +inline ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* LayerQuantizeParams::mutable_conv() { + ::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* _msg = _internal_mutable_conv(); + // @@protoc_insertion_point(field_mutable:MNN.Compression.LayerQuantizeParams.conv) + return _msg; +} +inline void LayerQuantizeParams::set_allocated_conv(::MNN::Compression::LayerQuantizeParams_ConvolutionInfo* conv) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete conv_; + } + if (conv) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::MNN::Compression::LayerQuantizeParams_ConvolutionInfo>::GetOwningArena(conv); + if (message_arena != submessage_arena) { + conv = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, conv, submessage_arena); + } + _has_bits_[0] |= 0x00000008u; + } else { + _has_bits_[0] &= ~0x00000008u; + } + conv_ = conv; + // @@protoc_insertion_point(field_set_allocated:MNN.Compression.LayerQuantizeParams.conv) +} + // ------------------------------------------------------------------- // LevelPrunerParams @@ -4351,6 +5052,34 @@ inline void Pipeline::set_allocated_mnn_uuid(std::string* mnn_uuid) { // @@protoc_insertion_point(field_set_allocated:MNN.Compression.Pipeline.mnn_uuid) } +// optional bool for_guide = 4 [default = false]; +inline bool Pipeline::_internal_has_for_guide() const { + bool value = (_has_bits_[0] & 0x00000004u) != 0; + return value; +} +inline bool Pipeline::has_for_guide() const { + return _internal_has_for_guide(); +} +inline void Pipeline::clear_for_guide() { + for_guide_ = false; + _has_bits_[0] &= ~0x00000004u; +} +inline bool Pipeline::_internal_for_guide() const { + return for_guide_; +} +inline bool Pipeline::for_guide() const { + // @@protoc_insertion_point(field_get:MNN.Compression.Pipeline.for_guide) + return _internal_for_guide(); +} +inline void Pipeline::_internal_set_for_guide(bool value) { + _has_bits_[0] |= 0x00000004u; + for_guide_ = value; +} +inline void Pipeline::set_for_guide(bool value) { + _internal_set_for_guide(value); + // @@protoc_insertion_point(field_set:MNN.Compression.Pipeline.for_guide) +} + #ifdef __GNUC__ #pragma GCC diagnostic pop #endif // __GNUC__ @@ -4372,6 +5101,8 @@ inline void Pipeline::set_allocated_mnn_uuid(std::string* mnn_uuid) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/tools/converter/source/onnx/CastOnnx.cpp b/tools/converter/source/onnx/CastOnnx.cpp index 67bf756dd..9f8b037c1 100644 --- a/tools/converter/source/onnx/CastOnnx.cpp +++ b/tools/converter/source/onnx/CastOnnx.cpp @@ -35,6 +35,9 @@ void CastOnnx::run(MNN::OpT *dstOp, const onnx::NodeProto *onnxNode, } castParam->dstT = onnxOpConverter::convertDataType(castTo); + if (castTo == onnx::TensorProto_DataType_FLOAT16) { + castParam->dstT = MNN::DataType_DT_FLOAT; + } dstOp->main.value = castParam.release(); } diff --git a/tools/converter/source/onnx/EluOnnx.cpp b/tools/converter/source/onnx/EluOnnx.cpp index 700aea0a4..8bed80808 100644 --- a/tools/converter/source/onnx/EluOnnx.cpp +++ b/tools/converter/source/onnx/EluOnnx.cpp @@ -46,7 +46,7 @@ void SEluOnnx::run(MNN::OpT *dstOp, const onnx::NodeProto *onnxNode, OnnxScope* auto seluParam = new MNN::SeluT; - float alpha = 1.67326, gamma = 1.0507; + float alpha = 1.6732632423543772848170429916717f, gamma = 1.0507009873554804934193349852946f; for (int i = 0; i < onnxNode->attribute_size(); ++i) { const auto &attributeProto = onnxNode->attribute(i); const auto &attributeName = attributeProto.name(); diff --git a/tools/converter/source/optimizer/merge/Conv1dSqueezeMove.cpp b/tools/converter/source/optimizer/merge/Conv1dSqueezeMove.cpp index ec0d739c7..888285c1b 100644 --- a/tools/converter/source/optimizer/merge/Conv1dSqueezeMove.cpp +++ b/tools/converter/source/optimizer/merge/Conv1dSqueezeMove.cpp @@ -10,7 +10,7 @@ #include "MNN_generated.h" #include "MergeHelpers.hpp" #include "cli.hpp" -#include "commonKit.hpp" +#include "../../common/CommonUtils.hpp" #include "MNN_compression.pb.h" #include @@ -36,19 +36,7 @@ auto getConv1dPostCase = [](EXPRP expr) { auto gConverterConfig = Global::Get(); std::string compressFileName = gConverterConfig->compressionParamsFile; - Compression::Pipeline proto; - if (compressFileName != "") { - std::string jsonSuffix = "json"; - std::string suffix = compressFileName.substr(compressFileName.find_last_of('.') + 1); - if (suffix.compare(jsonSuffix) != 0) { - std::fstream input(compressFileName.c_str(), std::ios::in | std::ios::binary); - if (!proto.ParseFromIstream(&input)) { - MNN_ERROR("Failed to parse compression pipeline proto.\n"); - } - } else { - CommonKit::json2protobuf(compressFileName.c_str(), nullptr, &proto); - } - } + auto& proto = gConverterConfig->compressInfo->proto; auto findQuantParameters = [&](Compression::Pipeline& proto, std::string outputTensorName) { for (const auto& algo : proto.algo()) { diff --git a/tools/converter/source/optimizer/merge/ConvBNReluFuseToConvInt8.cpp b/tools/converter/source/optimizer/merge/ConvBNReluFuseToConvInt8.cpp index eb4496376..948ab2b0e 100644 --- a/tools/converter/source/optimizer/merge/ConvBNReluFuseToConvInt8.cpp +++ b/tools/converter/source/optimizer/merge/ConvBNReluFuseToConvInt8.cpp @@ -12,7 +12,7 @@ #include "MNN_generated.h" #include "MNN_compression.pb.h" #include "cli.hpp" -#include "commonKit.hpp" +#include "../../common/CommonUtils.hpp" #include namespace MNN { @@ -57,19 +57,7 @@ static auto gRegister = []() { auto transform = [](EXPRP expr) { auto gConverterConfig = Global::Get(); std::string compressFileName = gConverterConfig->compressionParamsFile; - Compression::Pipeline proto; - if (compressFileName != "") { - std::string jsonSuffix = "json"; - std::string suffix = compressFileName.substr(compressFileName.find_last_of('.') + 1); - if (suffix.compare(jsonSuffix) != 0) { - std::fstream input(compressFileName.c_str(), std::ios::in | std::ios::binary); - if (!proto.ParseFromIstream(&input)) { - MNN_ERROR("Failed to parse compression pipeline proto.\n"); - } - } else { - CommonKit::json2protobuf(compressFileName.c_str(), nullptr, &proto); - } - } + auto& proto = gConverterConfig->compressInfo->proto; auto convert1 = expr->inputs()[0]; auto convert1_expr = convert1->expr().first; auto convOutput = convert1_expr->inputs()[0]; diff --git a/tools/converter/source/optimizer/merge/Convolution3DTurn2D.cpp b/tools/converter/source/optimizer/merge/Convolution3DTurn2D.cpp new file mode 100644 index 000000000..162fa0943 --- /dev/null +++ b/tools/converter/source/optimizer/merge/Convolution3DTurn2D.cpp @@ -0,0 +1,145 @@ +// +// ConvBiasAdd.cpp +// MNNConverter +// +// Created by MNN on 2019/09/16. +// Copyright © 2018, Alibaba Group Holding Limited +// + +#include "../TemplateMerge.hpp" +#include +#include "MNN_generated.h" + +namespace MNN { +namespace Express { +static EXPRP _transformConv3DWithConv2D(EXPRP expr) { + std::unique_ptr originOp(expr->get()->UnPack()); + auto common = originOp->main.AsConvolution3D()->common.get(); + auto weightPtr = originOp->main.AsConvolution3D()->weight.data(); + auto biasDataPtr = originOp->main.AsConvolution3D()->bias.data(); + auto input = expr->inputs()[0]; + // Im2Col + auto one = _Unsqueeze(_Scalar(1), {0}); + auto negone = _Unsqueeze(_Scalar(-1), {0}); + auto sx = _Shape(input, true); + auto kernelD = common->kernels[0]; + auto kernelH = common->kernels[1]; + auto kernelW = common->kernels[2]; + auto inputChannel = common->inputCount; + auto outputChannel = common->outputCount; + auto kdv = _Unsqueeze(_Scalar(kernelD), {0}); + auto w = _Slice(sx, _Unsqueeze(_Scalar(4), {0}), one); + auto h = _Slice(sx, _Unsqueeze(_Scalar(3), {0}), one); + auto d = _Slice(sx, _Unsqueeze(_Scalar(2), {0}), one); + auto ic = _Slice(sx, _Unsqueeze(_Scalar(1), {0}), one); + auto b = _Slice(sx, _Unsqueeze(_Scalar(0), {0}), one); + auto im2colinput = _Reshape(input, _Concat({one, b*ic, d, w*h}, 0)); + auto im2coloutput = _Im2Col(im2colinput, {1, kernelD}, {1, common->dilates[0]}, {common->pads[0], 0, common->pads[3], 0}, {1, common->strides[0]}); + // Reshape and Unpack + std::vector convInputs; + { + // use -1 to compute od + auto value = _Reshape(im2coloutput, _Concat({b, ic * kdv, negone, h, w}, 0)); + // Merge od and batch + value = _Transpose(value, {0, 2, 1, 3, 4}); + value = _Reshape(value, _Concat({negone, ic, kdv, h, w}, 0)); + std::unique_ptr op(new OpT); + op->type = OpType_Unpack; + auto axisParam = new AxisT; + axisParam->axis = 2; + op->main.type = OpParameter_Axis; + op->main.value = axisParam; + EXPRP packexpr = Expr::create(std::move(op), {value}, kernelD); + convInputs.resize(kernelD); + for (int i=0; i convOutputs(kernelD); + for (int kd=0; kd op(new OpT); + op->type = OpType_Convolution; + op->main.type = OpParameter_Convolution2D; + op->main.value = new Convolution2DT; + auto conv2D = op->main.AsConvolution2D(); + conv2D->common.reset(new Convolution2DCommonT); + // Copy common + auto common2d = conv2D->common.get(); + common2d->inputCount = common->inputCount; + common2d->outputCount = common->outputCount; + common2d->hasOutputShape = common->hasOutputShape; + common2d->dilateX = common->dilates[2]; + common2d->dilateY = common->dilates[1]; + common2d->strideX = common->strides[2]; + common2d->strideY = common->strides[1]; + common2d->pads = {common->pads[1], common->pads[2], common->pads[4], common->pads[5]}; + common2d->kernelX = common->kernels[2]; + common2d->kernelY = common->kernels[1]; + common2d->group = common->group; + common2d->padMode = common->padMode; + // Split Weight + int weightGroupSize = inputChannel*outputChannel / common->group; + conv2D->weight.resize(kernelH * kernelW * weightGroupSize); + for (int i=0; iweight.data() + kernelH * kernelW * i, weightPtr + i * kernelD * kernelH * kernelW + kd * kernelH * kernelW, kernelH * kernelW * sizeof(float)); + } + conv2D->bias.resize(outputChannel); + ::memset(conv2D->bias.data(), 0, outputChannel * sizeof(float)); + if (kd == kernelD - 1) { + ::memcpy(conv2D->bias.data(), biasDataPtr, outputChannel * sizeof(float)); + } + auto convExpr = Expr::create(std::move(op), {convInputs[kd]}, 1); + convOutputs[kd] = Variable::create(convExpr); + convOutputs[kd]->setName(expr->name() + "__" + std::to_string(kd)); + } + VARP output; + if (kernelD > 1) { + std::unique_ptr op(new OpT); + op->type = OpType_Eltwise; + op->main.type = OpParameter_Eltwise; + op->main.value = new EltwiseT; + op->main.AsEltwise()->type = EltwiseType_SUM; + auto eltExpr = Expr::create(std::move(op), convOutputs); + output = Variable::create(eltExpr); + } else { + output = convOutputs[0]; + } + if (common->relu) { + output = _Relu(output); + } else if (common->relu6) { + output = _Relu6(output); + } + + // Split od and batch + sx = _Shape(output, true); + w = _Slice(sx, _Unsqueeze(_Scalar(3), {0}), one); + h = _Slice(sx, _Unsqueeze(_Scalar(2), {0}), one); + auto oc = _Unsqueeze(_Scalar(outputChannel), {0}); + output = _Reshape(output, _Concat({b, negone, oc, h, w}, 0)); + output = _Transpose(output, {0, 2, 1, 3, 4}); + output->expr().first->setName(expr->name()); + return output->expr().first; +} + +static auto gRegister = []() { + auto compare = [](EXPRP expr) { + if (nullptr == expr->get()) { + return false; + } + if (expr->get()->type() != OpType_Convolution3D) { + return false; + } + return expr->get()->type() == OpType_Convolution3D && expr->inputs().size() == 1; + }; + auto modify = [](EXPRP expr) { + auto newExpr = _transformConv3DWithConv2D(expr); + newExpr->setName(expr->name()); + Expr::replace(expr, newExpr); + return true; + }; + TemplateMerge::getInstance("Merge").insertTemplate("Convolution3DTurn2D", compare, modify, PASS_PRIORITY_MIDDLE); + return true; +}(); +} +} // namespace MNN diff --git a/tools/converter/source/optimizer/merge/MergeHelpers.cpp b/tools/converter/source/optimizer/merge/MergeHelpers.cpp index 1b4cdcdaa..f0c21e9a7 100644 --- a/tools/converter/source/optimizer/merge/MergeHelpers.cpp +++ b/tools/converter/source/optimizer/merge/MergeHelpers.cpp @@ -9,7 +9,6 @@ #include #include -#include "../../common/Common.hpp" #include "MNN_generated.h" #include "MergeHelpers.hpp" @@ -17,6 +16,18 @@ using namespace MNN::Express; namespace MNN { namespace helpers { +static MNN_DATA_FORMAT convertFormat(Express::Dimensionformat format) { + switch (format) { + case Express::NCHW: + return MNN_DATA_FORMAT_NCHW; + case Express::NHWC: + return MNN_DATA_FORMAT_NHWC; + case Express::NC4HW4: + return MNN_DATA_FORMAT_NC4HW4; + default: + return MNN_DATA_FORMAT_UNKNOWN; + } +} bool IsConstant(EXPRP expr) { const Op* op = expr->get(); diff --git a/tools/converter/source/optimizer/onnxextra/OnnxBatchNormMerge.cpp b/tools/converter/source/optimizer/onnxextra/OnnxBatchNormMerge.cpp index f902a64f0..e2356c7c9 100644 --- a/tools/converter/source/optimizer/onnxextra/OnnxBatchNormMerge.cpp +++ b/tools/converter/source/optimizer/onnxextra/OnnxBatchNormMerge.cpp @@ -283,34 +283,74 @@ class OnnxLayerNormTransform : public OnnxExtraManager::Transform { } } } - auto axisVar = _Scalar(axis); - // Add negative protect, may decrease performance - auto rankVar = _Rank(inputs[0]); - axisVar = _Mod(axisVar + rankVar, rankVar); - auto reduceAxis = _Range(axisVar, rankVar, _Scalar(1)); - auto mean = _ReduceMeanMutable(input, reduceAxis, true); - auto sub = input - mean; - auto normal = _Rsqrt(_ReduceMeanMutable(_Square(sub), reduceAxis, true) + _Scalar(eps)); - auto y = sub * normal * inputs[1]; - if (inputs.size() > 2) { - y = y + inputs[2]; - } - std::vector identityOutputs = {y}; if (expr->outputSize() > 1) { - identityOutputs.emplace_back(mean); + auto axisVar = _Scalar(axis); + // Add negative protect, may decrease performance + auto rankVar = _Rank(inputs[0]); + axisVar = _Mod(axisVar + rankVar, rankVar); + auto reduceAxis = _Range(axisVar, rankVar, _Scalar(1)); + auto mean = _ReduceMeanMutable(input, reduceAxis, true); + auto sub = input - mean; + auto normal = _Rsqrt(_ReduceMeanMutable(_Square(sub), reduceAxis, true) + _Scalar(eps)); + auto y = sub * normal * inputs[1]; + if (inputs.size() > 2) { + y = y + inputs[2]; + } + std::vector identityOutputs = {y}; + if (expr->outputSize() > 1) { + identityOutputs.emplace_back(mean); + } + if (expr->outputSize() > 2) { + identityOutputs.emplace_back(normal); + } + std::unique_ptr copyOp(new OpT); + copyOp->type = OpType_Identity; + auto resultExpr = Expr::create(copyOp.get(), identityOutputs, identityOutputs.size()); + resultExpr->setName(expr->name()); + for (int i=0; ioutputSize(); ++i) { + auto var = MNN::Express::Variable::create(resultExpr, i); + var->setName(expr->outputName(i)); + } + return resultExpr; + } + std::shared_ptr layernorm(new MNN::OpT); + layernorm->type = OpType_LayerNorm; + layernorm->main.value = new LayerNormT; + layernorm->main.type = OpParameter_LayerNorm; + auto param = layernorm->main.AsLayerNorm(); + param->axis = {axis}; + param->epsilon = eps; + const float* scalePtr = nullptr; + const float* biasPtr = nullptr; + if (inputs.size() > 1) { + scalePtr = inputs[1]->readMap(); } - if (expr->outputSize() > 2) { - identityOutputs.emplace_back(normal); + if (nullptr != scalePtr) { + param->gamma.resize(inputs[1]->getInfo()->size); + ::memcpy(param->gamma.data(), scalePtr, param->gamma.size() * sizeof(float)); + param->beta.resize(inputs[1]->getInfo()->size); + ::memset(param->beta.data(), 0, param->gamma.size() * sizeof(float)); } - std::unique_ptr copyOp(new OpT); - copyOp->type = OpType_Identity; - auto resultExpr = Expr::create(copyOp.get(), identityOutputs, identityOutputs.size()); - resultExpr->setName(expr->name()); - for (int i=0; ioutputSize(); ++i) { - auto var = MNN::Express::Variable::create(resultExpr, i); - var->setName(expr->outputName(i)); + if (inputs.size() > 2 && nullptr != scalePtr) { + biasPtr = inputs[2]->readMap(); + } + if (nullptr != biasPtr) { + ::memcpy(param->beta.data(), biasPtr, param->gamma.size() * sizeof(float)); + } + auto layerexpr = Expr::create(layernorm.get(), {input}); + auto output = Variable::create(layerexpr); + if (scalePtr == nullptr) { + if (inputs.size() > 1) { + output = output * inputs[1]; + } + } + if (biasPtr == nullptr) { + if (inputs.size() > 2) { + output = output + inputs[2]; + } } - return resultExpr; + output->setName(expr->name()); + return output->expr().first; } }; diff --git a/tools/converter/source/optimizer/onnxextra/OnnxConvolutionMerge.cpp b/tools/converter/source/optimizer/onnxextra/OnnxConvolutionMerge.cpp index ec43deee9..5e875a277 100644 --- a/tools/converter/source/optimizer/onnxextra/OnnxConvolutionMerge.cpp +++ b/tools/converter/source/optimizer/onnxextra/OnnxConvolutionMerge.cpp @@ -34,8 +34,9 @@ static EXPRP _transformConv3D(EXPRP expr) { auto weight = inputs[1]; auto weightInfo = weight->getInfo(); - if (nullptr == weightInfo) { - MNN_ERROR("Convolution3D should know weight shape infromation!\n"); + auto weightPtr = weight->readMap(); + if (nullptr == weightInfo || nullptr == weightPtr) { + MNN_ERROR("Convolution3D should has constant weight!\n"); return nullptr; } auto& weightShape = weightInfo->dim; @@ -52,19 +53,7 @@ static EXPRP _transformConv3D(EXPRP expr) { co = weightShape[1]; ci = weightShape[0]; } - std::unique_ptr conv3d(new MNN::Convolution3DT); - const float* weightDataPtr = weight->readMap(); - conv3d->weight.resize(weightInfo->size); - ::memcpy(conv3d->weight.data(), weightDataPtr, weightInfo->size * sizeof(float)); - conv3d->bias.resize(co); - std::fill(conv3d->bias.begin(), conv3d->bias.end(), 0.0f); - if (inputSize == 3) { - auto biasDataPtr = inputs[2]->readMap(); - ::memcpy(conv3d->bias.data(), biasDataPtr, co * sizeof(float)); - } - - conv3d->common.reset(new MNN::Convolution3DCommonT); - auto common = conv3d->common.get(); + std::unique_ptr common(new MNN::Convolution3DCommonT); common->pads = {0, 0, 0, 0, 0, 0}; common->dilates = {1, 1, 1}; common->kernels = {1, 1, 1}; @@ -110,7 +99,22 @@ static EXPRP _transformConv3D(EXPRP expr) { common->outputCount = co; common->inputCount = ci * common->group; // conv set inputCount to be ci, dw to be group } - common->kernels = std::vector({depth, kh, kw}); + common->kernels = std::vector({depth, kh, kw}); + std::unique_ptr conv3d(new MNN::Convolution3DT); + conv3d->weight.resize(weightInfo->size); + ::memcpy(conv3d->weight.data(), weightPtr, weightInfo->size * sizeof(float)); + conv3d->bias.resize(co); + std::fill(conv3d->bias.begin(), conv3d->bias.end(), 0.0f); + bool needExtraBias = false; + if (inputSize == 3) { + auto biasDataPtr = inputs[2]->readMap(); + if (nullptr != biasDataPtr) { + ::memcpy(conv3d->bias.data(), biasDataPtr, co * sizeof(float)); + } else { + needExtraBias = true; + } + } + conv3d->common.reset(common.release());; std::unique_ptr newOp(new OpT); newOp->name = expr->name(); @@ -119,6 +123,10 @@ static EXPRP _transformConv3D(EXPRP expr) { newOp->main.value = conv3d.release(); auto newExpr = Expr::create(newOp.get(), {inputs[0]}, 1); + if (needExtraBias) { + auto newVar = _Add(Variable::create(newExpr), inputs[2]); + newExpr = newVar->expr().first; + } return newExpr; } diff --git a/tools/converter/source/tensorflow/TfModelOptimizer.cpp b/tools/converter/source/tensorflow/TfModelOptimizer.cpp deleted file mode 100644 index b360a330c..000000000 --- a/tools/converter/source/tensorflow/TfModelOptimizer.cpp +++ /dev/null @@ -1,689 +0,0 @@ -// -// TfModelOptimizer.cpp -// MNNConverter -// -// Created by MNN on 2019/01/31. -// Copyright © 2018, Alibaba Group Holding Limited -// - -#include -#include -#include "TfUtils.hpp" -#include "logkit.h" -#include - -namespace TFModelOptimizer { -int FoldMoments(const tensorflow::GraphDef& input_graph_def, const TransformFuncContext& context, - tensorflow::GraphDef* output_graph_def) { - std::map inputs_to_rename; - GraphDef replaced_graph_def; - ReplaceMatchingOpTypes( - input_graph_def, // clang-format off - {"Mean", - { - {"Mul", - { - {"Sub", - { - {"*"}, - {"Mean", - { - {"*"}, - {"Const"} - } - } - } - }, - {"*"} - } - }, - {"Const"} - } - }, // clang-format on - [&inputs_to_rename](const NodeMatch& match, const std::set& input_nodes, - const std::set& output_nodes, std::vector* new_nodes) { - // Find all the nodes we expect in the subgraph. - const NodeDef& variance_mean_node = match.node; - const NodeDef& mul_node = match.inputs[0].node; - const NodeDef& sub_node = match.inputs[0].inputs[0].node; - const NodeDef& mean_node = match.inputs[0].inputs[0].inputs[1].node; - const NodeDef& mean_node_input_node = match.inputs[0].inputs[0].inputs[1].inputs[0].node; - const NodeDef& mean_reduction_indices_node = match.inputs[0].inputs[0].inputs[1].inputs[1].node; - CHECK_EQ(sub_node.input(0), mean_node.input(0)) << "sub and mean should have the same input!"; - - NodeDef moments_node; - moments_node.set_op("Moments"); - moments_node.set_name(mean_node.name() + "__moments"); - SetNodeAttr("T", DT_FLOAT, &moments_node); - CopyNodeAttr(mean_node, "keep_dims", "keep_dims", &moments_node); - CopyNodeAttr(mean_node, "Tidx", "Tidx", &moments_node); - - NodeDef moments_axes_node; - moments_axes_node.set_op("Const"); - moments_axes_node.set_name(mean_node.name() + "_axes"); - CopyNodeAttr(mean_reduction_indices_node, "dtype", "dtype", &moments_axes_node); - CopyNodeAttr(mean_reduction_indices_node, "value", "value", &moments_axes_node); - - AddNodeInput(mean_node.input(0), &moments_node); - AddNodeInput(moments_axes_node.name(), &moments_node); - - inputs_to_rename[mean_node.name()] = moments_node.name() + ":0"; - inputs_to_rename[variance_mean_node.name()] = moments_node.name() + ":1"; - - new_nodes->push_back(moments_node); - new_nodes->push_back(moments_axes_node); - new_nodes->push_back(mean_node_input_node); - return 0; - }, - &replaced_graph_def); - - // Change the input_name of the nodes that use mean and variance. - RenameNodeInputs(replaced_graph_def, inputs_to_rename, std::unordered_set(), output_graph_def); - - return 0; -} - -REGISTER_GRAPH_TRANSFORM("fold_moments", FoldMoments); - -// Fold batchnorm which is unfolded into series of algebraic expressions -// For example:(x - mean) * rsqrt(variance + epsilon) * gamma + beta -// gamma and beta are Const nodes, mean and variance may be Const nodes, or come -// from the outputs of nn.moments() -int FoldBatchNormsAlgebraic(const GraphDef& input_graph_def, const TransformFuncContext& context, - GraphDef* output_graph_def) { - std::map inputs_to_rename; - GraphDef replaced_graph_def; - ReplaceMatchingOpTypes( - input_graph_def, // clang-format off - {"Add", - { - {"Mul", // mul_1-->x * (rsqrt(variance + epsilon) * gamma) - { - {"*"}, - {"Mul", // mul-->rsqrt(variance + epsilon) * gamma - { - {"Rsqrt", - { - {"Add", // add-->variance + epsilon - { - {"*"}, // variance node - {"Const"} // epsilon - } - } - } - }, - {"Const"} // gamma const value - } - } - } - }, - {"Sub", // sub-->beta - (rsqrt(variance + epsilon) * gamma) * mean - { - {"Const"}, // beta const value - {"Mul", // mul_2-->(rsqrt(variance + epsilon) * gamma) * mean - { - {"*"}, // mean node - {"Mul"} // mul - } - } - } - } - } - }, // clang-format on - [&inputs_to_rename](const NodeMatch& match, const std::set& input_nodes, - const std::set& output_nodes, std::vector* new_nodes) { - // Find all the nodes we expect in the subgraph. - const NodeDef& add_node = match.node; - const NodeDef& mul1_node = match.inputs[0].node; - const NodeDef& sub_node = match.inputs[1].node; - const NodeDef& mul1_input0_node = match.inputs[0].inputs[0].node; - const NodeDef& mul_node = match.inputs[0].inputs[1].node; - const NodeDef& add_epsilon_node = match.inputs[0].inputs[1].inputs[0].inputs[0].node; - const NodeDef& epsilon_node = match.inputs[0].inputs[1].inputs[0].inputs[0].inputs[1].node; - const NodeDef& gamma_node = match.inputs[0].inputs[1].inputs[1].node; - const NodeDef& beta_node = match.inputs[1].inputs[0].node; - const NodeDef& mul2_node = match.inputs[1].inputs[1].node; - const NodeDef& mul_node_alias = match.inputs[1].inputs[1].inputs[1].node; - - const NodeDef& mean_node = match.inputs[1].inputs[1].inputs[0].node; - const NodeDef& variance_node = match.inputs[0].inputs[1].inputs[0].inputs[0].inputs[0].node; - CHECK_EQ(mul_node.name(), mul_node_alias.name()) << "Sub graph not matched!"; - - CHECK_EQ("Const", epsilon_node.op()) << "Sub graph not matched!"; - CHECK_EQ("Const", gamma_node.op()) << "You Should Apply remove_nodes(op=Identity) first!"; - CHECK_EQ("Const", beta_node.op()) << "You Should Apply remove_nodes(op=Identity) first!"; - - NodeDef instance_norms_node; - if (mean_node.op() == "Const" && variance_node.op() == "Const") { - instance_norms_node.set_op("FusedBatchNorm"); - instance_norms_node.set_name(add_node.name() + "__FusedBatchNorm"); - } else { - instance_norms_node.set_op("InstanceNorm"); - instance_norms_node.set_name(add_node.name() + "__InstanceNorm"); - } - SetNodeAttr("T", DT_FLOAT, &instance_norms_node); - // CopyNodeAttr(epsilon_node, "value", "epsilon", &instance_norms_node); - float epsilon = 0.001; - tensorflow::AttrValue value; - if (find_attr_value(&epsilon_node, "value", value)) { - epsilon = value.tensor().float_val(0); - } - SetNodeAttr("epsilon", epsilon, &instance_norms_node); - AddNodeInput(mul1_input0_node.name(), &instance_norms_node); - AddNodeInput(gamma_node.name(), &instance_norms_node); - AddNodeInput(beta_node.name(), &instance_norms_node); - AddNodeInput(mul2_node.input(0), &instance_norms_node); - AddNodeInput(add_epsilon_node.input(0), &instance_norms_node); - - new_nodes->push_back(instance_norms_node); - new_nodes->push_back(gamma_node); - new_nodes->push_back(beta_node); - new_nodes->push_back(mean_node); - new_nodes->push_back(variance_node); - new_nodes->push_back(mul1_input0_node); - - inputs_to_rename[add_node.name()] = instance_norms_node.name(); - return 0; - }, - &replaced_graph_def); - - // Chang the input_name which use nodes in this sub graph - RenameNodeInputs(replaced_graph_def, inputs_to_rename, std::unordered_set(), output_graph_def); - return 0; -} - -REGISTER_GRAPH_TRANSFORM("fold_batch_norms_algebraic", FoldBatchNormsAlgebraic); - -// Deletes any specified types of nodes, unless they're necessary for the -// graph's inputs or outputs. -int RemoveNodes(const GraphDef& input_graph_def, const TransformFuncContext& context, GraphDef* output_graph_def) { - if (!context.params.count("op")) { - LOG(FATAL) << "remove_nodes expects at least one 'op' argument, e.g. remove_nodes(op=Identity)"; - } - int32_t max_inputs = 1; - - // Make sure we don't get rid of any nodes used as graph inputs or outputs. - std::set required_nodes; - for (const std::string& input : context.input_names) { - required_nodes.insert(NodeNameFromInput(input)); - } - for (const std::string& output : context.output_names) { - required_nodes.insert(NodeNameFromInput(output)); - } - - std::vector ops_to_remove = context.params.at("op"); - GraphDef current_graph_def = input_graph_def; - for (const std::string& op : ops_to_remove) { - for (int num_inputs = 1; num_inputs <= max_inputs; ++num_inputs) { - // Look for a variable number of inputs. - OpTypePattern pattern = {op}; - pattern.inputs.resize(num_inputs); - for (int i = 0; i < num_inputs; ++i) { - pattern.inputs[i] = {"*"}; - } - // Keep looking for nodes to remove until there are no more changes. - bool any_nodes_removed; - do { - any_nodes_removed = false; - std::map inputs_to_rename; - GraphDef replaced_graph_def; - ReplaceMatchingOpTypes( - current_graph_def, pattern, - [&inputs_to_rename, &required_nodes, &any_nodes_removed]( - const NodeMatch& match, const std::set& input_nodes, - const std::set& output_nodes, std::vector* new_nodes) { - const NodeDef& replace_node = match.node; - // If this node is needed in the inputs or outputs don't replace - // it. - if (required_nodes.count(replace_node.name())) { - LOG(INFO) << "Skipping replacement for " << replace_node.name(); - CopyOriginalMatch(match, new_nodes); - return 0; - } - const NodeDef& input_node = match.inputs[0].node; - std::string target_name = input_node.name(); - for (const std::string& input : replace_node.input()) { - if (!input.compare(0, target_name.size(), target_name)) { - if (input.size() == target_name.size() || input[target_name.size()] == ':') { - target_name = input; - break; - } - } - } - inputs_to_rename[replace_node.name()] = target_name; - inputs_to_rename["^" + replace_node.name()] = "^" + input_node.name(); - new_nodes->push_back(input_node); - any_nodes_removed = true; - return 0; - }, - &replaced_graph_def); - // Make sure all references to removed nodes now point to their inputs. - RenameNodeInputs(replaced_graph_def, inputs_to_rename, std::unordered_set(), - ¤t_graph_def); - } while (any_nodes_removed); - } - } - *output_graph_def = current_graph_def; - return 0; -} - -REGISTER_GRAPH_TRANSFORM("remove_nodes", RemoveNodes); - -int ResolveRNNGRUCell(const tensorflow::GraphDef& input_graph_def, const TransformFuncContext& context, - tensorflow::GraphDef* output_graph_def) { - // clang-format off - const OpTypePattern gru_cell_pattern = - {"Add", // Cell State at time (t) - { - {"Mul", - { - {"Split", // the same node as below the Split node, ref: r, u = array_ops.split(value=value, num_or_size_splits=2, axis=1) - { - {"Const"}, - {"Sigmoid", - { - {"BiasAdd", - { - {"MatMul", - { - {"ConcatV2|Concat", - { - {"*"}, // inputs at time (t) - {"*"}, // state - {"Const"} // axis - } - }, - {"Const"} - } - }, - {"Const"} - } - } - } - } - } - }, - {"Add"} // Cell State at time (t - 1) - } - }, - {"Mul", - { - {"Sub", - { - {"Const"}, - {"Split"} - } - }, - {"Tanh", - { - {"BiasAdd", - { - {"MatMul", - { - {"ConcatV2|Concat", - { - {"*"}, // inputs at time (t) - {"*"}, // state - {"Const"} // axis - } - }, - {"Const"} - } - }, - {"Const"} - } - } - } - } - } - } - } - }; - // clang-format on - - std::map> outputs_map; - MapNodesToOutputs(input_graph_def, &outputs_map); - // gru match constraint function - std::set rnn_outputs; // this is rnn mid outputs - match_constraint_fun gru_match_constraint = [&outputs_map, &rnn_outputs](const NodeDef& node, - const OpTypePattern& pattern, - const NodeMatch* match) { - if (node.op() == "Add") { - const auto& add_output_nodes = outputs_map[node.name()]; - const int add_output_nodes_size = add_output_nodes.size(); - if (add_output_nodes_size >= 3 && pattern.inputs.size() == 2) { - // when Add output 3 outputs(Mul,Mul,Concat|ConcatV2,[output]), set pattern_matched to be false - std::map op_types; - for (const auto output : add_output_nodes) { - if (op_types.count(output->op())) { - op_types[output->op()] += 1; - } else { - op_types[output->op()] = 1; - } - } - bool rnn_mid_state_output = op_types.size() >= 2 && op_types["Mul"] == 2 && op_types["ConcatV2"] == 1; - if (rnn_mid_state_output && add_output_nodes_size > 3) { - rnn_outputs.insert(add_output_nodes.back()->name()); - } - if (rnn_mid_state_output) { - return false; - } - } - } - return true; - }; - - // search this pattern in the tensorflow Graph - GraphMatcher matcher(input_graph_def, gru_match_constraint); - std::vector matches; - matcher.GetOpTypeMatches(gru_cell_pattern, &matches); - - const int matchedSize = matches.size(); - bool keep_all_outputs = false; - const int rnn_outputs_size = rnn_outputs.size(); - DCHECK(rnn_outputs_size <= matchedSize) << "RNN GRU Cell Output ERROR!"; - if (rnn_outputs_size >= 1) { - keep_all_outputs = true; - } - - if (matchedSize >= 1) { - // get one node from matched node to mark the matched-pattern, incase search thoes nodes again - std::set matched_nodes{}; - for (int i = 0; i < matchedSize; ++i) { - matched_nodes.insert(matches[i].node.name()); - } - - std::vector rnn_nodes; - // from the very last node(Add), collect all the nodes in the GRU cell sub-graph, - // and delete the nodes but keep the gate and candidate kernel(weight) - std::set ready_to_detele; - // replace the input node name - std::map inputs_to_rename; - - for (int i = 0; i < matchedSize; ++i) { - // this model has gru cell - // replace the GRU cell with RNNSequenceGRU - // DCHECK(matches.size() == 1) << "Now only recognise the static_rnn()"; - // [TODO] check the matches according to the same node in the matches(Split, inputs) - - const auto& the_very_last_node = matches[i].node; // this is the GRU Cell output node - const auto& gru_input_node = - matches[i].inputs[0].inputs[0].inputs[1].inputs[0].inputs[0].inputs[0].inputs[0].node; - const auto& gate_kernel_node = matches[i].inputs[0].inputs[0].inputs[1].inputs[0].inputs[0].inputs[1].node; - const auto& gate_bias_node = matches[i].inputs[0].inputs[0].inputs[1].inputs[0].inputs[1].node; - const auto& candidate_kernel_node = matches[i].inputs[1].inputs[1].inputs[0].inputs[0].inputs[1].node; - const auto& candidate_bias_node = matches[i].inputs[1].inputs[1].inputs[0].inputs[1].node; - const auto& gate_concat_node = matches[i].inputs[0].inputs[0].inputs[1].inputs[0].inputs[0].inputs[0].node; - - const auto& rnn_next_nodes = outputs_map[the_very_last_node.name()]; - // if keep all outputs(rnn mid output), the rnn next op is Pack[tf.stack], then delete this op - if (keep_all_outputs) { - DCHECK(rnn_next_nodes.size() == 1 && rnn_next_nodes[0]->op() == "Pack"); - auto pack_node = rnn_next_nodes[0]; - ready_to_detele.insert(pack_node->name()); - } - - DCHECK(gru_input_node.op() == "Unpack") - << "Now only support for getting input from one node, like form [tf.unstack]"; - DCHECK(gate_kernel_node.op() == "Const") << "Get RNN weight error"; - DCHECK(gate_bias_node.op() == "Const") << "Get RNN weight error"; - DCHECK(candidate_kernel_node.op() == "Const") << "Get RNN weight error"; - DCHECK(candidate_bias_node.op() == "Const") << "Get RNN weight error"; - std::map node_map; - MapNamesToNodes(input_graph_def, &node_map); - const std::vector input_nodes = {gru_input_node.name()}; - const std::vector output_nodes = {the_very_last_node.name()}; - CollectSubGraphNodes(input_nodes, output_nodes, node_map, ready_to_detele); - // keep kernel node - ready_to_detele.erase(gate_kernel_node.name()); - ready_to_detele.erase(gate_bias_node.name()); - ready_to_detele.erase(candidate_kernel_node.name()); - ready_to_detele.erase(candidate_bias_node.name()); - - // construct rnn gru node - NodeDef rnn_sequence_gru_node; - rnn_sequence_gru_node.set_op("RNNSequenceGRU"); - rnn_sequence_gru_node.set_name(the_very_last_node.name() + "__RNNSequenceGRU_" + flatbuffers::NumToString(i)); - SetNodeAttr("T", DT_FLOAT, &rnn_sequence_gru_node); - if (keep_all_outputs) { - SetNodeAttr("keep_all_outputs", true, &rnn_sequence_gru_node); - } else { - SetNodeAttr("keep_all_outputs", false, &rnn_sequence_gru_node); - } - // AddNodeInput(gru_input_node.name(), &rnn_sequence_gru_node); - - if (keep_all_outputs) { - inputs_to_rename[rnn_next_nodes[0]->name()] = rnn_sequence_gru_node.name(); - } - - bool is_bidirectional_rnn = false; - // check whether this RNN-GRU is bidirectional_rnn - { - // only one gru cell matched, then go on searching to check bidirectional_rnn - matcher.SetMatchedNodes(matched_nodes); - std::vector bid_matches; - matcher.GetOpTypeMatches(gru_cell_pattern, &bid_matches); - if (bid_matches.size() == 1) { - // this is bidirectional_rnn - is_bidirectional_rnn = true; - const auto& the_very_last_node_bid = bid_matches[0].node; // this is the GRU Cell output node - const auto& gru_input_node_bid = - bid_matches[0].inputs[0].inputs[0].inputs[1].inputs[0].inputs[0].inputs[0].inputs[0].node; - DCHECK(gru_input_node.name() == gru_input_node_bid.name()) - << "bidirectional_rnn fw and bw should share one input!"; - const auto& gate_kernel_node_bid = - bid_matches[0].inputs[0].inputs[0].inputs[1].inputs[0].inputs[0].inputs[1].node; - const auto& gate_bias_node_bid = - bid_matches[0].inputs[0].inputs[0].inputs[1].inputs[0].inputs[1].node; - const auto& candidate_kernel_node_bid = - bid_matches[0].inputs[1].inputs[1].inputs[0].inputs[0].inputs[1].node; - const auto& candidate_bias_node_bid = bid_matches[0].inputs[1].inputs[1].inputs[0].inputs[1].node; - - const auto& gate_concat_node_bid = - bid_matches[0].inputs[0].inputs[0].inputs[1].inputs[0].inputs[0].inputs[0].node; - - const std::vector input_nodes = {gru_input_node_bid.name()}; - const std::vector output_nodes = {the_very_last_node_bid.name()}; - CollectSubGraphNodes(input_nodes, output_nodes, node_map, ready_to_detele); - - // keep kernel node - ready_to_detele.erase(gate_kernel_node_bid.name()); - ready_to_detele.erase(gate_bias_node_bid.name()); - ready_to_detele.erase(candidate_kernel_node_bid.name()); - ready_to_detele.erase(candidate_bias_node_bid.name()); - - // delete the rnn's input node when input_node is Unpack(tf.unstack) - DCHECK(gru_input_node.input_size() == 1) << "Error"; - AddNodeInput(NodeNameFromInput(gru_input_node.input(0)), &rnn_sequence_gru_node); - ready_to_detele.insert(gru_input_node.name()); - - // check fw or bw? - std::string prefix; - std::string node_name; - std::string suffix; - DCHECK(gate_concat_node.input_size() == 3) << "Error!"; - NodeNamePartsFromInput(gate_concat_node.input(0), &prefix, &node_name, &suffix); - - std::string prefix_bid; - std::string node_name_bid; - std::string suffix_bid; - DCHECK(gate_concat_node_bid.input_size() == 3) << "Error!"; - NodeNamePartsFromInput(gate_concat_node_bid.input(0), &prefix_bid, &node_name_bid, &suffix_bid); - if (suffix != "" && suffix_bid == "") { - // the second match is bw - // fw - AddNodeInput(gate_kernel_node.name(), &rnn_sequence_gru_node); - AddNodeInput(gate_bias_node.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_kernel_node.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_bias_node.name(), &rnn_sequence_gru_node); - // bw weight - AddNodeInput(gate_kernel_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(gate_bias_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_kernel_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_bias_node_bid.name(), &rnn_sequence_gru_node); - - inputs_to_rename[the_very_last_node.name()] = rnn_sequence_gru_node.name(); - inputs_to_rename[the_very_last_node_bid.name()] = rnn_sequence_gru_node.name() + ":1"; - } else if (suffix == "" && suffix_bid != "") { - AddNodeInput(gate_kernel_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(gate_bias_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_kernel_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_bias_node_bid.name(), &rnn_sequence_gru_node); - AddNodeInput(gate_kernel_node.name(), &rnn_sequence_gru_node); - AddNodeInput(gate_bias_node.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_kernel_node.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_bias_node.name(), &rnn_sequence_gru_node); - - inputs_to_rename[the_very_last_node.name()] = rnn_sequence_gru_node.name() + ":1"; - inputs_to_rename[the_very_last_node_bid.name()] = rnn_sequence_gru_node.name(); - } else { - DLOG(FATAL) << "Now only support for getting input from one node, like form [tf.unstack]"; - } - } else { - // not bidirectional_rnn - { - // delete the rnn's input node when input_node is Unpack(tf.unstack) - DCHECK(gru_input_node.input_size() == 1) << "Error"; - AddNodeInput(NodeNameFromInput(gru_input_node.input(0)), &rnn_sequence_gru_node); - ready_to_detele.insert(gru_input_node.name()); - - AddNodeInput(gate_kernel_node.name(), &rnn_sequence_gru_node); - AddNodeInput(gate_bias_node.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_kernel_node.name(), &rnn_sequence_gru_node); - AddNodeInput(candidate_bias_node.name(), &rnn_sequence_gru_node); - - inputs_to_rename[the_very_last_node.name()] = rnn_sequence_gru_node.name(); - } - } - } - if (is_bidirectional_rnn) { - SetNodeAttr("is_bidirectional_rnn", true, &rnn_sequence_gru_node); - } else { - SetNodeAttr("is_bidirectional_rnn", false, &rnn_sequence_gru_node); - } - - rnn_nodes.push_back(rnn_sequence_gru_node); - } - - // construct new graph - GraphDef replaced_graph_def; - replaced_graph_def.Clear(); - for (auto& node : rnn_nodes) { - NodeDef* gru_node = replaced_graph_def.mutable_node()->Add(); - *gru_node = node; - } - for (const NodeDef& input_node : input_graph_def.node()) { - if (ready_to_detele.count(input_node.name())) { - continue; - } - NodeDef* keep_node = replaced_graph_def.mutable_node()->Add(); - *keep_node = input_node; - } - - RenameNodeInputs(replaced_graph_def, inputs_to_rename, std::unordered_set(), output_graph_def); - - std::ofstream out("rnn_gru.pb"); - std::string outStr; - output_graph_def->SerializeToString(&outStr); - out << outStr; - out.close(); - - } else { - // keep all the graph - *output_graph_def = input_graph_def; - } - - return 0; -} - -REGISTER_GRAPH_TRANSFORM("ResolveRNNGRUCell", ResolveRNNGRUCell); - -int FuseConvPad(const tensorflow::GraphDef& input_graph_def, const TransformFuncContext& context, - tensorflow::GraphDef* output_graph_def) { - GraphDef replaced_graph_def; - ReplaceMatchingOpTypes( - input_graph_def, // clang-format off - {"Conv2D|DepthwiseConv2dNative", - { - {"Pad", - { - {"*"}, - {"*"} - } - }, - {"*"} - } - }, // clang-format on - [](const NodeMatch& match, const std::set& input_nodes, const std::set& output_nodes, - std::vector* new_nodes) { - const NodeDef& conv_node = match.node; - const NodeDef& pad_node = match.inputs[0].node; - const NodeDef& weight_node = match.inputs[1].node; - const NodeDef& input_node = match.inputs[0].inputs[0].node; - const NodeDef& pad_dims_node = match.inputs[0].inputs[1].node; - - new_nodes->push_back(weight_node); - new_nodes->push_back(input_node); - NodeDef fused_conv_pad; - const auto& originalOpType = conv_node.op(); - fused_conv_pad.set_op(originalOpType); - fused_conv_pad.set_name(conv_node.name()); - AddNodeInput(input_node.name(), &fused_conv_pad); - AddNodeInput(weight_node.name(), &fused_conv_pad); - CopyNodeAttr(conv_node, "T", "T", &fused_conv_pad); - CopyNodeAttr(conv_node, "data_format", "data_format", &fused_conv_pad); - CopyNodeAttr(conv_node, "strides", "strides", &fused_conv_pad); - CopyNodeAttr(conv_node, "dilations", "dilations", &fused_conv_pad); - SetNodeAttr("padding", "Symmetric", &fused_conv_pad); - new_nodes->push_back(fused_conv_pad); - - return 0; - }, - &replaced_graph_def); - *output_graph_def = replaced_graph_def; - return 0; -} - -REGISTER_GRAPH_TRANSFORM("FuseConvPad", FuseConvPad); - -int FuseRelu6(const tensorflow::GraphDef& input_graph_def, const TransformFuncContext& context, - tensorflow::GraphDef* output_graph_def) { - std::map inputs_to_rename; - GraphDef replaced_graph_def; - ReplaceMatchingOpTypes( - input_graph_def, // clang-format off - {"Minimum", - { - {"Relu"}, - {"Const"} - } - }, // clang-format on - [&inputs_to_rename](const NodeMatch& match, const std::set& input_nodes, - const std::set& output_nodes, std::vector* new_nodes) { - const auto& minimun_node = match.node; - const auto& relu_node = match.inputs[0].node; - const auto& const_node = match.inputs[1].node; - - tensorflow::AttrValue value; - if (find_attr_value(&const_node, "value", value)) { - const float minimun_value = value.tensor().float_val(0); - DCHECK(6.0f == minimun_value) << "fuse relu6 failed!"; - } else { - DLOG(FATAL) << "fuse relu6 failed!"; - } - NodeDef relu6; - relu6.set_op("Relu6"); - relu6.set_name(relu_node.name()); - AddNodeInput(relu_node.input(0), &relu6); - new_nodes->push_back(relu6); - inputs_to_rename[minimun_node.name()] = relu6.name(); - return 0; - }, - &replaced_graph_def); - - RenameNodeInputs(replaced_graph_def, inputs_to_rename, std::unordered_set(), output_graph_def); - - return 0; -} - -} // namespace TFModelOptimizer diff --git a/tools/converter/source/tensorflow/TfUtils.cpp b/tools/converter/source/tensorflow/TfUtils.cpp index 2320a5939..387b899c3 100644 --- a/tools/converter/source/tensorflow/TfUtils.cpp +++ b/tools/converter/source/tensorflow/TfUtils.cpp @@ -64,486 +64,3 @@ bool convertDataFormat(const float* src, float* dst, int planeNumber, int CI, in return true; } - -namespace TFModelOptimizer { -static std::vector strSplit(const std::string input_str, std::string pattern) { - std::string::size_type pos; - std::vector result; - std::string str = input_str; - str += pattern; - const int size = str.size(); - - for (int i = 0; i < size; i++) { - pos = str.find(pattern, i); - if (pos < size) { - std::string s = str.substr(i, pos - i); - result.push_back(s); - i = pos + pattern.size() - 1; - } - } - return result; -} - -static bool strEndsWith(std::string text, std::string suffix) { - return suffix.empty() || (text.size() >= suffix.size() && - memcmp(text.data() + (text.size() - suffix.size()), suffix.data(), suffix.size()) == 0); -} - -void NodeNamePartsFromInput(const std::string& input_name, std::string* prefix, std::string* node_name, - std::string* suffix) { - auto input_parts = strSplit(input_name, ":"); - if (input_parts.size() < 2) { - *suffix = ""; - } else { - *suffix = ":" + input_parts[1]; - } - *node_name = input_parts[0]; - if ((*node_name)[0] == '^') { - *prefix = "^"; - node_name->erase(node_name->begin()); - } else { - *prefix = ""; - } -} - -std::string NodeNameFromInput(const std::string& input_name) { - std::string prefix; - std::string node_name; - std::string suffix; - NodeNamePartsFromInput(input_name, &prefix, &node_name, &suffix); - return node_name; -} - -std::string CanonicalInputName(const std::string& input_name) { - std::string prefix; - std::string node_name; - std::string suffix; - NodeNamePartsFromInput(input_name, &prefix, &node_name, &suffix); - if (suffix.empty()) { - suffix = ":0"; - } - return prefix + node_name + suffix; -} - -void MatchedNodesAsArray(const NodeMatch& match, std::vector* result) { - std::set found_nodes; - std::vector current_matches = {match}; - while (!current_matches.empty()) { - std::vector next_matches; - for (const NodeMatch& current_match : current_matches) { - if (found_nodes.count(current_match.node.name())) { - continue; - } - found_nodes.insert(current_match.node.name()); - result->push_back(current_match.node); - for (const NodeMatch& input_match : current_match.inputs) { - next_matches.push_back(input_match); - } - } - current_matches = next_matches; - } -} - -void RecordMatchedNodes(const NodeMatch& match, std::set* matchedNodes) { - matchedNodes->insert(match.node.name()); - for (const NodeMatch& input_match : match.inputs) { - RecordMatchedNodes(input_match, matchedNodes); - } -} - -std::string OpTypePattern::DebugString() const { - std::string result = "{" + op + ", {"; - for (const OpTypePattern& input : inputs) { - result += input.DebugString() + ","; - } - result += "}}"; - return result; -} - -std::string NodeMatch::DebugString() const { - std::string result = "{"; - result += node.DebugString(); - result += ", {"; - for (const NodeMatch& input : inputs) { - result += input.DebugString() + ","; - } - result += "}}"; - return result; -} - -void MapNamesToNodes(const GraphDef& graph_def, std::map* result) { - for (const NodeDef& node : graph_def.node()) { - (*result)[node.name()] = &node; - } -} - -void MapNodesToOutputs(const GraphDef& graph_def, std::map>* result) { - // std::map node_map; - // MapNamesToNodes(graph_def, &node_map); - for (const NodeDef& node : graph_def.node()) { - for (const std::string& input : node.input()) { - std::string input_node_name = NodeNameFromInput(input); - (*result)[input_node_name].push_back(&node); - } - } -} - -int SortByExecutionOrder(const GraphDef& input_graph_def, GraphDef* output_graph_def) { - const int num_nodes = input_graph_def.node_size(); - std::vector ready; - std::vector pending_count; - pending_count.reserve(num_nodes); - std::vector> outputs(num_nodes); - std::map name_index; - for (int i = 0; i < input_graph_def.node_size(); ++i) { - const NodeDef& node(input_graph_def.node(i)); - name_index[node.name()] = i; - } - - for (int n = 0; n < num_nodes; ++n) { - const NodeDef& node_def(input_graph_def.node(n)); - if (IsMerge(node_def)) { - int num_control_edges = 0; - for (int i = 0; i < node_def.input_size(); ++i) { - if (node_def.input(i)[0] == '^') { - num_control_edges++; - } - } - pending_count.push_back(num_control_edges + 1); - } else { - pending_count.push_back(node_def.input_size()); - } - if (node_def.input_size() == 0) { - ready.push_back(n); - continue; - } - for (int i = 0; i < node_def.input_size(); ++i) { - const std::string input_name = node_def.input(i); - const std::string input_node_name = NodeNameFromInput(input_name); - if (!name_index.count(input_node_name)) { - LOG(FATAL) << "Node '" << node_def.name() << "': Unknown input node ==> '" << node_def.input(i) << "'"; - } - outputs[name_index[input_node_name]].push_back(n); - } - } - - int processed = 0; - output_graph_def->Clear(); - while (!ready.empty()) { - int o = ready.back(); - ready.pop_back(); - ++processed; - const NodeDef& node_def(input_graph_def.node(o)); - *output_graph_def->mutable_node()->Add() = node_def; - - for (size_t i = 0; i < outputs[o].size(); ++i) { - const int output = outputs[o][i]; - pending_count[output]--; - if (pending_count[output] == 0) { - ready.push_back(output); - } - } - } - if (processed < num_nodes) { - LOG(FATAL) << "IN " << (num_nodes - processed) << " NODES IN A CYCLE"; - return -1; - } - return 0; -} - -GraphMatcher::GraphMatcher(const tensorflow::GraphDef& graph_def, match_constraint_fun func) { - SortByExecutionOrder(graph_def, &graph_def_); - MapNamesToNodes(graph_def_, &node_map_); - match_constraint_ = std::move(func); - matched_nodes_ = std::set(); -} - -int GraphMatcher::GetOpTypeMatches(const OpTypePattern& pattern, std::vector* matches) { - std::set matched_nodes = matched_nodes_; - for (const NodeDef& node : graph_def_.node()) { - // Skip any nodes that are already part of a match. - if (matched_nodes.count(node.name())) { - continue; - } - NodeMatch match; - if (DoesOpTypeMatch(node, pattern, matched_nodes, &match)) { - RecordMatchedNodes(match, &matched_nodes); - matches->push_back(match); - } - } - return 0; -} - -bool GraphMatcher::DoesOpTypeMatch(const NodeDef& node, const OpTypePattern& pattern, - const std::set& previously_matched_nodes, NodeMatch* match) { - // LOG(INFO) << "Looking at node " << node->DebugString(); - // LOG(INFO) << "Pattern=" << pattern.DebugString(); - - if (previously_matched_nodes.count(node.name())) { - return false; - } - bool pattern_matched = false; - if (pattern.op == "*") { - pattern_matched = true; - } else { - auto pattern_ops = strSplit(pattern.op, "|"); - for (const auto& pattern_op : pattern_ops) { - if (node.op() == pattern_op) { - // default - pattern_matched = true; - // call match constraint function - pattern_matched = match_constraint_(node, pattern, match); - } - } - } - if (!pattern_matched) { - return false; - } - - match->node = node; - // LOG(INFO) << "Match=" << match->DebugString(); - std::vector non_control_inputs; - for (const std::string& input : node.input()) { - if (!input.empty() && (input[0] != '^')) { - non_control_inputs.push_back(input); - } - } - - if (pattern.inputs.empty()) { - // the last one pattern - return true; - } - if (non_control_inputs.size() != pattern.inputs.size()) { - return false; - } - for (int i = 0; i < pattern.inputs.size(); ++i) { - const auto& input_node_name = NodeNameFromInput(non_control_inputs[i]); - const NodeDef& input_node = *(node_map_[input_node_name]); - const auto input_pattern = pattern.inputs[i]; - match->inputs.push_back(NodeMatch()); - NodeMatch* input_match = &(match->inputs.back()); - if (!DoesOpTypeMatch(input_node, input_pattern, previously_matched_nodes, input_match)) { - return false; - } - } - return true; -} - -void GraphMatcher::SetMatchConstraintFunction(match_constraint_fun func) { - match_constraint_ = std::move(func); -} - -void GraphMatcher::SetMatchedNodes(std::set& matched_nodes) { - matched_nodes_ = matched_nodes; -} - -int ReplaceMatchingOpTypes( - const GraphDef& input_graph_def, const OpTypePattern& pattern, - const std::function&, const std::set&, - std::vector*)>& node_generator, - GraphDef* output_graph_def) { - GraphMatcher matcher(input_graph_def, [](const NodeDef& node, const OpTypePattern& pattern, - const NodeMatch* match) { return true; }); - std::vector matches; - matcher.GetOpTypeMatches(pattern, &matches); - - std::set matched_nodes; - std::map matches_by_headName; - for (const NodeMatch& match : matches) { - matches_by_headName[match.node.name()] = &match; - RecordMatchedNodes(match, &matched_nodes); - } - std::map> outputs_map; - MapNodesToOutputs(input_graph_def, &outputs_map); - output_graph_def->Clear(); - for (const NodeDef& input_node : input_graph_def.node()) { - if (matches_by_headName.count(input_node.name())) { - const NodeMatch* match = matches_by_headName[input_node.name()]; - std::vector matched_nodes_array; - MatchedNodesAsArray(*match, &matched_nodes_array); - std::set matched_nodes_lookup; - for (const auto matched_node : matched_nodes_array) { - matched_nodes_lookup.insert(matched_node.name()); - } - std::set input_nodes; - std::set output_nodes; - for (const auto matched_node : matched_nodes_array) { - for (const auto& input_name : matched_node.input()) { - if (!matched_nodes_lookup.count(input_name)) { - input_nodes.insert(matched_node.name()); - } - } - - if (outputs_map.count(matched_node.name())) { - for (const auto& dependent_node : outputs_map[matched_node.name()]) { - if (!matched_nodes_lookup.count(dependent_node->name())) { - output_nodes.insert(matched_node.name()); - } - } - } - } - - std::vector new_nodes; - node_generator(*match, input_nodes, output_nodes, &new_nodes); - - std::set new_node_names; - for (const auto& new_node : new_nodes) { - new_node_names.insert(new_node.name()); - } - bool abort_replacement = false; - if (false) { - for (const auto& expected_output : output_nodes) { - if (!new_node_names.count(expected_output)) { - LOG(ERROR) << "Expected " << expected_output << " to be preserved."; - abort_replacement = true; - } - } - } - if (abort_replacement) { - LOG(ERROR) << "Generator function didn't preserve needed nodes."; - std::vector old_nodes; - MatchedNodesAsArray(*match, &old_nodes); - for (const NodeDef& old_node : old_nodes) { - NodeDef* added_node = output_graph_def->mutable_node()->Add(); - *added_node = old_node; - } - } else { - for (const NodeDef& new_node : new_nodes) { - NodeDef* added_node = output_graph_def->mutable_node()->Add(); - *added_node = new_node; - } - } - } else if (!matched_nodes.count(input_node.name())) { - NodeDef* added_node = output_graph_def->mutable_node()->Add(); - *added_node = input_node; - } else { - } - } - return 0; -} - -int RenameNodeInputs(const GraphDef& input_graph_def, const std::map& inputs_to_rename, - const std::unordered_set& nodes_to_ignore, GraphDef* output_graph_def) { - std::map>> canonical_inputs_to_rename; - for (const auto& input_to_rename : inputs_to_rename) { - canonical_inputs_to_rename[NodeNameFromInput(input_to_rename.first)].push_back( - {input_to_rename.first, input_to_rename.second}); - } - - output_graph_def->Clear(); - for (const NodeDef& node : input_graph_def.node()) { - NodeDef* new_node = output_graph_def->mutable_node()->Add(); - *new_node = node; - new_node->mutable_input()->Clear(); - for (const std::string& input_name : node.input()) { - std::set already_visited; - std::string new_input_name = input_name; - while (canonical_inputs_to_rename.count(NodeNameFromInput(new_input_name))) { - std::string input_node_name = NodeNameFromInput(new_input_name); - if (already_visited.count(input_node_name)) { - LOG(FATAL) << "RenameNodeInputs argument contains a cycle for " << input_node_name; - } - already_visited.insert(input_node_name); - if (nodes_to_ignore.count(node.name())) { - break; - } - bool any_match_found = false; - for (const std::pair& input_to_rename : - canonical_inputs_to_rename.at(input_node_name)) { - const std::string& source_name = input_to_rename.first; - const std::string& dest_name = input_to_rename.second; - bool is_match; - std::string match_name; - if (strEndsWith(source_name, ":*")) { - is_match = true; - std::string prefix; - std::string unused_node_name; - std::string suffix; - NodeNamePartsFromInput(new_input_name, &prefix, &unused_node_name, &suffix); - match_name = prefix + dest_name + suffix; - } else { - is_match = (CanonicalInputName(source_name) == CanonicalInputName(new_input_name)); - match_name = dest_name; - } - if (is_match) { - new_input_name = match_name; - any_match_found = true; - } - } - if (!any_match_found) { - break; - } - } - *(new_node->mutable_input()->Add()) = new_input_name; - } - } - return 0; -} - -void CollectSubGraphNodes(const std::vector& input_nodes, const std::vector& output_nodes, - std::map& node_map, std::set& sub_graph_nodes) { - if (input_nodes.empty() || output_nodes.empty()) { - return; - } - - std::vector visit_nodes = output_nodes; - while (!visit_nodes.empty()) { - sub_graph_nodes.insert(visit_nodes.back()); - const NodeDef* cur_output_node = node_map[visit_nodes.back()]; - - visit_nodes.pop_back(); - const int input_node_size = cur_output_node->input_size(); - if (input_node_size == 0) { - continue; - } - - for (int j = 0; j < input_node_size; ++j) { - const auto& input_node_name = NodeNameFromInput(cur_output_node->input(j)); - if (std::find(input_nodes.begin(), input_nodes.end(), input_node_name) != input_nodes.end()) { - continue; - } - if (std::find(visit_nodes.begin(), visit_nodes.end(), input_node_name) == visit_nodes.end() && - !sub_graph_nodes.count(input_node_name)) { - visit_nodes.push_back(input_node_name); - } - } - } -} - -void CopyOriginalMatch(const NodeMatch& match, std::vector* new_nodes) { - std::vector old_nodes; - MatchedNodesAsArray(match, &old_nodes); - for (const NodeDef& old_node : old_nodes) { - new_nodes->push_back(old_node); - } -} - -void SetAttrValue(tensorflow::DataType type, AttrValue* out) { - out->set_type(type); -} - -void SetAttrValue(bool value, AttrValue* out) { - out->set_b(value); -} - -void SetAttrValue(const std::string& value, AttrValue* out) { - out->set_s(value.c_str()); -} - -void SetAttrValue(float value, AttrValue* out) { - out->set_f(value); -} - -void AddNodeInput(const std::string& input_name, NodeDef* node) { - *(node->mutable_input()->Add()) = input_name; -} -void CopyNodeAttr(const NodeDef& source, const std::string& source_key, const std::string& dest_key, NodeDef* dest) { - CHECK_NE(0, source.attr().count(source_key)) << "No key '" << source_key << "' found in " << source.DebugString(); - (*(dest->mutable_attr()))[dest_key] = source.attr().at(source_key); -} -TransformRegistry* GetTransformRegistry() { - static TransformRegistry transformRegistry; - return &transformRegistry; -} - -} // namespace TFModelOptimizer diff --git a/tools/converter/source/tensorflow/TfUtils.hpp b/tools/converter/source/tensorflow/TfUtils.hpp index abdc55afb..bd07e26a4 100644 --- a/tools/converter/source/tensorflow/TfUtils.hpp +++ b/tools/converter/source/tensorflow/TfUtils.hpp @@ -26,155 +26,5 @@ bool find_attr_value(const tensorflow::NodeDef* node, const char* key, tensorflo // Convert weight format from [KH,KW,CI,CO] to [CO,CI,KH,KW] bool convertDataFormat(const float* src, float* dst, int planeNumber, int CI, int CO); -namespace TFModelOptimizer { -// namespace TFModelOptimizer comes from tensorflow transform graph tools -using namespace tensorflow; - -inline bool IsMerge(const NodeDef& node_def) { - return node_def.op() == "Merge" || node_def.op() == "RefMerge"; -} - -struct OpTypePattern { - std::string op; - std::vector inputs; - std::string DebugString() const; -}; - -struct NodeMatch { - NodeMatch() : node() { - } - NodeDef node; - std::vector inputs; - std::string DebugString() const; -}; - -void NodeNamePartsFromInput(const std::string& input_name, std::string* prefix, std::string* node_name, - std::string* suffix); -std::string NodeNameFromInput(const std::string& input_name); -std::string CanonicalInputName(const std::string& input_name); -void MapNamesToNodes(const GraphDef& graph_def, std::map* result); -void MapNodesToOutputs(const GraphDef& graph_def, std::map>* result); -int SortByExecutionOrder(const GraphDef& input_graph_def, GraphDef* output_graph_def); - -typedef std::function - match_constraint_fun; - -class GraphMatcher { -public: - GraphMatcher(const GraphDef& graph_def, match_constraint_fun func); - int GetOpTypeMatches(const OpTypePattern& pattern, std::vector* matches); - void SetMatchConstraintFunction(match_constraint_fun func); - void SetMatchedNodes(std::set& matched_nodes); - -private: - bool DoesOpTypeMatch(const NodeDef& node, const OpTypePattern& pattern, - const std::set& previously_matched_nodes, NodeMatch* match); - - GraphDef graph_def_; - std::map node_map_; - // std::map> outputs_map_; - match_constraint_fun match_constraint_; - std::set matched_nodes_; -}; - -int ReplaceMatchingOpTypes( - const GraphDef& input_graph_def, const OpTypePattern& pattern, - const std::function&, const std::set&, - std::vector*)>& node_generator, - GraphDef* output_graph_def); - -int RenameNodeInputs(const GraphDef& input_graph_def, const std::map& inputs_to_rename, - const std::unordered_set& nodes_to_ignore, GraphDef* output_graph_def); - -// Collect the sub-graph nodes(include output_nodes, but not input_nodes), from the output_nodes to input_nodes -void CollectSubGraphNodes(const std::vector& input_nodes, const std::vector& output_nodes, - std::map& node_map, std::set& sub_graph_nodes); - -// set attr value function -void SetAttrValue(tensorflow::DataType type, AttrValue* out); -void SetAttrValue(bool value, AttrValue* out); -void SetAttrValue(const std::string& value, AttrValue* out); -void SetAttrValue(float value, AttrValue* out); - -void AddNodeInput(const std::string& input_name, NodeDef* node); -// Copies an attribute from one NodeDef to another. -void CopyNodeAttr(const NodeDef& source, const std::string& source_key, const std::string& dest_key, NodeDef* dest); - -// Inserts a value into a NodeDef's map of attributes. -// This is a bit different than AddNodeAttr in node_def_util.h because it -// overwrites any existing attributes with the same key. -template -inline void SetNodeAttr(const std::string& key, const T& value, NodeDef* node) { - AttrValue attr_value; - SetAttrValue(value, &attr_value); - auto* attr_map = node->mutable_attr(); - (*attr_map)[key] = attr_value; -} - -void CopyOriginalMatch(const NodeMatch& match, std::vector* new_nodes); - -// Holds information that's needed for transform functions. -typedef std::map> TransformFuncParameters; -struct TransformFuncContext { - std::vector input_names; - std::vector output_names; - TransformFuncParameters params; - - // Returns how many occurrences of the given parameter are present. - int CountParameters(const std::string& name) const; - - // Gets a single instance of a parameter, using a default if it's not present. - void GetOneStringParameter(const std::string& name, const std::string& default_value, std::string* result) const; - - // Gets a single occurrence of a parameter as a 32-bit integer, falling back - // to a default if it isn't present and returning an error if it isn't - // convertible to a number. - void GetOneInt32Parameter(const std::string& name, int32_t default_value, int32_t* result) const; - - // Gets a single occurrence of a parameter as a 64-bit integer, falling back - // to a default if it isn't present and returning an error if it isn't - // convertible to a number. - void GetOneInt64Parameter(const std::string& name, int64_t default_value, int64_t* result) const; - - // Gets a single occurrence of a parameter as a floating point number, falling - // back to a default if it isn't present and returning an error if it isn't - // convertible to a number. - void GetOneFloatParameter(const std::string& name, float default_value, float* result) const; - - // Gets a single occurrence of a parameter as a boolean, falling back to a - // default if it isn't present and returning an error if it's not one of - // "true", "1", "false", or "0". - void GetOneBoolParameter(const std::string& name, bool default_value, bool* result) const; -}; - -typedef std::function TransformFunc; - -typedef std::map TransformRegistry; -TransformRegistry* GetTransformRegistry(); -class TransformRegistrar { -public: - TransformRegistrar(const std::string& name, TransformFunc transform_func) { - auto transform_registry = GetTransformRegistry(); - (*transform_registry)[name] = transform_func; - } -}; - -#define REGISTER_GRAPH_TRANSFORM(name, func) REGISTER_GRAPH_TRANSFORM_UNIQ_HELPER(__COUNTER__, name, func) -#define REGISTER_GRAPH_TRANSFORM_UNIQ_HELPER(ctr, name, func) REGISTER_GRAPH_TRANSFORM_UNIQ(ctr, name, func) -#define REGISTER_GRAPH_TRANSFORM_UNIQ(ctr, name, func) \ - static TransformRegistrar registrar__body__##ctr##__object(name, func); - -// tensorflow mode optimizerss -int FoldBatchNormsAlgebraic(const GraphDef& input_graph_def, const TransformFuncContext& context, - GraphDef* output_graph_def); -int FoldMoments(const GraphDef& input_graph_def, const TransformFuncContext& context, GraphDef* output_graph_def); -int RemoveNodes(const GraphDef& input_graph_def, const TransformFuncContext& context, GraphDef* output_graph_def); -int ResolveRNNGRUCell(const GraphDef& input_graph_def, const TransformFuncContext& context, GraphDef* output_graph_def); -int FuseConvPad(const tensorflow::GraphDef& input_graph_def, const TransformFuncContext& context, - tensorflow::GraphDef* output_graph_def); -int FuseRelu6(const tensorflow::GraphDef& input_graph_def, const TransformFuncContext& context, - tensorflow::GraphDef* output_graph_def); - -} // namespace TFModelOptimizer #endif // TFUTILS_HPP diff --git a/tools/converter/tools/auto_quant.py b/tools/converter/tools/auto_quant.py new file mode 100644 index 000000000..480456f56 --- /dev/null +++ b/tools/converter/tools/auto_quant.py @@ -0,0 +1,263 @@ +import sys +import os +import json +import functools +mnnconvert = './MNNConvert' +if os.path.exists('MNNConvert'): + mnnconvert = './MNNConvert' +elif os.path.exists('MNNConvert.exe'): + mnnconvert = 'MNNConvert.exe' +else: + mnnconvert = 'mnnconvert' + +print('Use MNN Convert: ', mnnconvert) +import argparse +class QuantInfo: + def __init__(self, jsonPath): + compress = None + with open(jsonPath) as f: + compress = json.loads(f.read()) + if 'algo' not in compress: + print("Invalid Json") + return + self.dstjson = jsonPath + algos = compress['algo'] + self.compress = compress + self.conv_1x1 = [] + self.conv_other = [] + + for algo in algos: + if 'type' not in algo: + continue + if algo['type'] == 'QUANTIZE': + if 'quantParams' in algo: + quantalgo = algo['quantParams'] + if 'layer' in quantalgo: + layers = quantalgo['layer'] + for layer in layers: + if 'opName' not in layer: + continue + if 'conv' not in layer: + continue + conv = layer['conv'] + kernelSize = conv['kernelSize'] + if kernelSize[0] * kernelSize[1] == 1: + self.conv_1x1.append(layer) + else: + self.conv_other.append(layer) + break + def computeConvSize(layer): + conv = layer['conv'] + kernelSize = conv['kernelSize'] + inputChannel = conv['inputChannel'] + outputChannel = conv['outputChannel'] + return kernelSize * inputChannel * outputChannel + def sortconv(A, B): + return computeConvSize(A) < computeConvSize(B) + self.conv_1x1.sort(key=functools.cmp_to_key(sortconv)) + def update(self): + with open(self.dstjson, 'w') as f: + f.write(json.dumps(self.compress, indent=4)) + def setBlock(self, block): + for c in self.conv_1x1: + c['weight'][0]['blockSize'] = block + for c in self.conv_other: + c['weight'][0]['bits'] = 0 + def mutableSize(self): + return len(self.conv_1x1) + def setMultiBlock(self, seprate, block0, block1): + if seprate >= len(self.conv_1x1): + return + for i in range(0, seprate): + self.conv_1x1[i]['weight'][0]['blockSize'] = block0 + for i in range(seprate, len(self.conv_1x1)): + self.conv_1x1[i]['weight'][0]['blockSize'] = block1 + def setBits(self, pos, bits): + if pos >= len(self.conv_1x1): + return + self.conv_1x1[pos]['weight'][0]['bits'] = bits + + +def getRate(loginfo): + lines = loginfo.split('\n') + lines = list(filter(lambda x:x.find('TESTERROR')>=0, lines)) + if len(lines) == 0: + return 0.0 + rate = 0.0 + for line in lines: + content = line.split('absMaxV:')[1].replace(' ', '') + value = content.split('-DiffMax') + maxv = float(value[0]) + diffmax = float(value[1]) + if maxv > 0.01 and diffmax / maxv > rate: + rate = diffmax / maxv + return rate + +forwardJson = '.tmp.json' +def initDynamicQuantJson(memory): + v = {} + v['backend'] = 0 + v['mode'] = 4 + v['memory'] = memory + v['precision'] = 1 + v['hints'] = [5, 1] + print('Create test config: ', forwardJson, ", memory=", memory) + with open(forwardJson, 'w') as f: + f.write(json.dumps(v)) + +def testJson(model, dstjson, testdir, dstmodel): + cmd = mnnconvert + ' -f MNN --modelFile ' + model + ' --MNNModel ' + dstmodel + cmd += ' --weightQuantBits=8 --weightQuantAsymmetric=0 ' + cmd += ' --compressionParamsFile ' + dstjson + cmd += ' --testdir ' + testdir + cmd += ' --thredhold 0.001' + cmd += ' --testconfig ' + forwardJson + cmd += ' --alignDenormalizedValue 0 ' + info = os.popen(cmd).read() + return getRate(info) + +class TestSuit: + def __init__(self, model, dstjson, testdir, dstmodel): + self.model = model + self.dstjson = dstjson + self.testdir = testdir + self.dstmodel = dstmodel + def test(self): + return testJson(self.model, self.dstjson, self.testdir, self.dstmodel) + +def findBestBits(info, test, targetRate): + info.setBlock(64) + info.update() + rate = test.test() + if rate > targetRate: + return rate + length = info.mutableSize() + tested = False + for i in range(length): + info.setBits(i, 4) + info.update() + rate = test.test() + tested = True + if rate > targetRate: + # roll back to 8 + info.setBits(i, 8) + tested = False + else: + print('Set %d layer to 4 bits' %i, ', rate=%f' %rate) + if not tested: + info.update() + rate = test.test() + return rate + +def findBestBlock(info, test, targetRate): + validBlock = 0 + bestBlock = 256 + bestRate = 1.0 + rate = 1.0 + for block in (256, 128, 64, 32): + info.setBlock(block) + info.update() + rate = test.test() + print('block=%d,' %block + ' rate=%f' %rate) + if rate < bestRate: + bestRate = rate + bestBlock = block + if rate < targetRate: + validBlock = block + break + if validBlock < 256 and rate < targetRate: + largeBlock = validBlock * 2 + length = info.mutableSize() + # 2-div check + sta = 0 + pos = length // 2 + fin = length + while pos > sta and pos < fin: + info.setMultiBlock(pos, largeBlock, validBlock) + info.update() + rate = test.test() + print('len:%d' %pos, ', rate:%f' %rate) + if rate < targetRate: + sta = pos + else: + fin = pos + pos = (sta + fin + 1) // 2 + if sta != pos: + info.setMultiBlock(sta, largeBlock, validBlock) + info.update() + rate = test.test() + else: + info.setBlock(bestBlock) + info.update() + rate = test.test() + return rate + +def skipMoreOps(info, test, targetRate, current): + length = info.mutableSize() + for il in range(length): + i = length - il - 1 + info.setBits(i, 0) + info.update() + rate = test.test() + if rate < current: + print("Skip quant for ", i, ", rate=", rate) + current = rate + else: + info.setBits(i, 8) + if rate <= targetRate: + break + return rate + + +def mainFunction(): + parser = argparse.ArgumentParser(description='llm_exporter', formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument('--model', type=str, required=True,help='src float mnn model') + parser.add_argument('--quant_model', type=str, required=True,help='dst quant mnn model') + parser.add_argument('--test_dir', type=str, required=True,help='test dir') + parser.add_argument('--rate', type=float, default=0.05,help='test rate') + parser.add_argument('--select_bits', type=int, default=1,help='Try set layer as 4 bits') + parser.add_argument('--select_block', type=int, default=1,help='Try select blocks') + args = parser.parse_args() + rate = args.rate + model = args.model + dstmodel = args.quant_model + testdir = args.test_dir + print("Target Rate is %f" %rate) + targetRate = rate + print('src: ', model, ", dst:", dstmodel) + dstjson = dstmodel + '.json' + initDynamicQuantJson(2) + if os.path.exists(dstjson): + print("Erase old file: ", dstjson) + os.remove(dstjson) + if not os.path.exists(model): + print(model, " not exist") + return + if not os.path.exists(testdir) or not os.path.isdir(testdir): + print(testdir, " not exist or is not dir") + return + if not os.path.exists(os.path.join(testdir, "input.json")): + print(testdir, " not has input.json") + return + test = TestSuit(model, dstjson, testdir, dstmodel) + rate = test.test() + print('Init rate: %f' %rate) + info = QuantInfo(dstjson) + if args.select_bits > 0: + rate = findBestBits(info, test, targetRate) + if args.select_block > 0: + rate = findBestBlock(info, test, targetRate) + if rate > targetRate: + initDynamicQuantJson(0) + rate = test.test() + if rate > targetRate: + rate = skipMoreOps(info, test, targetRate, rate) + print("rate=%f" %rate, ", save to " + dstmodel) + originSize = os.path.getsize(model) / 1024.0 / 1024.0 + dstSize = os.path.getsize(dstmodel) / 1024.0 / 1024.0 + + print("Compress From %f MB " %originSize, ' to %f MB' %dstSize) + + +if __name__ == '__main__': + mainFunction() diff --git a/tools/converter/tools/user_quant_modify_demo.py b/tools/converter/tools/user_quant_modify_demo.py new file mode 100644 index 000000000..e54b00f52 --- /dev/null +++ b/tools/converter/tools/user_quant_modify_demo.py @@ -0,0 +1,54 @@ +import json +import sys + +def treatQuant(quantalgo, limitsize): + if 'layer' not in quantalgo: + return + layers = quantalgo['layer'] + for layer in layers: + if 'opName' not in layer: + continue + name = layer['opName'] + if 'conv' not in layer: + continue + conv = layer['conv'] + inputChannel = conv['inputChannel'] + outputChannel = conv['outputChannel'] + kernelSize = conv['kernelSize'] + weight = layer['weight'][0] + size = inputChannel * outputChannel * kernelSize[0] * kernelSize[1] + if weight['blockSize'] <= 0: + print('Set ' + name + " block size to 128") + weight['blockSize'] = 128 + if size < limitsize: + print('Skip ' + name + " quant, becuase size < %d" %limitsize) + weight['bits'] = 0 + elif weight['blockSize'] != 0 and kernelSize[0] * kernelSize[1] != 1: + print('Skip ' + name + " quant, because not 1x1 conv with block") + weight['bits'] = 0 + + return + + +def mainFunciton(): + if len(sys.argv) < 3: + print("Usage: python user_quant_modify_demo.py input.json output.json") + return + compress = {} + with open(sys.argv[1]) as f: + compress = json.loads(f.read()) + if 'algo' not in compress: + return + algos = compress['algo'] + for algo in algos: + if 'type' not in algo: + continue + if algo['type'] == 'QUANTIZE': + if 'quantParams' in algo: + treatQuant(algo['quantParams'], 1024) + break + with open(sys.argv[2], 'w') as f: + f.write(json.dumps(compress, indent=4)) + +if __name__ == '__main__': + mainFunciton() diff --git a/tools/converter/user_provide_quant_params.json b/tools/converter/user_provide_quant_params.json index 9ee77dee2..b48c023c6 100644 --- a/tools/converter/user_provide_quant_params.json +++ b/tools/converter/user_provide_quant_params.json @@ -1,68 +1,66 @@ { - "pipeline": { - "version": "0.0.0", - "algo": [{ - "type": 0, - "quant_params": { - "round_mode": 0, - "layer": [{ - "weight": [ - { - "name": "weight_0", - "bits": 8, - "scales": [0.001, 0.001, 0.001], - "zero_point": 0, - "clamp_min": -128, - "clamp_max": 127 - }, - { - "name": "weight_1", - "bits": 8, - "scales": [0.001, 0.001, 0.001], - "zero_point": 0, - "clamp_min": -128, - "clamp_max": 127 - } - ], - "input": [ - { - "name": "input_0", - "bits": 8, - "scales": [0.001, 0.001, 0.001], - "zero_point": 0, - "clamp_min": -128, - "clamp_max": 127 - }, - { - "name": "input_1", - "bits": 8, - "scales": [0.001, 0.001, 0.001], - "zero_point": 0, - "clamp_min": -128, - "clamp_max": 127 - } - ], - "output": [ - { - "name": "output_0", - "bits": 8, - "scales": [0.001, 0.001, 0.001], - "zero_point": 0, - "clamp_min": -128, - "clamp_max": 127 - }, - { - "name": "output_1", - "bits": 8, - "scales": [0.001, 0.001, 0.001], - "zero_point": 0, - "clamp_min": -128, - "clamp_max": 127 - } - ], - "method": 0 - }] - } - }] - } -} \ No newline at end of file + "version": "0.0.0", + "algo": [{ + "type": 0, + "quant_params": { + "round_mode": 0, + "layer": [{ + "weight": [ + { + "name": "weight_0", + "bits": 8, + "scales": [0.001, 0.001, 0.001], + "zero_point": 0, + "clamp_min": -128, + "clamp_max": 127 + }, + { + "name": "weight_1", + "bits": 8, + "scales": [0.001, 0.001, 0.001], + "zero_point": 0, + "clamp_min": -128, + "clamp_max": 127 + } + ], + "input": [ + { + "name": "input_0", + "bits": 8, + "scales": [0.001, 0.001, 0.001], + "zero_point": 0, + "clamp_min": -128, + "clamp_max": 127 + }, + { + "name": "input_1", + "bits": 8, + "scales": [0.001, 0.001, 0.001], + "zero_point": 0, + "clamp_min": -128, + "clamp_max": 127 + } + ], + "output": [ + { + "name": "output_0", + "bits": 8, + "scales": [0.001, 0.001, 0.001], + "zero_point": 0, + "clamp_min": -128, + "clamp_max": 127 + }, + { + "name": "output_1", + "bits": 8, + "scales": [0.001, 0.001, 0.001], + "zero_point": 0, + "clamp_min": -128, + "clamp_max": 127 + } + ], + "method": 0 + }] + } + }] +} diff --git a/tools/cpp/ModuleBasic.cpp b/tools/cpp/ModuleBasic.cpp index adcea4937..5fb575257 100644 --- a/tools/cpp/ModuleBasic.cpp +++ b/tools/cpp/ModuleBasic.cpp @@ -83,6 +83,7 @@ static bool compareOutput(VARP output, const std::string& directName, const std: auto diffAbsMax = _ReduceMax(diff); auto absMaxV = absMax->readMap()[0]; auto diffAbsMaxV = diffAbsMax->readMap()[0]; + MNN_PRINT("For %s, max = %f, diffmax = %f, diff rate = %f\n", name.c_str(), absMaxV, diffAbsMaxV, diffAbsMaxV / fmaxf(absMaxV, 1e-6)); if (absMaxV * 0.01f < diffAbsMaxV || MNN_IS_NAN(absMaxV)) { MNN_ERROR("TESTERROR %s value error : absMaxV:%f - DiffMax %f\n", name.c_str(), absMaxV, diffAbsMaxV); return false; @@ -279,9 +280,6 @@ int main(int argc, char *argv[]) { if (runMask & 512) { rtmgr->setHint(Interpreter::WINOGRAD_MEMORY_LEVEL, 0); } - if (runMask & 1024) { - rtmgr->setHint(Interpreter::DYNAMIC_QUANT_OPTIONS, 1); - } if (runMask & 2048) { rtmgr->setExternalPath("tmp", Interpreter::EXTERNAL_FEATUREMAP_DIR); } diff --git a/tools/cv/CMakeLists.txt b/tools/cv/CMakeLists.txt index 4877ca016..85f978e9c 100644 --- a/tools/cv/CMakeLists.txt +++ b/tools/cv/CMakeLists.txt @@ -1,103 +1,99 @@ -IF(MNN_BUILD_OPENCV) - # imgproc submodules start - option(MNN_IMGPROC_COLOR "Enable imgproc color" ON) - option(MNN_IMGPROC_GEOMETRIC "Enable imgproc geometric" ON) - option(MNN_IMGPROC_DRAW "Enable imgproc draw" ON) - option(MNN_IMGPROC_FILTER "Enable imgproc filter" ON) - option(MNN_IMGPROC_MISCELLANEOUS "Enable imgproc miscellaneous" ON) - option(MNN_IMGPROC_STRUCTRAL "Enable imgproc structral" ON) - option(MNN_IMGPROC_HISTOGRAMS "Enable imgproc histograms" ON) - # imgproc submodules end - option(MNN_CVCORE "Enable cv core" ON) - option(MNN_CALIB3D "Enable calib3d" ON) - option(MNN_IMGCODECS "Enable imgcodecs" OFF) - option(MNN_OPENCV_TEST "Enable opencv test" OFF) - option(MNN_OPENCV_BENCH "Enable opencv benchmark" OFF) +# imgproc submodules start +option(MNN_IMGPROC_COLOR "Enable imgproc color" ON) +option(MNN_IMGPROC_GEOMETRIC "Enable imgproc geometric" ON) +option(MNN_IMGPROC_DRAW "Enable imgproc draw" ON) +option(MNN_IMGPROC_FILTER "Enable imgproc filter" ON) +option(MNN_IMGPROC_MISCELLANEOUS "Enable imgproc miscellaneous" ON) +option(MNN_IMGPROC_STRUCTRAL "Enable imgproc structral" ON) +option(MNN_IMGPROC_HISTOGRAMS "Enable imgproc histograms" ON) +# imgproc submodules end +option(MNN_CVCORE "Enable cv core" ON) +option(MNN_CALIB3D "Enable calib3d" ON) +option(MNN_IMGCODECS "Enable imgcodecs" OFF) +option(MNN_OPENCV_TEST "Enable opencv test" OFF) +option(MNN_OPENCV_BENCH "Enable opencv benchmark" OFF) - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../) - include_directories(${CMAKE_CURRENT_LIST_DIR}/include) - include_directories(${CMAKE_CURRENT_LIST_DIR}/../../3rd_party/imageHelper/) +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../) +include_directories(${CMAKE_CURRENT_LIST_DIR}/include) +include_directories(${CMAKE_CURRENT_LIST_DIR}/../../3rd_party/imageHelper/) - # include(${CMAKE_CURRENT_LIST_DIR}/test/CMakeLists.txt) - if(${MNN_OPENCV_TEST}) +# include(${CMAKE_CURRENT_LIST_DIR}/test/CMakeLists.txt) +if(${MNN_OPENCV_TEST}) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/test) - endif() +endif() - if(${MNN_OPENCV_BENCH}) +if(${MNN_OPENCV_BENCH}) add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/benchmark) - endif() +endif() - if(${MNN_OPENCV_TEST} OR ${MNN_OPENCV_BENCH}) +if(${MNN_OPENCV_TEST} OR ${MNN_OPENCV_BENCH}) # copy test images FILE(COPY imgs DESTINATION ${CMAKE_BINARY_DIR}/) - endif() +endif() - # file(GLOB_RECURSE IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/*.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/*.hpp) - set(IMGPROC_SRC "") - # imgproc color functions - if(${MNN_IMGPROC_COLOR}) +# file(GLOB_RECURSE IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/*.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/*.hpp) +set(IMGPROC_SRC "") +# imgproc color functions +if(${MNN_IMGPROC_COLOR}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/color.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/color.hpp) - endif() - # imgproc geometric functions - if(${MNN_IMGPROC_GEOMETRIC}) +endif() +# imgproc geometric functions +if(${MNN_IMGPROC_GEOMETRIC}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/geometric.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/geometric.hpp) - endif() - # imgproc draw functions - if(${MNN_IMGPROC_DRAW}) +endif() +# imgproc draw functions +if(${MNN_IMGPROC_DRAW}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/draw.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/draw.hpp) - endif() - # imgproc filter functions - if(${MNN_IMGPROC_FILTER}) +endif() +# imgproc filter functions +if(${MNN_IMGPROC_FILTER}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/filter.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/filter.hpp) - endif() - # imgproc miscellaneous functions - if(${MNN_IMGPROC_MISCELLANEOUS}) +endif() +# imgproc miscellaneous functions +if(${MNN_IMGPROC_MISCELLANEOUS}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/miscellaneous.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/miscellaneous.hpp) - endif() - # imgproc structural functions - if(${MNN_IMGPROC_STRUCTRAL}) +endif() +# imgproc structural functions +if(${MNN_IMGPROC_STRUCTRAL}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/structural.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/structural.hpp) - endif() - # imgproc histograms functions - if(${MNN_IMGPROC_HISTOGRAMS}) +endif() +# imgproc histograms functions +if(${MNN_IMGPROC_HISTOGRAMS}) list(APPEND IMGPROC_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgproc/histograms.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgproc/histograms.hpp) - endif() - # calib3d functions - if(${MNN_CALIB3D}) +endif() +# calib3d functions +if(${MNN_CALIB3D}) add_definitions(-DMNN_CALIB3D) file(GLOB_RECURSE CALIB3D_SRC ${CMAKE_CURRENT_LIST_DIR}/source/calib3d/*.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/calib3d.hpp) - endif() - # imgcodecs functions - if(${MNN_IMGCODECS}) +endif() +# imgcodecs functions +if(${MNN_IMGCODECS}) add_definitions(-DMNN_IMGCODECS) file(GLOB_RECURSE IMGCODECS_SRC ${CMAKE_CURRENT_LIST_DIR}/source/imgcodecs/*.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/imgcodecs.hpp) - endif() - if(${MNN_CVCORE}) +endif() +if(${MNN_CVCORE}) add_definitions(-DMNN_CVCORE) file(GLOB_RECURSE CVCORE_SRC ${CMAKE_CURRENT_LIST_DIR}/source/core/*.cpp ${CMAKE_CURRENT_LIST_DIR}/include/cv/core.hpp) - endif() +endif() - IF(MNN_SEP_BUILD) +IF(MNN_SEP_BUILD) IF(MNN_BUILD_SHARED_LIBS) - add_library(MNNOpenCV SHARED ${IMGPROC_SRC} ${CALIB3D_SRC} ${IMGCODECS_SRC} ${CVCORE_SRC}) - target_link_libraries(MNNOpenCV MNN MNN_Express) - ELSE() - add_library(MNNOpenCV STATIC ${IMGPROC_SRC} ${CALIB3D_SRC} ${IMGCODECS_SRC} ${CVCORE_SRC}) + add_library(MNNOpenCV SHARED ${IMGPROC_SRC} ${CALIB3D_SRC} ${IMGCODECS_SRC} ${CVCORE_SRC}) + target_link_libraries(MNNOpenCV MNN MNN_Express) ENDIF() - ELSE() +ELSE() add_library(MNNOpenCV OBJECT ${IMGPROC_SRC} ${CALIB3D_SRC} ${IMGCODECS_SRC} ${CVCORE_SRC}) - ENDIF() - IF(CMAKE_SYSTEM_NAME MATCHES "^Android" AND NOT MNN_BUILD_FOR_ANDROID_COMMAND) +ENDIF() +IF(CMAKE_SYSTEM_NAME MATCHES "^Android" AND NOT MNN_BUILD_FOR_ANDROID_COMMAND) IF(NOT NATIVE_INCLUDE_OUTPUT) - set(NATIVE_INCLUDE_OUTPUT ".") + set(NATIVE_INCLUDE_OUTPUT ".") ENDIF() add_custom_command( - TARGET MNNOpenCV - POST_BUILD - COMMAND ${CMAKE_COMMAND} - ARGS -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/include ${NATIVE_INCLUDE_OUTPUT} + TARGET MNNOpenCV + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/include ${NATIVE_INCLUDE_OUTPUT} ) - ELSE() +ELSE() INSTALL(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/cv DESTINATION include FILES_MATCHING PATTERN *.hpp) - ENDIF() -ENDIF() \ No newline at end of file +ENDIF() diff --git a/tools/quantization/calibration.cpp b/tools/quantization/calibration.cpp index 66b6d39bb..d65af5493 100644 --- a/tools/quantization/calibration.cpp +++ b/tools/quantization/calibration.cpp @@ -462,7 +462,7 @@ Calibration::Calibration(MNN::NetT* model, const uint8_t* modelBuffer, const int mInputs = getModuleInputs(_calibrationFiles[0], _module->getInfo(), mInputNames); } else { mInputs.resize(1); - mInputs[0] = _Input(netInfo->inputs[0].dim, netInfo->inputs[0].order, netInfo->inputs[0].type); + mInputs[0] = _Input(mInputShape[mInputNames[0]], netInfo->inputs[0].order, netInfo->inputs[0].type); auto inputTensor = (MNN::Tensor*)mInputs[0]->getTensor(); Helper::preprocessInput(_process.get(), _preprocessConfig, _calibrationFiles[0], inputTensor, _inputType, mInputs[0]); } @@ -964,10 +964,8 @@ void Calibration::_computeQuantError() { inputs = getModuleInputs(file, netInfo, mInputNames); } else { inputs.resize(1); - inputs[0] = _Input(netInfo->inputs[0].dim, netInfo->inputs[0].order, netInfo->inputs[0].type); - inputs[0] = _Convert(inputs[0], netInfo->inputs[0].order); - auto inputTensor = (MNN::Tensor*)inputs[0]->getTensor(); - Helper::preprocessInput(_process.get(), _preprocessConfig, file, inputTensor, _inputType, mInputs[0]); + inputs[0] = _Input(mInputShape[mInputNames[0]], netInfo->inputs[0].order, netInfo->inputs[0].type); + Helper::preprocessInput(_process.get(), _preprocessConfig, file, (MNN::Tensor*)inputs[0]->getTensor(), _inputType, inputs[0]); } Express::Executor::getGlobalExecutor()->setCallBack(std::move(before), std::move(after)); _module->onForward(inputs); @@ -1292,6 +1290,8 @@ static unaryProc selectUnaryProc(int type) { return MNN::Express::_Hardswish; case UnaryOpOperation_GELU: return MNN::Express::_Gelu; + case UnaryOpOperation_SILU: + return MNN::Express::_Silu; default: MNN_ASSERT(false); break; diff --git a/tools/quantization/calibration.hpp b/tools/quantization/calibration.hpp index 6546ba57a..3fcdb0563 100644 --- a/tools/quantization/calibration.hpp +++ b/tools/quantization/calibration.hpp @@ -44,8 +44,8 @@ class Calibration { bool mValid = true; const int _binNums = 2048; int _calibrationFileNum = 0; - int _width; - int _height; + int _width = 1; + int _height = 1; int _channels; int _batch = 32; int _quant_bits = 8; diff --git a/tools/script/apply_gptq.py b/tools/script/apply_gptq.py deleted file mode 100644 index d3805a024..000000000 --- a/tools/script/apply_gptq.py +++ /dev/null @@ -1,201 +0,0 @@ -import json -import torch -import argparse - -class MNNWeight: - def __init__(self, name, external, weight_elements): - self.name = name - self.external = external - self.quant_bits = 4 - if round(weight_elements / external[1]) == 2: - self.quant_bits = 4 - self.a_min = -8 - else: - self.quant_bits = 8 - self.a_min = -128 - self.parse_name() - - def __repr__(self) -> str: - return f'{self.layer_id}.{self.op_id}.{self.block_id}, {self.external}' - - def parse_name(self): - parts = self.name.split('/') - if len(parts) > 4: - self.layer_id = parts[1].split('.')[1] - self.op_id = parts[2] + '.' + parts[3] - self.block_id = parts[-1].split('__')[-1] - else: - self.layer_id = -1 - self.op_id = parts[2] - self.block_id = parts[-1].split('__')[-1] - - def key(self): - if self.layer_id == -1: return self.op_id - return f'{self.layer_id}.{self.op_id}' - def idx(self): return int(self.block_id) - def offset(self): return self.external[0] - def weight_size(self): return self.external[1] - def scale_size(self): return self.external[2] - -def weight_reorder(qweight, bits=4, group_size=128): - oc = qweight.shape[-1] - wf = torch.tensor(list(range(0, 32, bits)), dtype=torch.int32).unsqueeze(0) - weight = torch.bitwise_right_shift(torch.unsqueeze(qweight, 1).expand(-1, 32 // bits, -1), wf.unsqueeze(-1)).to(torch.int16 if bits == 8 else torch.int8) - torch.bitwise_and(weight, (2 ** bits) - 1, out=weight) - weight = weight.reshape(-1, oc).transpose(1, 0) - if bits == 8: - weight = weight.to(torch.uint8) - return weight - weight = weight.reshape(-1, 2).to(torch.uint8) - weight = weight[:, 0] * 16 + weight[:, 1] - return weight - -class MNNModel: - def __init__(self, model, weight): - self.mnn_graph = json.load(open(model, 'rt')) - self.external_weight = weight - self.parse_conv() - - def parse_conv(self): - self.weights = [] - for op in self.mnn_graph['oplists']: - if op['type'] == 'Convolution': - name = op['name'] - external = op['main']['external'] - weight_elements = op['main']['common']['outputCount'] * op['main']['common']['inputCount'] - self.weights.append(MNNWeight(name, external, weight_elements)) - - def apply_weight_split(self, gptq_tensor): - bin_file = open(self.external_weight, 'r+b') - for mnn_weight in self.weights: - idx = mnn_weight.idx() - gptq_weight = gptq_tensor.get(mnn_weight.key()) - if gptq_weight is None: continue - print(f'write {mnn_weight.key()}.{idx} ... ', end='') - weight = gptq_weight.weight(idx) - scale = gptq_weight.scale(idx).float() - # write weight data - weight = weight_reorder(weight, mnn_weight.quant_bits) - weight_bytes = weight.numpy().tobytes() - weight_size = mnn_weight.weight_size() - header_len = weight_size - len(weight_bytes) - assert(header_len > 0) - bin_file.seek(mnn_weight.offset() + header_len) - bin_file.write(weight_bytes) - scale_size = mnn_weight.scale_size() - is_asy = scale.numel() * scale.element_size() < scale_size - # write scale data - if is_asy: - zeros = mnn_weight.a_min * scale - scale = torch.stack([zeros, scale], axis=-1) - scale_bytes = scale.numpy().tobytes() - assert(scale_size == len(scale_bytes)) - bin_file.write(scale_bytes) - print('Done!') - # break - bin_file.close() - - def apply_weight(self, gptq_tensor): - bin_file = open(self.external_weight, 'r+b') - for mnn_weight in self.weights: - gptq_weight = gptq_tensor.get(mnn_weight.key()) - if gptq_weight is None: continue - print(f'write {mnn_weight.key()} ... ', end='') - # print(f'mnn_weight.quant_bits = {mnn_weight.quant_bits}') - weight = gptq_weight.qweight - scale = gptq_weight.scales.float().transpose(1, 0) - # write weight data - weight = weight_reorder(weight, mnn_weight.quant_bits) - weight_bytes = weight.numpy().tobytes() - weight_size = mnn_weight.weight_size() - header_len = weight_size - len(weight_bytes) - assert(header_len > 0) - bin_file.seek(mnn_weight.offset() + header_len) - bin_file.write(weight_bytes) - scale_size = mnn_weight.scale_size() - is_asy = scale.numel() * scale.element_size() < scale_size - # write scale data - if is_asy: - zeros = mnn_weight.a_min * scale - scale = torch.stack([zeros, scale], axis=-1) - scale_bytes = scale.numpy().tobytes() - assert(scale_size == len(scale_bytes)) - bin_file.write(scale_bytes) - print('Done!') - bin_file.close() - - def apply(self, gptq_tensor): - if self.weights[0].block_id.isdigit(): - self.apply_weight_split(gptq_tensor) - else: - self.apply_weight(gptq_tensor) - -class GPTQWeight: - def __init__(self, name): - self.name = name - - def __repr__(self) -> str: - if hasattr(self, 'qweight'): - return f'{self.name}, {self.qweight.shape}, {self.scales.shape}' - return 'None' - - def add(self, name, tensor): - setattr(self, name, tensor) - - def weight(self, idx): - shape = self.qweight.shape - if len(shape) == 2: - ic, oc = shape - self.qweight = self.qweight.reshape(ic//16, 16, oc) - return self.qweight[idx] - - def scale(self, idx): - return self.scales[idx] - -class GPTQTensor: - def __init__(self, file): - self.file = file - self.load() - - def prefix(self, name): - splits = name.split('.') - if 'lm_head' in splits[0] and len(splits) == 2: - return splits[0], splits[1] - if len(splits) < 5: - return None, None - pre = f'{splits[2]}.{splits[3]}.{splits[4]}' - suf = splits[-1] - return pre, suf - - def __repr__(self) -> str: - return self.weight_dict.__repr__() - - def get(self, key : str): - if key in self.weight_dict: - return self.weight_dict[key] - return None - - def load(self): - self.weight_dict = dict() - from safetensors import safe_open - with safe_open(self.file, framework="pt") as f: - for k in f.keys(): - p, s = self.prefix(k) - if p is None: continue - if s not in ['qweight', 'scales']: continue - if p not in self.weight_dict: - self.weight_dict[p] = GPTQWeight(p) - self.weight_dict[p].add(s, f.get_tensor(k)) - -def main(args): - mnn_model = MNNModel(args.mnn_graph, args.mnn_weight) - gptq_weight = GPTQTensor(args.gptq_tensor) - mnn_model.apply(gptq_weight) - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='apply_gptq', formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument('--mnn_graph', type=str, required=True, help='mnn graph json path.') - parser.add_argument('--mnn_weight', type=str, required=True, help='mnn weight file path.') - parser.add_argument('--gptq_tensor', type=str, required=True, help='gptq tensor path.') - args = parser.parse_args() - main(args) diff --git a/tools/script/convertTfTest.py b/tools/script/convertTfTest.py index e178409c9..14a726341 100755 --- a/tools/script/convertTfTest.py +++ b/tools/script/convertTfTest.py @@ -25,7 +25,10 @@ def run_cmd(args): if name == '.DS_Store': continue print(name) - message = run_cmd(['./TestConvertResult', 'Tf', root_dir + '/' + name]) + cmd = './MNNConvert -f TF --MNNModel convert_cache.mnn --useGeluApproximation=0 --saveExternalData --keepInputFormat=1 --bizCode Test' + cmd += ' --modelFile ' + os.path.join(root_dir, name, "test.pb") + cmd += ' --testdir ' + os.path.join(root_dir, name) + message = run_cmd([cmd]) if (message.find('TEST_SUCCESS') == -1): gWrong.append(name) print(message) diff --git a/tools/script/testMNNFromOnnx.py b/tools/script/testMNNFromOnnx.py index 8b032c86a..fbed8812d 100644 --- a/tools/script/testMNNFromOnnx.py +++ b/tools/script/testMNNFromOnnx.py @@ -151,6 +151,8 @@ def __run_onnx(self): else: # Float inputs[inputVar.name] = np.random.uniform(0.1, 1.2, shapes).astype(np.float32) + if inputVar.type.find("float16") >= 0: + inputs[inputVar.name] = inputs[inputVar.name].astype(np.float16) jsonDict['inputs'].append(inp) print([output.name for output in self.model.graph.output]) for output in self.model.graph.output: diff --git a/tools/train/source/nn/NN.cpp b/tools/train/source/nn/NN.cpp index 8d49f6ada..b52b130f0 100644 --- a/tools/train/source/nn/NN.cpp +++ b/tools/train/source/nn/NN.cpp @@ -9,6 +9,7 @@ #include #include "NN.hpp" #include "Distributions.hpp" +#include "module/ModuleInside.hpp" #include "module/PipelineModule.hpp" #include "module/WhileModule.hpp" #include "module/IfModule.hpp" diff --git a/transformers/diffusion/CMakeLists.txt b/transformers/diffusion/CMakeLists.txt deleted file mode 100644 index b8b7460cb..000000000 --- a/transformers/diffusion/CMakeLists.txt +++ /dev/null @@ -1,14 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -# source files -FILE(GLOB SRCS ${CMAKE_CURRENT_LIST_DIR}/*.cpp) -include_directories(${CMAKE_CURRENT_LIST_DIR}/../../tools/cv/include) -add_executable(diffusion_demo ${SRCS}) -IF(MNN_SEP_BUILD) -target_link_libraries(diffusion_demo MNN MNN_Express MNNOpenCV) -IF(MNN_OPENCL) - target_link_libraries(diffusion_demo MNN_CL) -ENDIF() -ELSE() -target_link_libraries(diffusion_demo MNN) -ENDIF() diff --git a/transformers/diffusion/engine/CMakeLists.txt b/transformers/diffusion/engine/CMakeLists.txt new file mode 100644 index 000000000..bb98163a2 --- /dev/null +++ b/transformers/diffusion/engine/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.10) + +# source files +FILE(GLOB SRCS ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp) +include_directories(${CMAKE_SOURCE_DIR}/tools/cv/include/) + +include_directories(${CMAKE_CURRENT_LIST_DIR}/include/) + +if (MNN_SEP_BUILD) + if (MNN_BUILD_SHARED_LIBS) + # compile dynamic so, support Linux/Mac + add_library(diffusion SHARED ${SRCS}) + set_target_properties(diffusion PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) + target_link_libraries(diffusion ${MNN_DEPS}) + else() + add_library(diffusion STATIC ${SRCS}) + endif() + list(APPEND MNN_DEPS diffusion) +else() + add_library(diffusion OBJECT ${SRCS}) +endif() + +add_executable(diffusion_demo ${CMAKE_CURRENT_LIST_DIR}/diffusion_demo.cpp) +target_link_libraries(diffusion_demo ${MNN_DEPS}) \ No newline at end of file diff --git a/transformers/diffusion/engine/diffusion_demo.cpp b/transformers/diffusion/engine/diffusion_demo.cpp new file mode 100644 index 000000000..bc3635bcc --- /dev/null +++ b/transformers/diffusion/engine/diffusion_demo.cpp @@ -0,0 +1,73 @@ +#include +#include "diffusion/diffusion.hpp" +#define MNN_OPEN_TIME_TRACE +#include +#include +using namespace MNN::DIFFUSION; + +int main(int argc, const char* argv[]) { + if (argc < 8) { + MNN_PRINT("=====================================================================================================================\n"); + MNN_PRINT("Usage: ./diffusion_demo \n"); + MNN_PRINT("=====================================================================================================================\n"); + return 0; + } + + auto resource_path = argv[1]; + auto model_type = (DiffusionModelType)atoi(argv[2]); + auto memory_mode = atoi(argv[3]); + auto backend_type = (MNNForwardType)atoi(argv[4]); + auto iteration_num = atoi(argv[5]); + auto img_name = argv[6]; + + std::string input_text; + for (int i = 7; i < argc; ++i) { + input_text += argv[i]; + if (i < argc - 1) { + input_text += " "; + } + } + + MNN_PRINT("Model resource path: %s\n", resource_path); + if(model_type == STABLE_DIFFUSION_1_5) { + MNN_PRINT("Model type is stable diffusion 1.5\n"); + } else if (model_type == STABLE_DIFFUSION_TAIYI_CHINESE) { + MNN_PRINT("Model type is stable diffusion taiyi chinese version\n"); + } else { + MNN_PRINT("Error: Model type %d not supported, please check\n", (int)model_type); + } + + if(memory_mode == 0) { + MNN_PRINT("(Memory Lack) Each diffusion model will be initialized when using, freed after using. with slow initialization\n"); + } else { + MNN_PRINT("(Memory Enough) All Diffusion models will be initialized when application enter. with fast initialization\n"); + } + MNN_PRINT("Backend type: %d\n", (int)backend_type); + MNN_PRINT("Output image name: %s\n", img_name); + MNN_PRINT("Prompt text: %s\n", input_text.c_str()); + + + std::unique_ptr diffusion(Diffusion::createDiffusion(resource_path, model_type, backend_type, memory_mode, iteration_num)); + + diffusion->load(); + + // callback to show progress + auto progressDisplay = [](int progress) { + std::cout << "Progress: " << progress << "%" << std::endl; + }; + diffusion->run(input_text, img_name, progressDisplay); + + /* + when need multi text-generation-image: + if you choose memory lack mode, need diffusion load with each diffusion run. + if you choose memory enough mode, just start another diffusion run, only need diffusion load in first time. + */ + while(0) { + if(memory_mode == 0) { + diffusion->load(); + } + + diffusion->run("a big horse", "demo_2.jpg", progressDisplay); + } + return 0; +} diff --git a/transformers/diffusion/pipeline.hpp b/transformers/diffusion/engine/include/diffusion/diffusion.hpp similarity index 55% rename from transformers/diffusion/pipeline.hpp rename to transformers/diffusion/engine/include/diffusion/diffusion.hpp index 3ce1e95f0..19c81b61d 100644 --- a/transformers/diffusion/pipeline.hpp +++ b/transformers/diffusion/engine/include/diffusion/diffusion.hpp @@ -1,3 +1,12 @@ +// +// diffusion.hpp +// +// Created by MNN on 2025/01/12. +// MNN +// +#ifndef MNN_DIFFUSION_HPP +#define MNN_DIFFUSION_HPP + #include #include #include @@ -9,24 +18,28 @@ using namespace MNN; using namespace MNN::Express; -namespace diffusion { +namespace MNN { +namespace DIFFUSION { +class Tokenizer; typedef enum { STABLE_DIFFUSION_1_5 = 0, STABLE_DIFFUSION_TAIYI_CHINESE = 1, DIFFUSION_MODEL_USER } DiffusionModelType; - -class Pipeline { + +class MNN_PUBLIC Diffusion { public: - Pipeline(std::string modelPath, DiffusionModelType modelType, MNNForwardType backendType, int memoryMode); - ~Pipeline() = default; - bool run(const std::string& prompt, const std::string& imagePath); + Diffusion(std::string modelPath, DiffusionModelType modelType, MNNForwardType backendType, int memoryMode, int iterationNum); + virtual ~Diffusion(); + static Diffusion* createDiffusion(std::string modelPath, DiffusionModelType modelType, MNNForwardType backendType, int memoryMode, int iterationNum); + + bool run(const std::string prompt, const std::string imagePath, std::function progressCallback); + bool load(); private: - bool load_modules(); VARP step_plms(VARP sample, VARP model_output, int index); VARP text_encoder(const std::vector& ids); - VARP unet(VARP text_embeddings); + VARP unet(VARP text_embeddings, std::function progressCallback); VARP vae_decoder(VARP latent); private: std::shared_ptr runtime_manager_; @@ -37,13 +50,18 @@ class Pipeline { std::vector mEts; VARP mSample; VARP mLatentVar, mPromptVar, mTimestepVar, mSampleVar; - + std::vector mInitNoise; + private: std::string mModelPath; DiffusionModelType mModelType; int mMaxTextLen = 77; int mMemoryMode; + int mIterationNum; MNNForwardType mBackendType; + std::unique_ptr mTokenizer; }; } +} +#endif diff --git a/transformers/diffusion/scheduler/alphas.txt b/transformers/diffusion/engine/scheduler/alphas.txt similarity index 100% rename from transformers/diffusion/scheduler/alphas.txt rename to transformers/diffusion/engine/scheduler/alphas.txt diff --git a/transformers/diffusion/pipeline.cpp b/transformers/diffusion/engine/src/diffusion.cpp similarity index 64% rename from transformers/diffusion/pipeline.cpp rename to transformers/diffusion/engine/src/diffusion.cpp index 7ac441f04..64a0adbcb 100644 --- a/transformers/diffusion/pipeline.cpp +++ b/transformers/diffusion/engine/src/diffusion.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "pipeline.hpp" +#include "diffusion/diffusion.hpp" #include "tokenizer.hpp" #define MNN_OPEN_TIME_TRACE #include @@ -22,8 +22,9 @@ using namespace CV; -namespace diffusion { - +namespace MNN { +namespace DIFFUSION { + void display_progress(int cur, int total){ putchar('\r'); MNN_PRINT("["); @@ -35,11 +36,16 @@ void display_progress(int cur, int total){ fflush(stdout); } -Pipeline::Pipeline(std::string modelPath, DiffusionModelType modelType, MNNForwardType backendType, int memoryMode) : - mModelPath(modelPath), mModelType(modelType), mBackendType(backendType), mMemoryMode(memoryMode) { +Diffusion* Diffusion::createDiffusion(std::string modelPath, DiffusionModelType modelType, MNNForwardType backendType, int memoryMode, int iterationNum) { + Diffusion* diffusion = new Diffusion(modelPath, modelType, backendType, memoryMode, iterationNum); + return diffusion; +} + +Diffusion::Diffusion(std::string modelPath, DiffusionModelType modelType, MNNForwardType backendType, int memoryMode, int iterationNum) : +mModelPath(modelPath), mModelType(modelType), mBackendType(backendType), mMemoryMode(memoryMode), mIterationNum(iterationNum) { if(modelType == STABLE_DIFFUSION_1_5) { mMaxTextLen = 77; - } else if(modelType == diffusion::STABLE_DIFFUSION_TAIYI_CHINESE) { + } else if(modelType == STABLE_DIFFUSION_TAIYI_CHINESE) { mMaxTextLen = 512; } std::ifstream alphaFile(modelPath + "/alphas.txt"); @@ -48,29 +54,27 @@ Pipeline::Pipeline(std::string modelPath, DiffusionModelType modelType, MNNForwa while (alphaFile >> alpha) { mAlphas.push_back(alpha); } -#if 0 // Different steps setting - mTimeSteps = { // 50 steps - 981, 961, 961, 941, 921, 901, 881, 861, 841, 821, 801, 781, 761, 741, - 721, 701, 681, 661, 641, 621, 601, 581, 561, 541, 521, 501, 481, 461, - 441, 421, 401, 381, 361, 341, 321, 301, 281, 261, 241, 221, 201, 181, - 161, 141, 121, 101, 81, 61, 41, 21, 1 - }; - mTimeSteps = { // 20 steps - 951, 901, 901, 851, 801, 751, 701, 651, 601, 551, 501, 451, - 401, 351, 301, 251, 201, 151, 101, 51, 1 - }; - mTimeSteps = { // 5 steps - 801, 601, 601, - 401, 201, 1 - }; -#endif - mTimeSteps = { - 951, 901, 901, 851, 801, 751, 701, 651, 601, 551, 501, 451, - 401, 351, 301, 251, 201, 151, 101, 51, 1 - }; + if(iterationNum > 50) { + iterationNum = 50; + MNN_PRINT("too much number of iterations, iterations will be set to 50.\n"); + } + if(iterationNum < 1) { + iterationNum = 10; + MNN_PRINT("illegal number of iterations, iterations will be set to 10.\n"); + } + mTimeSteps.resize(iterationNum + 1); + int step = 1000 / (iterationNum + 1); + for(int i = iterationNum; i >= 0; i--) { + mTimeSteps[i] = 1 + (iterationNum - i) * step; + } } - -bool Pipeline::load_modules() { + +Diffusion::~Diffusion() { + mModules.clear(); + runtime_manager_.reset(); +} + +bool Diffusion::load() { AUTOTIME; ScheduleConfig config; BackendConfig backendConfig; @@ -83,19 +87,19 @@ bool Pipeline::load_modules() { } else { config.numThread = 1; } - + backendConfig.precision = BackendConfig::Precision_Low; config.backendConfig = &backendConfig; - + auto exe = ExecutorScope::Current(); exe->lazyEval = false; exe->setGlobalExecutorConfig(config.type, backendConfig, config.numThread); - + Module::Config module_config; module_config.shapeMutable = false; // module_config.rearrange = true; runtime_manager_.reset(Executor::RuntimeManager::createRuntimeManager(config)); - + if (config.type == MNN_FORWARD_OPENCL) { const char* cacheFileName = ".tempcache"; runtime_manager_->setCache(cacheFileName); @@ -106,8 +110,10 @@ bool Pipeline::load_modules() { mTimestepVar = _Input({1}, NCHW, halide_type_of()); mSampleVar = _Concat({mLatentVar, mLatentVar}, 0); - MNN_PRINT("First time initilizing may cost a few seconds to create cachefile, please wait ...\n"); - + if(mMemoryMode > 0) { + MNN_PRINT("First time initilizing may cost a few seconds to create cachefile, please wait ...\n"); + } + VARP text_embeddings; mModules.resize(3); // load text_encoder model @@ -115,12 +121,12 @@ bool Pipeline::load_modules() { std::string model_path = mModelPath + "/text_encoder.mnn"; MNN_PRINT("Load %s\n", model_path.c_str()); mModules[0].reset(Module::load( - {"input_ids"}, {"last_hidden_state", "pooler_output"}, model_path.c_str(), runtime_manager_, &module_config)); + {"input_ids"}, {"last_hidden_state", "pooler_output"}, model_path.c_str(), runtime_manager_, &module_config)); - if(mMemoryMode > 0) { + if(mMemoryMode > 0) { auto outputs = mModules[0]->onForward({mPromptVar}); text_embeddings = _Convert(outputs[0], NCHW); - } + } display_progress(1, 3); } // load unet model @@ -128,12 +134,12 @@ bool Pipeline::load_modules() { std::string model_path = mModelPath + "/unet.mnn"; MNN_PRINT("Load %s\n", model_path.c_str()); mModules[1].reset(Module::load( - {"sample", "timestep", "encoder_hidden_states"}, {"out_sample"}, model_path.c_str(), runtime_manager_, &module_config)); + {"sample", "timestep", "encoder_hidden_states"}, {"out_sample"}, model_path.c_str(), runtime_manager_, &module_config)); - if(mMemoryMode > 0) { + if(mMemoryMode > 0) { auto outputs = mModules[1]->onForward({mSampleVar, mTimestepVar, text_embeddings}); auto output = _Convert(outputs[0], NCHW); - } + } display_progress(2, 3); } // load vae_decoder model @@ -141,19 +147,29 @@ bool Pipeline::load_modules() { std::string model_path = mModelPath + "/vae_decoder.mnn"; MNN_PRINT("Load %s\n", model_path.c_str()); mModules[2].reset(Module::load( - {"latent_sample"}, {"sample"}, model_path.c_str(), runtime_manager_, &module_config)); + {"latent_sample"}, {"sample"}, model_path.c_str(), runtime_manager_, &module_config)); - if(mMemoryMode > 0) { - auto outputs = mModules[2]->onForward({mLatentVar}); - auto output = _Convert(outputs[0], NCHW); - } - display_progress(3, 3); + if(mMemoryMode > 0) { + auto outputs = mModules[2]->onForward({mLatentVar}); + auto output = _Convert(outputs[0], NCHW); + // sync + output->readMap(); + } + display_progress(3, 3); } - + + // tokenizer loading + if(mModelType == STABLE_DIFFUSION_1_5) { + mTokenizer.reset(new CLIPTokenizer); + } else if(mModelType == STABLE_DIFFUSION_TAIYI_CHINESE) { + mTokenizer.reset(new BertTokenizer); + } + mTokenizer->load(mModelPath); + return true; } -VARP Pipeline::text_encoder(const std::vector& ids) { +VARP Diffusion::text_encoder(const std::vector& ids) { AUTOTIME; memcpy((void *)mPromptVar->writeMap(), ids.data(), 2*mMaxTextLen*sizeof(int)); @@ -172,7 +188,7 @@ VARP Pipeline::text_encoder(const std::vector& ids) { return output; } -VARP Pipeline::step_plms(VARP sample, VARP model_output, int index) { +VARP Diffusion::step_plms(VARP sample, VARP model_output, int index) { int timestep = mTimeSteps[index]; int prev_timestep = 0; if (index + 1 < mTimeSteps.size()) { @@ -210,95 +226,105 @@ VARP Pipeline::step_plms(VARP sample, VARP model_output, int index) { return prev_sample; } -VARP Pipeline::unet(VARP text_embeddings) { - mModules[0].reset(); - std::mt19937 rng; - rng.seed(std::random_device()()); - std::normal_distribution normal(0, 1); - std::vector initVal(16384); - +VARP Diffusion::unet(VARP text_embeddings, std::function progressCallback) { + if(mMemoryMode == 0) { + mModules[0].reset(); + } + if(mInitNoise.size() != 16384) { + mInitNoise.resize(16384); + } #ifdef MNN_DUMP_DATA std::ostringstream fileName; fileName << "random.txt"; std::ifstream input(fileName.str().c_str()); for (int i = 0; i < 16384; ++i) { - input >> initVal[i]; + input >> mInitNoise[i]; } #else + std::mt19937 rng; + rng.seed(std::random_device()()); + std::normal_distribution normal(0, 1); for (int i = 0; i < 16384; i++) { - initVal[i] = normal(rng); + mInitNoise[i] = normal(rng); } #endif - memcpy((void *)mLatentVar->writeMap(), initVal.data(), 16384*sizeof(float)); - + memcpy((void *)mLatentVar->writeMap(), mInitNoise.data(), 16384*sizeof(float)); + VARP scalevar = _Input({1}, NCHW, halide_type_of()); auto scaleptr = scalevar->writeMap(); scaleptr[0] = 7.5; - + auto floatVar = _Input({1}, NCHW, halide_type_of()); auto ptr = floatVar->writeMap(); - + auto plms = mLatentVar; + for (int i = 0; i < mTimeSteps.size(); i++) { AUTOTIME; - display_progress(i, mTimeSteps.size()); - + //display_progress(i, mTimeSteps.size()); + int timestep = mTimeSteps[i]; - ptr[0] = timestep; auto temp = _Cast(floatVar, halide_type_of()); mTimestepVar->input(temp); - mSampleVar = _Concat({mLatentVar, mLatentVar}, 0); + mSampleVar = _Concat({plms, plms}, 0); auto outputs = mModules[1]->onForward({mSampleVar, mTimestepVar, text_embeddings}); auto output = _Convert(outputs[0], NCHW); - + auto noise_pred = output; - auto splitvar = _Split(noise_pred, {2}, 0); - auto noise_pred_uncond = splitvar[0]; - auto noise_pred_text = splitvar[1]; - + auto splitvar = _Split(noise_pred, {2}, 0); + auto noise_pred_uncond = splitvar[0]; + auto noise_pred_text = splitvar[1]; + noise_pred = scalevar * (noise_pred_text - noise_pred_uncond) + noise_pred_uncond; - - mLatentVar = step_plms(mLatentVar, noise_pred, i); - - // mLatentVar.fix(VARP::CONSTANT); + + plms = step_plms(plms, noise_pred, i); + #ifdef MNN_DUMP_DATA auto xx = output->readMap(); auto yy = mSampleVar->readMap(); auto zz = text_embeddings->readMap(); + auto mm = mTimestepVar->readMap(); for(int i=0; i<6; i+=2) { - MNN_PRINT("%f %f %f ", xx[i], yy[i], zz[i]); + MNN_PRINT("(0)%f (1)%f (2)%f (3)%d ", xx[i], yy[i], zz[i] ,mm[0]); } + MNN_PRINT("\n"); for(int i=0; i<6; i+=2) { - MNN_PRINT("%f %f %f ", xx[16384+i], yy[16384+i], zz[mMaxTextLen*768+i]); + MNN_PRINT("(0)%f (1)%f (2)%f ", xx[16384+i], yy[16384+i], zz[mMaxTextLen*768+i]); } MNN_PRINT("\n\n"); #endif + if (progressCallback) { + progressCallback((2 + i) * 100 / (mIterationNum + 3)); // percent + } + } - mLatentVar.fix(VARP::CONSTANT); + plms.fix(VARP::CONSTANT); #ifdef MNN_DUMP_DATA - auto xx = mLatentVar->readMap(); + auto xx = plms->readMap(); for(int i=0; i<10; i+=2) { MNN_PRINT("%f ", xx[i]); } MNN_PRINT("\n\n"); #endif - return mLatentVar; + return plms; } -VARP Pipeline::vae_decoder(VARP latent) { - mModules[1].reset(); +VARP Diffusion::vae_decoder(VARP latent) { + if(mMemoryMode == 0) { + mModules[1].reset(); + } latent = latent * _Const(1 / 0.18215); AUTOTIME; auto outputs = mModules[2]->onForward({latent}); auto output = _Convert(outputs[0], NCHW); - + #ifdef MNN_DUMP_DATA auto xx = output->readMap(); for(int i=0; i<320; i+=32) { @@ -316,27 +342,32 @@ VARP Pipeline::vae_decoder(VARP latent) { return image; } -bool Pipeline::run(const std::string& prompt, const std::string& imagePath) { - std::unique_ptr tok; - if(mModelType == STABLE_DIFFUSION_1_5) { - tok.reset(new diffusion::CLIPTokenizer); - } else if(mModelType == STABLE_DIFFUSION_TAIYI_CHINESE) { - tok.reset(new diffusion::BertTokenizer); - } - tok->load(mModelPath); - load_modules(); - +bool Diffusion::run(const std::string prompt, const std::string imagePath, std::function progressCallback) { AUTOTIME; - auto ids = tok->encode(prompt, mMaxTextLen); + mEts.clear(); + + auto ids = mTokenizer->encode(prompt, mMaxTextLen); auto text_embeddings = text_encoder(ids); - auto latent = unet(text_embeddings); - + if (progressCallback) { + progressCallback(1 * 100 / (mIterationNum + 3)); // percent + } + auto latent = unet(text_embeddings, progressCallback); + auto image = vae_decoder(latent); bool res = imwrite(imagePath, image); if (res) { MNN_PRINT("SUCCESS! write generated image to %s\n", imagePath.c_str()); } + + if(mMemoryMode == 0) { + mModules[2].reset(); + } + + if (progressCallback) { + progressCallback(100); // percent + } return true; } } +} diff --git a/transformers/diffusion/tokenizer.cpp b/transformers/diffusion/engine/src/tokenizer.cpp similarity index 91% rename from transformers/diffusion/tokenizer.cpp rename to transformers/diffusion/engine/src/tokenizer.cpp index f64e982ef..ffeeeac6c 100644 --- a/transformers/diffusion/tokenizer.cpp +++ b/transformers/diffusion/engine/src/tokenizer.cpp @@ -12,8 +12,9 @@ #include "rapidjson/document.h" #include "rapidjson/filereadstream.h" #include "rapidjson/error/en.h" -namespace diffusion { - +namespace MNN { +namespace DIFFUSION { + bool BertTokenizer::load(const std::string& dictPath) { std::ifstream dictFile(dictPath + "/vocab.txt"); if(!dictFile.is_open()) { @@ -64,7 +65,7 @@ std::vector BertTokenizer::word_piece(const std::string& token) { return ids; } - + std::vector BertTokenizer::encode(const std::string& str, int maxlen) { std::vector ids(maxlen * 2, 0); // uncond @@ -73,7 +74,7 @@ std::vector BertTokenizer::encode(const std::string& str, int maxlen) { // ids int idx = maxlen; ids[idx++] = mStartIdx; - + std::vector tokens; std::string current_token; size_t i = 0; @@ -117,23 +118,23 @@ std::vector BertTokenizer::encode(const std::string& str, int maxlen) { tokens.push_back(current_token); } } - + for (auto token : tokens) { for (auto id : word_piece(token)) { ids[idx++] = id; } } - + ids[idx++] = mEndIdx; return ids; } - + bool CLIPTokenizer::load(const std::string& filePath) { bool res_0 = loadVocab(filePath + "/vocab.json"); bool res_1 = loadMerges(filePath + "/merges.txt"); return res_0 && res_1; } - + std::wstring utf8_to_wstring(const std::string& str) { std::wstring_convert> myconv; return myconv.from_bytes(str); @@ -150,47 +151,47 @@ bool CLIPTokenizer::loadVocab(const std::string& vocabFilePath) { MNN_ERROR("File %s open failed.\n", vocabFilePath.c_str()); return false; } - + char readBuffer[65536]; rapidjson::FileReadStream is(fp, readBuffer, sizeof(readBuffer)); - + rapidjson::Document doc; doc.ParseStream(is); fclose(fp); - + if (doc.HasParseError()) { MNN_ERROR("JSON parse error: %s\n", rapidjson::GetParseError_En(doc.GetParseError())); return false; } - + if (!doc.IsObject()) { MNN_ERROR("JSON is not an object.\n"); return false; } - + for (rapidjson::Value::ConstMemberIterator itr = doc.MemberBegin(); itr != doc.MemberEnd(); ++itr) { const char* key = itr->name.GetString(); if (itr->value.IsInt()) { int intValue = itr->value.GetInt(); mVocabs[std::string(key)] = intValue; -// std::cout << key << ": " << intValue << std::endl; + // std::cout << key << ": " << intValue << std::endl; } else { MNN_ERROR("Value for key: %s is not an integer.\n", key); } } auto _insert_range = [=](int start, int end) { - for (int c = start; c <= end; c++) { - b2u_.insert({uint8_t(c), wchar_t(c)}); - } - }; + for (int c = start; c <= end; c++) { + b2u_.insert({uint8_t(c), wchar_t(c)}); + } + }; b2u_.clear(); _insert_range(L'!', L'~'); _insert_range(L'¡', L'¬'); _insert_range(L'®', L'ÿ'); - + int n = 0; for (int b = 0; b < 256; b++) { if (b2u_.find(uint8_t(b)) == b2u_.end()) { @@ -208,7 +209,7 @@ bool CLIPTokenizer::loadVocab(const std::string& vocabFilePath) { bool CLIPTokenizer::loadMerges(const std::string& mergesFilePath) { std::ifstream file(mergesFilePath); std::string line; - + if (!file.is_open()) { MNN_ERROR("Failed to open merges file: %s\n", mergesFilePath.c_str()); return false; @@ -218,7 +219,7 @@ bool CLIPTokenizer::loadMerges(const std::string& mergesFilePath) { if (line.empty() || line[0] == '#') { continue; } - + size_t colonPos = line.find(' '); if (colonPos != std::string::npos) { std::string token_0 = line.substr(0, colonPos); @@ -228,12 +229,12 @@ bool CLIPTokenizer::loadMerges(const std::string& mergesFilePath) { } return true; } - + void get_pairs(const std::wstring& word, std::vector>* pairs) { pairs->clear(); - + if (word.size() < 2) return; - + wchar_t previous = word[0]; for (int i = 1; i < word.size(); i++) { pairs->push_back({std::wstring(1, previous), std::wstring(1, word[i])}); @@ -245,49 +246,49 @@ void CLIPTokenizer::bpe(const std::wstring& token, const BPERanks& bpe_ranks, st std::set merged; // records indices in pairs that were merged. auto _left = [](int i, std::set& merged) { for (int j = i - 1; j >= -1; j--) { - if (merged.find(j) == merged.end()) return j; + if (merged.find(j) == merged.end()) return j; } return -1; }; auto _right = [](int i, int cap, std::set& merged) { for (int j = i + 1; j < cap; j++) { - if (merged.find(j) == merged.end()) return j; + if (merged.find(j) == merged.end()) return j; } return cap; }; - + std::vector> pairs; get_pairs(token, &pairs); - + while (true) { int min_score = INT_MAX; int to_merge = -1; // indices into pairs. - + for (int i = 0; i < pairs.size(); ++i) { - if (merged.find(i) == merged.end()) { // pair i is not merged. - auto iter = bpe_ranks.find(pairs[i]); - int score = iter != bpe_ranks.end() ? iter->second : INT_MAX; - if (score < min_score) { - min_score = score; - to_merge = i; + if (merged.find(i) == merged.end()) { // pair i is not merged. + auto iter = bpe_ranks.find(pairs[i]); + int score = iter != bpe_ranks.end() ? iter->second : INT_MAX; + if (score < min_score) { + min_score = score; + to_merge = i; + } } } - } - + if (to_merge == -1) break; - + merged.insert(to_merge); std::wstring merge_into = pairs[to_merge].first + pairs[to_merge].second; - + int l = _left(to_merge, merged); if (l >= 0) pairs[l].second = merge_into; int r = _right(to_merge, pairs.size(), merged); if (r < pairs.size()) pairs[r].first = merge_into; } // end while (true) - + if (merged.size() == pairs.size()) { result->push_back(token); - + } else { for (int i = 0; i < pairs.size(); ++i) { if (merged.find(i) == merged.end()) { @@ -315,12 +316,12 @@ std::vector CLIPTokenizer::encode(const std::string& text, int maxlen) { } std::vector bpe_tokens; bpe(wtoken, bpe_ranks_, &bpe_tokens); - + for (auto ws : bpe_tokens) { result.push_back(wstring_to_utf8(ws)); } } - + std::vector ids(maxlen * 2, 0); // uncond ids[0] = mStartIdx; @@ -332,8 +333,8 @@ std::vector CLIPTokenizer::encode(const std::string& text, int maxlen) { ids[idx++] = mVocabs.at(s); } ids[idx++] = mEndIdx; - + return ids; } - +} } // diffusion diff --git a/transformers/diffusion/tokenizer.hpp b/transformers/diffusion/engine/src/tokenizer.hpp similarity index 70% rename from transformers/diffusion/tokenizer.hpp rename to transformers/diffusion/engine/src/tokenizer.hpp index 5c7d76e40..8349e50d0 100644 --- a/transformers/diffusion/tokenizer.hpp +++ b/transformers/diffusion/engine/src/tokenizer.hpp @@ -2,8 +2,12 @@ #include #include -namespace diffusion { +#ifndef MNN_DIFFUSION_TOKENIZER_HPP +#define MNN_DIFFUSION_TOKENIZER_HPP +namespace MNN { +namespace DIFFUSION { + class Tokenizer { public: Tokenizer() = default; @@ -11,7 +15,7 @@ class Tokenizer { virtual bool load(const std::string& filePath) = 0; virtual std::vector encode(const std::string& sentence, int maxlen = 0) = 0; }; - + class BertTokenizer : public Tokenizer{ public: BertTokenizer() = default; @@ -25,16 +29,16 @@ class BertTokenizer : public Tokenizer{ }; class CLIPTokenizer : public Tokenizer{ -struct hash_pair_wstring { - size_t operator()(const std::pair& p) const { - auto hash1 = std::hash{}(p.first); - auto hash2 = std::hash{}(p.second); - // If hash1 == hash2, their XOR is zero. - return (hash1 != hash2) ? hash1 ^ hash2 : hash1; - } -}; -using BPERanks = std::unordered_map, int, hash_pair_wstring>; - + struct hash_pair_wstring { + size_t operator()(const std::pair& p) const { + auto hash1 = std::hash{}(p.first); + auto hash2 = std::hash{}(p.second); + // If hash1 == hash2, their XOR is zero. + return (hash1 != hash2) ? hash1 ^ hash2 : hash1; + } + }; + using BPERanks = std::unordered_map, int, hash_pair_wstring>; + public: CLIPTokenizer() = default; virtual bool load(const std::string& filePath) override; @@ -43,7 +47,7 @@ using BPERanks = std::unordered_map, int, private: bool loadVocab(const std::string& vocabFilePath); bool loadMerges(const std::string& mergesFilePath); - + private: void bpe(const std::wstring& token, const BPERanks& bpe_ranks, std::vector* result); BPERanks bpe_ranks_; @@ -55,5 +59,6 @@ using BPERanks = std::unordered_map, int, int mStartIdx = 49406; int mEndIdx = 49407; }; - +} } // diffusion +#endif diff --git a/transformers/diffusion/main.cpp b/transformers/diffusion/main.cpp deleted file mode 100644 index 75abd8924..000000000 --- a/transformers/diffusion/main.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include "pipeline.hpp" - -int main(int argc, const char* argv[]) { - if (argc < 7) { - MNN_PRINT("=====================================================================================================================\n"); - MNN_PRINT("Usage: ./diffusion_demo \n"); - MNN_PRINT("=====================================================================================================================\n"); - return 0; - } - - auto resource_path = argv[1]; - auto model_type = (diffusion::DiffusionModelType)atoi(argv[2]); - auto img_name = argv[3]; - auto memory_mode = atoi(argv[4]); - auto backend_type = (MNNForwardType)atoi(argv[5]); - std::string input_text; - for (int i = 6; i < argc; ++i) { - input_text += argv[i]; - if (i < argc - 1) { - input_text += " "; - } - } - - MNN_PRINT("Model resource path: %s\n", resource_path); - if(model_type == diffusion::STABLE_DIFFUSION_1_5) { - MNN_PRINT("Model type is stable diffusion 1.5\n"); - } else if (model_type == diffusion::STABLE_DIFFUSION_TAIYI_CHINESE) { - MNN_PRINT("Model type is stable diffusion taiyi chinese version\n"); - } else { - MNN_PRINT("Error: Model type %d not supported, please check\n", (int)model_type); - } - - if(memory_mode == 0) { - MNN_PRINT("(Memory Lack) Each diffusion model will be initilized when using, freed after using.\n"); - } else { - MNN_PRINT("(Memory Enough) All Diffusion models will be initilized when application enter.\n"); - } - MNN_PRINT("Backend type: %d\n", (int)backend_type); - MNN_PRINT("Output image name: %s\n", img_name); - MNN_PRINT("Prompt text: %s\n", input_text.c_str()); - - - diffusion::Pipeline pipeline(resource_path, model_type, backend_type, memory_mode); - pipeline.run(input_text, img_name); - return 0; -} diff --git a/transformers/llm/engine/CMakeLists.txt b/transformers/llm/engine/CMakeLists.txt index a2557c79b..bb3eb14ff 100644 --- a/transformers/llm/engine/CMakeLists.txt +++ b/transformers/llm/engine/CMakeLists.txt @@ -3,7 +3,6 @@ option(LLM_SUPPORT_AUDIO "Llm model support audio input." OFF) if (LLM_SUPPORT_VISION AND MNN_BUILD_OPENCV) - list(APPEND MNN_DEPS MNNOpenCV) include_directories(${CMAKE_SOURCE_DIR}/tools/cv/include/) endif() diff --git a/transformers/llm/engine/audio_demo.cpp b/transformers/llm/engine/audio_demo.cpp index 50a0e1661..032cf2650 100644 --- a/transformers/llm/engine/audio_demo.cpp +++ b/transformers/llm/engine/audio_demo.cpp @@ -120,6 +120,7 @@ int main(int argc, const char* argv[]) { for (int i=0; iwriteMap()[i] = i; } + llm->setKVCacheInfo(inputIds[0].size(), 0); auto logits = llm->forwardRaw(embeddings, llm->gen_attention_mask(T+3), inputPos); { auto info = logits->getInfo(); @@ -136,6 +137,7 @@ int main(int argc, const char* argv[]) { llm->switchMode(MNN::Transformer::Llm::Decode); std::vector embeddingsVec(inputIds.size()); for (int index=0; index<1; ++index) { + llm->setKVCacheInfo(1, 0); MNN::Express::VARP embeddings; for (int i=0; iembedding(inputIds[i]); @@ -147,7 +149,7 @@ int main(int argc, const char* argv[]) { } embeddings = embeddings * MNN::Express::_Scalar(1.0f/8.0f); auto inputPos = MNN::Express::_Input({1, 1}, MNN::Express::NCHW, halide_type_of()); - inputPos->writeMap()[0] = T+3; + inputPos->writeMap()[0] = T+3 + index; auto logits = llm->forwardRaw(embeddings, llm->gen_attention_mask(1), inputPos); saveVar(logits, "logit_decode.txt"); auto size = logits->getInfo()->size; diff --git a/transformers/llm/engine/embedding_demo.cpp b/transformers/llm/engine/embedding_demo.cpp index 3261ca163..5a91e40ba 100644 --- a/transformers/llm/engine/embedding_demo.cpp +++ b/transformers/llm/engine/embedding_demo.cpp @@ -12,8 +12,30 @@ using namespace MNN::Express; using namespace MNN::Transformer; +#define DUMP_NUM_DATA(type) \ + auto data = var->readMap(); \ + for (int z = 0; z < outside; ++z) { \ + for (int x = 0; x < width; ++x) { \ + outputOs << data[x + z * width] << "\n"; \ + } \ + } + +static void dumpVar2File(VARP var, const char* file) { + std::ofstream outputOs(file); + + auto dimension = var->getInfo()->dim.size(); + int width = 1; + if (dimension > 1) { + width = var->getInfo()->dim[dimension - 1]; + } + + auto outside = var->getInfo()->size / width; + DUMP_NUM_DATA(float); + +} + static void dumpVARP(VARP var) { - auto size = var->getInfo()->size; + auto size = static_cast(var->getInfo()->size); auto ptr = var->readMap(); printf("[ "); for (int i = 0; i < 5; i++) { @@ -26,6 +48,33 @@ static void dumpVARP(VARP var) { printf(" ]\n"); } +static void unittest(std::unique_ptr &embedding, std::string prompt) { + auto vec_0 = embedding->txt_embedding(prompt); + float sum = 0; + auto ptr = vec_0->readMap(); + for (int i = 0;i < vec_0->getInfo()->size; ++i) { + sum += ptr[i]; + } + MNN_PRINT("%s\n", prompt.c_str()); + MNN_PRINT("sum = %f\n", sum); + MNN_PRINT("\n"); +} +static void benchmark(std::unique_ptr &embedding, std::string prompt_file) { + std::ifstream prompt_fs(prompt_file); + std::vector prompts; + std::string prompt; + while (std::getline(prompt_fs, prompt)) { + if (prompt.back() == '\r') { + prompt.pop_back(); + } + prompts.push_back(prompt); + } + prompt_fs.close(); + for (auto& p: prompts) { + unittest(embedding, p); + } +} + int main(int argc, const char* argv[]) { if (argc < 2) { std::cout << "Usage: " << argv[0] << " config.json" << std::endl; @@ -34,14 +83,12 @@ int main(int argc, const char* argv[]) { std::string config_path = argv[1]; std::cout << "config path is " << config_path << std::endl; std::unique_ptr embedding(Embedding::createEmbedding(config_path, true)); - auto vec_0 = embedding->txt_embedding("在春暖花开的季节,走在樱花缤纷的道路上,人们纷纷拿出手机拍照留念。樱花树下,情侣手牵手享受着这绝美的春光。孩子们在树下追逐嬉戏,脸上洋溢着纯真的笑容。春天的气息在空气中弥漫,一切都显得那么生机勃勃,充满希望。"); - auto vec_1 = embedding->txt_embedding("春天到了,樱花树悄然绽放,吸引了众多游客前来观赏。小朋友们在花瓣飘落的树下玩耍,而恋人们则在这浪漫的景色中尽情享受二人世界。每个人的脸上都挂着幸福的笑容,仿佛整个世界都被春天温暖的阳光和满树的樱花渲染得更加美好。"); - auto vec_2 = embedding->txt_embedding("在炎热的夏日里,沙滩上的游客们穿着泳装享受着海水的清凉。孩子们在海边堆沙堡,大人们则在太阳伞下品尝冷饮,享受悠闲的时光。远处,冲浪者们挑战着波涛,体验着与海浪争斗的刺激。夏天的海滩,总是充满了活力和热情。"); - dumpVARP(vec_0); - dumpVARP(vec_1); - dumpVARP(vec_2); - printf("dist_0_1: %f\n", Embedding::dist(vec_0, vec_1)); - printf("dist_0_2: %f\n", Embedding::dist(vec_0, vec_2)); - printf("dist_1_2: %f\n", Embedding::dist(vec_1, vec_2)); + if (argc > 2) { + benchmark(embedding, argv[2]); + return 0; + } + unittest(embedding, "这个东西,这。"); +// dumpVar2File(vec_0, filename.c_str()); +// dumpVARP(vec_0); return 0; } diff --git a/transformers/llm/engine/include/llm/llm.hpp b/transformers/llm/engine/include/llm/llm.hpp index 0cab96469..a55891665 100644 --- a/transformers/llm/engine/include/llm/llm.hpp +++ b/transformers/llm/engine/include/llm/llm.hpp @@ -67,6 +67,7 @@ class MNN_PUBLIC Llm { void tuning(TuneType type, std::vector candidates); virtual void load(); void switchMode(Stage stage); + void setKVCacheInfo(size_t add, size_t remove, int* reserve = nullptr, int n_reserve = 0); MNN::Express::VARP forwardRaw(MNN::Express::VARP hiddenState, MNN::Express::VARP mask, MNN::Express::VARP inputPos); virtual MNN::Express::VARP gen_attention_mask(int seq_len); virtual MNN::Express::VARP embedding(const std::vector& input_ids); diff --git a/transformers/llm/engine/src/llm.cpp b/transformers/llm/engine/src/llm.cpp index 264304650..8dcc14987 100644 --- a/transformers/llm/engine/src/llm.cpp +++ b/transformers/llm/engine/src/llm.cpp @@ -20,6 +20,7 @@ #include "tokenizer.hpp" // 0: no debug, 1: test op time, 2: print tensor info, 3: print tensor in output #define DEBUG_MODE 0 +//#define DEBUG_IMAGE #include "httplib.h" #ifdef LLM_SUPPORT_VISION @@ -257,11 +258,11 @@ void Llm::init_runtime() { runtime_manager_.reset(Executor::RuntimeManager::createRuntimeManager(config)); runtime_manager_->setHint(MNN::Interpreter::MEM_ALLOCATOR_TYPE, 0); - runtime_manager_->setHint(MNN::Interpreter::DYNAMIC_QUANT_OPTIONS, 1); // 1: per batch quant, 2: per tensor quant runtime_manager_->setHint(MNN::Interpreter::QKV_QUANT_OPTIONS, config_->quant_qkv()); runtime_manager_->setHint(MNN::Interpreter::KVCACHE_SIZE_LIMIT, config_->kvcache_limit()); - runtime_manager_->setHint(MNN::Interpreter::MMAP_FILE_SIZE, file_size_m(config_->llm_weight()) + 128); - runtime_manager_->setHint(MNN::Interpreter::USE_CACHED_MMAP, 1); + if (config_->use_cached_mmap()) { + runtime_manager_->setHint(MNN::Interpreter::USE_CACHED_MMAP, 1); + } std::string tmpPath = config_->tmp_path(); if (config_->kvcache_mmap()) { runtime_manager_->setExternalPath(tmpPath, MNN::Interpreter::EXTERNAL_PATH_KVCACHE_DIR); @@ -335,15 +336,16 @@ size_t Llm::apply_lora(const std::string& lora_path) { module_config.rearrange = true; module_config.base = modules_.begin()->get(); size_t lora_index = modules_.size(); + runtime_manager_->setHint(MNN::Interpreter::USE_CACHED_MMAP, 0); modules_.emplace_back(Module::load({"input_ids", "attention_mask", "position_ids"}, {"logits"}, - model_path.c_str(), runtime_manager_, &module_config)); + model_path.c_str(), runtime_manager_, &module_config)); select_module(lora_index); return lora_index; } Llm* Llm::create_lora(const std::string& lora_path) { - auto llm = new Llm(config_); - llm->set_config("{\"llm_model\": \"" + lora_path + "\"}"); + auto llm = new Llm(std::make_shared(*config_)); + llm->set_config("{\"llm_model\": \"" + lora_path + "\", \"use_mmap\": false, \"use_cached_mmap\": false}"); llm->base_module_ = modules_.begin()->get(); llm->load(); return llm; @@ -405,7 +407,7 @@ void Llm::tuning(TuneType type, std::vector candidates) { int prefer_candidate = 10; for (auto& candidate : candidates) { runtime_manager_->setHint(MNN::Interpreter::OP_ENCODER_NUMBER_FOR_COMMIT, candidate); - + mMeta->add = 1; auto st = std::chrono::system_clock::now(); auto logits = forward({0}); if (nullptr == logits.get()) { @@ -424,6 +426,9 @@ void Llm::tuning(TuneType type, std::vector candidates) { } } runtime_manager_->setHint(MNN::Interpreter::OP_ENCODER_NUMBER_FOR_COMMIT, prefer_candidate); + // clear dirty tuning kv history + setKVCacheInfo(0, getCurrentHistory()); + reset(); } void Llm::switchMode(Llm::Stage stage) { switch (stage) { @@ -438,6 +443,16 @@ void Llm::switchMode(Llm::Stage stage) { } } +void Llm::setKVCacheInfo(size_t add, size_t remove, int* reserve, int n_reserve) { + if (remove > mMeta->previous) { + remove = mMeta->previous; + } + mMeta->remove = remove; + mMeta->reserve = reserve; + mMeta->n_reserve = n_reserve; + mMeta->add = add; +} + MNN::Express::VARP Llm::forwardRaw(MNN::Express::VARP hiddenState, MNN::Express::VARP mask, MNN::Express::VARP inputPos) { VARP logits; std::vector outputs; @@ -446,6 +461,7 @@ MNN::Express::VARP Llm::forwardRaw(MNN::Express::VARP hiddenState, MNN::Express: return nullptr; } logits = outputs[0]; + mMeta->sync(); return logits; } @@ -482,6 +498,7 @@ int Llm::sample(VARP logits, const std::vector& pre_ids, int offset, int si token_id = i; } } + mState.output_ids_.push_back(token_id); return token_id; } @@ -624,7 +641,6 @@ void Llm::generate(int max_token) { mMeta->add = 1; mMeta->remove = 0; auto logits = forward({mState.current_token_}); - mMeta->sync(); len++; if (nullptr == logits.get()) { break; @@ -660,7 +676,6 @@ std::vector Llm::generate(const std::vector& input_ids, int max_tokens auto et = std::chrono::system_clock::now(); current_modules_ = decode_modules_; mState.prefill_us_ = std::chrono::duration_cast(et - st).count(); - mMeta->sync(); generate(max_tokens); #ifdef DUMP_PROFILE_INFO @@ -670,10 +685,10 @@ std::vector Llm::generate(const std::vector& input_ids, int max_tokens } std::vector Llm::tokenizer_encode(const std::string& user_content, bool use_template) { - if (!use_template) { - return tokenizer_->encode(user_content); + auto prompt = user_content; + if (config_->use_template() && use_template) { + prompt = apply_prompt_template(user_content); } - auto prompt = apply_prompt_template(user_content); auto input_ids = tokenizer_->encode(prompt); return input_ids; } @@ -904,7 +919,6 @@ void Mllm::load() { config.backendConfig = &cpuBackendConfig; mllm_runtime_manager_.reset(Executor::RuntimeManager::createRuntimeManager(config)); mllm_runtime_manager_->setHint(MNN::Interpreter::MEM_ALLOCATOR_TYPE, 0); - mllm_runtime_manager_->setHint(MNN::Interpreter::DYNAMIC_QUANT_OPTIONS, 1); // 1: per batch quant, 2: per tensor quant mllm_runtime_manager_->setHint(MNN::Interpreter::QKV_QUANT_OPTIONS, config_->quant_qkv()); mllm_runtime_manager_->setHint(MNN::Interpreter::KVCACHE_SIZE_LIMIT, config_->kvcache_limit()); std::string tmpPath = config_->tmp_path(); @@ -1020,6 +1034,10 @@ printf("]\n}\n"); std::vector Mllm::vision_process(const std::string& file) { #ifdef LLM_SUPPORT_VISION VARP image = MNN::CV::imread(file); + if (image == nullptr) { + MNN_PRINT("Mllm Can't open image: %s\n", file.c_str()); + return std::vector(0); + } auto st = std::chrono::system_clock::now(); VARP image_embedding; @@ -1075,7 +1093,20 @@ std::vector Mllm::vision_process(const std::string& file) { // build attention_mask VARP attention_mask = MNN::Express::_Input({1, seq_len, seq_len}, NCHW); ::memset(attention_mask->writeMap(), 0, seq_len * seq_len * sizeof(float)); +#ifdef DEBUG_IMAGE + patches.fix(MNN::Express::VARP::CONSTANT); + patches->setName("patches"); + position_ids.fix(MNN::Express::VARP::CONSTANT); + position_ids->setName("position_ids"); + attention_mask.fix(MNN::Express::VARP::CONSTANT); + attention_mask->setName("attention_mask"); + MNN::Express::Variable::save({patches, position_ids, attention_mask}, "input.mnn"); +#endif image_embedding = mul_module_->onForward({patches, position_ids, attention_mask})[0]; +#ifdef DEBUG_IMAGE + image_embedding->setName("image_embeds"); + MNN::Express::Variable::save({image_embedding}, "output.mnn"); +#endif } else { image = MNN::CV::resize(image, {image_height_, image_width_}, 0, 0, MNN::CV::INTER_LINEAR, MNN::CV::COLOR_BGR2RGB, @@ -1107,6 +1138,10 @@ std::vector Mllm::audio_process(const std::string& file) { constexpr int sample_rate = 16000; auto load_res = MNN::AUDIO::load(file, sample_rate); VARP waveform = load_res.first; + if (waveform == nullptr) { + MNN_PRINT("Mllm Can't open audio: %s\n", file.c_str()); + return std::vector(0); + } // int sample_rate = load_res.second; int wav_len = waveform->getInfo()->dim[0]; int hop_length = 160; diff --git a/transformers/llm/engine/src/llmconfig.hpp b/transformers/llm/engine/src/llmconfig.hpp index a3ea87bd4..fa43e469a 100644 --- a/transformers/llm/engine/src/llmconfig.hpp +++ b/transformers/llm/engine/src/llmconfig.hpp @@ -67,6 +67,25 @@ class rapid_json_wrapper { rapidjson::Document document; rapid_json_wrapper() {} rapid_json_wrapper(rapidjson::Document doc) : document(std::move(doc)) {} + rapid_json_wrapper(const rapid_json_wrapper &other) { + document.CopyFrom(other.document, document.GetAllocator()); + } + rapid_json_wrapper& operator=(const rapid_json_wrapper& other) { + if (this != &other) { + document.SetObject(); + document.CopyFrom(other.document, document.GetAllocator()); + } + return *this; + } + rapid_json_wrapper(rapid_json_wrapper&& other) noexcept : document(std::move(other.document)) {} + rapid_json_wrapper& operator=(rapid_json_wrapper&& other) noexcept { + if (this != &other) { + document.SetObject(); + document.GetAllocator().Clear(); + document = std::move(other.document); + } + return *this; + } static rapid_json_wrapper parse(const std::ifstream& ifile) { std::ostringstream ostr; ostr << ifile.rdbuf(); @@ -181,6 +200,12 @@ class LlmConfig { std::string base_dir_; rapid_json_wrapper config_, llm_config_, mllm_config_, cur_config_; LlmConfig() {} + LlmConfig(const LlmConfig& other) + : base_dir_(other.base_dir_), + config_(other.config_), + llm_config_(other.llm_config_), + mllm_config_(other.mllm_config_), + cur_config_(other.cur_config_) {} LlmConfig(const std::string& path) { // load config if (has_suffix(path, ".json")) { @@ -318,9 +343,16 @@ class LlmConfig { return llm_config_.value("is_audio", false); } + bool use_template() const { + return config_.value("use_template", true); + } + bool use_mmap() const { return config_.value("use_mmap", false); } + bool use_cached_mmap() const { + return config_.value("use_cached_mmap", true); + } bool kvcache_mmap() const { return config_.value("kvcache_mmap", false); } diff --git a/transformers/llm/export/llmexport.py b/transformers/llm/export/llmexport.py index a25c69c13..cfe081b1b 100644 --- a/transformers/llm/export/llmexport.py +++ b/transformers/llm/export/llmexport.py @@ -1,2540 +1,31 @@ import os -import gc -import sys -import math -import copy import json -import time +import glob import base64 -import logging -import inspect import warnings import argparse -import functools -import traceback -from collections import defaultdict -from typing import Optional, Tuple, List, Union, Dict -from tqdm import tqdm -from yaspin import yaspin +warnings.filterwarnings("ignore") +os.environ['TOKENIZERS_PARALLELISM'] = 'false' +os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'python' import onnx import torch -import numpy as np +from typing import Optional from transformers import AutoConfig, AutoModel, AutoModelForCausalLM, AutoTokenizer -RESET = "\033[0m" -GREEN = "\033[32;1m" -YELLOW = "\033[33;4m" -EXPORT_LOG = '.export.log' - -# ignore warnning info -warnings.filterwarnings("ignore") -logging.basicConfig(level=logging.ERROR) -os.environ['TOKENIZERS_PARALLELISM'] = 'false' - -def spinner_run(text='Processing...', hide=False): - def decorator(func): - @functools.wraps(func) - def wrapper(*args, **kwargs): - with yaspin(text=text, color="cyan") as spinner: - start = time.time() - try: - if hide: spinner.hide() - result = func(*args, **kwargs) - if hide: spinner.show() - except Exception as e: - spinner.fail("💥 Failed") - traceback.print_exc() - exit(1) - end = time.time() - during = f'[{end-start:05.2f} s]'.replace('[0', '[ ') - padding = ' ' * (64 - len(spinner.text) - len(result)) - spinner.text = f'{spinner.text}{YELLOW}{result}{RESET}{padding}{GREEN}{during}{RESET}' - spinner.ok("✅ Done") - return result - return wrapper - return decorator - -class ModelMapper: - def __init__(self): - self.attrs = [] - self.mapper = dict() - self.regist_models() - - def get_map(self, config): - model_type = config.model_type - if model_type == 'chatglm': - if hasattr(config, 'vocab_size') and config.vocab_size == 130528: - model_type = 'chatglm' - else: - model_type = 'chatglm2' - if model_type in self.mapper: - return model_type, self.mapper[model_type] - return model_type, self.default_map - - def regist(self, model_type, model_map): - assert('config' in model_map and - 'decoder' in model_map and - 'attention' in model_map) - self.mapper[model_type] = model_map - - def regist_models(self): - self.defualt_map() - # regist models - self.regist_llama() - self.regist_mllama() - self.regist_qwen() - self.regist_glm() - self.regist_glm2() - self.regist_phi() - self.regist_gemma2() - self.register_openelm() - - def regist_llama(self): - llama_map = self.default_map - self.regist('llama', llama_map) - self.regist('qwen2', llama_map) - self.regist('internlm', llama_map) - self.regist('mobilellm', llama_map) - # baichuan - baichuan_map = copy.deepcopy(self.default_map) - baichuan_map[self.attention_key] = { - 'qkv_proj': 'W_pack', - 'o_proj': 'o_proj' - } - self.regist('baichuan', baichuan_map) - - def regist_mllama(self): - mllama_map = { - 'config': { - 'hidden_size': 'text_config.hidden_size', - 'num_attention_heads': 'text_config.num_attention_heads', - 'num_hidden_layers': 'text_config.num_hidden_layers', - 'num_key_value_heads': 'text_config.num_key_value_heads', - 'rope_theta': 'text_config.rope_theta' - }, - 'model': { - 'lm_': 'language_model.lm_head', - 'embed_': 'language_model.model.embed_tokens', - 'blocks_': 'language_model.model.layers', - 'final_layernorm_': 'language_model.model.norm', - 'visual': 'vision_model', - 'multi_modal_projector': 'multi_modal_projector' - }, - 'decoder': { - 'self_attn': 'self_attn', - 'cross_attn': 'cross_attn', - 'mlp': 'mlp', - 'input_layernorm': 'input_layernorm', - 'post_attention_layernorm': 'post_attention_layernorm' - }, - 'attention': { - 'q_proj': 'q_proj', - 'k_proj': 'k_proj', - 'v_proj': 'v_proj', - 'o_proj': 'o_proj', - 'q_norm': 'q_norm', - 'k_norm': 'k_norm', - 'cross_attn_attn_gate': 'cross_attn_attn_gate', - 'cross_attn_mlp_gate': 'cross_attn_mlp_gate' - } - } - self.regist('mllama', mllama_map) - - def regist_qwen(self): - qwen_map = { - 'config': { - 'hidden_size': 'hidden_size', - 'num_attention_heads': 'num_attention_heads', - 'num_hidden_layers': 'num_hidden_layers', - 'rope_theta': 'rotary_emb_base', - }, - 'model': { - 'lm_': 'lm_head', - 'embed_': 'transformer.wte', - 'blocks_': 'transformer.h', - 'final_layernorm_': 'transformer.ln_f', - 'visual': 'transformer.visual' - }, - 'decoder': { - 'self_attn': 'attn', - 'mlp': 'mlp', - 'input_layernorm': 'ln_1', - 'post_attention_layernorm': 'ln_2' - }, - 'attention': { - 'qkv_proj': 'c_attn', - 'o_proj': 'c_proj' - } - } - self.regist('qwen', qwen_map) - - def regist_glm(self): - glm_map = { - 'config': { - 'hidden_size': 'hidden_size', - 'num_attention_heads': 'num_attention_heads', - 'num_hidden_layers': 'num_layers' - }, - 'model': { - 'lm_': 'lm_head', - 'embed_': 'transformer.word_embeddings', - 'blocks_': 'transformer.layers', - 'final_layernorm_': 'transformer.final_layernorm', - }, - 'decoder': { - 'self_attn': 'attention', - 'mlp': 'mlp', - 'input_layernorm': 'input_layernorm', - 'post_attention_layernorm': 'post_attention_layernorm' - }, - 'attention': { - 'qkv_proj': 'query_key_value', - 'o_proj': 'dense' - } - } - self.regist('chatglm', glm_map) - - def regist_glm2(self): - glm2_map = { - 'config': { - 'hidden_size': 'hidden_size', - 'num_attention_heads': 'num_attention_heads', - 'num_key_value_heads': 'multi_query_group_num', - 'num_hidden_layers': 'num_layers', - }, - 'model': { - 'lm_': 'transformer.output_layer', - 'embed_': 'transformer.embedding.word_embeddings', - 'blocks_': 'transformer.encoder.layers', - 'final_layernorm_': 'transformer.encoder.final_layernorm', - }, - 'decoder': { - 'self_attn': 'self_attention', - 'mlp': 'mlp', - 'input_layernorm': 'input_layernorm', - 'post_attention_layernorm': 'post_attention_layernorm' - }, - 'attention': { - 'qkv_proj': 'query_key_value', - 'o_proj': 'dense' - } - } - self.regist('chatglm2', glm2_map) - - def regist_phi(self): - phi_map = { - 'config': { - 'hidden_size': 'n_embd', - 'num_attention_heads': 'n_head', - 'num_hidden_layers': 'n_layer', - 'rotary_dim': 'rotary_dim' - }, - 'model': { - 'lm_': 'lm_head.linear', - 'embed_': 'transformer.embd.wte', - 'blocks_': 'transformer.h', - 'final_layernorm_': 'lm_head.ln', - }, - 'decoder': { - 'self_attn': 'mixer', - 'mlp': 'mlp', - 'input_layernorm': 'ln', - }, - 'attention': { - 'qkv_proj': 'Wqkv', - 'o_proj': 'out_proj' - } - } - self.regist('phi-msft', phi_map) - - def regist_gemma2(self): - gemma2_config = copy.deepcopy(self.default_config) - gemma2_config['head_dim'] = 'head_dim' - gemma2_decoder = copy.deepcopy(self.default_decoder) - gemma2_decoder['pre_feedforward_layernorm'] = 'pre_feedforward_layernorm' - gemma2_decoder['post_feedforward_layernorm'] = 'post_feedforward_layernorm' - gemma2_map = { - 'config': gemma2_config, - 'model': self.defualt_model, - 'decoder': gemma2_decoder, - 'attention': self.default_attention - } - self.regist('gemma2', gemma2_map) - - def register_openelm(self): - openelm_config = { - 'hidden_size': 'model_dim', - 'head_dim': 'head_dim', - 'num_attention_heads': 'num_query_heads', - 'num_hidden_layers': 'num_transformer_layers', - 'num_key_value_heads': 'num_kv_heads', - 'rope_theta': 'rope_freq_constant' - } - openelm_model = { - 'lm_': 'lm_head', - 'embed_': 'transformer.token_embeddings', - 'blocks_': 'transformer.layers', - 'final_layernorm_': 'transformer.norm' - } - openelm_decoder = { - 'self_attn': 'attn', - 'mlp': 'ffn', - 'input_layernorm': 'attn_norm', - 'post_attention_layernorm': 'ffn_norm' - } - openelm_attention = { - 'qkv_proj': 'qkv_proj', - 'o_proj': 'out_proj', - 'q_norm': 'q_norm', - 'k_norm': 'k_norm' - } - openelm_map = { - 'config': openelm_config, - 'model': openelm_model, - 'decoder': openelm_decoder, - 'attention': openelm_attention - } - self.regist('openelm', openelm_map) - - def defualt_map(self): - # default map is `LlamaForCausalLM` - self.config_key = 'config' - self.model_key = 'model' - self.decoder_key = 'decoder' - self.attention_key = 'attention' - self.default_config = { - 'hidden_size': 'hidden_size', - 'num_attention_heads': 'num_attention_heads', - 'num_hidden_layers': 'num_hidden_layers', - 'num_key_value_heads': 'num_key_value_heads', - 'rope_theta': 'rope_theta' - } - self.defualt_model = { - 'lm_': 'lm_head', - 'embed_': 'model.embed_tokens', - 'blocks_': 'model.layers', - 'final_layernorm_': 'model.norm', - 'visual': 'visual' - } - self.default_decoder = { - 'self_attn': 'self_attn', - 'mlp': 'mlp', - 'input_layernorm': 'input_layernorm', - 'post_attention_layernorm': 'post_attention_layernorm' - } - self.default_attention = { - 'q_proj': 'q_proj', - 'k_proj': 'k_proj', - 'v_proj': 'v_proj', - 'o_proj': 'o_proj' - } - self.default_map = { - 'config': self.default_config, - 'model': self.defualt_model, - 'decoder': self.default_decoder, - 'attention': self.default_attention - } - - @staticmethod - def do_map(dst, src, map): - for dst_attr, src_attr in map.items(): - attributes = src_attr.split('.') - obj = src - for attr in attributes: - if hasattr(obj, attr): - obj = getattr(obj, attr) - else: - obj = None - break - setattr(dst, dst_attr, obj) - -# Quant class - -# awq quantizer start -class AwqQuantizer: - def __init__( - self, - model, - modules_to_not_convert=None, - apply_clip=True, - n_parallel_calib_samples=None, - max_calib_samples=128, - max_calib_seq_len=512, - max_chunk_memory=1024 * 1024 * 1024, - ) -> None: - self.awq_model = model - self.model = model - self.tokenizer = model.tokenizer - self.w_bit = model.quant_bit - self.group_size = model.quant_block - self.zeropoint = not model.symmetric - self.calib_data = 'ag_news' - self.split = 'test' - self.duo_scaling = True - self.apply_clip = apply_clip - self.n_parallel_calib_samples = n_parallel_calib_samples - self.max_calib_samples = max_calib_samples - self.max_calib_seq_len = max_calib_seq_len - self.max_chunk_memory = max_chunk_memory - self.modules_to_not_convert = ( - modules_to_not_convert if modules_to_not_convert is not None else [] - ) - self.modules, self.module_kwargs, self.inps = self.init_quant( - n_samples=self.max_calib_samples, max_seq_len=self.max_calib_seq_len - ) - - def pseudo_quantize_tensor(self, w: torch.Tensor): - org_w_shape = w.shape - if self.group_size > 0: - assert org_w_shape[-1] % self.group_size == 0 - w = w.reshape(-1, self.group_size) - assert w.dim() == 2 - assert torch.isnan(w).sum() == 0 - # zero point quantization - if self.zeropoint: - max_val = w.amax(dim=1, keepdim=True) - min_val = w.amin(dim=1, keepdim=True) - offset = 1 << (self.w_bit - 1) - clip_max = offset - 1 - clip_min = -offset - scales = (max_val - min_val) / (clip_max - clip_min) - zeros = - torch.round(min_val / scales) + clip_min - qw = torch.round(w / scales) + zeros - qw = torch.clamp(qw, clip_min, clip_max) - w = (qw - zeros) * scales - zeros = min_val.view(org_w_shape[0], -1) - else: - abs_max = w.abs().amax(dim=1, keepdim=True) - offset = 1 << (self.w_bit - 1) - clip_max = offset - 1 - clip_min = -clip_max - scales = abs_max / clip_max - w = torch.clamp(torch.round(w / scales), clip_min, clip_max) * scales - zeros = None - - assert torch.isnan(scales).sum() == 0 - assert torch.isnan(w).sum() == 0 - - scales = scales.view(org_w_shape[0], -1) - w = w.reshape(org_w_shape) - - return w, scales, zeros - - def quantize(self): - for i in tqdm(range(len(self.modules)), desc="AWQ"): - # Move module and inputs to correct device - common_device = next(self.modules[i].parameters()).device - if common_device is None or str(common_device) == "cpu": - best_device = AwqQuantizer.get_best_device() - - self.modules[i] = self.modules[i].to(best_device) - common_device = next(self.modules[i].parameters()).device - - if self.module_kwargs.get("position_ids") is not None: - self.module_kwargs["position_ids"] = self.module_kwargs[ - "position_ids" - ].to(common_device) - - if self.module_kwargs.get("attention_mask") is not None: - self.module_kwargs["attention_mask"] = self.module_kwargs[ - "attention_mask" - ].to(common_device) - - self.inps = self.inps.to(common_device) - # print(f'# {i} inps shape: {self.inps.shape}, inps.max: {self.inps.max()}') - - # [STEP 1]: Get layer, extract linear modules, extract input features - named_linears = AwqQuantizer.get_named_linears(self.modules[i]) - - # Filter out the linear layers we don't want to exclude - named_linears = AwqQuantizer.exclude_layers_to_not_quantize( - named_linears, self.modules_to_not_convert - ) - input_feat = self._get_input_feat(self.modules[i], named_linears) - AwqQuantizer.clear_memory() - - # [STEP 2]: Compute and apply scale list - module_config = [] - # q, k, v proj - module_config.append( - dict( - prev_op=self.modules[i].input_layernorm, - layers=[ - self.modules[i].self_attn.q_proj, - self.modules[i].self_attn.k_proj, - self.modules[i].self_attn.v_proj, - ], - inp=input_feat["self_attn.q_proj"], - module2inspect=self.modules[i].self_attn, - kwargs=self.module_kwargs, - ) - ) - # o_proj - if self.modules[i].self_attn.v_proj.weight.shape == self.modules[i].self_attn.o_proj.weight.shape: - module_config.append( - dict( - prev_op=self.modules[i].self_attn.v_proj, - layers=[self.modules[i].self_attn.o_proj], - inp=input_feat["self_attn.o_proj"], - ) - ) - # mlp gate - module_config.append( - dict( - prev_op=self.modules[i].post_attention_layernorm, - layers=[self.modules[i].mlp.gate_proj, self.modules[i].mlp.up_proj], - inp=input_feat["mlp.gate_proj"], - module2inspect=self.modules[i].mlp, - ) - ) - # mlp down - module_config.append( - dict( - prev_op=self.modules[i].mlp.up_proj, - layers=[self.modules[i].mlp.down_proj], - inp=input_feat["mlp.down_proj"], - ) - ) - scales_list = [ - self._search_best_scale(self.modules[i], **layer) - for layer in module_config - ] - # print(scales_list); exit(0) - AwqQuantizer.apply_scale(self.modules[i], scales_list, input_feat_dict=input_feat) - # [STEP 3]: Compute and apply clipping list - if self.apply_clip: - clip_list = self._search_best_clip( - self.modules[i], named_linears, input_feat - ) - AwqQuantizer.apply_clip(self.modules[i], clip_list) - - AwqQuantizer.clear_memory() - - @torch.no_grad() - def _module_forward( - self, x: torch.Tensor, module: torch.nn.Module, module_kwargs: Dict - ) -> torch.Tensor: - if self.n_parallel_calib_samples is None: - # runs through all samples at once - # print(module, x, module_kwargs); exit(0) - module_output = module(x, **module_kwargs) - if isinstance(module_output, tuple): - module_output = module_output[0] - else: - # memory efficiently runs through all calibration samples - # but only n_parallel_calib_samples at a time - module_output = [] - partitioned_inputs = torch.split(x, self.n_parallel_calib_samples) - for x_partial in partitioned_inputs: - partial_output = module(x_partial, **module_kwargs) - - if isinstance(partial_output, tuple): - partial_output = partial_output[0] - - module_output.append(partial_output.cpu()) - - module_output = torch.cat(module_output, dim=0) - - return module_output - - @torch.no_grad() - def _search_best_scale( - self, - module, - prev_op, - layers: List[torch.nn.Linear], - inp: torch.Tensor, - module2inspect=None, - kwargs={}, - ): - if module2inspect is None: - assert len(layers) == 1 - module2inspect = layers[0] - - if "use_cache" in kwargs: - kwargs.pop("use_cache") - - # Put x on the right device - inp = inp.to(next(module2inspect.parameters()).device) - - # [STEP 1]: Compute per-channel mean of normalised weights - # All layer weights are concatted together - weight = torch.cat([_m.weight for _m in layers], dim=0) - org_shape = weight.shape - # The weights are reshaped to be organised by quantization group - weight = weight.view(-1, self.group_size) - # Calculates the relative magnitude of the weights within each of the quantization groups, - # and rescales each group individually so that each group has weights on a 0-1 scale. - w_scale = weight.abs() / (weight.abs().amax(dim=1, keepdim=True) + 1e-6) - # Resizes the rescaled weight matrix back up to its original dimensions - w_scale = w_scale.view(org_shape) - # Gets the average rescaled magnitude for each output channel - w_mean = w_scale.mean(0) - AwqQuantizer.clear_memory(weight) - - # [STEP 2]: Compute per-channel mean of the input activation with chunking - # move inp to cpu to avoid memory leak - inp_flat = inp.cpu().abs().view(-1, inp.shape[-1]) - num_elements = inp_flat.size(0) - num_channels = inp_flat.size(1) - element_size_bytes = inp_flat.element_size() * 2 # multiplied by 2 for FP32 - - # Calculate chunk size dynamically based on max_chunk_memory - chunk_size = int(self.max_chunk_memory // (element_size_bytes * num_channels)) - chunk_size = min(chunk_size, num_elements) - - # Use float32 for sum calculation - x_sum = torch.zeros(num_channels, dtype=torch.float32, device=inp.device) - - for i in range(0, num_elements, chunk_size): - end = min(i + chunk_size, num_elements) - chunk_sum = inp_flat[i:end].to(torch.float32).sum(dim=0) - x_sum += chunk_sum.to(inp.device) - - x_mean = (x_sum / num_elements).to(inp.dtype) - AwqQuantizer.clear_memory(x_sum) - - # [STEP 3]: Compute output of module - with torch.no_grad(): - module_kwargs = self._sanitize_kwargs(kwargs, module2inspect) - fp16_output = self._module_forward(inp, module2inspect, module_kwargs) - - # [STEP 4]: Compute loss - best_scales = self._compute_best_scale( - inp, w_mean, x_mean, module2inspect, layers, fp16_output, module_kwargs - ) - - return ( - AwqQuantizer.get_op_name(module, prev_op), - tuple([AwqQuantizer.get_op_name(module, m) for m in layers]), - best_scales, - ) - - def _compute_best_scale( - self, - x: torch.Tensor, - w_mean: torch.Tensor, - x_mean: torch.Tensor, - module2inspect: torch.nn.Module, - linears2scale: List[torch.nn.Linear], - fp16_output: torch.Tensor, - kwargs: Dict={}, - ): - """ - Compute loss and select best scales - - L(s) = || Q(W * s) (s^-1 * X) - W * X || - Q: weight quantization function | pseudo_quantize_tensor(W * s) - X: inputs from calib dataset | X - W: original weights in FP16 | layer - s: per channel scaling factor | s^-1 * X - """ - n_grid = 20 - history = [] - best_ratio = -1 - best_scales = None - best_error = float("inf") - - device = x.device - x_mean = x_mean.view(-1).to(device) - w_mean = w_mean.view(-1).to(device) - - ord_weights = [] - for fc in linears2scale: - ord_weights.append(fc.weight.data.clone()) - - for ratio in range(n_grid): - # create new scales - ratio = ratio / n_grid - - # NOTE: s^-1 * x is fused here, according to paper - if self.duo_scaling: - scales = (x_mean.pow(ratio) / (w_mean.pow(1 - ratio) + 1e-4)).clamp(min=1e-4) - else: - scales = x_mean.pow(ratio).clamp(min=1e-4).view(-1) - scales = scales / (scales.max() * scales.min()).sqrt() - scales_view = scales.view(1, -1).to(device) - - # avoid scaling values that overflow - scales[torch.isinf(scales)] = 1 - scales[torch.isnan(scales)] = 1 - - # Q(W * s) - for fc in linears2scale: - fc.weight.mul_(scales_view) - fc.weight.data = ( - self.pseudo_quantize_tensor(fc.weight.data)[0] / scales_view - ) - - # W * X - int_w_output = self._module_forward(x, module2inspect, kwargs) - - # compute mean squared error (L2 norm) - loss = self._compute_loss(fp16_output, int_w_output, device) - - history.append(loss) - if loss < best_error: - best_error = loss - best_ratio = ratio - best_scales = scales.clone() - - for fc, ord_weight in zip(linears2scale, ord_weights): - fc.weight.data = ord_weight.clone() - - del ord_weights - - if best_ratio == -1: - logging.debug(history) - raise Exception - - assert torch.isnan(best_scales).sum() == 0, best_scales - - return best_scales.detach().cpu() - - @torch.no_grad() - def _compute_loss( - self, - fp16_output: torch.Tensor, - int_w_output: torch.Tensor, - device: torch.device, - ): - loss = 0.0 - fp16_output_flat = fp16_output.view(-1) - int_w_output_flat = int_w_output.view(-1) - num_elements = fp16_output_flat.size(0) - element_size_bytes = fp16_output.element_size() - - # Calculate chunk size dynamically based on max_chunk_memory - # Divide the max_chunk_memory by twice the element size - chunk_size = self.max_chunk_memory // (element_size_bytes * 2) - chunk_size = min(chunk_size, num_elements) - - # Split the computation into chunks - fp16_chunks = torch.split(fp16_output_flat, chunk_size) - int_w_chunks = torch.split(int_w_output_flat, chunk_size) - - # Compute the loss for each chunk - for fp16_chunk, int_w_chunk in zip(fp16_chunks, int_w_chunks): - chunk_loss = (fp16_chunk.to(device) - int_w_chunk.to(device)).float().pow(2).sum().item() - loss += chunk_loss - - # Normalize the loss by the total number of elements - loss /= num_elements - - return loss - - @torch.no_grad() - def _search_best_clip(self, layer, named_linears, input_feat): - clip_list = [] - avoid_clipping = ["q_", "k_", "query", "key", "Wqkv"] - - for name in named_linears: - # due to qk bmm, it is hard to clip precisely - if any([_ in name for _ in avoid_clipping]): - continue - - named_linears[name].to(AwqQuantizer.get_best_device()) - max_val = self._compute_best_clip( - named_linears[name].weight, input_feat[name] - ) - clip_list.append((name, max_val)) - named_linears[name].cpu() - - return clip_list - - @torch.no_grad() - def _compute_best_clip( - self, - w: torch.Tensor, - input_feat: torch.Tensor, - n_grid=20, - max_shrink=0.5, - n_sample_token=512, - ): - assert w.dim() == 2 - org_w_shape = w.shape - # w [co, ci] -> [co, 1, n_group, group size] - # input_feat [n_token, ci] -> [1, n_token, n_group, group size] - group_size = self.group_size if self.group_size > 0 else org_w_shape[1] - input_feat = input_feat.view(-1, input_feat.shape[-1]) - input_feat = input_feat.reshape(1, input_feat.shape[0], -1, group_size) - - # Compute input feature step size (minimum 1) - step_size = max(1, input_feat.shape[1] // n_sample_token) - input_feat = input_feat[:, ::step_size] - - w = w.reshape(org_w_shape[0], 1, -1, group_size) - - oc_batch_size = 256 if org_w_shape[0] % 256 == 0 else 64 # prevent OOM - assert org_w_shape[0] % oc_batch_size == 0 - w_all = w - best_max_val_all = [] - - for i_b in range(org_w_shape[0] // oc_batch_size): - w = w_all[i_b * oc_batch_size : (i_b + 1) * oc_batch_size] - - org_max_val = w.abs().amax(dim=-1, keepdim=True) # co, 1, n_group, 1 - - best_max_val = org_max_val.clone() - min_errs = torch.ones_like(org_max_val) * 1e9 - input_feat = input_feat.to(w.device) - org_out = (input_feat * w).sum(dim=-1) # co, n_token, n_group - - for i_s in range(int(max_shrink * n_grid)): - max_val = org_max_val * (1 - i_s / n_grid) - min_val = -max_val - cur_w = torch.clamp(w, min_val, max_val) - q_w = self.pseudo_quantize_tensor(cur_w)[0] - cur_out = (input_feat * q_w).sum(dim=-1) - - # co, 1, n_group, 1 - err = (cur_out - org_out).pow(2).mean(dim=1).view(min_errs.shape) - del cur_w - del cur_out - cur_best_idx = err < min_errs - min_errs[cur_best_idx] = err[cur_best_idx] - best_max_val[cur_best_idx] = max_val[cur_best_idx] - best_max_val_all.append(best_max_val) - - best_max_val = torch.cat(best_max_val_all, dim=0) - - AwqQuantizer.clear_memory(input_feat) - AwqQuantizer.clear_memory(org_out) - - return best_max_val.squeeze(1) - - @staticmethod - @torch.no_grad() - def apply_clip(module, clip_list: Tuple[str, torch.Tensor]): - for name, max_val in clip_list: - layer: torch.nn.Linear = AwqQuantizer.get_op_by_name(module, name) - layer.to(AwqQuantizer.get_best_device()) - max_val = max_val.to(layer.weight.device) - org_shape = layer.weight.shape - layer.weight.data = layer.weight.data.reshape(*max_val.shape[:2], -1) - layer.weight.data = torch.clamp(layer.weight.data, -max_val, max_val) - layer.weight.data = layer.weight.data.reshape(org_shape) - layer.cpu() - - @staticmethod - @torch.no_grad() - def scale_fc_fcs(fc1: torch.nn.Linear, fcs: List[torch.nn.Linear], scales: torch.Tensor): - if not isinstance(fcs, list): - fcs = [fcs] - - scales = scales.to(fc1.weight.device) - - fc1.weight[-scales.size(0) :].div_(scales.view(-1, 1)) - if fc1.bias is not None: - fc1.bias.div_(scales.view(-1)) - - for fc in fcs: - fc.weight.mul_(scales.view(1, -1)) - - for p in fc1.parameters(): - assert torch.isnan(p).sum() == 0 - for fc in fcs: - for p in fc.parameters(): - assert torch.isnan(p).sum() == 0 - - @staticmethod - def is_allowed_act_fns(op): - from transformers.activations import NewGELUActivation, PytorchGELUTanh, GELUActivation - allowed_act_fns = [ - torch.nn.GELU, - NewGELUActivation, - PytorchGELUTanh, - GELUActivation, - ] - return (op in allowed_act_fns) - - @staticmethod - def is_allowed_norms(op): - if isinstance(op, torch.nn.LayerNorm): - return True - if any(t in str(type(op)) for t in ['LlamaRMSNorm', 'GemmaRMSNorm', 'CohereLayerNorm']): - return True - return False - - @staticmethod - @torch.no_grad() - def scale_fc_fc(fc1: torch.nn.Linear, fc2: torch.nn.Linear, scales: torch.Tensor): - assert isinstance(fc1, torch.nn.Linear) - assert isinstance(fc2, torch.nn.Linear) - - scales = scales.to(fc1.weight.device) - fc1.weight[-scales.size(0) :].div_(scales.view(-1, 1)) - if fc1.bias is not None: - fc1.bias.div_(scales.view(-1)) - - fc2.weight.mul_(scales.view(1, -1)) - - for p in fc1.parameters(): - assert torch.isnan(p).sum() == 0 - for p in fc2.parameters(): - assert torch.isnan(p).sum() == 0 - - @staticmethod - @torch.no_grad() - def scale_ln_fcs(ln: torch.nn.Linear, fcs: List[torch.nn.Linear], scales: torch.Tensor): - if not isinstance(fcs, list): - fcs = [fcs] - - scales = scales.to(ln.weight.device) - - # GemmaRMSNorm is different from Llama's in that it multiplies - # (1 + weight) to the output, instead of just weight. - if 'GemmaRMSNorm' in str(type(ln)): - ln.weight += 1 - ln.weight.div_(scales) - ln.weight -= 1 - else: - ln.weight.div_(scales) - - if hasattr(ln, "bias") and ln.bias is not None: - ln.bias.div_(scales) - - for fc in fcs: - fc.weight.mul_(scales.view(1, -1)) - - for p in ln.parameters(): - assert torch.isnan(p).sum() == 0 - for fc in fcs: - for p in fc.parameters(): - assert torch.isnan(p).sum() == 0 - - @staticmethod - @torch.no_grad() - def scale_gelu_fc(gelu, fc: torch.nn.Linear, scales: torch.Tensor): - assert AwqQuantizer.is_allowed_act_fns(gelu) - assert isinstance(fc, torch.nn.Linear) - - fc.weight.mul_(scales.view(1, -1).to(fc.weight.device)) - - for p in fc.parameters(): - assert torch.isnan(p).sum() == 0 - - @staticmethod - def apply_scale(module, scales_list, input_feat_dict=None): - for prev_op_name, layer_names, scales in scales_list: - prev_op = AwqQuantizer.get_op_by_name(module, prev_op_name) - layers = [AwqQuantizer.get_op_by_name(module, name) for name in layer_names] - - best_device = AwqQuantizer.get_best_device() - prev_op.to(best_device) - for layer in layers: - layer.to(best_device) - scales.to(best_device) - if ( - isinstance(prev_op, torch.nn.Linear) - and type(layers) == list - and isinstance(layers[0], torch.nn.Linear) - ): - if len(layers) == 1: - AwqQuantizer.scale_fc_fc(prev_op, layers[0], scales) - else: - AwqQuantizer.scale_fc_fcs(prev_op, layers, scales) - elif ( - AwqQuantizer.is_allowed_norms(prev_op) - or "rmsnorm" in str(prev_op.__class__).lower() - ): - AwqQuantizer.scale_ln_fcs(prev_op, layers, scales) - - elif AwqQuantizer.is_allowed_act_fns(prev_op): - #new_module = ScaledActivation(prev_op, scales) - #set_op_by_name(module, prev_op_name, new_module) - AwqQuantizer.scale_gelu_fc(prev_op, layers[0], scales) - else: - raise NotImplementedError(f"prev_op {type(prev_op)} not supported yet!") - - # apply the scaling to input feat if given; prepare it for clipping - if input_feat_dict is not None: - for layer_name in layer_names: - # Skip the modules that are not quantized - if layer_name in input_feat_dict: - inp = input_feat_dict[layer_name] - inp.div_(scales.view(1, -1).to(inp.device)) - - prev_op.cpu() - for layer in layers: - layer.cpu() - scales.cpu() - - @staticmethod - def exclude_layers_to_not_quantize(linear_layers, modules_to_not_convert): - if modules_to_not_convert is None: - return linear_layers - - filtered_layers = {} - for name, linear_layer in linear_layers.items(): - if not any(key in name for key in modules_to_not_convert): - filtered_layers[name] = linear_layer - return filtered_layers - - @staticmethod - def get_named_linears(module): - return {name: m for name, m in module.named_modules() if isinstance(m, torch.nn.Linear)} - - @staticmethod - def get_op_by_name(module, op_name): - # get the op by its name relative to the module - for name, m in module.named_modules(): - if name == op_name: - return m - raise ValueError(f"Cannot find op {op_name} in module {module}") - - @staticmethod - def get_calib_dataset( - data: Union[str, List[str], List[List[int]]] = "pileval", - tokenizer=None, - n_samples=128, - max_seq_len=512, - split="train", - text_column="text", - ): - if isinstance(data, str): - from datasets import load_dataset - if data == "pileval": - dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation") - else: - dataset = load_dataset(data, split=split) - # dataset = dataset.shuffle(seed=42) - elif isinstance(data, list): - if isinstance(data[0], str): - dataset = [{text_column: text} for text in data] - elif isinstance(data[0][0], int): - dataset = data - else: - raise NotImplementedError( - "Either pass a string to a huggingface dataset or a list" - "that is preprocessed with one sample of text per element" - " or a list of list of int for tokenized words." - ) - else: - raise NotImplementedError( - "Either pass a string to a huggingface dataset or a list" - "that is preprocessed with one sample of text per element" - " or a list of list of int for tokenized words." - ) - - samples = [] - n_run = 0 - for data in dataset: - if isinstance(data, list): - line_encoded = data - else: - line = data[text_column] - line = line.strip() - line_encoded = tokenizer.encode(line) - if len(line_encoded) > max_seq_len: - continue - sample = torch.tensor([line_encoded]) - if sample.numel() == 0: - continue - samples.append(sample) - n_run += 1 - if n_run == n_samples: - break - # now concatenate all samples and split according to max sequence length - cat_samples = torch.cat(samples, dim=1) - n_split = cat_samples.shape[1] // max_seq_len - logging.debug(f" * Split into {n_split} blocks") - return [ - cat_samples[:, i * max_seq_len : (i + 1) * max_seq_len] for i in range(n_split) - ] - - @staticmethod - def get_best_device(): - if torch.backends.mps.is_available(): - return "mps" - elif torch.cuda.is_available(): - return "cuda:0" - else: - return "cpu" - - @staticmethod - def clear_memory(weight=None): - if weight is not None: - del weight - gc.collect() - torch.cuda.empty_cache() - - @staticmethod - def get_op_name(module, op): - # get the name of the op relative to the module - for name, m in module.named_modules(): - if m is op: - return name - raise ValueError(f"Cannot find op {op} in module {module}") - - @staticmethod - def append_str_prefix(x, prefix): - if isinstance(x, str): - return prefix + x - elif isinstance(x, tuple): - return tuple([AwqQuantizer.append_str_prefix(y, prefix) for y in x]) - elif isinstance(x, list): - return [AwqQuantizer.append_str_prefix(y, prefix) for y in x] - else: - return x - - def init_quant(self, n_samples=128, max_seq_len=512): - modules = self.awq_model.blocks - samples = AwqQuantizer.get_calib_dataset( - data=self.calib_data, - tokenizer=self.tokenizer, - n_samples=n_samples, - max_seq_len=max_seq_len, - split=self.split - ) - # samples = torch.cat(samples, dim=0) - samples = torch.cat(samples[:1], dim=0) # just using 1 batch - inps = [] - layer_kwargs = {} - # build inps - self.model.seq_len = samples.numel() - self.model.context_len = samples.numel() - 2 - self.model.token_len = 0 - best_device = AwqQuantizer.get_best_device() - inps = self.model.embedding(samples).to(best_device) - position_ids = self.model.get_position_ids() - rotary_pos_emb = self.model.rotary(position_ids) - attention_mask = self.model.get_attention_mask() - layer_kwargs["rotary_pos_emb"] = rotary_pos_emb.to(best_device) - layer_kwargs["attention_mask"] = attention_mask.to(best_device) - del samples - AwqQuantizer.clear_memory() - return modules, layer_kwargs, inps - - def _get_input_feat(self, layer, named_linears): - # firstly, get input features of all linear layers - def cache_input_hook(m, x, y, name, feat_dict): - x = x[0] - x = x.detach().cpu() - feat_dict[name].append(x) - input_feat = defaultdict(list) - handles = [] - for name in named_linears: - handles.append( - named_linears[name].register_forward_hook( - functools.partial(cache_input_hook, name=name, feat_dict=input_feat) - ) - ) - self.inps = self.inps.to(next(layer.parameters()).device) # in case multi-gpu - # get output as next layer's input - - # Sanitize the kwargs in case we use transformers version that contains - # kwargs that are not handled by the module. - # Useful for trust_remote_code models. - module_kwargs = self._sanitize_kwargs(self.module_kwargs, layer) - - self.inps = self._module_forward(self.inps, layer, module_kwargs) - for h in handles: - h.remove() - # now solve for scaling and clipping - input_feat = {k: torch.cat(v, dim=0) for k, v in input_feat.items()} - - return input_feat - - def _sanitize_kwargs(self, inputs_kwargs, module): - """ - Remove the arguments that are not supported in the module's - forward pass to avoid breaking behaviour between different versions - of transformers. - - Args: - inputs_kwargs (`dict`): - The input dictionary to pass to the model layer - module (`torch.nn.Module`): - Target module to quantize. - """ - module_signature = inspect.signature(module.forward).parameters - sanitized_kwargs = {} - for k, v in inputs_kwargs.items(): - if k in module_signature: - sanitized_kwargs[k] = v - return sanitized_kwargs -# awq quantizer end - -# Export class - -# custom op start -class FakeLinearOp(torch.autograd.Function): - @staticmethod - def symbolic(g, input, in_features, out_features, has_bias, name): - # These become the operator attributes. - kwargs = { - "in_features_i": in_features, - "out_features_i": out_features, - "has_bias_i": has_bias, - "name_s": name - } - from torch.onnx.symbolic_helper import _get_tensor_sizes - out_sizes = _get_tensor_sizes(input)[:-1] + [out_features] - output_type = input.type().with_sizes(out_sizes) - return g.op("LlmExporter::FakeLinear", input, **kwargs).setType(output_type) - - @staticmethod - def forward(ctx, input, in_features, out_features, has_bias, name): - out_shape = list(input.shape)[:-1] + [out_features] - return input.new_zeros(out_shape) - -class FakeLinear(torch.nn.Module): - def __init__(self, in_features, out_features, has_bias, name): - super(FakeLinear, self).__init__() - self.in_features = in_features - self.out_features = out_features - self.has_bias = has_bias - self.name = name - - def forward(self, x): - return FakeLinearOp.apply(x, self.in_features, self.out_features, self.has_bias, self.name) - -class FusedAttentionOp(torch.autograd.Function): - @staticmethod - def symbolic(g, query, key, value, attention_mask, hidden_size, name): - # These become the operator attributes. - kwargs = { - "hidden_size_i": hidden_size, - "name_s": name - } - from torch.onnx.symbolic_helper import _get_tensor_sizes - out_sizes = _get_tensor_sizes(query) - output_type = query.type().with_sizes(out_sizes) - return g.op("LlmExporter::FusedAttention", query, key, value, attention_mask, **kwargs).setType(output_type) - - @staticmethod - def forward(ctx, query, key, value, attention_mask, hidden_size, name): - out_shape = list(query.shape)[:2] + [hidden_size] - return query.new_zeros(out_shape) - -class FusedAttention(torch.nn.Module): - def __init__(self, hidden_size, name): - super(FusedAttention, self).__init__() - self.hidden_size = hidden_size - self.name = name - - def forward(self, query, key, value, attention_mask): - return FusedAttentionOp.apply(query, key, value, attention_mask, self.hidden_size, self.name) - -# custom op end - -class OnnxRebuilder: - def __init__(self, onnx_path, weight_ops): - self.weight_ops = weight_ops - self.onnx_model = onnx.load(onnx_path) - self.dst_path = onnx_path - self.onnx_weight_path = f'{onnx_path}.data' - self.onnx_weight_offset = 0 - - def make_external(self, name, data, shape): - # write to external weight - length = self.onnx_weight.write(data.tobytes()) - location = os.path.basename(self.onnx_weight_path) - offset = self.onnx_weight_offset - self.onnx_weight_offset += length - tensor = onnx.TensorProto() - tensor.name = name - tensor.data_type = onnx.TensorProto.FLOAT - tensor.dims.extend(shape) - # external info - tensor.data_location = onnx.TensorProto.EXTERNAL - for k, v in { "location": location, "offset": offset, "length": length }.items(): - entry = tensor.external_data.add() - entry.key = k - entry.value = str(v) - self.onnx_model.graph.initializer.append(tensor) - - def build_weight(self, name, has_bias, ic, oc): - assert(name in self.weight_ops) - linear = self.weight_ops[name] - assert(linear.in_features == ic and - linear.out_features == oc and - (linear.bias is not None) == has_bias) - weight_name, bias_name = f'{name}_weight', f'{name}_bias' - weight = linear.weight.data.transpose(1, 0).flatten().float().numpy() - self.make_external(weight_name, weight, [ic, oc]) - if has_bias: - bias = linear.bias.data.flatten().float().numpy() - self.make_external(bias_name, bias, [oc]) - return weight_name, bias_name - - def rebuild(self): - from onnx import helper - new_nodes = [] - self.onnx_weight = open(self.onnx_weight_path, 'wb') - for node in self.onnx_model.graph.node: - if node.op_type == 'FakeLinear': - attributes = {a.name: a for a in node.attribute} - name = attributes.get('name').s.decode('utf-8') - has_bias = attributes.get('has_bias').i - ic = attributes.get('in_features').i - oc = attributes.get('out_features').i - weight, bias = self.build_weight(name, has_bias, ic, oc) - if has_bias: - # fakelinear -> matmul + add - middle_tensor = f'{name}_matmul' - new_nodes.append(helper.make_node('MatMul', [node.input[0], weight], [middle_tensor], name)) - new_nodes.append(helper.make_node('Add', [middle_tensor, bias], node.output, f'{name}/Add')) - else: - # fakelinear -> matmul - new_nodes.append(helper.make_node('MatMul', [node.input[0], weight], node.output, name)) - else: - new_nodes.append(node) - self.onnx_weight.close() - del self.onnx_model.graph.node[:] - self.onnx_model.graph.node.extend(new_nodes) - onnx.save(self.onnx_model, self.dst_path) - return self.onnx_weight_path - -class MNNConveter: - def __init__(self, onnx_path, weight_ops, config): - self.weight_ops = weight_ops - self.config = config - self.quant_block = config.args.quant_block - self.quant_bit = config.args.quant_bit - self.lm_quant_bit = config.args.lm_quant_bit - self.symmetric = config.args.sym - self.mnn_weight_offset = 0 - self.onnx_model_path = onnx_path - self.mnn_name = os.path.basename(onnx_path).replace('.onnx', '.mnn') - self.mnn_model_path = os.path.join(config.args.dst_path, self.mnn_name) - self.mnn_weight_path = f'{self.mnn_model_path}.weight' - if os.path.exists(config.args.mnnconvert): - self.mnnconvert = config.args.mnnconvert - else: - self.mnnconvert = None - - def convert(self, convert_args): - sfd = os.dup(1) - log_fp = open(EXPORT_LOG, "a") - log_fd = log_fp.fileno() - # mnnconvert ... > .export.log - os.dup2(log_fd, 1) - try: - sys.argv = convert_args - sys.argc = len(convert_args) - if self.mnnconvert is None: - from MNN.tools import mnnconvert - mnnconvert.main() - else: - convert_args[0] = self.mnnconvert - cmd = ' '.join(convert_args) - message = os.popen(cmd).read() - print(message) - sys.argv = [] - finally: - os.dup2(sfd, 1) - os.close(log_fd) - - @spinner_run(f'convert onnx model to ') - def onnx2mnn(self, onnx_path, mnn_path, args = []): - convert_args = [ - '', - '-f', - 'ONNX', - '--modelFile', - str(onnx_path), - '--MNNModel', - str(mnn_path), - '--transformerFuse', - '--allowCustomOp' - ] - convert_args += args - self.convert(convert_args) - return mnn_path - - def mnn2json(self, mnn_path, json_path): - convert_args = [ - '', - '-f', - 'MNN', - '--modelFile', - str(mnn_path), - '--JsonFile', - str(json_path) - ] - self.convert(convert_args) - return json_path - - def json2mnn(self, json_path, mnn_path): - convert_args = [ - '', - '-f', - 'JSON', - '--modelFile', - str(json_path), - '--MNNModel', - str(mnn_path) - ] - self.convert(convert_args) - return mnn_path - - def removeDupOps(self, mnn_path): - convert_args = [ - '', - '-f', - 'MNN', - '--modelFile', - str(mnn_path), - '--MNNModel', - str(mnn_path), - '--optimizeLevel=1' - ] - self.convert(convert_args) - return mnn_path - - def export(self, quant_bit = None, quant_block = None): - if self.weight_ops is None: - if quant_bit is None: - quant_bit = self.quant_bit - if quant_block is None: - quant_block = self.quant_block - if quant_bit == 16: - quant_args = ['--fp16'] - else: - quant_args = [ - '--weightQuantBits', - str(quant_bit), - '--weightQuantBlock', - str(quant_block) - ] - self.onnx2mnn(self.onnx_model_path, self.mnn_model_path, quant_args) - else: - mnn_json = f'{self.mnn_model_path}.json' - self.onnx2mnn(self.onnx_model_path, self.mnn_model_path) - self.mnn2json(self.mnn_model_path, mnn_json) - self.rebuild(mnn_json) - self.json2mnn(mnn_json, self.mnn_model_path) - self.removeDupOps(self.mnn_model_path) - - @spinner_run(f'quant model weight to ', True) - def rebuild(self, json_path): - mnn_graph = json.load(open(json_path, 'rt')) - new_ops = [] - with open(self.mnn_weight_path, 'wb') as self.mnn_weight: - for op in tqdm(mnn_graph['oplists'], 'Quant weights'): - if op['type'] == 'Extra': - new_ops += self.rebuild_op(op, mnn_graph) - else: - new_ops.append(op) - mnn_graph['oplists'] = new_ops - with open(json_path, 'w', encoding='utf-8') as file: - json.dump(mnn_graph, file, ensure_ascii=False, indent=4) - return self.mnn_weight_path - - def quant(self, weight, quant_bit, quant_block, symmetric): - if torch.cuda.is_available(): - weight = weight.cuda() - if torch.backends.mps.is_available(): - weight = weight.to('mps') - oc, ic = weight.shape - if quant_block == 0: - block_size = ic - else: - block_size = quant_block - block_num = ic // block_size - weight = weight.reshape(oc, block_num, block_size) - offset = 1 << (quant_bit - 1) - clip_max = offset - 1 - if symmetric: - clip_min = -clip_max - abs_max, _ = torch.max(torch.abs(weight), axis=-1, keepdims=True) - scale = abs_max / clip_max - q_weight = torch.round(weight / scale) - q_weight = (torch.clamp(q_weight.flatten(), clip_min, clip_max) + offset).to(torch.uint8) - alpha = scale.flatten() - else: - clip_min = -offset - max_val, _ = torch.max(weight, axis=-1, keepdims=True) - min_val, _ = torch.min(weight, axis=-1, keepdims=True) - scale = (max_val - min_val) / (clip_max - clip_min) - - if False: - q_weight = np.round((weight - min_val) / scale) + clip_min - zeros = min_val - scale * clip_min - else: - q_weight = torch.round(weight / scale) - torch.round(min_val / scale) + clip_min - zeros = (torch.round(min_val / scale) - clip_min) * scale - q_weight = (torch.clamp(q_weight.flatten(), clip_min, clip_max) + offset).to(torch.uint8) - alpha = torch.stack([zeros.flatten(), scale.flatten()], axis=-1).flatten() - - q_weight = q_weight.reshape(-1, 2) - if quant_bit == 4: - q_weight = q_weight[:, 0] * 16 + q_weight[:, 1] - - clip_min = 1 - - if q_weight.device is not torch.device('cpu'): - return q_weight.cpu(), alpha.float().cpu(), clip_min - return q_weight, alpha.float(), clip_min - - def write_weight(self, data): - if isinstance(data, torch.Tensor): - data = data.numpy() - return self.mnn_weight.write(data.tobytes()) - - def write_header(self, ic, oc, quant_bit): - dim_num = self.mnn_weight.write(b'\x02') - shape_dtype = np.int16 - if oc > 65535 or ic > 65535: - shape_dtype = np.int32 - dim_length = self.write_weight(np.array([oc, ic]).astype(shape_dtype)) - offset = 1 << (quant_bit - 1) - weight_map = [i for i in range(-offset, offset)] - if len(weight_map) == 256: - weight_map.insert(0, 0) - else: - weight_map.insert(0, len(weight_map)) - map_length = self.write_weight(np.array(weight_map, dtype=np.int8)) - header_length = dim_num + dim_length + map_length - return header_length, shape_dtype == np.int32 - - def build_weight(self, linear, quant_bit, quant_block, symmetric): - ic, oc = linear.in_features, linear.out_features - if quant_bit == 16: - half_weight = linear.weight.data.flatten().half() - weight_len = self.write_weight(half_weight) - alpha_len, q_min, shape_int32 = 0, 0, False - else: - assert(quant_bit in (4, 8)) - q_weight, alpha, q_min = self.quant(linear.weight.data, quant_bit, quant_block, symmetric) - header_len, shape_int32 = self.write_header(ic, oc, quant_bit) - weight_len = self.write_weight(q_weight) + header_len - alpha_len = self.write_weight(alpha) - if linear.bias is not None: - bias = linear.bias.data.flatten().float() - bias_length = self.write_weight(bias) - else: - bias_length = 0 - # bias = np.zeros([oc], dtype=np.float32) - # bias_length = self.write_weight(bias) - external = [self.mnn_weight_offset, weight_len, alpha_len, bias_length, 0] - self.mnn_weight_offset += (weight_len + alpha_len + bias_length) - return external, q_min, shape_int32, header_len - - def build_tensor(self, graph, tensor_name): - tensor_idx = [len(graph['tensorName'])] - graph['tensorName'].append(tensor_name) - return tensor_idx - - def rebuild_op(self, op, graph): - op_type = op['main']['type'] - if op_type == 'FakeLinear': - return self.rebuild_linear(op, graph) - if op_type == 'FusedAttention': - return self.rebuild_attnention(op, graph) - - def rebuild_attnention(self, op, graph): - attrs = op['main']['attr'] - for attr in attrs: - if attr['key'] == 'name': - name = attr['s'] - origin_input = op['inputIndexes'] - origin_output = op['outputIndexes'] - fused_attention = { - "inputIndexes": origin_input, - "main_type": "AttentionParam", - "main": { "kv_cache": True }, - "name": name, - "outputIndexes": origin_output, - "type": "Attention", - "defaultDimentionFormat": "NHWC" - } - return [fused_attention] - - def rebuild_linear(self, op, graph): - attrs = op['main']['attr'] - for attr in attrs: - if attr['key'] == 'name': - name = attr['s'] - elif attr['key'] == "in_features": - ic = attr["i"] - elif attr['key'] == "out_features": - oc = attr["i"] - elif attr['key'] == "has_bias": - has_bias = attr["i"] - linear = self.weight_ops[name] - assert(linear.in_features == ic and - linear.out_features == oc and - (linear.bias is not None) == has_bias) - - is_lm = 'lm_head' in name - quant_bit = self.lm_quant_bit if is_lm else self.quant_bit - block_size = ic if self.quant_block == 0 else self.quant_block - external, q_min, shape_int32, header_len = self.build_weight(linear, quant_bit, self.quant_block, self.symmetric) - if is_lm and self.config.tie_word_embeddings: - weight_offset = external[0] + header_len - alpha_offset = external[0] + external[1] - alpha_size = external[2] - self.config.llm_config['tie_embeddings'] = [weight_offset, alpha_offset, alpha_size, quant_bit, self.quant_block] - - origin_input = op['inputIndexes'] - origin_output = op['outputIndexes'] - # build new tensor - pre_reshape_name = f'{name}/pre_reshape' - pre_convert_name = f'{name}/pre_convert' - conv_name = name - post_convert_name = f'{name}/post_convert' - post_reshape_name = f'{name}/post_reshape' - pre_reshape_output = self.build_tensor(graph, pre_reshape_name) - pre_convert_output = self.build_tensor(graph, pre_convert_name) - conv_output = self.build_tensor(graph, conv_name) - post_convert_output = self.build_tensor(graph, post_convert_name) - # [batch, seq, hidden_size_i] -[Linear] -> [batch, seq, hidden_size_o] - # [1, seq, hidden_size_i] ->[Reshape]-> [seq, hidden_size_i, 1, 1] - # -[Convert]-[Convolution]-[Convert]-> [Reshape] -> [1, seq, hidden_size_o] - pre_reshape = { - "name": pre_reshape_name, - "type": "Reshape", - "inputIndexes": origin_input, - "outputIndexes": pre_reshape_output, - "main_type": "Reshape", - "main": { - "dims": [-1, ic, 1, 1], - "dimType": "NCHW" - }, - "defaultDimentionFormat": "NHWC" - } - pre_convert = { - "name": pre_convert_name, - "inputIndexes": pre_reshape_output, - "outputIndexes": pre_convert_output, - "type": "ConvertTensor", - "main_type": "TensorConvertInfo", - "main": { - "source": "NCHW", - "dest": "NC4HW4" - }, - "defaultDimentionFormat": "NHWC" - } - - if quant_bit == 16: - quanParameter = { "type": 3 } - else: - if self.symmetric: - aMin = 0 - readType = 0 - else: - aMin = q_min - readType = oc * (ic // block_size) - - quanParameter = { - "quantScale": 1.0, "scaleIn": 0.0, "scaleOut": 0.0, - "useInt32": False, "has_scaleInt": False, "shapeInt32": shape_int32, - "type": 1, "aMax": 0, "aMin": aMin, "readType": readType, "weightSize": 0 - } - conv_op = { - "name": conv_name, - "inputIndexes": pre_convert_output, - "outputIndexes": conv_output, - "type": "Convolution", - "main_type": "Convolution2D", - "main": { - 'common': { - 'dilateX': 1, 'dilateY': 1, 'strideX': 1, 'strideY': 1, - 'kernelX': 1, 'kernelY': 1, 'padX': 0, 'padY': 0, 'group': 1, - 'outputCount': oc, 'relu': False, 'padMode': 'CAFFE', - 'relu6': False, 'inputCount': ic, 'hasOutputShape': False - }, - "quanParameter": quanParameter, - "external": external - }, - "defaultDimentionFormat": "NHWC" - } - post_convert = { - "name": post_convert_name, - "inputIndexes": conv_output, - "outputIndexes": post_convert_output, - "type": "ConvertTensor", - "main_type": "TensorConvertInfo", - "main": { - "source": "NC4HW4", - "dest": "NCHW" - }, - "defaultDimentionFormat": "NHWC" - } - post_reshape = { - "name": post_reshape_name, - "type": "Reshape", - "inputIndexes": post_convert_output, - "outputIndexes": origin_output, - "main_type": "Reshape", - "main": { - "dims": [1, -1, oc], - "dimType": "NCHW" - }, - "defaultDimentionFormat": "NHWC" - } - return [pre_reshape, pre_convert, conv_op, post_convert, post_reshape] - -# some wrapper class for export -class Embedding(torch.nn.Module): - def __init__(self, embed, config): - super().__init__() - self.hidden_size = config.hidden_size - self.embed = embed - if config.model_type == 'gemma2': - normalizer = torch.tensor(self.hidden_size**0.5) - self.embed.weight.data *= normalizer - - def forward(self, input_ids): - inputs_embeds = self.embed(input_ids).view(-1, 1, self.hidden_size) - return inputs_embeds - -def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor: - batch, num_key_value_heads, slen, head_dim = hidden_states.shape - if n_rep == 1: - return hidden_states - hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim) - return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim) - -class Attention(torch.nn.Module): - def __init__(self, attn, layer_id, config): - super().__init__() - self.export_fused_attn = False - self.fused_attn = FusedAttention(config.hidden_size, f'/layers.{layer_id}/self_attn/FusedAttention') - self.layer_id = layer_id - self.hidden_size = config.hidden_size - self.head_dim = config.head_dim - if isinstance(config.num_attention_heads, list): - self.num_heads = config.num_attention_heads[layer_id] - self.num_key_value_heads = config.num_key_value_heads[layer_id] - else: - self.head_dim = config.head_dim - self.num_heads = config.num_attention_heads - self.num_key_value_heads = config.num_key_value_heads - self.num_key_value_groups = self.num_heads // self.num_key_value_heads - self.rotary = config.rotary - - ModelMapper.do_map(self, attn, config.model_map['attention']) - - if hasattr(self, 'qkv_proj') and self.qkv_proj is not None: - # split qkv linear to q, k, v - split_sizes = [self.hidden_size] * 3 - if self.qkv_proj.weight.shape[0] != self.hidden_size * 3: - # M/GQA - split_sizes = [ - self.num_heads * self.head_dim, # q_size - self.num_key_value_heads * self.head_dim, # k_size - self.num_key_value_heads * self.head_dim # v_size - ] - - self.q_proj = torch.nn.Linear(self.hidden_size, split_sizes[0]) - self.k_proj = torch.nn.Linear(self.hidden_size, split_sizes[1]) - self.v_proj = torch.nn.Linear(self.hidden_size, split_sizes[2]) - if config.model_type == 'chatglm': - # chatglm-6b - qkv_weight = self.qkv_proj.weight.data.view(self.num_heads, 3, self.head_dim, self.hidden_size) - self.q_proj.weight.data = qkv_weight[:, 0, :, :].reshape(self.hidden_size, self.hidden_size) - self.k_proj.weight.data = qkv_weight[:, 1, :, :].reshape(self.hidden_size, self.hidden_size) - self.v_proj.weight.data = qkv_weight[:, 2, :, :].reshape(self.hidden_size, self.hidden_size) - qkv_bias = self.qkv_proj.bias.data.view(self.num_heads, 3, self.head_dim) - self.q_proj.bias.data = qkv_bias[:, 0, :].reshape(self.hidden_size) - self.k_proj.bias.data = qkv_bias[:, 1, :].reshape(self.hidden_size) - self.v_proj.bias.data = qkv_bias[:, 2, :].reshape(self.hidden_size) - else: - # other - qw, kw, vw = torch.split(self.qkv_proj.weight, split_sizes) - self.q_proj.weight.data = qw - self.k_proj.weight.data = kw - self.v_proj.weight.data = vw - if self.qkv_proj.bias is not None: - qb, kb, vb = torch.split(self.qkv_proj.bias, split_sizes) - self.q_proj.bias.data = qb - self.k_proj.bias.data = kb - self.v_proj.bias.data = vb - else: - self.q_proj.bias.data = torch.zeros(split_sizes[0]) - self.k_proj.bias.data = torch.zeros(split_sizes[1]) - self.v_proj.bias.data = torch.zeros(split_sizes[2]) - self.q_proj.weight.requires_grad = False - self.k_proj.weight.requires_grad = False - self.v_proj.weight.requires_grad = False - self.q_proj.bias.requires_grad = False - self.k_proj.bias.requires_grad = False - self.v_proj.bias.requires_grad = False - - - def forward( - self, - hidden_states: torch.Tensor, - attention_mask: Optional[torch.Tensor] = None, - past_key_value: Optional[Tuple[torch.Tensor]] = None, - rotary_pos_emb: Optional[torch.Tensor] = None, - cross_attention_states: Optional[torch.Tensor] = None, - ) -> Tuple[torch.Tensor, torch.Tensor]: - bsz, q_len, _ = hidden_states.size() - query_states = self.q_proj(hidden_states) - if cross_attention_states is not None: - hidden_states = cross_attention_states - key_states = self.k_proj(hidden_states) - value_states = self.v_proj(hidden_states) - query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim) - key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim) - value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim) - # openelm model has qk_norm - if hasattr(self, 'q_norm') and self.q_norm is not None and \ - hasattr(self, 'k_norm') and self.k_norm is not None : - query_states = self.q_norm(query_states) - key_states = self.k_norm(key_states) - - kv_seq_len = key_states.shape[1] - if past_key_value is not None: - kv_seq_len += past_key_value[0].shape[1] - - # rope - cos, sin = rotary_pos_emb[0], rotary_pos_emb[1] - query_states = self.rotary.apply_rotary_pos(query_states, cos, sin) - key_states = self.rotary.apply_rotary_pos(key_states, cos, sin) - - if self.export_fused_attn: - attn_output = self.fused_attn(query_states, key_states, value_states, attention_mask) - attn_output = self.o_proj(attn_output) - return attn_output, past_key_value - - # kv cache - if past_key_value is not None: - past_key, past_value = past_key_value[0], past_key_value[1] - key_states = torch.cat((past_key, key_states), dim=1) - value_states = torch.cat((past_value, value_states), dim=1) - - past_key_value = torch.stack((key_states, value_states)) - query_states = query_states.transpose(1, 2) - key_states = key_states.permute([0, 2, 3, 1]) - value_states = value_states.transpose(1, 2) - # repeat k/v heads if n_kv_heads < n_heads - key_states = repeat_kv(key_states, self.num_key_value_groups) - value_states = repeat_kv(value_states, self.num_key_value_groups) - #------- attention ---------- - # query_states @ key_states - attn_weights = torch.matmul(query_states, key_states) / math.sqrt(self.head_dim) - # attention_mask - if attention_mask.dtype in (torch.bool, torch.int32): - # chatglm - attn_weights.masked_fill_(attention_mask, -10000.0) - else: - attn_weights = attn_weights + attention_mask - # upcast softmax to fp32 - attn_weights = torch.nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype) - # attn_weights @ value_states - attn_output = torch.matmul(attn_weights, value_states) - - attn_output = attn_output.transpose(1, 2).contiguous() - attn_output = attn_output.reshape(bsz, q_len, -1) - attn_output = self.o_proj(attn_output) - return attn_output, past_key_value - -def rotate_half(x): - x1 = x[..., : x.shape[-1] // 2] - x2 = x[..., x.shape[-1] // 2 :] - return torch.cat((-x2, x1), dim=-1) - -class Rotary(torch.nn.Module): - def __init__(self, config): - super().__init__() - self.rope_theta = config.rope_theta - self.rotary_dim = config.head_dim - self.model_type = config.model_type - if hasattr(config, 'rotary_dim'): - self.rotary_dim = config.rotary_dim - if self.model_type == 'chatglm': - self.rotary_dim = config.head_dim // 2 - self.theta = 1.0 / (self.rope_theta ** (torch.arange(0, self.rotary_dim, 2, dtype=torch.float32) / self.rotary_dim)) - - def forward(self, position_ids): - position_ids = position_ids.float().reshape(-1, 1) - idx_theta = position_ids * self.theta - rotary_pos_emb = torch.stack([torch.cos(idx_theta), torch.sin(idx_theta)]) - if self.model_type != 'chatglm2': - rotary_pos_emb = torch.cat((rotary_pos_emb, rotary_pos_emb), dim=-1) - rotary_pos_emb = rotary_pos_emb.unsqueeze(2).unsqueeze(1) - return rotary_pos_emb - - def apply_rotary_pos(self, x, cos, sin): - if self.model_type == 'chatglm': - return self.chatglm_rotary_pos(x, cos, sin) - if self.model_type == 'chatglm2': - return self.chatglm2_rotary_pos(x, cos, sin) - if self.model_type == 'phi-msft': - return self.phi_rotary_pos(x, cos, sin) - return self.llama_rotary_pos(x, cos, sin) - - def llama_rotary_pos(self, x, cos, sin): - x = (x * cos) + (rotate_half(x) * sin) - return x - - def phi_rotary_pos(self, x, cos, sin): - x, x_pass = x[..., :self.rotary_dim], x[..., self.rotary_dim:] - x = (x * cos) + (rotate_half(x) * sin) - return torch.cat((x, x_pass), dim=-1) - - def chatglm2_rotary_pos(self, x, cos, sin): - x, x_pass = x[..., :self.rotary_dim], x[..., self.rotary_dim:] - b, s, n, h = x.shape - xshaped = x.view(b, s, n, h//2, 2) - x = torch.concat( - [ - xshaped[..., 0] * cos - xshaped[..., 1] * sin, - xshaped[..., 1] * cos + xshaped[..., 0] * sin, - ], - -1, - ) - return torch.cat((x, x_pass), dim=-1) - - def chatglm_rotary_pos(self, x, cos, sin): - seq = x.shape[1] - x1, x2 = x[..., :self.rotary_dim], x[..., self.rotary_dim:] - cos1, sin1 = cos[:, :seq, ...], sin[:, :seq, ...] - cos2, sin2 = cos[:, seq:, ...], sin[:, seq:, ...] - x1 = (x1 * cos1) + (rotate_half(x1) * sin1) - x2 = (x2 * cos2) + (rotate_half(x2) * sin2) - return torch.cat((x1, x2), dim=-1) - -class VisionRotary(Rotary): - def __init__(self, config): - super().__init__(config) - - # support [h_pos, w_pos] - def forward(self, position_ids): - # [2, patch_len, 1] - position_ids = position_ids.float().unsqueeze(-1) - idx_theta = position_ids * self.theta - # [patch_len, rotary_dim] - idx_theta = idx_theta.permute(1, 0, 2).reshape(-1, self.rotary_dim) - rotary_pos_emb = torch.stack([torch.cos(idx_theta), torch.sin(idx_theta)]) - rotary_pos_emb = torch.cat((rotary_pos_emb, rotary_pos_emb), dim=-1) - rotary_pos_emb = rotary_pos_emb.unsqueeze(2).unsqueeze(1) - return rotary_pos_emb - -class Decoder(torch.nn.Module): - def __init__(self, decoder, layer_id, config): - super().__init__() - self.cross_decoder = False - ModelMapper.do_map(self, decoder, config.model_map['decoder']) - # mllama has cross_attn - if hasattr(self, 'cross_attn') and self.cross_attn is not None: - self.cross_decoder = True - self.self_attn = Attention(self.cross_attn, layer_id, config) - else: - self.self_attn = Attention(self.self_attn, layer_id, config) - self.hidden_size = config.hidden_size - # chatglm - self.alpha = (2 * config.num_hidden_layers) ** 0.5 if config.model_type == 'chatglm' else 1.0 - - def forward( - self, - hidden_states: torch.Tensor, - rotary_pos_emb: Optional[torch.Tensor] = None, - attention_mask: Optional[torch.Tensor] = None, - past_key_value: Optional[Tuple[torch.Tensor]] = None, - cross_attention_states: Optional[torch.Tensor] = None, - cross_attention_mask: Optional[torch.Tensor] = None, - ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]: - hidden_states = hidden_states.view(1, -1, self.hidden_size) - residual = hidden_states - hidden_states = self.input_layernorm(hidden_states) - norm_hidden_states = hidden_states - # Self Attention - hidden_states, present_key_value = self.self_attn( - hidden_states=hidden_states, - rotary_pos_emb=rotary_pos_emb, - attention_mask=attention_mask, - past_key_value=past_key_value, - cross_attention_states=cross_attention_states, - ) - # Fully Connected - if not hasattr(self, 'post_attention_layernorm'): - # phi - feed_forward_hidden_states = self.mlp(norm_hidden_states) - hidden_states = hidden_states + feed_forward_hidden_states + residual - elif self.alpha != 1.0: - # chatglm-6b - hidden_states = norm_hidden_states * self.alpha + hidden_states - mlp_input = self.post_attention_layernorm(hidden_states) - mlp_output = self.mlp(mlp_input) - hidden_states = mlp_input * self.alpha + mlp_output - elif hasattr(self, 'pre_feedforward_layernorm'): - # gemma2 - hidden_states = self.post_attention_layernorm(hidden_states) - hidden_states = residual + hidden_states - residual = hidden_states - hidden_states = self.pre_feedforward_layernorm(hidden_states) - hidden_states = self.mlp(hidden_states) - hidden_states = self.post_feedforward_layernorm(hidden_states) - hidden_states = residual + hidden_states - elif cross_attention_mask is not None and self.cross_decoder: - hidden_states = residual + self.cross_attn_attn_gate.tanh() * hidden_states - residual = hidden_states - hidden_states = self.post_attention_layernorm(hidden_states) - hidden_states = self.mlp(hidden_states) - hidden_states = cross_attention_mask * hidden_states - hidden_states = residual + self.cross_attn_mlp_gate.tanh() * hidden_states - else: - # general - hidden_states = residual + hidden_states - residual = hidden_states - hidden_states = self.post_attention_layernorm(hidden_states) - hidden_states = self.mlp(hidden_states) - hidden_states = residual + hidden_states - - return hidden_states, present_key_value - -class Lm(torch.nn.Module): - def __init__(self, lm_, final_layernorm_, config): - super().__init__() - self.final_layernorm = final_layernorm_ - self.lm = lm_ - self.hidden_size = config.hidden_size - self.ppl = config.args.ppl - - def forward(self, hidden_states): - if not self.ppl: - # just need last logit for predict next token - hidden_states = hidden_states.view(-1, self.hidden_size)[-1].view(1, 1, self.hidden_size) - hidden_states = self.final_layernorm(hidden_states) - m_logits = self.lm(hidden_states) - return m_logits - -# visual start -class Visual(torch.nn.Module): - def __init__(self, visual, base): - super().__init__() - self.model_type = base.model_type - self.visual = visual.eval() - self.embed_ = base.embed - self.tokenizer = base.tokenizer - self.config = base.config - self.hidden_size = base.hidden_size - self.llm_config = base.llm_config - # mllama - self.cross_attention_states = None - self.cross_attention_mask = None - self.init_config() - self.load() - - @staticmethod - def get_visual(model_type): - visual_models = { - 'qwen': QwenVisual, - 'qwen2_vl': Qwen2Visual, - 'mllama': MllamaVision - } - if model_type in visual_models: - return visual_models[model_type] - return None - - def init_config(self): - from transformers.image_utils import (OPENAI_CLIP_MEAN, OPENAI_CLIP_STD) - self.llm_config['is_visual'] = True - image_mean = np.array(OPENAI_CLIP_MEAN) * 255.0 - image_norm = 1 / (np.array(OPENAI_CLIP_STD) * 255.0) - self.llm_config['image_mean'] = image_mean.tolist() - self.llm_config['image_norm'] = image_norm.tolist() - - def export(self, onnx_path): - raise NotImplementedError - - def load(self): - raise NotImplementedError - - def str_to_ids(self, prompt): - input_ids = self.tokenizer(prompt, return_tensors="pt")['input_ids'] - return input_ids - - def forward(self, images): - raise NotImplementedError - - def embed(self, input_ids, images = None, videos = None): - raise NotImplementedError - -class QwenVisual(Visual): - def __init__(self, visual, base): - self.quant_bit = 16 - super().__init__(visual, base) - - def load(self): - self.image_start_id = self.config.visual['image_start_id'] - self.image_size = self.config.visual['image_size'] - self.llm_config['is_visual'] = True - self.llm_config['image_size'] = self.image_size - self.llm_config['vision_start'] = self.tokenizer.img_start_id - self.llm_config['vision_end'] = self.tokenizer.img_end_id - self.llm_config['image_pad'] = self.tokenizer.img_pad_id - - def export(self, onnx_path): - input_images = torch.randn((1, 3, self.image_size, self.image_size)) - onnx_model = f'{onnx_path}/visual.onnx' - torch.onnx.export(self, (input_images), - onnx_model, - input_names=['input_images'], - output_names=['image_embeds'], - dynamic_axes={ - "input_images": { 0: "size" }, - }, - do_constant_folding=True, - verbose=False, - opset_version=15) - return onnx_model - - def forward(self, images): - return self.visual(images).transpose(1, 0) - - def embed(self, input_ids, images = None, videos = None): - if not torch.any(input_ids == self.image_start_id): - return self.embed_(input_ids) - bos_pos = torch.where(input_ids == self.image_start_id) - eos_pos = torch.where(input_ids == self.image_start_id + 1) - img_pos = torch.stack((bos_pos[0], bos_pos[1], eos_pos[1]), dim=1) - images = [] - for i, a, b in img_pos: - image = input_ids[i][a + 1 : b - 1].tolist() - image = image[ : image.index(self.image_start_id + 2)] - images.append(bytes(image).decode('utf-8')) - images = self.visual.encode(images).transpose(1, 0) - hidden_states = self.embed_(input_ids) - for idx, (i, a, b) in enumerate(img_pos): - hidden_states[a + 1 : b, i] = images[:, idx] - return hidden_states - -class Qwen2Visual(Visual): - def __init__(self, visual, base): - self.quant_bit = 4 - self.temporal_patch_size = 2 - self.patch_size = 14 - self.merge_size = 2 - self.image_height = 420 - self.image_width = 420 - self.image_embeds = None - super().__init__(visual, base) - - def load(self): - self.vision_start_id = self.config.vision_start_token_id - self.vision_end_id = self.config.vision_end_token_id - self.image_pad_id = self.config.image_token_id - self.llm_config['image_size'] = self.image_height - self.llm_config['vision_start'] = self.vision_start_id - self.llm_config['vision_end'] = self.vision_end_id - self.llm_config['image_pad'] = self.image_pad_id - # load model - config = self.visual.config - self.hidden_size = config.embed_dim - self.num_attention_heads = config.num_heads - self.num_key_value_heads = config.num_heads - self.head_dim = self.hidden_size // self.num_attention_heads - self.rope_theta = 10000.0 - self.rotary_dim = self.head_dim // 2 - self.rotary = VisionRotary(self) - self.model_map = { - 'decoder': { - 'self_attn': 'attn', - 'mlp': 'mlp', - 'input_layernorm': 'norm1', - 'post_attention_layernorm': 'norm2' - }, - 'attention': { - 'qkv_proj': 'qkv', - 'o_proj': 'proj' - } - } - self.patch_embed = self.visual.patch_embed - self.blocks = [] - for block in self.visual.blocks.children(): - layer_id = len(self.blocks) - self.blocks.append(Decoder(block, layer_id, self)) - self.merger = self.visual.merger - - def str_to_ids(self, prompt): - if '' in prompt and '' in prompt: - import re - import requests - from PIL import Image - pattern = r'(.*?)' - parts = re.split(pattern, prompt) - txt_prompt = '' - for part in parts: - if re.match(pattern, part): - img_content = re.search(r'(.*?)', part).group(1) - # find in image_content - match = re.search(r'(.*?)', img_content) - img_content = img_content[:match.start()] + img_content[match.end():] - hw = match.group(1).split(',') - self.image_height, self.image_width = int(hw[0]), int(hw[1]) - if img_content.startswith('http://') or img_content.startswith('https://'): - image_obj = Image.open(requests.get(img_content, stream=True).raw) - img_pad_len = self.img_process(image_obj) - img_pad_str = '<|image_pad|>' * img_pad_len - img_str = f'<|vision_start|>{img_pad_str}<|vision_end|>' - txt_prompt += img_str - else: - txt_prompt += part - else: - txt_prompt = prompt - input_ids = self.tokenizer(txt_prompt, return_tensors="pt")['input_ids'] - return input_ids - - def forward(self, flatten_patches, position_ids, attention_mask): - rotary_pos_emb = self.rotary(position_ids) - hidden_states = self.patch_embed(flatten_patches) - if rotary_pos_emb.dtype != hidden_states.dtype: - rotary_pos_emb = rotary_pos_emb.to(hidden_states.dtype) - for blk in self.blocks: - hidden_states, _ = blk(hidden_states, rotary_pos_emb=rotary_pos_emb, attention_mask=attention_mask) - image_embeds = self.merger(hidden_states) - image_embeds = image_embeds.unsqueeze(1) - return image_embeds - - def images_forward(self, images): - images = [images] * self.temporal_patch_size - patches = torch.concat(images, axis=0) - _, channel, height, width = patches.shape - grid_t = patches.shape[0] // self.temporal_patch_size - grid_h, grid_w = height // self.patch_size, width // self.patch_size - patches = patches.reshape( - grid_t, - self.temporal_patch_size, - channel, - grid_h // self.merge_size, - self.merge_size, - self.patch_size, - grid_w // self.merge_size, - self.merge_size, - self.patch_size, - ) - patches = patches.permute(0, 3, 6, 4, 7, 2, 1, 5, 8) - flatten_patches = patches.reshape( - grid_t * grid_h * grid_w, channel * self.temporal_patch_size * self.patch_size * self.patch_size - ) - image_grid_thw = torch.tensor([[grid_t, grid_h, grid_w]]) - pos_ids = [] - for t, h, w in image_grid_thw: - hpos_ids = torch.arange(h).unsqueeze(1).expand(-1, w) - hpos_ids = hpos_ids.reshape( - h // self.merge_size, - self.merge_size, - w // self.merge_size, - self.merge_size, - ) - hpos_ids = hpos_ids.permute(0, 2, 1, 3) - hpos_ids = hpos_ids.flatten() - - wpos_ids = torch.arange(w).unsqueeze(0).expand(h, -1) - wpos_ids = wpos_ids.reshape( - h // self.merge_size, - self.merge_size, - w // self.merge_size, - self.merge_size, - ) - wpos_ids = wpos_ids.permute(0, 2, 1, 3) - wpos_ids = wpos_ids.flatten() - pos_ids.append(torch.stack([hpos_ids, wpos_ids])) - position_ids = torch.cat(pos_ids, dim=0) - seq_len = grid_t * grid_h * grid_w - attention_mask = torch.zeros([1, seq_len, seq_len], dtype=torch.float) - return self.forward(flatten_patches, position_ids, attention_mask) - - def smart_resize(self, height: int, width: int, factor: int = 28, min_pixels: int = 56 * 56, max_pixels: int = 14 * 14 * 4 * 1280): - if height < factor or width < factor: - raise ValueError(f"height:{height} or width:{width} must be larger than factor:{factor}") - elif max(height, width) / min(height, width) > 200: - raise ValueError( - f"absolute aspect ratio must be smaller than 200, got {max(height, width) / min(height, width)}" - ) - h_bar = round(height / factor) * factor - w_bar = round(width / factor) * factor - if h_bar * w_bar > max_pixels: - beta = math.sqrt((height * width) / max_pixels) - h_bar = math.floor(height / beta / factor) * factor - w_bar = math.floor(width / beta / factor) * factor - elif h_bar * w_bar < min_pixels: - beta = math.sqrt(min_pixels / (height * width)) - h_bar = math.ceil(height * beta / factor) * factor - w_bar = math.ceil(width * beta / factor) * factor - return h_bar, w_bar - - def img_process(self, image): - from transformers.image_transforms import ( - convert_to_rgb, - resize, - rescale, - normalize - ) - from transformers.image_utils import ( - OPENAI_CLIP_MEAN, - OPENAI_CLIP_STD, - PILImageResampling, - infer_channel_dimension_format, - to_numpy_array - ) - image = convert_to_rgb(image) - image = to_numpy_array(image) - resized_height, resized_width = self.smart_resize(self.image_height, self.image_width) - format = infer_channel_dimension_format(image) - resample = PILImageResampling.BICUBIC - image = resize(image, size=(resized_height, resized_width), resample=resample, input_data_format=format) - image = rescale(image, scale=1 / 255.0, input_data_format=format) - image = normalize(image=image, mean=OPENAI_CLIP_MEAN, std=OPENAI_CLIP_STD, input_data_format=format) - image = np.expand_dims(image, [0]) - image = image.transpose(0, 3, 1, 2) - image = torch.from_numpy(image) - self.image_embeds = self.images_forward(image) - return self.image_embeds.shape[0] - - def embed(self, input_ids, images = None, videos = None): - input_embeds = self.embed_(input_ids) - if self.image_embeds is not None: - image_mask = (input_ids == self.image_pad_id).squeeze() - input_embeds[image_mask] = self.image_embeds - return input_embeds - - def export(self, onnx_path): - patch = torch.randn([900, 1176]) - posision_ids = torch.zeros([2, 900], dtype=torch.int32) - attention_mask = torch.zeros([1, 900, 900], dtype=torch.float) - onnx_model = f'{onnx_path}/visual.onnx' - torch.onnx.export(self, (patch, posision_ids, attention_mask), - onnx_model, - input_names=['patches', 'position_ids', 'attention_mask'], - output_names=['image_embeds'], - dynamic_axes={ - "patches": { 0: "size" }, - "position_ids": { 1: "size" }, - "attention_mask": { 1: "size", 2: "size" } - }, - do_constant_folding=True, - verbose=False, - opset_version=15) - return onnx_model - -class MllamaVision(Visual): - def __init__(self, visual, base): - super().__init__(visual, base) - self.multi_modal_projector = base.multi_modal_projector - self.image_objs = [] - - def load(self): - self.llm_config['is_visual'] = True - self.llm_config['image_size'] = self.config.vision_config.image_size - self.image_size = self.config.vision_config.image_size - - def str_to_ids(self, prompt): - if '' in prompt and '' in prompt: - import re - import requests - from PIL import Image - pattern = r'(.*?)' - parts = re.split(pattern, prompt) - txt_prompt = '' - for part in parts: - if re.match(pattern, part): - img_content = re.search(r'(.*?)', part).group(1) - if img_content.startswith('http://') or img_content.startswith('https://'): - self.image_objs.append(Image.open(requests.get(img_content, stream=True).raw)) - txt_prompt += '<|image|>' - else: - txt_prompt += part - else: - txt_prompt = prompt - input_ids = self.tokenizer(txt_prompt, return_tensors="pt")['input_ids'] - # image process - for img in self.image_objs: - self.img_process(img) - return input_ids - - def img_process(self, image): - self.image_size = 560 - resized_height = self.image_size - resized_width = self.image_size - from transformers.image_transforms import ( - convert_to_rgb, - resize, - rescale, - normalize - ) - from transformers.image_utils import ( - OPENAI_CLIP_MEAN, - OPENAI_CLIP_STD, - PILImageResampling, - infer_channel_dimension_format, - to_numpy_array - ) - image = convert_to_rgb(image) - image = to_numpy_array(image) - format = infer_channel_dimension_format(image) - resample = PILImageResampling.BICUBIC - image = resize(image, size=(resized_height, resized_width), resample=resample, input_data_format=format) - image = rescale(image, scale=1 / 255.0, input_data_format=format) - image = normalize(image=image, mean=OPENAI_CLIP_MEAN, std=OPENAI_CLIP_STD, input_data_format=format) - image = image.transpose(2, 0, 1) - image = np.expand_dims(image, [0, 1, 2]) - pad_val = np.zeros_like(image) - image = np.concatenate([image, pad_val, pad_val, pad_val], axis=2) - image = torch.from_numpy(image) - self.cross_attention_states = self.forward(image) - - def forward(self, images): - aspect_ratio_ids = torch.tensor([[1]]) - aspect_ratio_mask = torch.tensor([[[1, 0, 0, 0]]]) - vision_outputs = self.visual(images, aspect_ratio_ids, aspect_ratio_mask) - cross_attention_states = vision_outputs[0] - cross_attention_states = cross_attention_states.type(self.multi_modal_projector.weight.dtype) - cross_attention_states = self.multi_modal_projector(cross_attention_states).reshape( - -1, cross_attention_states.shape[-2], self.hidden_size) - return cross_attention_states - - def embed(self, input_ids, images = None, videos = None): - txt_embeds = self.embed_(input_ids) - return txt_embeds -# visual end - -# audio start -class Audio(torch.nn.Module): - def __init__(self, audio, base): - super().__init__() - self.audio = audio - self.embed_ = base.embed - self.tokenizer = base.tokenizer - self.config = base.config - self.hidden_size = base.hidden_size - self.llm_config = base.llm_config - self.quant_bit = 16 - self.init_config() - self.load() - - @staticmethod - def get_audio(model_type): - audio_models = { - 'qwen2_audio': Qwen2Audio, - } - if model_type in audio_models: - return audio_models[model_type] - return None - - def init_config(self): - self.llm_config['is_audio'] = True - - def load(self): - raise NotImplementedError - - def str_to_ids(self, prompt): - input_ids = self.tokenizer(prompt, return_tensors="pt")['input_ids'] - return input_ids - - def forward(self, images): - raise NotImplementedError - - def embed(self, input_ids, images = None, videos = None): - raise NotImplementedError - -class Qwen2Audio(Audio): - def __init__(self, audio, base): - super().__init__(audio, base) - self.audio_embeds = None - self.audio_pad_id = 151646 - self.n_fft = 400 - self.sampling_rate = 16000 - self.hop_length = 160 - self.chunk_length = 30 - self.feature_size = 128 - self.n_samples = self.chunk_length * self.sampling_rate - self.max_length = self.n_samples // self.hop_length - from transformers.audio_utils import mel_filter_bank - self.mel_filters = mel_filter_bank( - num_frequency_bins=1 + self.n_fft // 2, - num_mel_filters=self.feature_size, - min_frequency=0.0, - max_frequency=8000.0, - sampling_rate=self.sampling_rate, - norm="slaney", - mel_scale="slaney", - ) - - def load(self): - # model - self.audio_tower = self.audio.audio_tower - self.multi_modal_projector = self.audio.multi_modal_projector - # config - self.llm_config['is_audio'] = True - - def str_to_ids(self, prompt): - if '' in prompt: - import re - from io import BytesIO - from urllib.request import urlopen - import librosa - pattern = r'()' - parts = re.split(pattern, prompt) - txt_prompt = '' - for part in parts: - if re.match(pattern, part): - audio_content = re.search(r'', part).group(1) - if audio_content.startswith('http://') or audio_content.startswith('https://'): - audio_obj = librosa.load(BytesIO(urlopen(audio_content).read()), sr=self.sampling_rate)[0] - audio_embed_len = self.audio_process(audio_obj) - audio_pad_str = '<|AUDIO|>' * audio_embed_len - txt_prompt += audio_pad_str - else: - txt_prompt += part - else: - txt_prompt = prompt - input_ids = self.tokenizer(txt_prompt, return_tensors="pt")['input_ids'] - return input_ids - - def forward(self, input_features): - input_features = input_features.to(dtype=self.audio_tower.conv1.weight.dtype, device=self.audio_tower.conv1.weight.device) - inputs_embeds = torch.nn.functional.gelu(self.audio_tower.conv1(input_features)) - inputs_embeds = torch.nn.functional.gelu(self.audio_tower.conv2(inputs_embeds)) - inputs_embeds = inputs_embeds.permute(0, 2, 1) - _, seq_len, _ = inputs_embeds.shape - embed_pos = self.audio_tower.embed_positions.weight[:seq_len, :] - hidden_states = inputs_embeds + embed_pos - for encoder_layer in self.audio_tower.layers: - hidden_states = encoder_layer(hidden_states, None, None)[0] - hidden_states = hidden_states.permute(0, 2, 1) - hidden_states = self.audio_tower.avg_pooler(hidden_states) - hidden_states = hidden_states.permute(0, 2, 1) - hidden_states = self.audio_tower.layer_norm(hidden_states) - audio_features = self.multi_modal_projector(hidden_states) - return audio_features - - def _torch_extract_fbank_features(self, waveform): - window = torch.hann_window(self.n_fft) - stft = torch.stft(waveform, self.n_fft, self.hop_length, window=window, return_complex=True) - magnitudes = stft[..., :-1].abs() ** 2 - mel_filters = torch.from_numpy(self.mel_filters).type(torch.float32) - mel_spec = mel_filters.T @ magnitudes - log_spec = torch.clamp(mel_spec, min=1e-10).log10() - if waveform.dim() == 2: - max_val = log_spec.max(dim=2, keepdim=True)[0].max(dim=1, keepdim=True)[0] - log_spec = torch.maximum(log_spec, max_val - 8.0) - else: - log_spec = torch.maximum(log_spec, log_spec.max() - 8.0) - log_spec = (log_spec + 4.0) / 4.0 - return log_spec - - def audio_process(self, audio_obj): - # audio_obj = np.pad(audio_obj, (0, self.n_samples - audio_obj.shape[0])) - waveform = torch.from_numpy(audio_obj).type(torch.float32) - input_features = self._torch_extract_fbank_features(waveform).unsqueeze(0) - audio_embeds = self.forward(input_features) - self.audio_embeds = audio_embeds.permute([1, 0, 2]) - return self.audio_embeds.shape[0] - - def embed(self, input_ids, images = None, videos = None): - input_embeds = self.embed_(input_ids) - if self.audio_embeds is not None: - audio_mask = (input_ids == self.audio_pad_id).squeeze() - input_embeds[audio_mask] = self.audio_embeds.type(input_embeds.dtype) - return input_embeds -# audio end +from utils.spinner import spinner_run +from utils.custom_op import FakeLinear +from utils.onnx_rebuilder import OnnxRebuilder +from utils.mnn_converter import MNNConveter +from utils.awq_quantizer import AwqQuantizer +from utils.model_mapper import ModelMapper +from utils.transformers import Embedding, Rotary, Decoder, Lm class LlmExporter(torch.nn.Module): ''' Base class for all llm model export. Inherits from [`torch.nn.Module`]. ''' - def __init__(self, args): super().__init__() self.init_from_args(args) @@ -2569,13 +60,16 @@ def load_pretrained(self, model_path: str): elif 'Llama-3.2' in model_path and 'Vision' in model_path: from transformers import MllamaForConditionalGeneration self.model = MllamaForConditionalGeneration.from_pretrained(model_path, torch_dtype='auto').eval() + elif 'Llama' in model_path or 'Yi' in model_path: + from transformers import LlamaForCausalLM + self.model = LlamaForCausalLM.from_pretrained(model_path, torch_dtype='auto', trust_remote_code=True).eval() else: try: self.model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype='auto', trust_remote_code=True).eval() except: self.model = AutoModel.from_pretrained(model_path, torch_dtype='auto', trust_remote_code=True).eval() self.config = self.model.config - if self.args.lora_path is not None: + if self.args.lora_path is not None and not self.args.lora_split: from peft import PeftModel adapter = PeftModel.from_pretrained(self.model, model_id=self.args.lora_path) self.model = adapter.merge_and_unload(progressbar=True) @@ -2592,9 +86,12 @@ def load_model(self, model_path): self.stop_ids.append(self.tokenizer.eos_token_id) if hasattr(self.tokenizer, 'im_end_id'): self.stop_ids.append(self.tokenizer.im_end_id) - eot_id = self.tokenizer.encode('<|eot_id|>') - if len(eot_id) == 1: - self.stop_ids.append(eot_id[0]) + try: + eot_id = self.tokenizer.encode('<|eot_id|>') + if len(eot_id) == 1: + self.stop_ids.append(eot_id[0]) + except: + pass if hasattr(self.model, 'generation_config') and self.model.generation_config is not None: eos_token_id = self.model.generation_config.eos_token_id from collections.abc import Iterable @@ -2608,7 +105,7 @@ def load_model(self, model_path): self.visual = None model_mapper = ModelMapper() - self.tie_word_embeddings = (hasattr(self.config, 'tie_word_embeddings') and self.config.tie_word_embeddings) + self.tie_word_embeddings = self.args.tie_embed and (hasattr(self.config, 'tie_word_embeddings') and self.config.tie_word_embeddings) self.model_type, self.model_map = model_mapper.get_map(self.config) if self.args.awq: @@ -2622,7 +119,6 @@ def visit_module(module): visit_module(child) visit_module(self.model) # print(self.config, self.model_type, self.model_map, self.model) - # exit(0) # load config info ModelMapper.do_map(self, self.config, self.model_map['config']) if not hasattr(self, 'num_key_value_heads') or self.num_key_value_heads is None: @@ -2666,6 +162,12 @@ def visit_module(module): out_features, in_features = self.embed_.weight.shape self.lm_ = torch.nn.Linear(in_features, out_features) self.lm_.weight = self.embed_.weight + elif not isinstance(self.lm_, torch.nn.Linear): + # for Baichuan2 + weight = self.lm_.weight + out_features, in_features = weight.shape + self.lm_ = torch.nn.Linear(in_features, out_features) + self.lm_.weight = weight if self.embed_.weight is self.lm_.weight: import copy @@ -2684,8 +186,10 @@ def visit_module(module): if self.visual is not None: if self.args.export is not None: self.visual.float() - self.visual = Visual.get_visual(self.model_type)(self.visual, self) + from utils.vision import Vision + self.visual = Vision.get_vision(self.model_type)(self.visual, self) if hasattr(self, 'audio') and self.audio is not None: + from utils.audio import Audio self.audio = Audio.get_audio(self.audio.config.model_type)(self.audio, self) else: self.audio = None @@ -3058,7 +562,6 @@ def export(self, export_type): MNNConveter(onnx_model, self.unloaded_ops, self).export() # delete onnx file if os.path.exists(onnx_model): - import glob try: for file in glob.glob(f'{self.onnx_path}/*'): os.remove(file) @@ -3118,11 +621,14 @@ def write_header(fp, type, speicals, prefix = []): if hasattr(self.tokenizer, 'get_prefix_tokens'): prefix_list = self.tokenizer.get_prefix_tokens() if len(prefix_list) == 0: - test_txt = 'A' - ids = self.tokenizer.encode(test_txt) - get_txt = self.tokenizer.decode(ids[-1]) - if len(ids) > 1 and get_txt == test_txt: - prefix_list += ids[:-1] + try: + test_txt = 'A' + ids = self.tokenizer.encode(test_txt) + get_txt = self.tokenizer.decode(ids[-1]) + if len(ids) > 1 and get_txt == test_txt: + prefix_list += ids[:-1] + except: + pass if self.sp_model is not None: # senetencepiece @@ -3371,24 +877,40 @@ def get_attention_mask(self) -> torch.Tensor: def export(path, type = None, + tokenizer_path = None, lora_path = None, + gptq_path = None, dst_path = './model', export = 'onnx', onnx_slim = False, quant_bit = 4, quant_block = 128, - lm_quant_bit = None): + lm_quant_bit = None, + mnnconvert = None, + ppl = False, + awq = False, + sym = False, + tie_embed = False, + lora_split = False): args = argparse.Namespace() for k, v in { 'path': path, 'type': type, + 'tokenizer_path': tokenizer_path, 'lora_path': lora_path, + 'gptq_path': gptq_path, 'dst_path': dst_path, 'export': export, 'onnx_slim': onnx_slim, 'quant_bit': quant_bit, 'quant_block': quant_block, - 'lm_quant_bit': lm_quant_bit + 'lm_quant_bit': lm_quant_bit, + 'mnnconvert': mnnconvert, + 'ppl': ppl, + 'awq': awq, + 'sym': sym, + 'tie_embed': tie_embed, + 'lora_split': lora_split }.items(): setattr(args, k, v) if 'bge' in path: @@ -3410,6 +932,7 @@ def main(): ) parser.add_argument('--tokenizer_path', type=str, default=None, help='tokenizer path, defaut is `None` mean using `--path` value.') parser.add_argument('--lora_path', type=str, default=None, help='lora path, defaut is `None` mean not apply lora.') + parser.add_argument('--gptq_path', type=str, default=None, help='gptq path, defaut is `None` mean not apply gptq.') parser.add_argument('--dst_path', type=str, default='./model', help='export onnx/mnn model to path, defaut is `./model`.') parser.add_argument('--verbose', action='store_true', help='Whether or not to print verbose.') parser.add_argument('--test', type=str, help='test model inference with query `TEST`.') @@ -3422,7 +945,8 @@ def main(): parser.add_argument('--ppl', action='store_true', help='Whether or not to get all logits of input tokens.') parser.add_argument('--awq', action='store_true', help='Whether or not to use awq quant.') parser.add_argument('--sym', action='store_true', help='Whether or not to using symmetric quant (without zeropoint), defualt is False.') - + parser.add_argument('--tie_embed', action='store_true', help='Whether or not to using tie_embedding, defualt is False.') + parser.add_argument('--lora_split', action='store_true', help='Whether or not export lora split, defualt is False.') args = parser.parse_args() model_path = args.path diff --git a/transformers/llm/export/utils/__init__.py b/transformers/llm/export/utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/transformers/llm/export/utils/audio.py b/transformers/llm/export/utils/audio.py new file mode 100644 index 000000000..72d6efb33 --- /dev/null +++ b/transformers/llm/export/utils/audio.py @@ -0,0 +1,140 @@ +import torch + +class Audio(torch.nn.Module): + def __init__(self, audio, base): + super().__init__() + self.audio = audio + self.embed_ = base.embed + self.tokenizer = base.tokenizer + self.config = base.config + self.hidden_size = base.hidden_size + self.llm_config = base.llm_config + self.quant_bit = 16 + self.init_config() + self.load() + + @staticmethod + def get_audio(model_type): + audio_models = { + 'qwen2_audio': Qwen2Audio, + } + if model_type in audio_models: + return audio_models[model_type] + return None + + def init_config(self): + self.llm_config['is_audio'] = True + + def load(self): + raise NotImplementedError + + def str_to_ids(self, prompt): + input_ids = self.tokenizer(prompt, return_tensors="pt")['input_ids'] + return input_ids + + def forward(self, images): + raise NotImplementedError + + def embed(self, input_ids, images = None, videos = None): + raise NotImplementedError + +class Qwen2Audio(Audio): + def __init__(self, audio, base): + super().__init__(audio, base) + self.audio_embeds = None + self.audio_pad_id = 151646 + self.n_fft = 400 + self.sampling_rate = 16000 + self.hop_length = 160 + self.chunk_length = 30 + self.feature_size = 128 + self.n_samples = self.chunk_length * self.sampling_rate + self.max_length = self.n_samples // self.hop_length + from transformers.audio_utils import mel_filter_bank + self.mel_filters = mel_filter_bank( + num_frequency_bins=1 + self.n_fft // 2, + num_mel_filters=self.feature_size, + min_frequency=0.0, + max_frequency=8000.0, + sampling_rate=self.sampling_rate, + norm="slaney", + mel_scale="slaney", + ) + + def load(self): + # model + self.audio_tower = self.audio.audio_tower + self.multi_modal_projector = self.audio.multi_modal_projector + # config + self.llm_config['is_audio'] = True + + def str_to_ids(self, prompt): + if '' in prompt: + import re + from io import BytesIO + from urllib.request import urlopen + import librosa + pattern = r'()' + parts = re.split(pattern, prompt) + txt_prompt = '' + for part in parts: + if re.match(pattern, part): + audio_content = re.search(r'', part).group(1) + if audio_content.startswith('http://') or audio_content.startswith('https://'): + audio_obj = librosa.load(BytesIO(urlopen(audio_content).read()), sr=self.sampling_rate)[0] + audio_embed_len = self.audio_process(audio_obj) + audio_pad_str = '<|AUDIO|>' * audio_embed_len + txt_prompt += audio_pad_str + else: + txt_prompt += part + else: + txt_prompt = prompt + input_ids = self.tokenizer(txt_prompt, return_tensors="pt")['input_ids'] + return input_ids + + def forward(self, input_features): + input_features = input_features.to(dtype=self.audio_tower.conv1.weight.dtype, device=self.audio_tower.conv1.weight.device) + inputs_embeds = torch.nn.functional.gelu(self.audio_tower.conv1(input_features)) + inputs_embeds = torch.nn.functional.gelu(self.audio_tower.conv2(inputs_embeds)) + inputs_embeds = inputs_embeds.permute(0, 2, 1) + _, seq_len, _ = inputs_embeds.shape + embed_pos = self.audio_tower.embed_positions.weight[:seq_len, :] + hidden_states = inputs_embeds + embed_pos + for encoder_layer in self.audio_tower.layers: + hidden_states = encoder_layer(hidden_states, None, None)[0] + hidden_states = hidden_states.permute(0, 2, 1) + hidden_states = self.audio_tower.avg_pooler(hidden_states) + hidden_states = hidden_states.permute(0, 2, 1) + hidden_states = self.audio_tower.layer_norm(hidden_states) + audio_features = self.multi_modal_projector(hidden_states) + return audio_features + + def _torch_extract_fbank_features(self, waveform): + window = torch.hann_window(self.n_fft) + stft = torch.stft(waveform, self.n_fft, self.hop_length, window=window, return_complex=True) + magnitudes = stft[..., :-1].abs() ** 2 + mel_filters = torch.from_numpy(self.mel_filters).type(torch.float32) + mel_spec = mel_filters.T @ magnitudes + log_spec = torch.clamp(mel_spec, min=1e-10).log10() + if waveform.dim() == 2: + max_val = log_spec.max(dim=2, keepdim=True)[0].max(dim=1, keepdim=True)[0] + log_spec = torch.maximum(log_spec, max_val - 8.0) + else: + log_spec = torch.maximum(log_spec, log_spec.max() - 8.0) + log_spec = (log_spec + 4.0) / 4.0 + return log_spec + + def audio_process(self, audio_obj): + # audio_obj = np.pad(audio_obj, (0, self.n_samples - audio_obj.shape[0])) + waveform = torch.from_numpy(audio_obj).type(torch.float32) + input_features = self._torch_extract_fbank_features(waveform).unsqueeze(0) + audio_embeds = self.forward(input_features) + self.audio_embeds = audio_embeds.permute([1, 0, 2]) + return self.audio_embeds.shape[0] + + def embed(self, input_ids, images = None, videos = None): + input_embeds = self.embed_(input_ids) + if self.audio_embeds is not None: + audio_mask = (input_ids == self.audio_pad_id).squeeze() + input_embeds[audio_mask] = self.audio_embeds.type(input_embeds.dtype) + return input_embeds \ No newline at end of file diff --git a/transformers/llm/export/utils/awq_quantizer.py b/transformers/llm/export/utils/awq_quantizer.py new file mode 100644 index 000000000..1f69ecbb8 --- /dev/null +++ b/transformers/llm/export/utils/awq_quantizer.py @@ -0,0 +1,815 @@ +import gc +import torch +import logging +import inspect +import functools + +from tqdm import tqdm +from collections import defaultdict +from typing import Tuple, List, Union, Dict + +logging.basicConfig(level=logging.ERROR) + +class AwqQuantizer: + def __init__( + self, + model, + modules_to_not_convert=None, + apply_clip=True, + n_parallel_calib_samples=None, + max_calib_samples=128, + max_calib_seq_len=512, + max_chunk_memory=1024 * 1024 * 1024, + ) -> None: + self.awq_model = model + self.model = model + self.tokenizer = model.tokenizer + self.w_bit = model.args.quant_bit + self.group_size = model.args.quant_block + self.zeropoint = not model.args.sym + self.calib_data = 'ag_news' + self.split = 'test' + self.duo_scaling = True + self.apply_clip = apply_clip + self.n_parallel_calib_samples = n_parallel_calib_samples + self.max_calib_samples = max_calib_samples + self.max_calib_seq_len = max_calib_seq_len + self.max_chunk_memory = max_chunk_memory + self.modules_to_not_convert = ( + modules_to_not_convert if modules_to_not_convert is not None else [] + ) + self.modules, self.module_kwargs, self.inps = self.init_quant( + n_samples=self.max_calib_samples, max_seq_len=self.max_calib_seq_len + ) + + def pseudo_quantize_tensor(self, w: torch.Tensor): + org_w_shape = w.shape + if self.group_size > 0: + assert org_w_shape[-1] % self.group_size == 0 + w = w.reshape(-1, self.group_size) + assert w.dim() == 2 + assert torch.isnan(w).sum() == 0 + # zero point quantization + if self.zeropoint: + max_val = w.amax(dim=1, keepdim=True) + min_val = w.amin(dim=1, keepdim=True) + offset = 1 << (self.w_bit - 1) + clip_max = offset - 1 + clip_min = -offset + scales = (max_val - min_val) / (clip_max - clip_min) + zeros = - torch.round(min_val / scales) + clip_min + qw = torch.round(w / scales) + zeros + qw = torch.clamp(qw, clip_min, clip_max) + w = (qw - zeros) * scales + zeros = min_val.view(org_w_shape[0], -1) + else: + abs_max = w.abs().amax(dim=1, keepdim=True) + offset = 1 << (self.w_bit - 1) + clip_max = offset - 1 + clip_min = -clip_max + scales = abs_max / clip_max + w = torch.clamp(torch.round(w / scales), clip_min, clip_max) * scales + zeros = None + + assert torch.isnan(scales).sum() == 0 + assert torch.isnan(w).sum() == 0 + + scales = scales.view(org_w_shape[0], -1) + w = w.reshape(org_w_shape) + + return w, scales, zeros + + def quantize(self): + for i in tqdm(range(len(self.modules)), desc="AWQ"): + # Move module and inputs to correct device + common_device = next(self.modules[i].parameters()).device + if common_device is None or str(common_device) == "cpu": + best_device = AwqQuantizer.get_best_device() + + self.modules[i] = self.modules[i].to(best_device) + common_device = next(self.modules[i].parameters()).device + + if self.module_kwargs.get("position_ids") is not None: + self.module_kwargs["position_ids"] = self.module_kwargs[ + "position_ids" + ].to(common_device) + + if self.module_kwargs.get("attention_mask") is not None: + self.module_kwargs["attention_mask"] = self.module_kwargs[ + "attention_mask" + ].to(common_device) + + self.inps = self.inps.to(common_device) + # print(f'# {i} inps shape: {self.inps.shape}, inps.max: {self.inps.max()}') + + # [STEP 1]: Get layer, extract linear modules, extract input features + named_linears = AwqQuantizer.get_named_linears(self.modules[i]) + + # Filter out the linear layers we don't want to exclude + named_linears = AwqQuantizer.exclude_layers_to_not_quantize( + named_linears, self.modules_to_not_convert + ) + input_feat = self._get_input_feat(self.modules[i], named_linears) + AwqQuantizer.clear_memory() + + # [STEP 2]: Compute and apply scale list + module_config = [] + # q, k, v proj + module_config.append( + dict( + prev_op=self.modules[i].input_layernorm, + layers=[ + self.modules[i].self_attn.q_proj, + self.modules[i].self_attn.k_proj, + self.modules[i].self_attn.v_proj, + ], + inp=input_feat["self_attn.q_proj"], + module2inspect=self.modules[i].self_attn, + kwargs=self.module_kwargs, + ) + ) + # o_proj + if self.modules[i].self_attn.v_proj.weight.shape == self.modules[i].self_attn.o_proj.weight.shape: + module_config.append( + dict( + prev_op=self.modules[i].self_attn.v_proj, + layers=[self.modules[i].self_attn.o_proj], + inp=input_feat["self_attn.o_proj"], + ) + ) + # mlp gate + module_config.append( + dict( + prev_op=self.modules[i].post_attention_layernorm, + layers=[self.modules[i].mlp.gate_proj, self.modules[i].mlp.up_proj], + inp=input_feat["mlp.gate_proj"], + module2inspect=self.modules[i].mlp, + ) + ) + # mlp down + module_config.append( + dict( + prev_op=self.modules[i].mlp.up_proj, + layers=[self.modules[i].mlp.down_proj], + inp=input_feat["mlp.down_proj"], + ) + ) + scales_list = [ + self._search_best_scale(self.modules[i], **layer) + for layer in module_config + ] + # print(scales_list); exit(0) + AwqQuantizer.apply_scale(self.modules[i], scales_list, input_feat_dict=input_feat) + # [STEP 3]: Compute and apply clipping list + if self.apply_clip: + clip_list = self._search_best_clip( + self.modules[i], named_linears, input_feat + ) + AwqQuantizer.apply_clip(self.modules[i], clip_list) + + AwqQuantizer.clear_memory() + + @torch.no_grad() + def _module_forward( + self, x: torch.Tensor, module: torch.nn.Module, module_kwargs: Dict + ) -> torch.Tensor: + if self.n_parallel_calib_samples is None: + # runs through all samples at once + # print(module, x, module_kwargs); exit(0) + module_output = module(x, **module_kwargs) + if isinstance(module_output, tuple): + module_output = module_output[0] + else: + # memory efficiently runs through all calibration samples + # but only n_parallel_calib_samples at a time + module_output = [] + partitioned_inputs = torch.split(x, self.n_parallel_calib_samples) + for x_partial in partitioned_inputs: + partial_output = module(x_partial, **module_kwargs) + + if isinstance(partial_output, tuple): + partial_output = partial_output[0] + + module_output.append(partial_output.cpu()) + + module_output = torch.cat(module_output, dim=0) + + return module_output + + @torch.no_grad() + def _search_best_scale( + self, + module, + prev_op, + layers: List[torch.nn.Linear], + inp: torch.Tensor, + module2inspect=None, + kwargs={}, + ): + if module2inspect is None: + assert len(layers) == 1 + module2inspect = layers[0] + + if "use_cache" in kwargs: + kwargs.pop("use_cache") + + # Put x on the right device + inp = inp.to(next(module2inspect.parameters()).device) + + # [STEP 1]: Compute per-channel mean of normalised weights + # All layer weights are concatted together + weight = torch.cat([_m.weight for _m in layers], dim=0) + org_shape = weight.shape + # The weights are reshaped to be organised by quantization group + weight = weight.view(-1, self.group_size) + # Calculates the relative magnitude of the weights within each of the quantization groups, + # and rescales each group individually so that each group has weights on a 0-1 scale. + w_scale = weight.abs() / (weight.abs().amax(dim=1, keepdim=True) + 1e-6) + # Resizes the rescaled weight matrix back up to its original dimensions + w_scale = w_scale.view(org_shape) + # Gets the average rescaled magnitude for each output channel + w_mean = w_scale.mean(0) + AwqQuantizer.clear_memory(weight) + + # [STEP 2]: Compute per-channel mean of the input activation with chunking + # move inp to cpu to avoid memory leak + inp_flat = inp.cpu().abs().view(-1, inp.shape[-1]) + num_elements = inp_flat.size(0) + num_channels = inp_flat.size(1) + element_size_bytes = inp_flat.element_size() * 2 # multiplied by 2 for FP32 + + # Calculate chunk size dynamically based on max_chunk_memory + chunk_size = int(self.max_chunk_memory // (element_size_bytes * num_channels)) + chunk_size = min(chunk_size, num_elements) + + # Use float32 for sum calculation + x_sum = torch.zeros(num_channels, dtype=torch.float32, device=inp.device) + + for i in range(0, num_elements, chunk_size): + end = min(i + chunk_size, num_elements) + chunk_sum = inp_flat[i:end].to(torch.float32).sum(dim=0) + x_sum += chunk_sum.to(inp.device) + + x_mean = (x_sum / num_elements).to(inp.dtype) + AwqQuantizer.clear_memory(x_sum) + + # [STEP 3]: Compute output of module + with torch.no_grad(): + module_kwargs = self._sanitize_kwargs(kwargs, module2inspect) + fp16_output = self._module_forward(inp, module2inspect, module_kwargs) + + # [STEP 4]: Compute loss + best_scales = self._compute_best_scale( + inp, w_mean, x_mean, module2inspect, layers, fp16_output, module_kwargs + ) + + return ( + AwqQuantizer.get_op_name(module, prev_op), + tuple([AwqQuantizer.get_op_name(module, m) for m in layers]), + best_scales, + ) + + def _compute_best_scale( + self, + x: torch.Tensor, + w_mean: torch.Tensor, + x_mean: torch.Tensor, + module2inspect: torch.nn.Module, + linears2scale: List[torch.nn.Linear], + fp16_output: torch.Tensor, + kwargs: Dict={}, + ): + """ + Compute loss and select best scales + + L(s) = || Q(W * s) (s^-1 * X) - W * X || + Q: weight quantization function | pseudo_quantize_tensor(W * s) + X: inputs from calib dataset | X + W: original weights in FP16 | layer + s: per channel scaling factor | s^-1 * X + """ + n_grid = 20 + history = [] + best_ratio = -1 + best_scales = None + best_error = float("inf") + + device = x.device + x_mean = x_mean.view(-1).to(device) + w_mean = w_mean.view(-1).to(device) + + ord_weights = [] + for fc in linears2scale: + ord_weights.append(fc.weight.data.clone()) + + for ratio in range(n_grid): + # create new scales + ratio = ratio / n_grid + + # NOTE: s^-1 * x is fused here, according to paper + if self.duo_scaling: + scales = (x_mean.pow(ratio) / (w_mean.pow(1 - ratio) + 1e-4)).clamp(min=1e-4) + else: + scales = x_mean.pow(ratio).clamp(min=1e-4).view(-1) + scales = scales / (scales.max() * scales.min()).sqrt() + scales_view = scales.view(1, -1).to(device) + + # avoid scaling values that overflow + scales[torch.isinf(scales)] = 1 + scales[torch.isnan(scales)] = 1 + + # Q(W * s) + for fc in linears2scale: + fc.weight.mul_(scales_view) + fc.weight.data = ( + self.pseudo_quantize_tensor(fc.weight.data)[0] / scales_view + ) + + # W * X + int_w_output = self._module_forward(x, module2inspect, kwargs) + + # compute mean squared error (L2 norm) + loss = self._compute_loss(fp16_output, int_w_output, device) + + history.append(loss) + if loss < best_error: + best_error = loss + best_ratio = ratio + best_scales = scales.clone() + + for fc, ord_weight in zip(linears2scale, ord_weights): + fc.weight.data = ord_weight.clone() + + del ord_weights + + if best_ratio == -1: + logging.debug(history) + raise Exception + + assert torch.isnan(best_scales).sum() == 0, best_scales + + return best_scales.detach().cpu() + + @torch.no_grad() + def _compute_loss( + self, + fp16_output: torch.Tensor, + int_w_output: torch.Tensor, + device: torch.device, + ): + loss = 0.0 + fp16_output_flat = fp16_output.view(-1) + int_w_output_flat = int_w_output.view(-1) + num_elements = fp16_output_flat.size(0) + element_size_bytes = fp16_output.element_size() + + # Calculate chunk size dynamically based on max_chunk_memory + # Divide the max_chunk_memory by twice the element size + chunk_size = self.max_chunk_memory // (element_size_bytes * 2) + chunk_size = min(chunk_size, num_elements) + + # Split the computation into chunks + fp16_chunks = torch.split(fp16_output_flat, chunk_size) + int_w_chunks = torch.split(int_w_output_flat, chunk_size) + + # Compute the loss for each chunk + for fp16_chunk, int_w_chunk in zip(fp16_chunks, int_w_chunks): + chunk_loss = (fp16_chunk.to(device) - int_w_chunk.to(device)).float().pow(2).sum().item() + loss += chunk_loss + + # Normalize the loss by the total number of elements + loss /= num_elements + + return loss + + @torch.no_grad() + def _search_best_clip(self, layer, named_linears, input_feat): + clip_list = [] + avoid_clipping = ["q_", "k_", "query", "key", "Wqkv"] + + for name in named_linears: + # due to qk bmm, it is hard to clip precisely + if any([_ in name for _ in avoid_clipping]): + continue + + named_linears[name].to(AwqQuantizer.get_best_device()) + max_val = self._compute_best_clip( + named_linears[name].weight, input_feat[name] + ) + clip_list.append((name, max_val)) + named_linears[name].cpu() + + return clip_list + + @torch.no_grad() + def _compute_best_clip( + self, + w: torch.Tensor, + input_feat: torch.Tensor, + n_grid=20, + max_shrink=0.5, + n_sample_token=512, + ): + assert w.dim() == 2 + org_w_shape = w.shape + # w [co, ci] -> [co, 1, n_group, group size] + # input_feat [n_token, ci] -> [1, n_token, n_group, group size] + group_size = self.group_size if self.group_size > 0 else org_w_shape[1] + input_feat = input_feat.view(-1, input_feat.shape[-1]) + input_feat = input_feat.reshape(1, input_feat.shape[0], -1, group_size) + + # Compute input feature step size (minimum 1) + step_size = max(1, input_feat.shape[1] // n_sample_token) + input_feat = input_feat[:, ::step_size] + + w = w.reshape(org_w_shape[0], 1, -1, group_size) + + oc_batch_size = 256 if org_w_shape[0] % 256 == 0 else 64 # prevent OOM + assert org_w_shape[0] % oc_batch_size == 0 + w_all = w + best_max_val_all = [] + + for i_b in range(org_w_shape[0] // oc_batch_size): + w = w_all[i_b * oc_batch_size : (i_b + 1) * oc_batch_size] + + org_max_val = w.abs().amax(dim=-1, keepdim=True) # co, 1, n_group, 1 + + best_max_val = org_max_val.clone() + min_errs = torch.ones_like(org_max_val) * 1e9 + input_feat = input_feat.to(w.device) + org_out = (input_feat * w).sum(dim=-1) # co, n_token, n_group + + for i_s in range(int(max_shrink * n_grid)): + max_val = org_max_val * (1 - i_s / n_grid) + min_val = -max_val + cur_w = torch.clamp(w, min_val, max_val) + q_w = self.pseudo_quantize_tensor(cur_w)[0] + cur_out = (input_feat * q_w).sum(dim=-1) + + # co, 1, n_group, 1 + err = (cur_out - org_out).pow(2).mean(dim=1).view(min_errs.shape) + del cur_w + del cur_out + cur_best_idx = err < min_errs + min_errs[cur_best_idx] = err[cur_best_idx] + best_max_val[cur_best_idx] = max_val[cur_best_idx] + best_max_val_all.append(best_max_val) + + best_max_val = torch.cat(best_max_val_all, dim=0) + + AwqQuantizer.clear_memory(input_feat) + AwqQuantizer.clear_memory(org_out) + + return best_max_val.squeeze(1) + + @staticmethod + @torch.no_grad() + def apply_clip(module, clip_list: Tuple[str, torch.Tensor]): + for name, max_val in clip_list: + layer: torch.nn.Linear = AwqQuantizer.get_op_by_name(module, name) + layer.to(AwqQuantizer.get_best_device()) + max_val = max_val.to(layer.weight.device) + org_shape = layer.weight.shape + layer.weight.data = layer.weight.data.reshape(*max_val.shape[:2], -1) + layer.weight.data = torch.clamp(layer.weight.data, -max_val, max_val) + layer.weight.data = layer.weight.data.reshape(org_shape) + layer.cpu() + + @staticmethod + @torch.no_grad() + def scale_fc_fcs(fc1: torch.nn.Linear, fcs: List[torch.nn.Linear], scales: torch.Tensor): + if not isinstance(fcs, list): + fcs = [fcs] + + scales = scales.to(fc1.weight.device) + + fc1.weight[-scales.size(0) :].div_(scales.view(-1, 1)) + if fc1.bias is not None: + fc1.bias.div_(scales.view(-1)) + + for fc in fcs: + fc.weight.mul_(scales.view(1, -1)) + + for p in fc1.parameters(): + assert torch.isnan(p).sum() == 0 + for fc in fcs: + for p in fc.parameters(): + assert torch.isnan(p).sum() == 0 + + @staticmethod + def is_allowed_act_fns(op): + from transformers.activations import NewGELUActivation, PytorchGELUTanh, GELUActivation + allowed_act_fns = [ + torch.nn.GELU, + NewGELUActivation, + PytorchGELUTanh, + GELUActivation, + ] + return (op in allowed_act_fns) + + @staticmethod + def is_allowed_norms(op): + if isinstance(op, torch.nn.LayerNorm): + return True + if any(t in str(type(op)) for t in ['LlamaRMSNorm', 'GemmaRMSNorm', 'CohereLayerNorm']): + return True + return False + + @staticmethod + @torch.no_grad() + def scale_fc_fc(fc1: torch.nn.Linear, fc2: torch.nn.Linear, scales: torch.Tensor): + assert isinstance(fc1, torch.nn.Linear) + assert isinstance(fc2, torch.nn.Linear) + + scales = scales.to(fc1.weight.device) + fc1.weight[-scales.size(0) :].div_(scales.view(-1, 1)) + if fc1.bias is not None: + fc1.bias.div_(scales.view(-1)) + + fc2.weight.mul_(scales.view(1, -1)) + + for p in fc1.parameters(): + assert torch.isnan(p).sum() == 0 + for p in fc2.parameters(): + assert torch.isnan(p).sum() == 0 + + @staticmethod + @torch.no_grad() + def scale_ln_fcs(ln: torch.nn.Linear, fcs: List[torch.nn.Linear], scales: torch.Tensor): + if not isinstance(fcs, list): + fcs = [fcs] + + scales = scales.to(ln.weight.device) + + # GemmaRMSNorm is different from Llama's in that it multiplies + # (1 + weight) to the output, instead of just weight. + if 'GemmaRMSNorm' in str(type(ln)): + ln.weight += 1 + ln.weight.div_(scales) + ln.weight -= 1 + else: + ln.weight.div_(scales) + + if hasattr(ln, "bias") and ln.bias is not None: + ln.bias.div_(scales) + + for fc in fcs: + fc.weight.mul_(scales.view(1, -1)) + + for p in ln.parameters(): + assert torch.isnan(p).sum() == 0 + for fc in fcs: + for p in fc.parameters(): + assert torch.isnan(p).sum() == 0 + + @staticmethod + @torch.no_grad() + def scale_gelu_fc(gelu, fc: torch.nn.Linear, scales: torch.Tensor): + assert AwqQuantizer.is_allowed_act_fns(gelu) + assert isinstance(fc, torch.nn.Linear) + + fc.weight.mul_(scales.view(1, -1).to(fc.weight.device)) + + for p in fc.parameters(): + assert torch.isnan(p).sum() == 0 + + @staticmethod + def apply_scale(module, scales_list, input_feat_dict=None): + for prev_op_name, layer_names, scales in scales_list: + prev_op = AwqQuantizer.get_op_by_name(module, prev_op_name) + layers = [AwqQuantizer.get_op_by_name(module, name) for name in layer_names] + + best_device = AwqQuantizer.get_best_device() + prev_op.to(best_device) + for layer in layers: + layer.to(best_device) + scales.to(best_device) + if ( + isinstance(prev_op, torch.nn.Linear) + and type(layers) == list + and isinstance(layers[0], torch.nn.Linear) + ): + if len(layers) == 1: + AwqQuantizer.scale_fc_fc(prev_op, layers[0], scales) + else: + AwqQuantizer.scale_fc_fcs(prev_op, layers, scales) + elif ( + AwqQuantizer.is_allowed_norms(prev_op) + or "rmsnorm" in str(prev_op.__class__).lower() + ): + AwqQuantizer.scale_ln_fcs(prev_op, layers, scales) + + elif AwqQuantizer.is_allowed_act_fns(prev_op): + #new_module = ScaledActivation(prev_op, scales) + #set_op_by_name(module, prev_op_name, new_module) + AwqQuantizer.scale_gelu_fc(prev_op, layers[0], scales) + else: + raise NotImplementedError(f"prev_op {type(prev_op)} not supported yet!") + + # apply the scaling to input feat if given; prepare it for clipping + if input_feat_dict is not None: + for layer_name in layer_names: + # Skip the modules that are not quantized + if layer_name in input_feat_dict: + inp = input_feat_dict[layer_name] + inp.div_(scales.view(1, -1).to(inp.device)) + + prev_op.cpu() + for layer in layers: + layer.cpu() + scales.cpu() + + @staticmethod + def exclude_layers_to_not_quantize(linear_layers, modules_to_not_convert): + if modules_to_not_convert is None: + return linear_layers + + filtered_layers = {} + for name, linear_layer in linear_layers.items(): + if not any(key in name for key in modules_to_not_convert): + filtered_layers[name] = linear_layer + return filtered_layers + + @staticmethod + def get_named_linears(module): + return {name: m for name, m in module.named_modules() if isinstance(m, torch.nn.Linear)} + + @staticmethod + def get_op_by_name(module, op_name): + # get the op by its name relative to the module + for name, m in module.named_modules(): + if name == op_name: + return m + raise ValueError(f"Cannot find op {op_name} in module {module}") + + @staticmethod + def get_calib_dataset( + data: Union[str, List[str], List[List[int]]] = "pileval", + tokenizer=None, + n_samples=128, + max_seq_len=512, + split="train", + text_column="text", + ): + if isinstance(data, str): + from datasets import load_dataset + if data == "pileval": + dataset = load_dataset("mit-han-lab/pile-val-backup", split="validation") + else: + dataset = load_dataset(data, split=split) + # dataset = dataset.shuffle(seed=42) + elif isinstance(data, list): + if isinstance(data[0], str): + dataset = [{text_column: text} for text in data] + elif isinstance(data[0][0], int): + dataset = data + else: + raise NotImplementedError( + "Either pass a string to a huggingface dataset or a list" + "that is preprocessed with one sample of text per element" + " or a list of list of int for tokenized words." + ) + else: + raise NotImplementedError( + "Either pass a string to a huggingface dataset or a list" + "that is preprocessed with one sample of text per element" + " or a list of list of int for tokenized words." + ) + + samples = [] + n_run = 0 + for data in dataset: + if isinstance(data, list): + line_encoded = data + else: + line = data[text_column] + line = line.strip() + line_encoded = tokenizer.encode(line) + if len(line_encoded) > max_seq_len: + continue + sample = torch.tensor([line_encoded]) + if sample.numel() == 0: + continue + samples.append(sample) + n_run += 1 + if n_run == n_samples: + break + # now concatenate all samples and split according to max sequence length + cat_samples = torch.cat(samples, dim=1) + n_split = cat_samples.shape[1] // max_seq_len + logging.debug(f" * Split into {n_split} blocks") + return [ + cat_samples[:, i * max_seq_len : (i + 1) * max_seq_len] for i in range(n_split) + ] + + @staticmethod + def get_best_device(): + if torch.backends.mps.is_available(): + return "mps" + elif torch.cuda.is_available(): + return "cuda:0" + else: + return "cpu" + + @staticmethod + def clear_memory(weight=None): + if weight is not None: + del weight + gc.collect() + torch.cuda.empty_cache() + + @staticmethod + def get_op_name(module, op): + # get the name of the op relative to the module + for name, m in module.named_modules(): + if m is op: + return name + raise ValueError(f"Cannot find op {op} in module {module}") + + @staticmethod + def append_str_prefix(x, prefix): + if isinstance(x, str): + return prefix + x + elif isinstance(x, tuple): + return tuple([AwqQuantizer.append_str_prefix(y, prefix) for y in x]) + elif isinstance(x, list): + return [AwqQuantizer.append_str_prefix(y, prefix) for y in x] + else: + return x + + def init_quant(self, n_samples=128, max_seq_len=512): + modules = self.awq_model.blocks + samples = AwqQuantizer.get_calib_dataset( + data=self.calib_data, + tokenizer=self.tokenizer, + n_samples=n_samples, + max_seq_len=max_seq_len, + split=self.split + ) + # samples = torch.cat(samples, dim=0) + samples = torch.cat(samples[:1], dim=0) # just using 1 batch + inps = [] + layer_kwargs = {} + # build inps + self.model.seq_len = samples.numel() + self.model.context_len = samples.numel() - 2 + self.model.token_len = 0 + best_device = AwqQuantizer.get_best_device() + inps = self.model.embedding(samples).to(best_device) + position_ids = self.model.get_position_ids() + rotary_pos_emb = self.model.rotary(position_ids) + attention_mask = self.model.get_attention_mask() + layer_kwargs["rotary_pos_emb"] = rotary_pos_emb.to(best_device) + layer_kwargs["attention_mask"] = attention_mask.to(best_device) + del samples + AwqQuantizer.clear_memory() + return modules, layer_kwargs, inps + + def _get_input_feat(self, layer, named_linears): + # firstly, get input features of all linear layers + def cache_input_hook(m, x, y, name, feat_dict): + x = x[0] + x = x.detach().cpu() + feat_dict[name].append(x) + input_feat = defaultdict(list) + handles = [] + for name in named_linears: + handles.append( + named_linears[name].register_forward_hook( + functools.partial(cache_input_hook, name=name, feat_dict=input_feat) + ) + ) + self.inps = self.inps.to(next(layer.parameters()).device) # in case multi-gpu + # get output as next layer's input + + # Sanitize the kwargs in case we use transformers version that contains + # kwargs that are not handled by the module. + # Useful for trust_remote_code models. + module_kwargs = self._sanitize_kwargs(self.module_kwargs, layer) + + self.inps = self._module_forward(self.inps, layer, module_kwargs) + for h in handles: + h.remove() + # now solve for scaling and clipping + input_feat = {k: torch.cat(v, dim=0) for k, v in input_feat.items()} + + return input_feat + + def _sanitize_kwargs(self, inputs_kwargs, module): + """ + Remove the arguments that are not supported in the module's + forward pass to avoid breaking behaviour between different versions + of transformers. + + Args: + inputs_kwargs (`dict`): + The input dictionary to pass to the model layer + module (`torch.nn.Module`): + Target module to quantize. + """ + module_signature = inspect.signature(module.forward).parameters + sanitized_kwargs = {} + for k, v in inputs_kwargs.items(): + if k in module_signature: + sanitized_kwargs[k] = v + return sanitized_kwargs \ No newline at end of file diff --git a/transformers/llm/export/utils/custom_op.py b/transformers/llm/export/utils/custom_op.py new file mode 100644 index 000000000..d1a270459 --- /dev/null +++ b/transformers/llm/export/utils/custom_op.py @@ -0,0 +1,59 @@ +import torch + +class FakeLinearOp(torch.autograd.Function): + @staticmethod + def symbolic(g, input, in_features, out_features, has_bias, name): + # These become the operator attributes. + kwargs = { + "in_features_i": in_features, + "out_features_i": out_features, + "has_bias_i": has_bias, + "name_s": name + } + from torch.onnx.symbolic_helper import _get_tensor_sizes + out_sizes = _get_tensor_sizes(input)[:-1] + [out_features] + output_type = input.type().with_sizes(out_sizes) + return g.op("LlmExporter::FakeLinear", input, **kwargs).setType(output_type) + + @staticmethod + def forward(ctx, input, in_features, out_features, has_bias, name): + out_shape = list(input.shape)[:-1] + [out_features] + return input.new_zeros(out_shape) + +class FakeLinear(torch.nn.Module): + def __init__(self, in_features, out_features, has_bias, name): + super(FakeLinear, self).__init__() + self.in_features = in_features + self.out_features = out_features + self.has_bias = has_bias + self.name = name + + def forward(self, x): + return FakeLinearOp.apply(x, self.in_features, self.out_features, self.has_bias, self.name) + +class FusedAttentionOp(torch.autograd.Function): + @staticmethod + def symbolic(g, query, key, value, attention_mask, hidden_size, name): + # These become the operator attributes. + kwargs = { + "hidden_size_i": hidden_size, + "name_s": name + } + from torch.onnx.symbolic_helper import _get_tensor_sizes + out_sizes = _get_tensor_sizes(query) + output_type = query.type().with_sizes(out_sizes) + return g.op("LlmExporter::FusedAttention", query, key, value, attention_mask, **kwargs).setType(output_type) + + @staticmethod + def forward(ctx, query, key, value, attention_mask, hidden_size, name): + out_shape = list(query.shape)[:2] + [hidden_size] + return query.new_zeros(out_shape) + +class FusedAttention(torch.nn.Module): + def __init__(self, hidden_size, name): + super(FusedAttention, self).__init__() + self.hidden_size = hidden_size + self.name = name + + def forward(self, query, key, value, attention_mask): + return FusedAttentionOp.apply(query, key, value, attention_mask, self.hidden_size, self.name) \ No newline at end of file diff --git a/transformers/llm/export/utils/gptq.py b/transformers/llm/export/utils/gptq.py new file mode 100644 index 000000000..5c7e4880a --- /dev/null +++ b/transformers/llm/export/utils/gptq.py @@ -0,0 +1,147 @@ +import glob +import json +import torch +from safetensors import safe_open + +class GPTQWeight: + def __init__(self, name): + self.name = name + + def __repr__(self) -> str: + if hasattr(self, 'qweight'): + return f'{self.name}, {self.qweight.shape}, {self.scales.shape}' + return 'None' + + def add(self, name, tensor): + setattr(self, name, tensor) + + def weight(self, idx): + shape = self.qweight.shape + if len(shape) == 2: + ic, oc = shape + self.qweight = self.qweight.reshape(ic//16, 16, oc) + return self.qweight[idx] + + def scale(self, idx): + return self.scales[idx] + +class MNNWeight: + def __init__(self, name, external, weight_elements): + self.name = name + self.external = external + self.quant_bits = 4 + if round(weight_elements / external[1]) == 2: + self.quant_bits = 4 + self.a_min = -8 + else: + self.quant_bits = 8 + self.a_min = -128 + self.parse_name() + + def __repr__(self) -> str: + return f'{self.layer_id}.{self.op_id}.{self.block_id}, {self.external}' + + def parse_name(self): + parts = self.name.split('/') + if len(parts) > 4: + self.layer_id = parts[1].split('.')[1] + self.op_id = parts[2] + '.' + parts[3] + self.block_id = parts[-1].split('__')[-1] + else: + self.layer_id = -1 + self.op_id = parts[2] + self.block_id = parts[-1].split('__')[-1] + + def key(self): + if self.layer_id == -1: return self.op_id + return f'{self.layer_id}.{self.op_id}' + def offset(self): return self.external[0] + def weight_size(self): return self.external[1] + def scale_size(self): return self.external[2] + +class GPTQ: + def __init__(self, gptq_path): + self.load(gptq_path) + + def load(self, path): + for tensor in glob.glob(f'{path}/*.safetensors'): + self.load_safetensor(tensor) + + def prefix(self, name): + splits = name.split('.') + if 'lm_head' in splits[0] and len(splits) == 2: + return splits[0], splits[1] + if len(splits) < 5: + return None, None + pre = f'{splits[2]}.{splits[3]}.{splits[4]}' + suf = splits[-1] + return pre, suf + + def get(self, key : str): + if key in self.weight_dict: + return self.weight_dict[key] + return None + + def load_safetensor(self, tensor): + self.weight_dict = dict() + with safe_open(tensor, framework="pt") as f: + for k in f.keys(): + p, s = self.prefix(k) + if p is None: continue + if s not in ['qweight', 'scales']: continue + if p not in self.weight_dict: + self.weight_dict[p] = GPTQWeight(p) + self.weight_dict[p].add(s, f.get_tensor(k)) + + @staticmethod + def weight_reorder(qweight, bits=4, group_size=128): + oc = qweight.shape[-1] + wf = torch.tensor(list(range(0, 32, bits)), dtype=torch.int32).unsqueeze(0) + weight = torch.bitwise_right_shift(torch.unsqueeze(qweight, 1).expand(-1, 32 // bits, -1), wf.unsqueeze(-1)).to(torch.int16 if bits == 8 else torch.int8) + torch.bitwise_and(weight, (2 ** bits) - 1, out=weight) + weight = weight.reshape(-1, oc).transpose(1, 0) + if bits == 8: + weight = weight.to(torch.uint8) + return weight + weight = weight.reshape(-1, 2).to(torch.uint8) + weight = weight[:, 0] * 16 + weight[:, 1] + return weight + + def apply(self, graph_path, weight_path): + # parse mnn graph + mnn_weights = [] + mnn_graph = json.load(open(graph_path, 'rt')) + for op in mnn_graph['oplists']: + if op['type'] == 'Convolution': + name = op['name'] + external = op['main']['external'] + weight_elements = op['main']['common']['outputCount'] * op['main']['common']['inputCount'] + mnn_weights.append(MNNWeight(name, external, weight_elements)) + # load mnn weight + external_weight = open(weight_path, 'r+b') + for mnn_weight in mnn_weights: + gptq_weight = self.get(mnn_weight.key()) + if gptq_weight is None: continue + # print(f'write {mnn_weight.key()} ... ', end='') + weight = gptq_weight.qweight + scale = gptq_weight.scales.float().transpose(1, 0) + # write weight data + weight = GPTQ.weight_reorder(weight, mnn_weight.quant_bits) + weight_bytes = weight.numpy().tobytes() + weight_size = mnn_weight.weight_size() + header_len = weight_size - len(weight_bytes) + assert(header_len > 0) + external_weight.seek(mnn_weight.offset() + header_len) + external_weight.write(weight_bytes) + scale_size = mnn_weight.scale_size() + is_asy = scale.numel() * scale.element_size() < scale_size + # write scale data + if is_asy: + # zeros = mnn_weight.a_min * scale + zeros = torch.zeros_like(scale) + scale = torch.stack([zeros, scale], axis=-1) + scale_bytes = scale.numpy().tobytes() + assert(scale_size == len(scale_bytes)) + external_weight.write(scale_bytes) + # print('Done!') + external_weight.close() \ No newline at end of file diff --git a/tools/script/apply_lora.py b/transformers/llm/export/utils/lora.py similarity index 62% rename from tools/script/apply_lora.py rename to transformers/llm/export/utils/lora.py index e0e03e79f..bdf3648f7 100644 --- a/tools/script/apply_lora.py +++ b/transformers/llm/export/utils/lora.py @@ -1,24 +1,54 @@ import os import json -import argparse +from safetensors import safe_open -class Base: - def __init__(self, path, fuse_lora): - self.fuse_lora = fuse_lora - self.load(path) +class LoRA: + def __init__(self, lora_path, scale = 4.0): + self.lora_A = {} + self.lora_B = {} + self.lora_keys = set() + self.scale = scale + self.load(lora_path) def __str__(self): return str(self.lora_keys) + def has_lora(self, op_name): + if op_name[0] != '/': + return False + for key in self.lora_keys: + if key in op_name: + return True + return False + + def get_lora(self, tag): + lora_a, lora_b = self.lora_A[tag], self.lora_B[tag] + return lora_a, lora_b + def load(self, path): - self.base_model = json.load(open(path, 'rt')) + if os.path.isdir(path): + base_dir = path + config = json.load(open(os.path.join(base_dir, 'adapter_config.json'), 'rt')) + lora_alpha = config['lora_alpha'] + r = config['r'] + self.scale = float(lora_alpha) / r + path = os.path.join(base_dir, 'adapter_model.safetensors') + with safe_open(path, framework="pt") as f: + for k in f.keys(): + names = k.split('.') + layer, key, name = names[4], names[6], names[7] + tag = layer + key + tensor = f.get_tensor(k).float() + self.lora_keys.add(key) + if 'lora_A' == name: + self.lora_A[tag] = tensor + else: + self.lora_B[tag] = tensor * self.scale - def build_conv(self, input_index, output_name, dims, weight, mul_scale = 1.0): + def build_conv(self, input_index, output_name, dims, weight): output_index = len(self.base_model['tensorName']) oc, ic = dims bias = [0.0 for i in range(oc)] - if mul_scale != 1.0: - weight = [w * mul_scale for w in weight] op = { 'type': 'Convolution', 'name': output_name, @@ -37,8 +67,7 @@ def build_conv(self, input_index, output_name, dims, weight, mul_scale = 1.0): }, 'defaultDimentionFormat': 'NHWC' } - self.base_model['oplists'].insert(self.idx, op) - self.idx += 1 + self.new_ops.append(op) self.base_model['tensorName'].append(output_name) return output_index @@ -51,11 +80,10 @@ def build_binary(self, op_type, input_indexes, output_name): "inputIndexes": input_indexes, "outputIndexes": [ output_index ], "main_type": "BinaryOp", - "main": { "opType": 0, "T": "DT_FLOAT", "activationType": 0 }, + "main": { "opType": op_type, "T": "DT_FLOAT", "activationType": 0 }, "defaultDimentionFormat": "NHWC" } - self.base_model['oplists'].insert(self.idx, op) - self.idx += 1 + self.new_ops.append(op) self.base_model['tensorName'].append(output_name) return output_index @@ -64,93 +92,28 @@ def replace_input(self, origin_idx, new_idx): if op['type'] == 'ConvertTensor' and origin_idx in op['inputIndexes']: op['inputIndexes'] = [new_idx] - def apply_lora(self, op, lora): + def apply_lora(self, op): names = op['name'].split('/') - mul_scale = lora.scale tag = names[1].split('.')[1] + names[3] - lora_a, lora_b = lora.get_lora(tag) + lora_a, lora_b = self.get_lora(tag) input_index = op['inputIndexes'][0] outpt_index = op['outputIndexes'][0] - if self.fuse_lora: - w = (lora_a @ lora_b) - weight = w.reshape(-1).tolist() - b_out = self.build_conv(input_index, f'{tag}_B', w.shape, weight, mul_scale) - n_out = self.build_binary(0, [outpt_index, b_out], f'{tag}_add') - self.replace_input(outpt_index, n_out) - return # lora_B @ lora_A @ x -> lora_B @ (lora_A @ x) a_out = self.build_conv(input_index, f'{tag}_A', list(lora_a.shape), lora_a.flatten().tolist()) - b_out = self.build_conv(a_out, f'{tag}_B', list(lora_b.shape), lora_b.flatten().tolist(), mul_scale) + b_out = self.build_conv(a_out, f'{tag}_B', list(lora_b.shape), lora_b.flatten().tolist()) n_out = self.build_binary(0, [outpt_index, b_out], f'{tag}_add') self.replace_input(outpt_index, n_out) - def apply(self, lora, out): - ops = [] + def apply(self, base_path, out): + self.base_model = json.load(open(base_path, 'rt')) + self.new_ops = [] for i in range(len(self.base_model['oplists'])): op = self.base_model['oplists'][i] + self.new_ops.append(op) if op['type'] == 'Convolution': - if lora.has_lora(op['name']): - self.idx = i + 1 - self.apply_lora(op, lora) + if self.has_lora(op['name']): + self.apply_lora(op) + self.base_model['oplists'] = self.new_ops with open(out, 'w', encoding='utf-8') as file: json.dump(self.base_model, file, ensure_ascii=False, indent=4) - -class LoRA: - def __init__(self, path, scale): - self.lora_A = {} - self.lora_B = {} - self.lora_keys = set() - self.scale = scale - self.load(path) - - def __str__(self): - return str(self.lora_keys) - - def has_lora(self, op_name): - if op_name[0] != '/': - return False - for key in self.lora_keys: - if key in op_name: - return True - return False - - def get_lora(self, tag): - lora_a, lora_b = self.lora_A[tag], self.lora_B[tag] - return lora_a, lora_b - - def load(self, path): - if os.path.isdir(path): - base_dir = path - config = json.load(open(os.path.join(base_dir, 'adapter_config.json'), 'rt')) - lora_alpha = config['lora_alpha'] - r = config['r'] - self.scale = float(lora_alpha) / r - print(self.scale) - path = os.path.join(base_dir, 'adapter_model.safetensors') - from safetensors import safe_open - with safe_open(path, framework="pt") as f: - for k in f.keys(): - names = k.split('.') - layer, key, name = names[4], names[6], names[7] - tag = layer + key - tensor = f.get_tensor(k).float() - self.lora_keys.add(key) - if 'lora_A' == name: - self.lora_A[tag] = tensor - else: - self.lora_B[tag] = tensor - -def main(args): - base = Base(args.base, args.fuse) - lora = LoRA(args.lora, args.scale) - base.apply(lora, args.out) - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='apply_lora', formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument('--base', type=str, required=True, help='base model json path.') - parser.add_argument('--lora', type=str, required=True, help='lora dir path or *.safetensors path.') - parser.add_argument('--scale', type=float, default=4.0, help='lora scale: `alpha/r`.') - parser.add_argument('--fuse', type=bool, default=False, help='fuse A and B.') - parser.add_argument('--out', type=str, default='lora.json', help='out file name.') - args = parser.parse_args() - main(args) + return out diff --git a/transformers/llm/export/utils/mnn_converter.py b/transformers/llm/export/utils/mnn_converter.py new file mode 100644 index 000000000..d87ae4118 --- /dev/null +++ b/transformers/llm/export/utils/mnn_converter.py @@ -0,0 +1,416 @@ +import os +import sys +import json +import torch +import numpy as np + +from tqdm import tqdm +from .spinner import spinner_run +from .gptq import GPTQ +from .lora import LoRA + +EXPORT_LOG = '.export.log' + +class MNNConveter: + def __init__(self, onnx_path, weight_ops, config): + self.weight_ops = weight_ops + self.config = config + self.quant_block = config.args.quant_block + self.quant_bit = config.args.quant_bit + self.lm_quant_bit = config.args.lm_quant_bit + self.symmetric = config.args.sym + self.mnn_weight_offset = 0 + self.onnx_model_path = onnx_path + self.mnn_name = os.path.basename(onnx_path).replace('.onnx', '.mnn') + self.mnn_model_path = os.path.join(config.args.dst_path, self.mnn_name) + self.mnn_weight_path = f'{self.mnn_model_path}.weight' + if os.path.exists(config.args.mnnconvert): + self.mnnconvert = config.args.mnnconvert + else: + self.mnnconvert = None + + def convert(self, convert_args): + sfd = os.dup(1) + log_fp = open(EXPORT_LOG, "a") + log_fd = log_fp.fileno() + # mnnconvert ... > .export.log + os.dup2(log_fd, 1) + try: + sys.argv = convert_args + sys.argc = len(convert_args) + if self.mnnconvert is None: + from MNN.tools import mnnconvert + mnnconvert.main() + else: + convert_args[0] = self.mnnconvert + cmd = ' '.join(convert_args) + message = os.popen(cmd).read() + print(message) + sys.argv = [] + finally: + os.dup2(sfd, 1) + os.close(log_fd) + + @spinner_run(f'convert onnx model to ') + def onnx2mnn(self, onnx_path, mnn_path, args = []): + convert_args = [ + '', + '-f', + 'ONNX', + '--modelFile', + str(onnx_path), + '--MNNModel', + str(mnn_path), + '--transformerFuse', + '--allowCustomOp' + ] + convert_args += args + self.convert(convert_args) + return mnn_path + + def mnn2json(self, mnn_path, json_path): + convert_args = [ + '', + '-f', + 'MNN', + '--modelFile', + str(mnn_path), + '--JsonFile', + str(json_path) + ] + self.convert(convert_args) + return json_path + + def json2mnn(self, json_path, mnn_path): + convert_args = [ + '', + '-f', + 'JSON', + '--modelFile', + str(json_path), + '--MNNModel', + str(mnn_path) + ] + self.convert(convert_args) + return mnn_path + + def removeDupOps(self, mnn_path): + convert_args = [ + '', + '-f', + 'MNN', + '--modelFile', + str(mnn_path), + '--MNNModel', + str(mnn_path), + '--optimizeLevel=1' + ] + self.convert(convert_args) + return mnn_path + + def export(self, quant_bit = None, quant_block = None): + if self.weight_ops is None: + if quant_bit is None: + quant_bit = self.quant_bit + if quant_block is None: + quant_block = self.quant_block + if quant_bit == 16: + quant_args = ['--fp16'] + else: + quant_args = [ + '--weightQuantBits', + str(quant_bit), + '--weightQuantBlock', + str(quant_block) + ] + self.onnx2mnn(self.onnx_model_path, self.mnn_model_path, quant_args) + else: + mnn_json = f'{self.mnn_model_path}.json' + self.onnx2mnn(self.onnx_model_path, self.mnn_model_path) + self.mnn2json(self.mnn_model_path, mnn_json) + self.rebuild(mnn_json) + self.json2mnn(mnn_json, self.mnn_model_path) + self.removeDupOps(self.mnn_model_path) + if self.config.args.gptq_path is not None: + self.apply_gptq(mnn_json) + if self.config.args.lora_path is not None and self.config.args.lora_split: + self.export_lora(mnn_json) + + @spinner_run(f'apply gptq to ') + def apply_gptq(self, mnn_json): + GPTQ(self.config.args.gptq_path).apply(mnn_json, self.mnn_weight_path) + return self.mnn_weight_path + + @spinner_run(f'export split lora to ') + def export_lora(self, mnn_json): + lora_model = os.path.join(self.config.args.dst_path, 'lora.mnn') + lora_json = f'{lora_model}.json' + LoRA(self.config.args.lora_path).apply(mnn_json, lora_json) + self.json2mnn(lora_json, lora_model) + if os.path.exists(lora_json): + os.remove(lora_json) + return lora_model + + @spinner_run(f'quant model weight to ', True) + def rebuild(self, json_path): + mnn_graph = json.load(open(json_path, 'rt')) + new_ops = [] + with open(self.mnn_weight_path, 'wb') as self.mnn_weight: + for op in tqdm(mnn_graph['oplists'], 'Quant weights'): + if op['type'] == 'Extra': + new_ops += self.rebuild_op(op, mnn_graph) + else: + new_ops.append(op) + mnn_graph['oplists'] = new_ops + with open(json_path, 'w', encoding='utf-8') as file: + json.dump(mnn_graph, file, ensure_ascii=False, indent=4) + return self.mnn_weight_path + + def quant(self, weight, quant_bit, quant_block, symmetric): + if torch.cuda.is_available(): + weight = weight.cuda() + if torch.backends.mps.is_available(): + weight = weight.to('mps') + oc, ic = weight.shape + if quant_block == 0: + block_size = ic + else: + block_size = quant_block + while ic % block_size != 0: + block_size /= 2 + block_size = int(block_size) + block_num = ic // block_size + weight = weight.reshape(oc, block_num, block_size) + offset = 1 << (quant_bit - 1) + clip_max = offset - 1 + if symmetric: + clip_min = -clip_max + abs_max, _ = torch.max(torch.abs(weight), axis=-1, keepdims=True) + scale = abs_max / clip_max + q_weight = torch.round(weight / scale) + q_weight = (torch.clamp(q_weight.flatten(), clip_min, clip_max) + offset).to(torch.uint8) + alpha = scale.flatten() + else: + clip_min = -offset + max_val, _ = torch.max(weight, axis=-1, keepdims=True) + min_val, _ = torch.min(weight, axis=-1, keepdims=True) + scale = (max_val - min_val) / (clip_max - clip_min) + + if self.config.args.awq: + q_weight = torch.round(weight / scale) - torch.round(min_val / scale) + clip_min + zeros = (torch.round(min_val / scale) - clip_min) * scale + else: + q_weight = torch.round((weight - min_val) / scale) + clip_min + zeros = min_val - scale * clip_min + q_weight = (torch.clamp(q_weight.flatten(), clip_min, clip_max) + offset).to(torch.uint8) + alpha = torch.stack([zeros.flatten(), scale.flatten()], axis=-1).flatten() + + q_weight = q_weight.reshape(-1, 2) + if quant_bit == 4: + q_weight = q_weight[:, 0] * 16 + q_weight[:, 1] + + # support for `MNN >= 2.9.6` + clip_min = 1 + + if q_weight.device is not torch.device('cpu'): + return q_weight.cpu(), alpha.float().cpu(), clip_min + return q_weight, alpha.float(), clip_min + + def write_weight(self, data): + if isinstance(data, torch.Tensor): + data = data.numpy() + return self.mnn_weight.write(data.tobytes()) + + def write_header(self, ic, oc, quant_bit): + dim_num = self.mnn_weight.write(b'\x02') + shape_dtype = np.int16 + if oc > 65535 or ic > 65535: + shape_dtype = np.int32 + dim_length = self.write_weight(np.array([oc, ic]).astype(shape_dtype)) + offset = 1 << (quant_bit - 1) + weight_map = [i for i in range(-offset, offset)] + if len(weight_map) == 256: + weight_map.insert(0, 0) + else: + weight_map.insert(0, len(weight_map)) + map_length = self.write_weight(np.array(weight_map, dtype=np.int8)) + header_length = dim_num + dim_length + map_length + return header_length, shape_dtype == np.int32 + + def build_weight(self, linear, quant_bit, quant_block, symmetric): + ic, oc = linear.in_features, linear.out_features + if quant_bit == 16: + half_weight = linear.weight.data.flatten().half() + weight_len = self.write_weight(half_weight) + alpha_len, q_min, shape_int32, header_len = 0, 0, False, 0 + else: + assert(quant_bit in (4, 8)) + q_weight, alpha, q_min = self.quant(linear.weight.data, quant_bit, quant_block, symmetric) + header_len, shape_int32 = self.write_header(ic, oc, quant_bit) + weight_len = self.write_weight(q_weight) + header_len + alpha_len = self.write_weight(alpha) + if linear.bias is not None: + bias = linear.bias.data.flatten().float() + bias_length = self.write_weight(bias) + else: + bias_length = 0 + # bias = np.zeros([oc], dtype=np.float32) + # bias_length = self.write_weight(bias) + external = [self.mnn_weight_offset, weight_len, alpha_len, bias_length, 0] + self.mnn_weight_offset += (weight_len + alpha_len + bias_length) + return external, q_min, shape_int32, header_len + + def build_tensor(self, graph, tensor_name): + tensor_idx = [len(graph['tensorName'])] + graph['tensorName'].append(tensor_name) + return tensor_idx + + def rebuild_op(self, op, graph): + op_type = op['main']['type'] + if op_type == 'FakeLinear': + return self.rebuild_linear(op, graph) + if op_type == 'FusedAttention': + return self.rebuild_attnention(op, graph) + + def rebuild_attnention(self, op, graph): + attrs = op['main']['attr'] + for attr in attrs: + if attr['key'] == 'name': + name = attr['s'] + origin_input = op['inputIndexes'] + origin_output = op['outputIndexes'] + fused_attention = { + "inputIndexes": origin_input, + "main_type": "AttentionParam", + "main": { "kv_cache": True }, + "name": name, + "outputIndexes": origin_output, + "type": "Attention", + "defaultDimentionFormat": "NHWC" + } + return [fused_attention] + + def rebuild_linear(self, op, graph): + attrs = op['main']['attr'] + for attr in attrs: + if attr['key'] == 'name': + name = attr['s'] + elif attr['key'] == "in_features": + ic = attr["i"] + elif attr['key'] == "out_features": + oc = attr["i"] + elif attr['key'] == "has_bias": + has_bias = attr["i"] + linear = self.weight_ops[name] + assert(linear.in_features == ic and + linear.out_features == oc and + (linear.bias is not None) == has_bias) + + is_lm = 'lm_head' in name + quant_bit = self.lm_quant_bit if is_lm else self.quant_bit + block_size = ic if self.quant_block == 0 else self.quant_block + external, q_min, shape_int32, header_len = self.build_weight(linear, quant_bit, self.quant_block, self.symmetric) + if is_lm and self.config.tie_word_embeddings: + weight_offset = external[0] + header_len + alpha_offset = external[0] + external[1] + alpha_size = external[2] + self.config.llm_config['tie_embeddings'] = [weight_offset, alpha_offset, alpha_size, quant_bit, self.quant_block] + + origin_input = op['inputIndexes'] + origin_output = op['outputIndexes'] + # build new tensor + pre_reshape_name = f'{name}/pre_reshape' + pre_convert_name = f'{name}/pre_convert' + conv_name = name + post_convert_name = f'{name}/post_convert' + post_reshape_name = f'{name}/post_reshape' + pre_reshape_output = self.build_tensor(graph, pre_reshape_name) + pre_convert_output = self.build_tensor(graph, pre_convert_name) + conv_output = self.build_tensor(graph, conv_name) + post_convert_output = self.build_tensor(graph, post_convert_name) + # [batch, seq, hidden_size_i] -[Linear] -> [batch, seq, hidden_size_o] + # [1, seq, hidden_size_i] ->[Reshape]-> [seq, hidden_size_i, 1, 1] + # -[Convert]-[Convolution]-[Convert]-> [Reshape] -> [1, seq, hidden_size_o] + pre_reshape = { + "name": pre_reshape_name, + "type": "Reshape", + "inputIndexes": origin_input, + "outputIndexes": pre_reshape_output, + "main_type": "Reshape", + "main": { + "dims": [-1, ic, 1, 1], + "dimType": "NCHW" + }, + "defaultDimentionFormat": "NHWC" + } + pre_convert = { + "name": pre_convert_name, + "inputIndexes": pre_reshape_output, + "outputIndexes": pre_convert_output, + "type": "ConvertTensor", + "main_type": "TensorConvertInfo", + "main": { + "source": "NCHW", + "dest": "NC4HW4" + }, + "defaultDimentionFormat": "NHWC" + } + + if quant_bit == 16: + quanParameter = { "type": 3 } + else: + if self.symmetric: + aMin = 0 + readType = 0 + else: + aMin = q_min + readType = oc * (ic // block_size) + + quanParameter = { + "quantScale": 1.0, "scaleIn": 0.0, "scaleOut": 0.0, + "useInt32": False, "has_scaleInt": False, "shapeInt32": shape_int32, + "type": 1, "aMax": 0, "aMin": aMin, "readType": readType, "weightSize": 0 + } + conv_op = { + "name": conv_name, + "inputIndexes": pre_convert_output, + "outputIndexes": conv_output, + "type": "Convolution", + "main_type": "Convolution2D", + "main": { + 'common': { + 'dilateX': 1, 'dilateY': 1, 'strideX': 1, 'strideY': 1, + 'kernelX': 1, 'kernelY': 1, 'padX': 0, 'padY': 0, 'group': 1, + 'outputCount': oc, 'relu': False, 'padMode': 'CAFFE', + 'relu6': False, 'inputCount': ic, 'hasOutputShape': False + }, + "quanParameter": quanParameter, + "external": external + }, + "defaultDimentionFormat": "NHWC" + } + post_convert = { + "name": post_convert_name, + "inputIndexes": conv_output, + "outputIndexes": post_convert_output, + "type": "ConvertTensor", + "main_type": "TensorConvertInfo", + "main": { + "source": "NC4HW4", + "dest": "NCHW" + }, + "defaultDimentionFormat": "NHWC" + } + post_reshape = { + "name": post_reshape_name, + "type": "Reshape", + "inputIndexes": post_convert_output, + "outputIndexes": origin_output, + "main_type": "Reshape", + "main": { + "dims": [1, -1, oc], + "dimType": "NCHW" + }, + "defaultDimentionFormat": "NHWC" + } + return [pre_reshape, pre_convert, conv_op, post_convert, post_reshape] \ No newline at end of file diff --git a/transformers/llm/export/utils/model_mapper.py b/transformers/llm/export/utils/model_mapper.py new file mode 100644 index 000000000..e55bc6840 --- /dev/null +++ b/transformers/llm/export/utils/model_mapper.py @@ -0,0 +1,295 @@ +import copy + +class ModelMapper: + def __init__(self): + self.attrs = [] + self.mapper = dict() + self.regist_models() + + def get_map(self, config): + model_type = config.model_type + if model_type == 'chatglm': + if hasattr(config, 'vocab_size') and config.vocab_size == 130528: + model_type = 'chatglm' + else: + model_type = 'chatglm2' + if model_type in self.mapper: + return model_type, self.mapper[model_type] + return model_type, self.default_map + + def regist(self, model_type, model_map): + assert('config' in model_map and + 'decoder' in model_map and + 'attention' in model_map) + self.mapper[model_type] = model_map + + def regist_models(self): + self.defualt_map() + # regist models + self.regist_llama() + self.regist_mllama() + self.regist_qwen() + self.regist_glm() + self.regist_glm2() + self.regist_phi() + self.regist_gemma2() + self.register_openelm() + + def regist_llama(self): + llama_map = self.default_map + self.regist('llama', llama_map) + self.regist('qwen2', llama_map) + self.regist('internlm', llama_map) + self.regist('mobilellm', llama_map) + # baichuan + baichuan_map = copy.deepcopy(self.default_map) + baichuan_map[self.attention_key] = { + 'qkv_proj': 'W_pack', + 'o_proj': 'o_proj' + } + self.regist('baichuan', baichuan_map) + + def regist_mllama(self): + mllama_map = { + 'config': { + 'hidden_size': 'text_config.hidden_size', + 'num_attention_heads': 'text_config.num_attention_heads', + 'num_hidden_layers': 'text_config.num_hidden_layers', + 'num_key_value_heads': 'text_config.num_key_value_heads', + 'rope_theta': 'text_config.rope_theta' + }, + 'model': { + 'lm_': 'language_model.lm_head', + 'embed_': 'language_model.model.embed_tokens', + 'blocks_': 'language_model.model.layers', + 'final_layernorm_': 'language_model.model.norm', + 'visual': 'vision_model', + 'multi_modal_projector': 'multi_modal_projector' + }, + 'decoder': { + 'self_attn': 'self_attn', + 'cross_attn': 'cross_attn', + 'mlp': 'mlp', + 'input_layernorm': 'input_layernorm', + 'post_attention_layernorm': 'post_attention_layernorm' + }, + 'attention': { + 'q_proj': 'q_proj', + 'k_proj': 'k_proj', + 'v_proj': 'v_proj', + 'o_proj': 'o_proj', + 'q_norm': 'q_norm', + 'k_norm': 'k_norm', + 'cross_attn_attn_gate': 'cross_attn_attn_gate', + 'cross_attn_mlp_gate': 'cross_attn_mlp_gate' + } + } + self.regist('mllama', mllama_map) + + def regist_qwen(self): + qwen_map = { + 'config': { + 'hidden_size': 'hidden_size', + 'num_attention_heads': 'num_attention_heads', + 'num_hidden_layers': 'num_hidden_layers', + 'rope_theta': 'rotary_emb_base', + }, + 'model': { + 'lm_': 'lm_head', + 'embed_': 'transformer.wte', + 'blocks_': 'transformer.h', + 'final_layernorm_': 'transformer.ln_f', + 'visual': 'transformer.visual' + }, + 'decoder': { + 'self_attn': 'attn', + 'mlp': 'mlp', + 'input_layernorm': 'ln_1', + 'post_attention_layernorm': 'ln_2' + }, + 'attention': { + 'qkv_proj': 'c_attn', + 'o_proj': 'c_proj' + } + } + self.regist('qwen', qwen_map) + + def regist_glm(self): + glm_map = { + 'config': { + 'hidden_size': 'hidden_size', + 'num_attention_heads': 'num_attention_heads', + 'num_hidden_layers': 'num_layers' + }, + 'model': { + 'lm_': 'lm_head', + 'embed_': 'transformer.word_embeddings', + 'blocks_': 'transformer.layers', + 'final_layernorm_': 'transformer.final_layernorm', + }, + 'decoder': { + 'self_attn': 'attention', + 'mlp': 'mlp', + 'input_layernorm': 'input_layernorm', + 'post_attention_layernorm': 'post_attention_layernorm' + }, + 'attention': { + 'qkv_proj': 'query_key_value', + 'o_proj': 'dense' + } + } + self.regist('chatglm', glm_map) + + def regist_glm2(self): + glm2_map = { + 'config': { + 'hidden_size': 'hidden_size', + 'num_attention_heads': 'num_attention_heads', + 'num_key_value_heads': 'multi_query_group_num', + 'num_hidden_layers': 'num_layers', + }, + 'model': { + 'lm_': 'transformer.output_layer', + 'embed_': 'transformer.embedding.word_embeddings', + 'blocks_': 'transformer.encoder.layers', + 'final_layernorm_': 'transformer.encoder.final_layernorm', + }, + 'decoder': { + 'self_attn': 'self_attention', + 'mlp': 'mlp', + 'input_layernorm': 'input_layernorm', + 'post_attention_layernorm': 'post_attention_layernorm' + }, + 'attention': { + 'qkv_proj': 'query_key_value', + 'o_proj': 'dense' + } + } + self.regist('chatglm2', glm2_map) + + def regist_phi(self): + phi_map = { + 'config': { + 'hidden_size': 'n_embd', + 'num_attention_heads': 'n_head', + 'num_hidden_layers': 'n_layer', + 'rotary_dim': 'rotary_dim' + }, + 'model': { + 'lm_': 'lm_head.linear', + 'embed_': 'transformer.embd.wte', + 'blocks_': 'transformer.h', + 'final_layernorm_': 'lm_head.ln', + }, + 'decoder': { + 'self_attn': 'mixer', + 'mlp': 'mlp', + 'input_layernorm': 'ln', + }, + 'attention': { + 'qkv_proj': 'Wqkv', + 'o_proj': 'out_proj' + } + } + self.regist('phi-msft', phi_map) + + def regist_gemma2(self): + gemma2_config = copy.deepcopy(self.default_config) + gemma2_config['head_dim'] = 'head_dim' + gemma2_decoder = copy.deepcopy(self.default_decoder) + gemma2_decoder['pre_feedforward_layernorm'] = 'pre_feedforward_layernorm' + gemma2_decoder['post_feedforward_layernorm'] = 'post_feedforward_layernorm' + gemma2_map = { + 'config': gemma2_config, + 'model': self.defualt_model, + 'decoder': gemma2_decoder, + 'attention': self.default_attention + } + self.regist('gemma2', gemma2_map) + + def register_openelm(self): + openelm_config = { + 'hidden_size': 'model_dim', + 'head_dim': 'head_dim', + 'num_attention_heads': 'num_query_heads', + 'num_hidden_layers': 'num_transformer_layers', + 'num_key_value_heads': 'num_kv_heads', + 'rope_theta': 'rope_freq_constant' + } + openelm_model = { + 'lm_': 'lm_head', + 'embed_': 'transformer.token_embeddings', + 'blocks_': 'transformer.layers', + 'final_layernorm_': 'transformer.norm' + } + openelm_decoder = { + 'self_attn': 'attn', + 'mlp': 'ffn', + 'input_layernorm': 'attn_norm', + 'post_attention_layernorm': 'ffn_norm' + } + openelm_attention = { + 'qkv_proj': 'qkv_proj', + 'o_proj': 'out_proj', + 'q_norm': 'q_norm', + 'k_norm': 'k_norm' + } + openelm_map = { + 'config': openelm_config, + 'model': openelm_model, + 'decoder': openelm_decoder, + 'attention': openelm_attention + } + self.regist('openelm', openelm_map) + + def defualt_map(self): + # default map is `LlamaForCausalLM` + self.config_key = 'config' + self.model_key = 'model' + self.decoder_key = 'decoder' + self.attention_key = 'attention' + self.default_config = { + 'hidden_size': 'hidden_size', + 'num_attention_heads': 'num_attention_heads', + 'num_hidden_layers': 'num_hidden_layers', + 'num_key_value_heads': 'num_key_value_heads', + 'rope_theta': 'rope_theta' + } + self.defualt_model = { + 'lm_': 'lm_head', + 'embed_': 'model.embed_tokens', + 'blocks_': 'model.layers', + 'final_layernorm_': 'model.norm', + 'visual': 'visual' + } + self.default_decoder = { + 'self_attn': 'self_attn', + 'mlp': 'mlp', + 'input_layernorm': 'input_layernorm', + 'post_attention_layernorm': 'post_attention_layernorm' + } + self.default_attention = { + 'q_proj': 'q_proj', + 'k_proj': 'k_proj', + 'v_proj': 'v_proj', + 'o_proj': 'o_proj' + } + self.default_map = { + 'config': self.default_config, + 'model': self.defualt_model, + 'decoder': self.default_decoder, + 'attention': self.default_attention + } + + @staticmethod + def do_map(dst, src, map): + for dst_attr, src_attr in map.items(): + attributes = src_attr.split('.') + obj = src + for attr in attributes: + if hasattr(obj, attr): + obj = getattr(obj, attr) + else: + obj = None + break + setattr(dst, dst_attr, obj) \ No newline at end of file diff --git a/transformers/llm/export/utils/onnx.py b/transformers/llm/export/utils/onnx.py new file mode 100644 index 000000000..b2961e96d --- /dev/null +++ b/transformers/llm/export/utils/onnx.py @@ -0,0 +1,70 @@ +import os +import onnx + +class OnnxRebuilder: + def __init__(self, onnx_path, weight_ops): + self.weight_ops = weight_ops + self.onnx_model = onnx.load(onnx_path) + self.dst_path = onnx_path + self.onnx_weight_path = f'{onnx_path}.data' + self.onnx_weight_offset = 0 + + def make_external(self, name, data, shape): + # write to external weight + length = self.onnx_weight.write(data.tobytes()) + location = os.path.basename(self.onnx_weight_path) + offset = self.onnx_weight_offset + self.onnx_weight_offset += length + tensor = onnx.TensorProto() + tensor.name = name + tensor.data_type = onnx.TensorProto.FLOAT + tensor.dims.extend(shape) + # external info + tensor.data_location = onnx.TensorProto.EXTERNAL + for k, v in { "location": location, "offset": offset, "length": length }.items(): + entry = tensor.external_data.add() + entry.key = k + entry.value = str(v) + self.onnx_model.graph.initializer.append(tensor) + + def build_weight(self, name, has_bias, ic, oc): + assert(name in self.weight_ops) + linear = self.weight_ops[name] + assert(linear.in_features == ic and + linear.out_features == oc and + (linear.bias is not None) == has_bias) + weight_name, bias_name = f'{name}_weight', f'{name}_bias' + weight = linear.weight.data.transpose(1, 0).flatten().float().numpy() + self.make_external(weight_name, weight, [ic, oc]) + if has_bias: + bias = linear.bias.data.flatten().float().numpy() + self.make_external(bias_name, bias, [oc]) + return weight_name, bias_name + + def rebuild(self): + from onnx import helper + new_nodes = [] + self.onnx_weight = open(self.onnx_weight_path, 'wb') + for node in self.onnx_model.graph.node: + if node.op_type == 'FakeLinear': + attributes = {a.name: a for a in node.attribute} + name = attributes.get('name').s.decode('utf-8') + has_bias = attributes.get('has_bias').i + ic = attributes.get('in_features').i + oc = attributes.get('out_features').i + weight, bias = self.build_weight(name, has_bias, ic, oc) + if has_bias: + # fakelinear -> matmul + add + middle_tensor = f'{name}_matmul' + new_nodes.append(helper.make_node('MatMul', [node.input[0], weight], [middle_tensor], name)) + new_nodes.append(helper.make_node('Add', [middle_tensor, bias], node.output, f'{name}/Add')) + else: + # fakelinear -> matmul + new_nodes.append(helper.make_node('MatMul', [node.input[0], weight], node.output, name)) + else: + new_nodes.append(node) + self.onnx_weight.close() + del self.onnx_model.graph.node[:] + self.onnx_model.graph.node.extend(new_nodes) + onnx.save(self.onnx_model, self.dst_path) + return self.onnx_weight_path \ No newline at end of file diff --git a/transformers/llm/export/utils/onnx_rebuilder.py b/transformers/llm/export/utils/onnx_rebuilder.py new file mode 100644 index 000000000..b2961e96d --- /dev/null +++ b/transformers/llm/export/utils/onnx_rebuilder.py @@ -0,0 +1,70 @@ +import os +import onnx + +class OnnxRebuilder: + def __init__(self, onnx_path, weight_ops): + self.weight_ops = weight_ops + self.onnx_model = onnx.load(onnx_path) + self.dst_path = onnx_path + self.onnx_weight_path = f'{onnx_path}.data' + self.onnx_weight_offset = 0 + + def make_external(self, name, data, shape): + # write to external weight + length = self.onnx_weight.write(data.tobytes()) + location = os.path.basename(self.onnx_weight_path) + offset = self.onnx_weight_offset + self.onnx_weight_offset += length + tensor = onnx.TensorProto() + tensor.name = name + tensor.data_type = onnx.TensorProto.FLOAT + tensor.dims.extend(shape) + # external info + tensor.data_location = onnx.TensorProto.EXTERNAL + for k, v in { "location": location, "offset": offset, "length": length }.items(): + entry = tensor.external_data.add() + entry.key = k + entry.value = str(v) + self.onnx_model.graph.initializer.append(tensor) + + def build_weight(self, name, has_bias, ic, oc): + assert(name in self.weight_ops) + linear = self.weight_ops[name] + assert(linear.in_features == ic and + linear.out_features == oc and + (linear.bias is not None) == has_bias) + weight_name, bias_name = f'{name}_weight', f'{name}_bias' + weight = linear.weight.data.transpose(1, 0).flatten().float().numpy() + self.make_external(weight_name, weight, [ic, oc]) + if has_bias: + bias = linear.bias.data.flatten().float().numpy() + self.make_external(bias_name, bias, [oc]) + return weight_name, bias_name + + def rebuild(self): + from onnx import helper + new_nodes = [] + self.onnx_weight = open(self.onnx_weight_path, 'wb') + for node in self.onnx_model.graph.node: + if node.op_type == 'FakeLinear': + attributes = {a.name: a for a in node.attribute} + name = attributes.get('name').s.decode('utf-8') + has_bias = attributes.get('has_bias').i + ic = attributes.get('in_features').i + oc = attributes.get('out_features').i + weight, bias = self.build_weight(name, has_bias, ic, oc) + if has_bias: + # fakelinear -> matmul + add + middle_tensor = f'{name}_matmul' + new_nodes.append(helper.make_node('MatMul', [node.input[0], weight], [middle_tensor], name)) + new_nodes.append(helper.make_node('Add', [middle_tensor, bias], node.output, f'{name}/Add')) + else: + # fakelinear -> matmul + new_nodes.append(helper.make_node('MatMul', [node.input[0], weight], node.output, name)) + else: + new_nodes.append(node) + self.onnx_weight.close() + del self.onnx_model.graph.node[:] + self.onnx_model.graph.node.extend(new_nodes) + onnx.save(self.onnx_model, self.dst_path) + return self.onnx_weight_path \ No newline at end of file diff --git a/transformers/llm/export/utils/spinner.py b/transformers/llm/export/utils/spinner.py new file mode 100644 index 000000000..fd4d561a4 --- /dev/null +++ b/transformers/llm/export/utils/spinner.py @@ -0,0 +1,31 @@ +import time +import functools +import traceback +from yaspin import yaspin + +RESET = "\033[0m" +GREEN = "\033[32;1m" +YELLOW = "\033[33;4m" + +def spinner_run(text='Processing...', hide=False): + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + with yaspin(text=text, color="cyan") as spinner: + start = time.time() + try: + if hide: spinner.hide() + result = func(*args, **kwargs) + if hide: spinner.show() + except Exception as e: + spinner.fail("💥 Failed") + traceback.print_exc() + exit(1) + end = time.time() + during = f'[{end-start:05.2f} s]'.replace('[0', '[ ') + padding = ' ' * (64 - len(spinner.text) - len(result)) + spinner.text = f'{spinner.text}{YELLOW}{result}{RESET}{padding}{GREEN}{during}{RESET}' + spinner.ok("✅ Done") + return result + return wrapper + return decorator \ No newline at end of file diff --git a/transformers/llm/export/utils/transformers.py b/transformers/llm/export/utils/transformers.py new file mode 100644 index 000000000..3134ed6f6 --- /dev/null +++ b/transformers/llm/export/utils/transformers.py @@ -0,0 +1,333 @@ +import math +import torch +from typing import Optional, Tuple + +from .model_mapper import ModelMapper +from .custom_op import FusedAttention + +class Embedding(torch.nn.Module): + def __init__(self, embed, config): + super().__init__() + self.hidden_size = config.hidden_size + self.embed = embed + if config.model_type == 'gemma2': + normalizer = torch.tensor(self.hidden_size**0.5) + self.embed.weight.data *= normalizer + + def forward(self, input_ids): + inputs_embeds = self.embed(input_ids).view(-1, 1, self.hidden_size) + return inputs_embeds + +def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor: + batch, num_key_value_heads, slen, head_dim = hidden_states.shape + if n_rep == 1: + return hidden_states + hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim) + return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim) + +class Attention(torch.nn.Module): + def __init__(self, attn, layer_id, config): + super().__init__() + self.export_fused_attn = False + self.fused_attn = FusedAttention(config.hidden_size, f'/layers.{layer_id}/self_attn/FusedAttention') + self.layer_id = layer_id + self.hidden_size = config.hidden_size + self.head_dim = config.head_dim + if isinstance(config.num_attention_heads, list): + self.num_heads = config.num_attention_heads[layer_id] + self.num_key_value_heads = config.num_key_value_heads[layer_id] + else: + self.head_dim = config.head_dim + self.num_heads = config.num_attention_heads + self.num_key_value_heads = config.num_key_value_heads + self.num_key_value_groups = self.num_heads // self.num_key_value_heads + self.rotary = config.rotary + + ModelMapper.do_map(self, attn, config.model_map['attention']) + + if hasattr(self, 'qkv_proj') and self.qkv_proj is not None: + # split qkv linear to q, k, v + split_sizes = [self.hidden_size] * 3 + if self.qkv_proj.weight.shape[0] != self.hidden_size * 3: + # M/GQA + split_sizes = [ + self.num_heads * self.head_dim, # q_size + self.num_key_value_heads * self.head_dim, # k_size + self.num_key_value_heads * self.head_dim # v_size + ] + + self.q_proj = torch.nn.Linear(self.hidden_size, split_sizes[0]) + self.k_proj = torch.nn.Linear(self.hidden_size, split_sizes[1]) + self.v_proj = torch.nn.Linear(self.hidden_size, split_sizes[2]) + if config.model_type == 'chatglm': + # chatglm-6b + qkv_weight = self.qkv_proj.weight.data.view(self.num_heads, 3, self.head_dim, self.hidden_size) + self.q_proj.weight.data = qkv_weight[:, 0, :, :].reshape(self.hidden_size, self.hidden_size) + self.k_proj.weight.data = qkv_weight[:, 1, :, :].reshape(self.hidden_size, self.hidden_size) + self.v_proj.weight.data = qkv_weight[:, 2, :, :].reshape(self.hidden_size, self.hidden_size) + qkv_bias = self.qkv_proj.bias.data.view(self.num_heads, 3, self.head_dim) + self.q_proj.bias.data = qkv_bias[:, 0, :].reshape(self.hidden_size) + self.k_proj.bias.data = qkv_bias[:, 1, :].reshape(self.hidden_size) + self.v_proj.bias.data = qkv_bias[:, 2, :].reshape(self.hidden_size) + else: + # other + qw, kw, vw = torch.split(self.qkv_proj.weight, split_sizes) + self.q_proj.weight.data = qw + self.k_proj.weight.data = kw + self.v_proj.weight.data = vw + if self.qkv_proj.bias is not None: + qb, kb, vb = torch.split(self.qkv_proj.bias, split_sizes) + self.q_proj.bias.data = qb + self.k_proj.bias.data = kb + self.v_proj.bias.data = vb + else: + self.q_proj.bias.data = torch.zeros(split_sizes[0]) + self.k_proj.bias.data = torch.zeros(split_sizes[1]) + self.v_proj.bias.data = torch.zeros(split_sizes[2]) + self.q_proj.weight.requires_grad = False + self.k_proj.weight.requires_grad = False + self.v_proj.weight.requires_grad = False + self.q_proj.bias.requires_grad = False + self.k_proj.bias.requires_grad = False + self.v_proj.bias.requires_grad = False + + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + rotary_pos_emb: Optional[torch.Tensor] = None, + cross_attention_states: Optional[torch.Tensor] = None, + ) -> Tuple[torch.Tensor, torch.Tensor]: + bsz, q_len, _ = hidden_states.size() + query_states = self.q_proj(hidden_states) + if cross_attention_states is not None: + hidden_states = cross_attention_states + key_states = self.k_proj(hidden_states) + value_states = self.v_proj(hidden_states) + query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim) + key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim) + value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim) + # openelm model has qk_norm + if hasattr(self, 'q_norm') and self.q_norm is not None and \ + hasattr(self, 'k_norm') and self.k_norm is not None : + query_states = self.q_norm(query_states) + key_states = self.k_norm(key_states) + + kv_seq_len = key_states.shape[1] + if past_key_value is not None: + kv_seq_len += past_key_value[0].shape[1] + + # rope + cos, sin = rotary_pos_emb[0], rotary_pos_emb[1] + query_states = self.rotary.apply_rotary_pos(query_states, cos, sin) + key_states = self.rotary.apply_rotary_pos(key_states, cos, sin) + + if self.export_fused_attn: + attn_output = self.fused_attn(query_states, key_states, value_states, attention_mask) + attn_output = self.o_proj(attn_output) + return attn_output, past_key_value + + # kv cache + if past_key_value is not None: + past_key, past_value = past_key_value[0], past_key_value[1] + key_states = torch.cat((past_key, key_states), dim=1) + value_states = torch.cat((past_value, value_states), dim=1) + + past_key_value = torch.stack((key_states, value_states)) + query_states = query_states.transpose(1, 2) + key_states = key_states.permute([0, 2, 3, 1]) + value_states = value_states.transpose(1, 2) + # repeat k/v heads if n_kv_heads < n_heads + key_states = repeat_kv(key_states, self.num_key_value_groups) + value_states = repeat_kv(value_states, self.num_key_value_groups) + #------- attention ---------- + # query_states @ key_states + attn_weights = torch.matmul(query_states, key_states) / math.sqrt(self.head_dim) + # attention_mask + if attention_mask.dtype in (torch.bool, torch.int32): + # chatglm + attn_weights.masked_fill_(attention_mask, -10000.0) + else: + attn_weights = attn_weights + attention_mask + # upcast softmax to fp32 + attn_weights = torch.nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype) + # attn_weights @ value_states + attn_output = torch.matmul(attn_weights, value_states) + + attn_output = attn_output.transpose(1, 2).contiguous() + attn_output = attn_output.reshape(bsz, q_len, -1) + attn_output = self.o_proj(attn_output) + return attn_output, past_key_value + +def rotate_half(x): + x1 = x[..., : x.shape[-1] // 2] + x2 = x[..., x.shape[-1] // 2 :] + return torch.cat((-x2, x1), dim=-1) + +class Rotary(torch.nn.Module): + def __init__(self, config): + super().__init__() + self.rope_theta = config.rope_theta + self.rotary_dim = config.head_dim + self.model_type = config.model_type + if hasattr(config, 'rotary_dim'): + self.rotary_dim = config.rotary_dim + if self.model_type == 'chatglm': + self.rotary_dim = config.head_dim // 2 + self.theta = 1.0 / (self.rope_theta ** (torch.arange(0, self.rotary_dim, 2, dtype=torch.float32) / self.rotary_dim)) + + def forward(self, position_ids): + position_ids = position_ids.float().reshape(-1, 1) + idx_theta = position_ids * self.theta + rotary_pos_emb = torch.stack([torch.cos(idx_theta), torch.sin(idx_theta)]) + if self.model_type != 'chatglm2': + rotary_pos_emb = torch.cat((rotary_pos_emb, rotary_pos_emb), dim=-1) + rotary_pos_emb = rotary_pos_emb.unsqueeze(2).unsqueeze(1) + return rotary_pos_emb + + def apply_rotary_pos(self, x, cos, sin): + if self.model_type == 'chatglm': + return self.chatglm_rotary_pos(x, cos, sin) + if self.model_type == 'chatglm2': + return self.chatglm2_rotary_pos(x, cos, sin) + if self.model_type == 'phi-msft': + return self.phi_rotary_pos(x, cos, sin) + return self.llama_rotary_pos(x, cos, sin) + + def llama_rotary_pos(self, x, cos, sin): + x = (x * cos) + (rotate_half(x) * sin) + return x + + def phi_rotary_pos(self, x, cos, sin): + x, x_pass = x[..., :self.rotary_dim], x[..., self.rotary_dim:] + x = (x * cos) + (rotate_half(x) * sin) + return torch.cat((x, x_pass), dim=-1) + + def chatglm2_rotary_pos(self, x, cos, sin): + x, x_pass = x[..., :self.rotary_dim], x[..., self.rotary_dim:] + b, s, n, h = x.shape + xshaped = x.view(b, s, n, h//2, 2) + x = torch.concat( + [ + xshaped[..., 0] * cos - xshaped[..., 1] * sin, + xshaped[..., 1] * cos + xshaped[..., 0] * sin, + ], + -1, + ) + return torch.cat((x, x_pass), dim=-1) + + def chatglm_rotary_pos(self, x, cos, sin): + seq = x.shape[1] + x1, x2 = x[..., :self.rotary_dim], x[..., self.rotary_dim:] + cos1, sin1 = cos[:, :seq, ...], sin[:, :seq, ...] + cos2, sin2 = cos[:, seq:, ...], sin[:, seq:, ...] + x1 = (x1 * cos1) + (rotate_half(x1) * sin1) + x2 = (x2 * cos2) + (rotate_half(x2) * sin2) + return torch.cat((x1, x2), dim=-1) + +class VisionRotary(Rotary): + def __init__(self, config): + super().__init__(config) + + # support [h_pos, w_pos] + def forward(self, position_ids): + # [2, patch_len, 1] + position_ids = position_ids.float().unsqueeze(-1) + idx_theta = position_ids * self.theta + # [patch_len, rotary_dim] + idx_theta = idx_theta.permute(1, 0, 2).reshape(-1, self.rotary_dim) + rotary_pos_emb = torch.stack([torch.cos(idx_theta), torch.sin(idx_theta)]) + rotary_pos_emb = torch.cat((rotary_pos_emb, rotary_pos_emb), dim=-1) + rotary_pos_emb = rotary_pos_emb.unsqueeze(2).unsqueeze(1) + return rotary_pos_emb + +class Decoder(torch.nn.Module): + def __init__(self, decoder, layer_id, config): + super().__init__() + self.cross_decoder = False + ModelMapper.do_map(self, decoder, config.model_map['decoder']) + # mllama has cross_attn + if hasattr(self, 'cross_attn') and self.cross_attn is not None: + self.cross_decoder = True + self.self_attn = Attention(self.cross_attn, layer_id, config) + else: + self.self_attn = Attention(self.self_attn, layer_id, config) + self.hidden_size = config.hidden_size + # chatglm + self.alpha = (2 * config.num_hidden_layers) ** 0.5 if config.model_type == 'chatglm' else 1.0 + + def forward( + self, + hidden_states: torch.Tensor, + rotary_pos_emb: Optional[torch.Tensor] = None, + attention_mask: Optional[torch.Tensor] = None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + cross_attention_states: Optional[torch.Tensor] = None, + cross_attention_mask: Optional[torch.Tensor] = None, + ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]: + hidden_states = hidden_states.view(1, -1, self.hidden_size) + residual = hidden_states + hidden_states = self.input_layernorm(hidden_states) + norm_hidden_states = hidden_states + # Self Attention + hidden_states, present_key_value = self.self_attn( + hidden_states=hidden_states, + rotary_pos_emb=rotary_pos_emb, + attention_mask=attention_mask, + past_key_value=past_key_value, + cross_attention_states=cross_attention_states, + ) + # Fully Connected + if not hasattr(self, 'post_attention_layernorm'): + # phi + feed_forward_hidden_states = self.mlp(norm_hidden_states) + hidden_states = hidden_states + feed_forward_hidden_states + residual + elif self.alpha != 1.0: + # chatglm-6b + hidden_states = norm_hidden_states * self.alpha + hidden_states + mlp_input = self.post_attention_layernorm(hidden_states) + mlp_output = self.mlp(mlp_input) + hidden_states = mlp_input * self.alpha + mlp_output + elif hasattr(self, 'pre_feedforward_layernorm'): + # gemma2 + hidden_states = self.post_attention_layernorm(hidden_states) + hidden_states = residual + hidden_states + residual = hidden_states + hidden_states = self.pre_feedforward_layernorm(hidden_states) + hidden_states = self.mlp(hidden_states) + hidden_states = self.post_feedforward_layernorm(hidden_states) + hidden_states = residual + hidden_states + elif cross_attention_mask is not None and self.cross_decoder: + hidden_states = residual + self.cross_attn_attn_gate.tanh() * hidden_states + residual = hidden_states + hidden_states = self.post_attention_layernorm(hidden_states) + hidden_states = self.mlp(hidden_states) + hidden_states = cross_attention_mask * hidden_states + hidden_states = residual + self.cross_attn_mlp_gate.tanh() * hidden_states + else: + # general + hidden_states = residual + hidden_states + residual = hidden_states + hidden_states = self.post_attention_layernorm(hidden_states) + hidden_states = self.mlp(hidden_states) + hidden_states = residual + hidden_states + + return hidden_states, present_key_value + +class Lm(torch.nn.Module): + def __init__(self, lm_, final_layernorm_, config): + super().__init__() + self.final_layernorm = final_layernorm_ + self.lm = lm_ + self.hidden_size = config.hidden_size + self.ppl = config.args.ppl + + def forward(self, hidden_states): + if not self.ppl: + # just need last logit for predict next token + hidden_states = hidden_states.view(-1, self.hidden_size)[-1].view(1, 1, self.hidden_size) + hidden_states = self.final_layernorm(hidden_states) + m_logits = self.lm(hidden_states) + return m_logits \ No newline at end of file diff --git a/transformers/llm/export/utils/vision.py b/transformers/llm/export/utils/vision.py new file mode 100644 index 000000000..2e3345cb9 --- /dev/null +++ b/transformers/llm/export/utils/vision.py @@ -0,0 +1,394 @@ +import math +import torch +import numpy as np + +from .transformers import VisionRotary, Decoder + +class Vision(torch.nn.Module): + def __init__(self, visual, base): + super().__init__() + self.model_type = base.model_type + self.visual = visual.eval() + self.embed_ = base.embed + self.tokenizer = base.tokenizer + self.config = base.config + self.hidden_size = base.hidden_size + self.llm_config = base.llm_config + # mllama + self.cross_attention_states = None + self.cross_attention_mask = None + self.init_config() + self.load() + + @staticmethod + def get_vision(model_type): + visual_models = { + 'qwen': QwenVision, + 'qwen2_vl': Qwen2Vision, + 'mllama': MllamaVision + } + if model_type in visual_models: + return visual_models[model_type] + return None + + def init_config(self): + from transformers.image_utils import (OPENAI_CLIP_MEAN, OPENAI_CLIP_STD) + self.llm_config['is_visual'] = True + image_mean = np.array(OPENAI_CLIP_MEAN) * 255.0 + image_norm = 1 / (np.array(OPENAI_CLIP_STD) * 255.0) + self.llm_config['image_mean'] = image_mean.tolist() + self.llm_config['image_norm'] = image_norm.tolist() + + def export(self, onnx_path): + raise NotImplementedError + + def load(self): + raise NotImplementedError + + def str_to_ids(self, prompt): + input_ids = self.tokenizer(prompt, return_tensors="pt")['input_ids'] + return input_ids + + def forward(self, images): + raise NotImplementedError + + def embed(self, input_ids, images = None, videos = None): + raise NotImplementedError + +class QwenVision(Vision): + def __init__(self, visual, base): + self.quant_bit = 16 + super().__init__(visual, base) + + def load(self): + self.image_start_id = self.config.visual['image_start_id'] + self.image_size = self.config.visual['image_size'] + self.llm_config['is_visual'] = True + self.llm_config['image_size'] = self.image_size + self.llm_config['vision_start'] = self.tokenizer.img_start_id + self.llm_config['vision_end'] = self.tokenizer.img_end_id + self.llm_config['image_pad'] = self.tokenizer.img_pad_id + + def export(self, onnx_path): + input_images = torch.randn((1, 3, self.image_size, self.image_size)) + onnx_model = f'{onnx_path}/visual.onnx' + torch.onnx.export(self, (input_images), + onnx_model, + input_names=['input_images'], + output_names=['image_embeds'], + dynamic_axes={ + "input_images": { 0: "size" }, + }, + do_constant_folding=True, + verbose=False, + opset_version=15) + return onnx_model + + def forward(self, images): + return self.visual(images).transpose(1, 0) + + def embed(self, input_ids, images = None, videos = None): + if not torch.any(input_ids == self.image_start_id): + return self.embed_(input_ids) + bos_pos = torch.where(input_ids == self.image_start_id) + eos_pos = torch.where(input_ids == self.image_start_id + 1) + img_pos = torch.stack((bos_pos[0], bos_pos[1], eos_pos[1]), dim=1) + images = [] + for i, a, b in img_pos: + image = input_ids[i][a + 1 : b - 1].tolist() + image = image[ : image.index(self.image_start_id + 2)] + images.append(bytes(image).decode('utf-8')) + images = self.visual.encode(images).transpose(1, 0) + hidden_states = self.embed_(input_ids) + for idx, (i, a, b) in enumerate(img_pos): + hidden_states[a + 1 : b, i] = images[:, idx] + return hidden_states + +class Qwen2Vision(Vision): + def __init__(self, visual, base): + self.quant_bit = 4 + self.temporal_patch_size = 2 + self.patch_size = 14 + self.merge_size = 2 + self.image_height = 420 + self.image_width = 420 + self.image_embeds = None + super().__init__(visual, base) + + def load(self): + self.vision_start_id = self.config.vision_start_token_id + self.vision_end_id = self.config.vision_end_token_id + self.image_pad_id = self.config.image_token_id + self.llm_config['image_size'] = self.image_height + self.llm_config['vision_start'] = self.vision_start_id + self.llm_config['vision_end'] = self.vision_end_id + self.llm_config['image_pad'] = self.image_pad_id + # load model + config = self.visual.config + self.hidden_size = config.embed_dim + self.num_attention_heads = config.num_heads + self.num_key_value_heads = config.num_heads + self.head_dim = self.hidden_size // self.num_attention_heads + self.rope_theta = 10000.0 + self.rotary_dim = self.head_dim // 2 + self.rotary = VisionRotary(self) + self.model_map = { + 'decoder': { + 'self_attn': 'attn', + 'mlp': 'mlp', + 'input_layernorm': 'norm1', + 'post_attention_layernorm': 'norm2' + }, + 'attention': { + 'qkv_proj': 'qkv', + 'o_proj': 'proj' + } + } + self.patch_embed = self.visual.patch_embed + self.blocks = [] + for block in self.visual.blocks.children(): + layer_id = len(self.blocks) + self.blocks.append(Decoder(block, layer_id, self)) + self.merger = self.visual.merger + + def str_to_ids(self, prompt): + if '' in prompt and '' in prompt: + import re + import requests + from PIL import Image + pattern = r'(.*?)' + parts = re.split(pattern, prompt) + txt_prompt = '' + for part in parts: + if re.match(pattern, part): + img_content = re.search(r'(.*?)', part).group(1) + # find in image_content + match = re.search(r'(.*?)', img_content) + img_content = img_content[:match.start()] + img_content[match.end():] + hw = match.group(1).split(',') + self.image_height, self.image_width = int(hw[0]), int(hw[1]) + if img_content.startswith('http://') or img_content.startswith('https://'): + image_obj = Image.open(requests.get(img_content, stream=True).raw) + img_pad_len = self.img_process(image_obj) + img_pad_str = '<|image_pad|>' * img_pad_len + img_str = f'<|vision_start|>{img_pad_str}<|vision_end|>' + txt_prompt += img_str + else: + txt_prompt += part + else: + txt_prompt = prompt + input_ids = self.tokenizer(txt_prompt, return_tensors="pt")['input_ids'] + return input_ids + + def forward(self, flatten_patches, position_ids, attention_mask): + rotary_pos_emb = self.rotary(position_ids) + hidden_states = self.patch_embed(flatten_patches) + if rotary_pos_emb.dtype != hidden_states.dtype: + rotary_pos_emb = rotary_pos_emb.to(hidden_states.dtype) + for blk in self.blocks: + hidden_states, _ = blk(hidden_states, rotary_pos_emb=rotary_pos_emb, attention_mask=attention_mask) + image_embeds = self.merger(hidden_states) + image_embeds = image_embeds.unsqueeze(1) + return image_embeds + + def images_forward(self, images): + images = [images] * self.temporal_patch_size + patches = torch.concat(images, axis=0) + _, channel, height, width = patches.shape + grid_t = patches.shape[0] // self.temporal_patch_size + grid_h, grid_w = height // self.patch_size, width // self.patch_size + patches = patches.reshape( + grid_t, + self.temporal_patch_size, + channel, + grid_h // self.merge_size, + self.merge_size, + self.patch_size, + grid_w // self.merge_size, + self.merge_size, + self.patch_size, + ) + patches = patches.permute(0, 3, 6, 4, 7, 2, 1, 5, 8) + flatten_patches = patches.reshape( + grid_t * grid_h * grid_w, channel * self.temporal_patch_size * self.patch_size * self.patch_size + ) + image_grid_thw = torch.tensor([[grid_t, grid_h, grid_w]]) + pos_ids = [] + for t, h, w in image_grid_thw: + hpos_ids = torch.arange(h).unsqueeze(1).expand(-1, w) + hpos_ids = hpos_ids.reshape( + h // self.merge_size, + self.merge_size, + w // self.merge_size, + self.merge_size, + ) + hpos_ids = hpos_ids.permute(0, 2, 1, 3) + hpos_ids = hpos_ids.flatten() + + wpos_ids = torch.arange(w).unsqueeze(0).expand(h, -1) + wpos_ids = wpos_ids.reshape( + h // self.merge_size, + self.merge_size, + w // self.merge_size, + self.merge_size, + ) + wpos_ids = wpos_ids.permute(0, 2, 1, 3) + wpos_ids = wpos_ids.flatten() + pos_ids.append(torch.stack([hpos_ids, wpos_ids])) + position_ids = torch.cat(pos_ids, dim=0) + seq_len = grid_t * grid_h * grid_w + attention_mask = torch.zeros([1, seq_len, seq_len], dtype=torch.float) + return self.forward(flatten_patches, position_ids, attention_mask) + + def smart_resize(self, height: int, width: int, factor: int = 28, min_pixels: int = 56 * 56, max_pixels: int = 14 * 14 * 4 * 1280): + if height < factor or width < factor: + raise ValueError(f"height:{height} or width:{width} must be larger than factor:{factor}") + elif max(height, width) / min(height, width) > 200: + raise ValueError( + f"absolute aspect ratio must be smaller than 200, got {max(height, width) / min(height, width)}" + ) + h_bar = round(height / factor) * factor + w_bar = round(width / factor) * factor + if h_bar * w_bar > max_pixels: + beta = math.sqrt((height * width) / max_pixels) + h_bar = math.floor(height / beta / factor) * factor + w_bar = math.floor(width / beta / factor) * factor + elif h_bar * w_bar < min_pixels: + beta = math.sqrt(min_pixels / (height * width)) + h_bar = math.ceil(height * beta / factor) * factor + w_bar = math.ceil(width * beta / factor) * factor + return h_bar, w_bar + + def img_process(self, image): + from transformers.image_transforms import ( + convert_to_rgb, + resize, + rescale, + normalize + ) + from transformers.image_utils import ( + OPENAI_CLIP_MEAN, + OPENAI_CLIP_STD, + PILImageResampling, + infer_channel_dimension_format, + to_numpy_array + ) + image = convert_to_rgb(image) + image = to_numpy_array(image) + resized_height, resized_width = self.smart_resize(self.image_height, self.image_width) + format = infer_channel_dimension_format(image) + resample = PILImageResampling.BICUBIC + image = resize(image, size=(resized_height, resized_width), resample=resample, input_data_format=format) + image = rescale(image, scale=1 / 255.0, input_data_format=format) + image = normalize(image=image, mean=OPENAI_CLIP_MEAN, std=OPENAI_CLIP_STD, input_data_format=format) + image = np.expand_dims(image, [0]) + image = image.transpose(0, 3, 1, 2) + image = torch.from_numpy(image) + self.image_embeds = self.images_forward(image) + return self.image_embeds.shape[0] + + def embed(self, input_ids, images = None, videos = None): + input_embeds = self.embed_(input_ids) + if self.image_embeds is not None: + image_mask = (input_ids == self.image_pad_id).squeeze() + input_embeds[image_mask] = self.image_embeds + return input_embeds + + def export(self, onnx_path): + patch = torch.randn([900, 1176]) + posision_ids = torch.zeros([2, 900], dtype=torch.int32) + attention_mask = torch.zeros([1, 900, 900], dtype=torch.float) + onnx_model = f'{onnx_path}/visual.onnx' + torch.onnx.export(self, (patch, posision_ids, attention_mask), + onnx_model, + input_names=['patches', 'position_ids', 'attention_mask'], + output_names=['image_embeds'], + dynamic_axes={ + "patches": { 0: "size" }, + "position_ids": { 1: "size" }, + "attention_mask": { 1: "size", 2: "size" } + }, + do_constant_folding=True, + verbose=False, + opset_version=15) + return onnx_model + +class MllamaVision(Vision): + def __init__(self, visual, base): + super().__init__(visual, base) + self.multi_modal_projector = base.multi_modal_projector + self.image_objs = [] + + def load(self): + self.llm_config['is_visual'] = True + self.llm_config['image_size'] = self.config.vision_config.image_size + self.image_size = self.config.vision_config.image_size + + def str_to_ids(self, prompt): + if '' in prompt and '' in prompt: + import re + import requests + from PIL import Image + pattern = r'(.*?)' + parts = re.split(pattern, prompt) + txt_prompt = '' + for part in parts: + if re.match(pattern, part): + img_content = re.search(r'(.*?)', part).group(1) + if img_content.startswith('http://') or img_content.startswith('https://'): + self.image_objs.append(Image.open(requests.get(img_content, stream=True).raw)) + txt_prompt += '<|image|>' + else: + txt_prompt += part + else: + txt_prompt = prompt + input_ids = self.tokenizer(txt_prompt, return_tensors="pt")['input_ids'] + # image process + for img in self.image_objs: + self.img_process(img) + return input_ids + + def img_process(self, image): + self.image_size = 560 + resized_height = self.image_size + resized_width = self.image_size + from transformers.image_transforms import ( + convert_to_rgb, + resize, + rescale, + normalize + ) + from transformers.image_utils import ( + OPENAI_CLIP_MEAN, + OPENAI_CLIP_STD, + PILImageResampling, + infer_channel_dimension_format, + to_numpy_array + ) + image = convert_to_rgb(image) + image = to_numpy_array(image) + format = infer_channel_dimension_format(image) + resample = PILImageResampling.BICUBIC + image = resize(image, size=(resized_height, resized_width), resample=resample, input_data_format=format) + image = rescale(image, scale=1 / 255.0, input_data_format=format) + image = normalize(image=image, mean=OPENAI_CLIP_MEAN, std=OPENAI_CLIP_STD, input_data_format=format) + image = image.transpose(2, 0, 1) + image = np.expand_dims(image, [0, 1, 2]) + pad_val = np.zeros_like(image) + image = np.concatenate([image, pad_val, pad_val, pad_val], axis=2) + image = torch.from_numpy(image) + self.cross_attention_states = self.forward(image) + + def forward(self, images): + aspect_ratio_ids = torch.tensor([[1]]) + aspect_ratio_mask = torch.tensor([[[1, 0, 0, 0]]]) + vision_outputs = self.visual(images, aspect_ratio_ids, aspect_ratio_mask) + cross_attention_states = vision_outputs[0] + cross_attention_states = cross_attention_states.type(self.multi_modal_projector.weight.dtype) + cross_attention_states = self.multi_modal_projector(cross_attention_states).reshape( + -1, cross_attention_states.shape[-2], self.hidden_size) + return cross_attention_states + + def embed(self, input_ids, images = None, videos = None): + txt_embeds = self.embed_(input_ids) + return txt_embeds \ No newline at end of file